mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 08:41:15 +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
Notes:
sideshowbarker
2024-07-18 12:39:48 +09:00
|
@ -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…
Reference in a new issue