Revert "LibJS: Shrink ExecutionContext by replacing ScriptOrModule …"

… with Cell*.

This reverts commit d3495c62a7.
This commit is contained in:
Tim Ledbetter
2026-03-11 20:35:43 +00:00
committed by Tim Ledbetter
parent ba8d63556f
commit 36f74ba96c
Notes: github-actions[bot] 2026-03-11 23:14:19 +00:00
16 changed files with 50 additions and 60 deletions

View File

@@ -9,23 +9,12 @@
#include <LibGC/Heap.h>
#include <LibJS/Bytecode/Executable.h>
#include <LibJS/Module.h>
#include <LibJS/Runtime/DeclarativeEnvironment.h>
#include <LibJS/Runtime/ExecutionContext.h>
#include <LibJS/Runtime/FunctionObject.h>
#include <LibJS/Script.h>
namespace JS {
ScriptOrModule script_or_module_from_cell(GC::Ptr<Cell> cell)
{
if (!cell)
return Empty {};
if (auto* script = as_if<Script>(*cell))
return GC::Ref<Script> { *script };
return GC::Ref<Module> { as<Module>(*cell) };
}
class ExecutionContextAllocator {
public:
NonnullOwnPtr<ExecutionContext> allocate(u32 registers_and_locals_count, u32 constants_count, u32 arguments_count)
@@ -141,9 +130,13 @@ void ExecutionContext::visit_edges(Cell::Visitor& visitor)
visitor.visit(lexical_environment);
visitor.visit(private_environment);
visitor.visit(this_value);
visitor.visit(script_or_module);
visitor.visit(executable);
visitor.visit(registers_and_constants_and_locals_and_arguments_span());
script_or_module.visit(
[](Empty) {},
[&](auto& script_or_module) {
visitor.visit(script_or_module);
});
}
}