LibJS: Use InitializeOrSet to initialize function declarations in BC

A function may be redefined, in which case the existing binding is
expected to be reused.
This commit is contained in:
Ali Mohammad Pur 2022-04-05 03:54:58 +04:30 committed by Andreas Kling
commit 0e1943937c
Notes: sideshowbarker 2024-07-17 14:25:30 +09:00

View file

@ -54,7 +54,7 @@ Bytecode::CodeGenerationErrorOr<void> ScopeNode::generate_bytecode(Bytecode::Gen
auto const& name = function_declaration.name();
auto index = generator.intern_identifier(name);
generator.emit<Bytecode::Op::NewFunction>(function_declaration);
generator.emit<Bytecode::Op::SetVariable>(index, Bytecode::Op::SetVariable::InitializationMode::Initialize);
generator.emit<Bytecode::Op::SetVariable>(index, Bytecode::Op::SetVariable::InitializationMode::InitializeOrSet);
}
return {};