1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 08:18:11 +00:00
serenity/Userland/Libraries/LibJS
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
..
Bytecode LibJS: Propagate exceptions across bytecode executable boundaries 2021-10-25 12:57:21 +02:00
Heap LibJS: Prune WeakContainers before freeing HeapBlocks 2021-10-08 19:47:25 +02:00
Runtime LibJS: Make eval() code run in the bytecode VM 2021-10-25 12:57:21 +02:00
Tests LibJS: Add parsing and evaluation of private fields and methods 2021-10-20 23:19:17 +01:00
AST.cpp LibJS: Use PropertyKey in MemberExpression::to_reference() 2021-10-24 17:18:09 +02:00
AST.h LibJS: Rename PropertyName to PropertyKey 2021-10-24 17:18:07 +02:00
CMakeLists.txt LibJS: Add a separate "identifier table" to bytecode executables 2021-10-24 17:18:07 +02:00
Console.cpp LibJS: Rename CallFrame => ExecutionContext 2021-06-24 19:28:00 +02:00
Console.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Forward.h LibJS: Rename PropertyName to PropertyKey 2021-10-24 17:18:07 +02:00
Interpreter.cpp LibJS: Pop execution context after running queued jobs in run() 2021-10-09 14:29:20 +01:00
Interpreter.h LibJS: Make scoping follow the spec 2021-09-30 08:16:32 +01:00
Lexer.cpp LibJS: Lex private identifiers, identifiers prefixed with a '#' 2021-10-20 23:19:17 +01:00
Lexer.h LibJS: Make Lexer::s_keywords store keywords as FlyString 2021-09-18 19:54:24 +02:00
MarkupGenerator.cpp LibJS: Convert Object::get() to ThrowCompletionOr 2021-10-03 20:14:03 +01:00
MarkupGenerator.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Module.cpp LibJS: Add a barebones Module class 2021-09-14 21:41:51 +02:00
Module.h LibJS: Add a barebones Module class 2021-09-14 21:41:51 +02:00
Parser.cpp LibJS: Rename PropertyName to PropertyKey 2021-10-24 17:18:07 +02:00
Parser.h LibJS: Add parsing and evaluation of private fields and methods 2021-10-20 23:19:17 +01:00
Script.cpp LibJS+LibWeb: Move script parse time logging from JS::Script to LibWeb 2021-09-14 21:41:51 +02:00
Script.h LibJS+LibWeb: Let JS::Script::parse() return a list of errors (on error) 2021-09-14 21:41:51 +02:00
SourceRange.h LibJS: Add missing headers 2021-10-06 23:52:40 +01:00
SourceTextModule.cpp LibJS: Add a barebones SourceTextModule class 2021-09-14 21:41:51 +02:00
SourceTextModule.h LibJS: Add a barebones SourceTextModule class 2021-09-14 21:41:51 +02:00
SyntaxHighlighter.cpp LibJS: Remove unused header includes 2021-08-01 08:10:16 +02:00
SyntaxHighlighter.h LibWeb+LibSyntax: Implement nested syntax highlighters 2021-06-07 14:45:49 +04:30
Token.cpp AK: Replace the mutable String::replace API with an immutable version 2021-09-11 20:36:43 +03:00
Token.h LibJS: Lex private identifiers, identifiers prefixed with a '#' 2021-10-20 23:19:17 +01:00