1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-28 07:55:07 +00:00

LibJS/Bytecode: Move SetVariable implementation to CommonImplementations

This commit is contained in:
Andreas Kling 2023-10-21 15:30:39 +02:00
parent e946440ed3
commit 393d90abe1
4 changed files with 24 additions and 10 deletions

View file

@ -925,16 +925,7 @@ ThrowCompletionOr<void> SetVariable::execute_impl(Bytecode::Interpreter& interpr
{
auto& vm = interpreter.vm();
auto const& name = interpreter.current_executable().get_identifier(m_identifier);
auto environment = m_mode == EnvironmentMode::Lexical ? vm.running_execution_context().lexical_environment : vm.running_execution_context().variable_environment;
auto reference = TRY(vm.resolve_binding(name, environment));
switch (m_initialization_mode) {
case InitializationMode::Initialize:
TRY(reference.initialize_referenced_binding(vm, interpreter.accumulator()));
break;
case InitializationMode::Set:
TRY(reference.put_value(vm, interpreter.accumulator()));
break;
}
TRY(set_variable(vm, name, interpreter.accumulator(), m_mode, m_initialization_mode));
return {};
}