This PR changes the way we override error handlers in our RN runtime.
Before, we'd register error handlers in initialization code, now we only do that once the debugger is connected.
The issue with the old approach was that in the case when there is some uncaught exception in the init phase, it'd go into our custom handler that'd stop the debugger. In that case we'd never be able to dispatch app-ready and hence the debugger would never connect.
In this PR we use CDP Runtime.evaluate to call new global handler RNIDE_onDebuggerConnected that is then used by the runtime to install error handlers. With this change in, initialization errors won't be caught in the debugger but they also won't freeze the app entirely w/o any clue.
This PR changes the way we override error handlers in our RN runtime.
Before, we'd register error handlers in initialization code, now we only do that once the debugger is connected.
The issue with the old approach was that in the case when there is some uncaught exception in the init phase, it'd go into our custom handler that'd stop the debugger. In that case we'd never be able to dispatch app-ready and hence the debugger would never connect.
In this PR we use CDP
Runtime.evaluate
to call new global handlerRNIDE_onDebuggerConnected
that is then used by the runtime to install error handlers. With this change in, initialization errors won't be caught in the debugger but they also won't freeze the app entirely w/o any clue.