mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 03:47:35 +00:00
![]() 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. |
||
---|---|---|
.. | ||
Assembler.cpp | ||
Assembler.h | ||
Compiler.cpp | ||
Compiler.h | ||
NativeExecutable.cpp | ||
NativeExecutable.h |