[Webkit-unassigned] [Bug 176810] for..in on a Proxy loops over non enumerable properties
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Oct 2 10:31:15 PDT 2018
https://bugs.webkit.org/show_bug.cgi?id=176810
--- Comment #12 from Caio Lima <ticaiolima at gmail.com> ---
Comment on attachment 351389
--> https://bugs.webkit.org/attachment.cgi?id=351389
Fix for bug
View in context: https://bugs.webkit.org/attachment.cgi?id=351389&action=review
>>> Source/JavaScriptCore/runtime/ProxyObject.cpp:952
>>> + bool isPropertyDefined = target->getOwnPropertyDescriptor(exec, ident.impl(), descriptor);
>>
>> Is this actually what the spec says to do? This is observable behavior
>
> So the issue is this being called more than once basically? Because it's already called a bit further below in that method. If that's the thing then we need a way to get this information without it being user observable (or a completely different approach), yeah.
Maybe one way to check if the property is enumerable without observable behaviour is:
```
PropertySlot slot(target, PropertySlot::InternalMethodType::VMInquiry);
target->methodTable(vm)->getOwnPropertySlot(this, exec, ident, slot);
DefinePropertyAttributes property = DefinePropertyAttributes(slot.attributes())
std::optional<bool> maybeEnumerable = attr.enumerable();
```
I'm not sure if that is the correct way to perform this check.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20181002/75444fa9/attachment-0001.html>
More information about the webkit-unassigned
mailing list