mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-10-05 15:49:15 +00:00
LibJS: Cleanup unwind state when transferring control out of a finalizer
This does two things: * Clear exceptions when transferring control out of a finalizer Otherwise they would resurface at the end of the next finalizer (see test the new test case), or at the end of a function * Pop one scheduled jump when transferring control out of a finalizer This removes one old FIXME
This commit is contained in:
parent
27b238d9af
commit
ada5027163
Notes:
sideshowbarker
2024-07-17 06:38:11 +09:00
Author: https://github.com/Hendiadyoin1
Commit: ada5027163
Pull-request: https://github.com/SerenityOS/serenity/pull/23927
Reviewed-by: https://github.com/ADKaster
8 changed files with 65 additions and 6 deletions
|
@ -532,7 +532,10 @@ void Generator::generate_scoped_jump(JumpType type)
|
|||
switch_to_basic_block(block);
|
||||
last_was_finally = true;
|
||||
break;
|
||||
};
|
||||
}
|
||||
case LeaveFinally:
|
||||
emit<Op::LeaveFinally>();
|
||||
break;
|
||||
}
|
||||
}
|
||||
VERIFY_NOT_REACHED();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue