LibJS: Remove effectively unused value span from ExecutionContext

Instead of using this span, we can just use the getter that calculates
the base of the register/constant/local/argument array based on the
ExecutionContext's own address.
This commit is contained in:
Andreas Kling 2025-10-31 19:39:56 +01:00 committed by Andreas Kling
parent e1344afff3
commit 75d49c4b55
3 changed files with 4 additions and 7 deletions

View File

@ -167,12 +167,12 @@ Interpreter::~Interpreter()
ALWAYS_INLINE Value Interpreter::get(Operand op) const
{
return m_running_execution_context->registers_and_constants_and_locals_arguments.data()[op.index()];
return m_running_execution_context->registers_and_constants_and_locals_and_arguments()[op.index()];
}
ALWAYS_INLINE void Interpreter::set(Operand op, Value value)
{
m_running_execution_context->registers_and_constants_and_locals_arguments.data()[op.index()] = value;
m_running_execution_context->registers_and_constants_and_locals_and_arguments()[op.index()] = value;
}
ALWAYS_INLINE Value Interpreter::do_yield(Value value, Optional<Label> continuation)
@ -716,8 +716,6 @@ ThrowCompletionOr<Value> Interpreter::run_executable(ExecutionContext& context,
ASSERT(executable.registers_and_constants_and_locals_count <= context.registers_and_constants_and_locals_and_arguments_span().size());
context.registers_and_constants_and_locals_arguments = context.registers_and_constants_and_locals_and_arguments_span();
reg(Register::accumulator()) = initial_accumulator_value;
// NOTE: We only copy the `this` value from ExecutionContext if it's not already set.

View File

@ -45,11 +45,11 @@ public:
ALWAYS_INLINE Value& saved_return_value() { return reg(Register::saved_return_value()); }
Value& reg(Register const& r)
{
return m_running_execution_context->registers_and_constants_and_locals_arguments.data()[r.index()];
return m_running_execution_context->registers_and_constants_and_locals_and_arguments()[r.index()];
}
Value reg(Register const& r) const
{
return m_running_execution_context->registers_and_constants_and_locals_arguments.data()[r.index()];
return m_running_execution_context->registers_and_constants_and_locals_and_arguments()[r.index()];
}
[[nodiscard]] Value get(Operand) const;

View File

@ -82,7 +82,6 @@ public:
Optional<size_t> scheduled_jump;
GC::Ptr<Object> global_object;
GC::Ptr<DeclarativeEnvironment> global_declarative_environment;
Span<Value> registers_and_constants_and_locals_arguments;
ReadonlySpan<Utf16FlyString> identifier_table;
u32 program_counter { 0 };