LibJS: Remove derivable fields from ExecutionContext

Remove four fields that are trivially derivable from other fields
already present in the ExecutionContext:

- global_object (from realm)
- global_declarative_environment (from realm)
- identifier_table (from executable)
- property_key_table (from executable)

This shrinks ExecutionContext from 192 to 160 bytes (-17%).

The asmint's GetGlobal/SetGlobal handlers now load through the realm
pointer, taking advantage of the cached declarative environment
pointer added in the previous commit.
This commit is contained in:
Andreas Kling
2026-03-08 11:34:32 +01:00
committed by Andreas Kling
parent e70f580e5c
commit 96d02d5249
Notes: github-actions[bot] 2026-03-11 12:35:42 +00:00
6 changed files with 24 additions and 28 deletions

View File

@@ -137,8 +137,6 @@ void ExecutionContext::visit_edges(Cell::Visitor& visitor)
visitor.visit(executable);
visitor.visit(caller_executable);
visitor.visit(registers_and_constants_and_locals_and_arguments_span());
visitor.visit(global_object);
visitor.visit(global_declarative_environment);
visitor.visit(arguments);
script_or_module.visit(
[](Empty) {},