According to ECMA-262, section 10.1.8, the callee and length properties have attributes { DontEnum }.
Created attachment 38736 [details] Proposed patch
Comment on attachment 38736 [details] Proposed patch Code looks good. However, please supply a ChangeLog and a regression test verifying this behavior. More info @ http://webkit.org/coding/contributing.html.
Comment on attachment 38736 [details] Proposed patch Why is this necessary? for..in does not enumerate the properties on arguments, getOwnPropertyDescriptor also reports it as false.
I think the problem is that propertyIsEnumerable would return true, but should return false. I think the best way to fix this is to remove all use and implementation of getPropertyAttributes, and change propertyIsEnumerable to call getPropertyDescriptor instead.
(In reply to comment #3) > (From update of attachment 38736 [details]) > Why is this necessary? for..in does not enumerate the properties on arguments, > getOwnPropertyDescriptor also reports it as false. (In reply to comment #4) > I think the problem is that propertyIsEnumerable would return true, but should > return false. > > I think the best way to fix this is to remove all use and implementation of > getPropertyAttributes, and change propertyIsEnumerable to call > getPropertyDescriptor instead. Agreed. I originally did the patch before https://bugs.webkit.org/show_bug.cgi?id=28724 was fixed, and as Oliver said, getOwnPropertyDescriptor does the right thing already.
Following up on Geoffrey's recommended solution, created https://bugs.webkit.org/show_bug.cgi?id=31933