1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 03:58:12 +00:00
serenity/Userland/Libraries/LibJS/JIT
Simon Wanner ddce5e03c2 LibJS/JIT: Clear unwind context handler on usage
This clears the handler pointer of the current unwind context
before jumping to it. This is necessary to not loop infinitely
when an exception is thrown from the handler.
In that case control flow should go to the finalizer instead.

This mirrors how unwind_context.handler_called is used in the
Bytecode::Interpreter.

`try { throw 1 } catch (e) { throw 2 } finally {}` now runs
without looping infinitely in the catch block.
2023-10-29 07:44:11 +01:00
..
Compiler.cpp LibJS/JIT: Clear unwind context handler on usage 2023-10-29 07:44:11 +01:00
Compiler.h LibJS/JIT: Compile the CreateVariable bytecode instruction 2023-10-29 07:44:11 +01:00
NativeExecutable.cpp LibJS/JIT: Dump disassembly of generated code using LibX86 2023-10-27 21:49:55 +02:00
NativeExecutable.h LibJS/JIT: Dump disassembly of generated code using LibX86 2023-10-27 21:49:55 +02:00