From a2e245fa97a5f84236387b924efd13719c9e9162 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Thu, 6 Jul 2023 16:48:48 -0400 Subject: [PATCH] LibJS: Allow converting a reference to an object to fail in `delete` This is (part of) a normative change in the ECMA-262 spec. See: https://github.com/tc39/ecma262/commit/d09532c We recently implemented other parts of that commit in LibJS, but missed this change: 442ca4f9b49b45e96d1257d5422b34c21f2d3a99 2b19d1b5abfa66933e02d475de761d9a4d6ede63 --- Userland/Libraries/LibJS/Runtime/Reference.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Userland/Libraries/LibJS/Runtime/Reference.cpp b/Userland/Libraries/LibJS/Runtime/Reference.cpp index 14f2fe4062..4625ad520b 100644 --- a/Userland/Libraries/LibJS/Runtime/Reference.cpp +++ b/Userland/Libraries/LibJS/Runtime/Reference.cpp @@ -170,8 +170,8 @@ ThrowCompletionOr Reference::delete_(VM& vm) if (is_super_reference()) return vm.throw_completion(ErrorType::UnsupportedDeleteSuperProperty); - // c. Let baseObj be ! ToObject(ref.[[Base]]). - auto base_obj = MUST(m_base_value.to_object(vm)); + // c. Let baseObj be ? ToObject(ref.[[Base]]). + auto base_obj = TRY(m_base_value.to_object(vm)); // d. Let deleteStatus be ? baseObj.[[Delete]](ref.[[ReferencedName]]). bool delete_status = TRY(base_obj->internal_delete(m_name));