diff --git a/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp b/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp index 32f5d50db0..2ade544fe7 100644 --- a/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp +++ b/Userland/Libraries/LibJS/Bytecode/ASTCodegen.cpp @@ -1910,7 +1910,12 @@ static Bytecode::CodeGenerationErrorOr for_in_of_body_evaluation(Bytecode: VERIFY(declaration.declarations().size() == 1); TRY(assign_accumulator_to_variable_declarator(generator, declaration.declarations().first(), declaration)); } else { - TRY(generator.emit_store_to_reference(*lhs.get>())); + if (auto ptr = lhs.get_pointer>()) { + TRY(generator.emit_store_to_reference(**ptr)); + } else { + auto& binding_pattern = lhs.get>(); + TRY(generate_binding_pattern_bytecode(generator, *binding_pattern, Bytecode::Op::SetVariable::InitializationMode::Set, Bytecode::Register::accumulator())); + } } } }