1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 19:17:44 +00:00

LibJS: Make Object.getOwnPropertyDescriptor() work with string indexed property

E.g. for "0" we have to contruct a PropertyName with Type::Number so it
looks in the indexed properties as expected.
This commit is contained in:
Linus Groh 2021-04-20 18:53:07 +02:00
parent 614bad86bc
commit 7af1d2c170
2 changed files with 23 additions and 0 deletions

View file

@ -388,6 +388,11 @@ Optional<PropertyDescriptor> Object::get_own_property_descriptor(const PropertyN
value = existing_value.value().value;
attributes = existing_value.value().attributes;
} else {
if (property_name.is_string()) {
i32 property_index = property_name.as_string().to_int().value_or(-1);
if (property_index >= 0)
return get_own_property_descriptor(property_index);
}
auto metadata = shape().lookup(property_name.to_string_or_symbol());
if (!metadata.has_value())
return {};