ladybird/Userland/Libraries/LibJS/Bytecode
Idan Horowitz 58e2fe895c LibJS: Stash thrown exception in a register before executing finalizer
This kills 2 birds with one stone:
1. It makes sure generated check_exception() calls in the finalizer
   don't mis-read the pending exception as caused by their matching
   operation.
2. It implicitly ensures that terminated finally blocks (by a return
   statement) overwrite any pending exceptions, since they will never
   execute the ContinuePendingUnwind operation that restores the
   stashed exception.
This additional logic is required in the JIT (as opposed to the
interpreter), since the JIT uses the exception register to store and
check the possibly-exceptional results from each individual operation,
while the interpreter only modifies it when an operation has thrown an
exception.
2023-11-03 20:27:45 +01:00
..
ASTCodegen.cpp LibJS: Create static unwind mappings for BasicBlocks 2023-10-30 13:10:08 +01:00
BasicBlock.cpp LibJS: Migrate DeprecatedString to String 2023-11-02 14:55:12 +01:00
BasicBlock.h LibJS: Migrate DeprecatedString to String 2023-11-02 14:55:12 +01:00
CodeGenerationError.cpp LibJS: Add to_string definitions to CodeGenerationError and ParserError 2023-02-17 09:14:23 -05:00
CodeGenerationError.h LibJS: Remove unused CodeGenerationError::to_deprecated_string 2023-02-17 09:14:23 -05:00
CommonImplementations.cpp LibJS: Store the bytecode accumulator in a dedicated physical register 2023-11-02 22:35:35 +01:00
CommonImplementations.h LibJS: Store the bytecode accumulator in a dedicated physical register 2023-11-02 22:35:35 +01:00
Executable.cpp LibJS/JIT: Provide source location information for JIT code 2023-10-31 07:07:17 +01:00
Executable.h LibJS/JIT: Provide source location information for JIT code 2023-10-31 07:07:17 +01:00
Generator.cpp LibJS: Migrate DeprecatedString to String 2023-11-02 14:55:12 +01:00
Generator.h LibJS: Migrate DeprecatedString to String 2023-11-02 14:55:12 +01:00
IdentifierTable.cpp LibJS: Don't worry about deduplicating bytecode string tables 2023-10-04 20:10:12 +02:00
IdentifierTable.h AK+Everywhere: Rename FlyString to DeprecatedFlyString 2023-01-09 23:00:24 +00:00
Instruction.cpp LibJS: Add file & line number to bytecode VM stack traces :^) 2023-09-02 15:37:53 +02:00
Instruction.h LibJS/Bytecode: Remove the PushDeclarativeEnvironment instruction 2023-11-03 07:31:11 +01:00
Interpreter.cpp LibJS/Bytecode: Remove the PushDeclarativeEnvironment instruction 2023-11-03 07:31:11 +01:00
Interpreter.h LibJS: Lazily collect stack trace information 2023-11-02 07:37:41 +01:00
Label.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Op.h LibJS/Bytecode: Remove the PushDeclarativeEnvironment instruction 2023-11-03 07:31:11 +01:00
RegexTable.cpp LibJS/Bytecode: Don't reparse regular expressions on instantiation 2023-07-13 13:30:49 +02:00
RegexTable.h LibJS/Bytecode: Don't reparse regular expressions on instantiation 2023-07-13 13:30:49 +02:00
Register.h LibJS: Stash thrown exception in a register before executing finalizer 2023-11-03 20:27:45 +01:00
StringTable.cpp LibJS: Don't worry about deduplicating bytecode string tables 2023-10-04 20:10:12 +02:00
StringTable.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00