1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 18:18:12 +00:00

LibJS: Convert internal_own_property_keys() to ThrowCompletionOr

This commit is contained in:
Linus Groh 2021-09-29 18:58:03 +01:00
parent fbfb0bb908
commit ee8380edea
15 changed files with 56 additions and 92 deletions

View file

@ -97,9 +97,7 @@ static Array* get_own_property_keys(GlobalObject& global_object, Value value, Ge
return {};
// 2. Let keys be ? obj.[[OwnPropertyKeys]]().
auto keys = object->internal_own_property_keys();
if (vm.exception())
return {};
auto keys = TRY_OR_DISCARD(object->internal_own_property_keys());
// 3. Let nameList be a new empty List.
auto name_list = MarkedValueList { vm.heap() };
@ -302,12 +300,13 @@ JS_DEFINE_NATIVE_FUNCTION(ObjectConstructor::get_own_property_descriptors)
auto* object = vm.argument(0).to_object(global_object);
if (vm.exception())
return {};
// 2. Let ownKeys be ? obj.[[OwnPropertyKeys]]().
auto own_keys = object->internal_own_property_keys();
if (vm.exception())
return {};
auto own_keys = TRY_OR_DISCARD(object->internal_own_property_keys());
// 3. Let descriptors be ! OrdinaryObjectCreate(%Object.prototype%).
auto* descriptors = Object::create(global_object, global_object.object_prototype());
// 4. For each element key of ownKeys, do
for (auto& key : own_keys) {
auto property_name = PropertyName::from_value(global_object, key);
@ -471,9 +470,7 @@ JS_DEFINE_NATIVE_FUNCTION(ObjectConstructor::assign)
VERIFY(!vm.exception());
// ii. Let keys be ? from.[[OwnPropertyKeys]]().
auto keys = from->internal_own_property_keys();
if (vm.exception())
return {};
auto keys = TRY_OR_DISCARD(from->internal_own_property_keys());
// iii. For each element nextKey of keys, do
for (auto& next_key : keys) {