-
Notifications
You must be signed in to change notification settings - Fork 76
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