diff --git a/Libraries/LibJS/Bytecode/Generator.cpp b/Libraries/LibJS/Bytecode/Generator.cpp index 19daee2b2bf..25b0c72ce1f 100644 --- a/Libraries/LibJS/Bytecode/Generator.cpp +++ b/Libraries/LibJS/Bytecode/Generator.cpp @@ -207,11 +207,14 @@ CodeGenerationErrorOr Generator::emit_function_declaration_instantiation(E } for (auto const& declaration : function.m_functions_to_initialize) { - auto function = allocate_register(); - emit(function, declaration, OptionalNone {}); - if (declaration.name_identifier()->is_local()) { - emit(local(declaration.name_identifier()->local_variable_index()), function); + auto const& identifier = *declaration.name_identifier(); + if (identifier.is_local()) { + auto local_index = identifier.local_variable_index(); + emit(local(local_index), declaration, OptionalNone {}); + set_local_initialized(local_index); } else { + auto function = allocate_register(); + emit(function, declaration, OptionalNone {}); emit(intern_identifier(declaration.name()), function); } }