Hi,

I've ported V8 to run on jailbroken iOS devices, where the only tricky part 
is in ABI differences between AAPCS and iOS; most significantly the r9 
register that is a volatile scratch register on iOS. I've been using this 
port for a few years now, and it's only upon recently rebasing my patches 
on top of upstream that I ran into a problem.

Basically this is the observed symptom:

try {
    callNativeFunctionThatThrows();
} catch (e) {
    // We get the exception, but even with an empty block the exception is 
still propagated to the parent scope as if our try-catch wasn't there
}

However this works fine:

try {
    callPureJSFunctionThatThrows();
} catch (e) {
    // Exception is stopped here
}

Anyone familiar with the ARM backend, or the exception propagation, who 
could point me in the right direction for debugging this?

I'm aware that iOS is not a supported platform, but I would really 
appreciate any pointers about what to look out for.

Here's my patch for V8 as of April 1st:
https://github.com/frida/v8/commit/9a8c4b8165073025ab6dc90eddace2d36531968f

And the same patch rebased on top of the latest V8 master as of yesterday 
(exhibiting the same problem):
https://github.com/frida/v8/commit/4ffb14a952c1fdafdac4407f0201b6e3bb426ba4

Cheers,
Ole André

-- 
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to