-
Notifications
You must be signed in to change notification settings - Fork 74
Open
Description
I ran into a Uncaught RangeError: Maximum call stack size exceeded
error with reanimated - interestingly the exception below was not a string:
react-native-v8/src/v8runtime/V8Runtime.cpp
Lines 259 to 263 in 958a471
void V8Runtime::ReportException(v8::Isolate *isolate, v8::TryCatch *tryCatch) | |
const { | |
v8::HandleScope scopedHandle(isolate); | |
std::string exception = | |
JSIV8ValueConverter::ToSTLString(isolate, tryCatch->Exception()); |
So it was aborting in ToSTLString
for a bit.
Ignoring the exception string and continuing to raise the JSError
based on constant string resulted in another crash, which is sensible since the call stack is depleted. It seems that for certain errors, the runtime is basically unrecoverable?
I wonder if checking tryCatch->canContinue
will result in false in these cases.
I've resorted to aborting the process completely by throwing std::runtime_error with whatever information we have left.
Metadata
Metadata
Assignees
Labels
No labels