From 3af559ee8a3f2a2a170496e2f46d7caf3439befb Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Sun, 3 Oct 2021 02:21:44 +0100 Subject: [PATCH] LibJS: Convert test_integrity_level() to ThrowCompletionOr --- Userland/Libraries/LibJS/Runtime/Object.cpp | 8 ++++---- Userland/Libraries/LibJS/Runtime/Object.h | 2 +- Userland/Libraries/LibJS/Runtime/ObjectConstructor.cpp | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Userland/Libraries/LibJS/Runtime/Object.cpp b/Userland/Libraries/LibJS/Runtime/Object.cpp index 2bc19b33a1..60afb0a7e7 100644 --- a/Userland/Libraries/LibJS/Runtime/Object.cpp +++ b/Userland/Libraries/LibJS/Runtime/Object.cpp @@ -340,7 +340,7 @@ ThrowCompletionOr Object::set_integrity_level(IntegrityLevel level) } // 7.3.16 TestIntegrityLevel ( O, level ), https://tc39.es/ecma262/#sec-testintegritylevel -bool Object::test_integrity_level(IntegrityLevel level) const +ThrowCompletionOr Object::test_integrity_level(IntegrityLevel level) const { // 1. Assert: Type(O) is Object. @@ -348,7 +348,7 @@ bool Object::test_integrity_level(IntegrityLevel level) const VERIFY(level == IntegrityLevel::Sealed || level == IntegrityLevel::Frozen); // 3. Let extensible be ? IsExtensible(O). - auto extensible = TRY_OR_DISCARD(is_extensible()); + auto extensible = TRY(is_extensible()); // 4. If extensible is true, return false. // 5. NOTE: If the object is extensible, none of its properties are examined. @@ -356,14 +356,14 @@ bool Object::test_integrity_level(IntegrityLevel level) const return false; // 6. Let keys be ? O.[[OwnPropertyKeys]](). - auto keys = TRY_OR_DISCARD(internal_own_property_keys()); + auto keys = TRY(internal_own_property_keys()); // 7. For each element k of keys, do for (auto& key : keys) { auto property_name = PropertyName::from_value(global_object(), key); // a. Let currentDesc be ? O.[[GetOwnProperty]](k). - auto current_descriptor = TRY_OR_DISCARD(internal_get_own_property(property_name)); + auto current_descriptor = TRY(internal_get_own_property(property_name)); // b. If currentDesc is not undefined, then if (!current_descriptor.has_value()) diff --git a/Userland/Libraries/LibJS/Runtime/Object.h b/Userland/Libraries/LibJS/Runtime/Object.h index d6b13ba82c..b985d2d14d 100644 --- a/Userland/Libraries/LibJS/Runtime/Object.h +++ b/Userland/Libraries/LibJS/Runtime/Object.h @@ -86,7 +86,7 @@ public: ThrowCompletionOr has_property(PropertyName const&) const; ThrowCompletionOr has_own_property(PropertyName const&) const; ThrowCompletionOr set_integrity_level(IntegrityLevel); - bool test_integrity_level(IntegrityLevel) const; + ThrowCompletionOr test_integrity_level(IntegrityLevel) const; MarkedValueList enumerable_own_property_names(PropertyKind kind) const; ThrowCompletionOr copy_data_properties(Value source, HashTable const& seen_names, GlobalObject& global_object); diff --git a/Userland/Libraries/LibJS/Runtime/ObjectConstructor.cpp b/Userland/Libraries/LibJS/Runtime/ObjectConstructor.cpp index efd4cafbe2..73f51ccad0 100644 --- a/Userland/Libraries/LibJS/Runtime/ObjectConstructor.cpp +++ b/Userland/Libraries/LibJS/Runtime/ObjectConstructor.cpp @@ -188,7 +188,7 @@ JS_DEFINE_NATIVE_FUNCTION(ObjectConstructor::is_frozen) auto argument = vm.argument(0); if (!argument.is_object()) return Value(true); - return Value(argument.as_object().test_integrity_level(Object::IntegrityLevel::Frozen)); + return Value(TRY_OR_DISCARD(argument.as_object().test_integrity_level(Object::IntegrityLevel::Frozen))); } // 20.1.2.16 Object.isSealed ( O ), https://tc39.es/ecma262/#sec-object.issealed @@ -197,7 +197,7 @@ JS_DEFINE_NATIVE_FUNCTION(ObjectConstructor::is_sealed) auto argument = vm.argument(0); if (!argument.is_object()) return Value(true); - return Value(argument.as_object().test_integrity_level(Object::IntegrityLevel::Sealed)); + return Value(TRY_OR_DISCARD(argument.as_object().test_integrity_level(Object::IntegrityLevel::Sealed))); } // 20.1.2.18 Object.preventExtensions ( O ), https://tc39.es/ecma262/#sec-object.preventextensions