ladybird/Userland/Libraries/LibJS
Aliaksandr Kalenik 6fb1d9e516 LibJS: Stop using execute_ast_node() for class property evaluation
Instead, generate bytecode to execute their AST nodes and save the
resulting operands inside the NewClass instruction.

Moving property expression evaluation to happen before NewClass
execution also moves along creation of new private environment and
its population with private members (private members should be visible
during property evaluation).

Before:
- NewClass

After:
- CreatePrivateEnvironment
- AddPrivateName
- ...
- AddPrivateName
- NewClass
- LeavePrivateEnvironment
2024-05-12 19:10:25 +02:00
..
Bytecode LibJS: Stop using execute_ast_node() for class property evaluation 2024-05-12 19:10:25 +02:00
Contrib/Test262 LibJS: Make ParserError::to_string infallible 2024-04-05 20:01:37 -04:00
Heap LibJS: Make JS::Cell a Weakable 2024-05-04 21:42:59 +02:00
Runtime LibJS: Stop using execute_ast_node() for class property evaluation 2024-05-12 19:10:25 +02:00
Tests LibJS: Save and restore exceptions on yields in finalizers 2024-05-08 22:01:58 +02:00
AST.cpp LibJS: Stop using execute_ast_node() for class property evaluation 2024-05-12 19:10:25 +02:00
AST.h LibJS: Stop using execute_ast_node() for class property evaluation 2024-05-12 19:10:25 +02:00
CMakeLists.txt LibJS/Bytecode: Reuse bytecode registers 2024-05-09 09:12:13 +02:00
Console.cpp LibJS+LibWeb: Make Console, ConsoleClient & subclasses GC-allocated 2024-04-21 09:12:25 +02:00
Console.h LibJS+LibWeb: Make Console, ConsoleClient & subclasses GC-allocated 2024-04-21 09:12:25 +02:00
CyclicModule.cpp LibJS+LibWeb: Use new Cell::Visitor helpers to avoid manual iteration 2024-04-16 07:40:01 +02:00
CyclicModule.h
Forward.h LibJS/Bytecode: Make StringTableIndex be a 32-bit index 2024-05-10 15:03:24 +00:00
Lexer.cpp Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
Lexer.h LibJS: Lex 1/2/3-byte tokens without HashMap lookups 2024-03-24 13:28:24 +01:00
MarkupGenerator.cpp AK+Userland: Remove some needlessly explicit conversions to StringView 2024-04-04 11:23:21 +02:00
MarkupGenerator.h
Module.cpp LibJS: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
Module.h LibJS: Add calls to JS_{DECLARE,DEFINE}_ALLOCATOR() 2024-04-09 09:13:06 +02:00
ModuleLoading.h
Parser.cpp LibWeb+LibJS: Skip function environment allocation if possible 2024-05-04 06:48:07 +02:00
Parser.h LibWeb+LibJS: Skip function environment allocation if possible 2024-05-04 06:48:07 +02:00
ParserError.cpp LibJS: Make ParserError::to_string infallible 2024-04-05 20:01:37 -04:00
ParserError.h LibJS: Make ParserError::to_string infallible 2024-04-05 20:01:37 -04:00
Position.h
Print.cpp
Print.h
SafeFunction.h
Script.cpp
Script.h
SourceCode.cpp
SourceCode.h
SourceRange.h
SourceTextModule.cpp LibJS: Emit bytecode for function declaration instantiation 2024-05-11 11:43:05 +02:00
SourceTextModule.h
SyntaxHighlighter.cpp
SyntaxHighlighter.h
SyntheticModule.cpp
SyntheticModule.h
Token.cpp
Token.h Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00