mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 19:27:45 +00:00
LibJS: Convert ObjectConstructor GetOwnPropertyKeys to ThrowCompletionOr
This commit is contained in:
parent
e92d14d498
commit
0f224779aa
1 changed files with 5 additions and 5 deletions
|
@ -87,15 +87,15 @@ enum class GetOwnPropertyKeysType {
|
||||||
};
|
};
|
||||||
|
|
||||||
// 20.1.2.11.1 GetOwnPropertyKeys ( O, type ), https://tc39.es/ecma262/#sec-getownpropertykeys
|
// 20.1.2.11.1 GetOwnPropertyKeys ( O, type ), https://tc39.es/ecma262/#sec-getownpropertykeys
|
||||||
static Array* get_own_property_keys(GlobalObject& global_object, Value value, GetOwnPropertyKeysType type)
|
static ThrowCompletionOr<Array*> get_own_property_keys(GlobalObject& global_object, Value value, GetOwnPropertyKeysType type)
|
||||||
{
|
{
|
||||||
auto& vm = global_object.vm();
|
auto& vm = global_object.vm();
|
||||||
|
|
||||||
// 1. Let obj be ? ToObject(O).
|
// 1. Let obj be ? ToObject(O).
|
||||||
auto* object = TRY_OR_DISCARD(value.to_object(global_object));
|
auto* object = TRY(value.to_object(global_object));
|
||||||
|
|
||||||
// 2. Let keys be ? obj.[[OwnPropertyKeys]]().
|
// 2. Let keys be ? obj.[[OwnPropertyKeys]]().
|
||||||
auto keys = TRY_OR_DISCARD(object->internal_own_property_keys());
|
auto keys = TRY(object->internal_own_property_keys());
|
||||||
|
|
||||||
// 3. Let nameList be a new empty List.
|
// 3. Let nameList be a new empty List.
|
||||||
auto name_list = MarkedValueList { vm.heap() };
|
auto name_list = MarkedValueList { vm.heap() };
|
||||||
|
@ -117,14 +117,14 @@ static Array* get_own_property_keys(GlobalObject& global_object, Value value, Ge
|
||||||
JS_DEFINE_OLD_NATIVE_FUNCTION(ObjectConstructor::get_own_property_names)
|
JS_DEFINE_OLD_NATIVE_FUNCTION(ObjectConstructor::get_own_property_names)
|
||||||
{
|
{
|
||||||
// 1. Return ? GetOwnPropertyKeys(O, string).
|
// 1. Return ? GetOwnPropertyKeys(O, string).
|
||||||
return get_own_property_keys(global_object, vm.argument(0), GetOwnPropertyKeysType::String);
|
return TRY_OR_DISCARD(get_own_property_keys(global_object, vm.argument(0), GetOwnPropertyKeysType::String));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 20.1.2.11 Object.getOwnPropertySymbols ( O ), https://tc39.es/ecma262/#sec-object.getownpropertysymbols
|
// 20.1.2.11 Object.getOwnPropertySymbols ( O ), https://tc39.es/ecma262/#sec-object.getownpropertysymbols
|
||||||
JS_DEFINE_OLD_NATIVE_FUNCTION(ObjectConstructor::get_own_property_symbols)
|
JS_DEFINE_OLD_NATIVE_FUNCTION(ObjectConstructor::get_own_property_symbols)
|
||||||
{
|
{
|
||||||
// 1. Return ? GetOwnPropertyKeys(O, symbol).
|
// 1. Return ? GetOwnPropertyKeys(O, symbol).
|
||||||
return get_own_property_keys(global_object, vm.argument(0), GetOwnPropertyKeysType::Symbol);
|
return TRY_OR_DISCARD(get_own_property_keys(global_object, vm.argument(0), GetOwnPropertyKeysType::Symbol));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 20.1.2.12 Object.getPrototypeOf ( O ), https://tc39.es/ecma262/#sec-object.getprototypeof
|
// 20.1.2.12 Object.getPrototypeOf ( O ), https://tc39.es/ecma262/#sec-object.getprototypeof
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue