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
function*g(){try{throw1;}finally{yield0;}}a=g();console.log(a.next());// { "value": 0, "done": false } from the finalizerexpect(a.next).toThrow();
Cause: Yield::execute_impl calls interpreter.do_return(value) which clears the current exception, which means the finally will not pick it up when execution continues. But not clearing the exception would instead shadow the return value and bubble up the exception on the first iteration,
so we need to find a way to save the exception in the generator state and restore in on re-entry
The text was updated successfully, but these errors were encountered:
Reproducer (js test):
Cause:
Yield::execute_impl
callsinterpreter.do_return(value)
which clears the current exception, which means the finally will not pick it up when execution continues.But not clearing the exception would instead shadow the return value and bubble up the exception on the first iteration,
so we need to find a way to save the exception in the generator state and restore in on re-entry
The text was updated successfully, but these errors were encountered: