software-mansion / react-native-ide

https://ide.swmansion.com
Other
705 stars 21 forks source link

Delay setting error handlers until debugger is connected #373

Closed kmagiera closed 2 weeks ago

kmagiera commented 2 weeks ago

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.

vercel[bot] commented 2 weeks ago

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
react-native-ide ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jun 12, 2024 9:43pm