You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think there are two noexcept issues with control flow.
1. NAPI_THROW noexcept control flow
Like NAPI_THROW_IF_FAILED*, NAPI_THROW should also always abort control flow, but noexcept definition doesn't have a return so execution continues. All implementations using NAPI_THROW have a trailing return statement, so there is no bug, but I'd say it's unclean.
// for noexcept
#defineNAPI_THROW(e) (e).ThrowAsJavaScriptException();
2. noexcept ThrowAsJavaScriptException may produce infinite recursion
if napi_throw fails, it's likely that all further calls are failing and every time invoke another ThrowAsJavaScriptException, so I think this is a fatal case. Recursion is not a good idea, and also ignoring it, so it should fatal abort.
Activity
src: fix noexcept control flow issues
src: fix noexcept control flow issues
src: fix noexcept control flow issues
src: fix noexcept control flow issues
src: fix noexcept control flow issues