ladybird/Libraries/LibJS
Andreas Kling 6861c619c6 LibJS: Move most of Interpreter into VM
This patch moves the exception state, call stack and scope stack from
Interpreter to VM. I'm doing this to help myself discover what the
split between Interpreter and VM should be, by shuffling things around
and seeing what falls where.

With these changes, we no longer have a persistent lexical environment
for the current global object on the Interpreter's call stack. Instead,
we push/pop that environment on Interpreter::run() enter/exit.
Since it should only be used to find the global "this", and not for
variable storage (that goes directly into the global object instead!),
I had to insert some short-circuiting when walking the environment
parent chain during variable lookup.

Note that this is a "stepping stone" commit, not a final design.
2020-09-27 20:26:58 +02:00
..
Heap Meta+LibHTTP through LibWeb: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Runtime LibJS: Move most of Interpreter into VM 2020-09-27 20:26:58 +02:00
Tests LibJS: Handle getter exception in JSONObject::serialize_json_property() 2020-09-19 14:17:22 +02:00
AST.cpp LibJS: Move most of Interpreter into VM 2020-09-27 20:26:58 +02:00
AST.h LibJS: Mark more ASTNode classes as final 2020-09-18 20:49:35 +02:00
CMakeLists.txt LibJS+Clients: Add JS::VM object, separate Heap from Interpreter 2020-09-20 19:24:44 +02:00
Console.cpp LibJS: Move most of Interpreter into VM 2020-09-27 20:26:58 +02:00
Console.h LibJS: Move Interpreter::get_trace() to ConsoleClient 2020-06-02 15:22:34 +02:00
Forward.h Meta+LibHTTP through LibWeb: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Interpreter.cpp LibJS: Move most of Interpreter into VM 2020-09-27 20:26:58 +02:00
Interpreter.h LibJS: Move most of Interpreter into VM 2020-09-27 20:26:58 +02:00
Lexer.cpp LibJS: Fix start position of multi-line tokens 2020-09-12 00:13:29 +02:00
Lexer.h LibJS: Lex and parse regex literals, add RegExp objects 2020-06-07 19:06:55 +02:00
MarkupGenerator.cpp LibJS+LibGUI+js: Handle UnterminatedRegexLiteral in syntax highlighters 2020-09-25 23:58:42 +02:00
MarkupGenerator.h Meta: Add a script check the presence of "#pragma once" in header files 2020-05-29 07:59:45 +02:00
Parser.cpp LibJS: Add FIXMEs for parsing increment operators with function LHS/RHS 2020-09-18 20:49:35 +02:00
Parser.h LibJS: Parser refactored to use constexpr precedence table 2020-08-21 16:14:14 +02:00
Token.cpp LibJS: Add missing reserved words to Token::is_identifier_name() 2020-08-14 10:58:51 +02:00
Token.h LibJS: Parser refactored to use constexpr precedence table 2020-08-21 16:14:14 +02:00