diff --git a/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.cpp b/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.cpp index 758983ce7d..ec61b3ca13 100644 --- a/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.cpp +++ b/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.cpp @@ -86,11 +86,17 @@ ThrowCompletionOr DeclarativeEnvironment::create_immutable_binding(GlobalO } // 9.1.1.1.4 InitializeBinding ( N, V ), https://tc39.es/ecma262/#sec-declarative-environment-records-initializebinding-n-v -ThrowCompletionOr DeclarativeEnvironment::initialize_binding(GlobalObject&, FlyString const& name, Value value) +ThrowCompletionOr DeclarativeEnvironment::initialize_binding(GlobalObject& global_object, FlyString const& name, Value value) { auto index = find_binding_index(name); VERIFY(index.has_value()); - auto& binding = m_bindings[*index]; + + return initialize_binding_direct(global_object, *index, value); +} + +ThrowCompletionOr DeclarativeEnvironment::initialize_binding_direct(GlobalObject&, size_t index, Value value) +{ + auto& binding = m_bindings[index]; // 1. Assert: envRec must have an uninitialized binding for N. VERIFY(binding.initialized == false); diff --git a/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.h b/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.h index 67d36b9533..f118024146 100644 --- a/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.h +++ b/Userland/Libraries/LibJS/Runtime/DeclarativeEnvironment.h @@ -45,6 +45,7 @@ public: return names; } + ThrowCompletionOr initialize_binding_direct(GlobalObject&, size_t index, Value); ThrowCompletionOr get_binding_value_direct(GlobalObject&, size_t index, bool strict); ThrowCompletionOr set_mutable_binding_direct(GlobalObject&, size_t index, Value, bool strict);