1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 03:47:35 +00:00
serenity/Userland/Libraries/LibJS/JIT
Andreas Kling e3560c2545 LibJS/JIT: Propagate exceptions in the simplest case :^)
We now establish a stack of "unwind contexts" similar to what the
bytecode interpreter does, but here, it's a stack of structs with
addresses to the catch and finally blocks.

Unwind contexts also have a "valid" flag, and the root unwind context
(always present, pushed on JIT code entry) has valid=false, which we
interpret in check_exception() as "return and let our caller deal with
the exception".

Anything in Compiler that may generate an exception should now also
call check_exception() ASAP to emit the code for handling this.
2023-10-27 19:07:22 +02:00
..
Assembler.cpp LibJS: Work-in-progress JIT compiler :^) 2023-10-27 19:07:22 +02:00
Assembler.h LibJS/JIT: Support Imm32 operands in Assembler::push() 2023-10-27 19:07:22 +02:00
Compiler.cpp LibJS/JIT: Propagate exceptions in the simplest case :^) 2023-10-27 19:07:22 +02:00
Compiler.h LibJS/JIT: Propagate exceptions in the simplest case :^) 2023-10-27 19:07:22 +02:00
NativeExecutable.cpp LibJS: Work-in-progress JIT compiler :^) 2023-10-27 19:07:22 +02:00
NativeExecutable.h LibJS: Work-in-progress JIT compiler :^) 2023-10-27 19:07:22 +02:00