diff --git a/Userland/Libraries/LibJS/Runtime/VM.cpp b/Userland/Libraries/LibJS/Runtime/VM.cpp index 8aebd2fab9..67ab562598 100644 --- a/Userland/Libraries/LibJS/Runtime/VM.cpp +++ b/Userland/Libraries/LibJS/Runtime/VM.cpp @@ -303,7 +303,10 @@ ThrowCompletionOr VM::property_binding_initialization(BindingPattern const }, [&](NonnullRefPtr const&) -> ThrowCompletionOr> { return Optional {}; }, [&](NonnullRefPtr const& member_expression) -> ThrowCompletionOr> { - return member_expression->to_reference(interpreter(), global_object); + auto reference = member_expression->to_reference(interpreter(), global_object); + if (auto* thrown_exception = exception()) + return JS::throw_completion(thrown_exception->value()); + return reference; })); if (auto* thrown_exception = exception()) @@ -350,7 +353,10 @@ ThrowCompletionOr VM::iterator_binding_initialization(BindingPattern const }, [&](NonnullRefPtr const&) -> ThrowCompletionOr> { return Optional {}; }, [&](NonnullRefPtr const& member_expression) -> ThrowCompletionOr> { - return member_expression->to_reference(interpreter(), global_object); + auto reference = member_expression->to_reference(interpreter(), global_object); + if (auto* thrown_exception = exception()) + return JS::throw_completion(thrown_exception->value()); + return reference; })); if (entry.is_rest) {