mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 21:07:35 +00:00
LibJS: Never omit setter/getter attributes in accessor descriptor object
These should not be omitted, an accessor with out getter or setter still yields an undefined for the attribute in its descriptor object.
This commit is contained in:
parent
8c964ef9f8
commit
3fdad563e2
1 changed files with 8 additions and 11 deletions
|
@ -434,17 +434,14 @@ Value Object::get_own_property_descriptor_object(const PropertyName& property_na
|
|||
descriptor_object->define_property(vm.names.writable, Value(descriptor.attributes.is_writable()));
|
||||
if (vm.exception())
|
||||
return {};
|
||||
} else if (descriptor.is_accessor_descriptor()) {
|
||||
if (descriptor.getter) {
|
||||
descriptor_object->define_property(vm.names.get, Value(descriptor.getter));
|
||||
if (vm.exception())
|
||||
return {};
|
||||
}
|
||||
if (descriptor.setter) {
|
||||
descriptor_object->define_property(vm.names.set, Value(descriptor.setter));
|
||||
if (vm.exception())
|
||||
return {};
|
||||
}
|
||||
} else {
|
||||
VERIFY(descriptor.is_accessor_descriptor());
|
||||
descriptor_object->define_property(vm.names.get, descriptor.getter ? Value(descriptor.getter) : js_undefined());
|
||||
if (vm.exception())
|
||||
return {};
|
||||
descriptor_object->define_property(vm.names.set, descriptor.setter ? Value(descriptor.setter) : js_undefined());
|
||||
if (vm.exception())
|
||||
return {};
|
||||
}
|
||||
descriptor_object->define_property(vm.names.enumerable, Value(descriptor.attributes.is_enumerable()));
|
||||
if (vm.exception())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue