ladybird/Userland/Libraries/LibJS/Bytecode
Andreas Kling 3618ca2420 LibJS: Propagate exceptions across bytecode executable boundaries
To support situations like this:

    function foo() { throw 1; }

    try {
        foo();
    } catch (e) {
    }

Each unwind context now keeps track of its origin executable.

When an exception is thrown, we return from run() immediately if the
nearest unwind context isn't in the current executable.

This causes a natural unwind to the point where we find the
catch/finally block(s) to jump into.
2021-10-25 12:57:21 +02:00
..
Pass LibJS: Remove unused header includes 2021-08-01 08:10:16 +02:00
ASTCodegen.cpp LibJS: Fix bogus bytecode codegen for "catch" parameters 2021-10-25 12:57:21 +02:00
BasicBlock.cpp LibJS: Add a basic pass manager and add some basic passes 2021-06-15 22:06:33 +04:30
BasicBlock.h LibJS: Propagate exceptions across bytecode executable boundaries 2021-10-25 12:57:21 +02:00
Executable.cpp LibJS: Add a separate "identifier table" to bytecode executables 2021-10-24 17:18:07 +02:00
Executable.h LibJS: Add a separate "identifier table" to bytecode executables 2021-10-24 17:18:07 +02:00
Generator.cpp LibJS: Add a separate "identifier table" to bytecode executables 2021-10-24 17:18:07 +02:00
Generator.h LibJS: Add a separate "identifier table" to bytecode executables 2021-10-24 17:18:07 +02:00
IdentifierTable.cpp LibJS: Add a separate "identifier table" to bytecode executables 2021-10-24 17:18:07 +02:00
IdentifierTable.h LibJS: Add a separate "identifier table" to bytecode executables 2021-10-24 17:18:07 +02:00
Instruction.cpp LibJS: Move Instruction::length() to the Op.h header 2021-06-09 09:24:32 +02:00
Instruction.h LibJS: Implement 'this' in the bytecode VM 2021-10-24 17:18:06 +02:00
Interpreter.cpp LibJS: Propagate exceptions across bytecode executable boundaries 2021-10-25 12:57:21 +02:00
Interpreter.h LibJS: Move global "should dump bytecode" flag into LibJS 2021-10-24 17:18:06 +02:00
Label.h LibJS: Add a basic pass manager and add some basic passes 2021-06-15 22:06:33 +04:30
Op.cpp LibJS: Make bytecode VM throw TypeError on attempt to call non-callable 2021-10-25 12:57:21 +02:00
Op.h LibJS: Add the "fast non-local access" optimization to the bytecode VM 2021-10-24 17:18:07 +02:00
PassManager.h LibJS: Add a basic pass manager and add some basic passes 2021-06-15 22:06:33 +04:30
Register.h LibJS: Always keep the global object in bytecode VM register $1 2021-06-10 21:59:49 +02:00
StringTable.cpp LibJS: Use String and move semantics in Bytecode::StringTable 2021-10-24 17:18:07 +02:00
StringTable.h LibJS: Use String and move semantics in Bytecode::StringTable 2021-10-24 17:18:07 +02:00