Bug 28811

Summary: callee and length properties of arguments object are missing the DontEnum attribute
Product: WebKit Reporter: Kent Hansen <kent.hansen>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED INVALID    
Severity: Normal CC: ggaren, oliver
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Linux   
Attachments:
Description Flags
Proposed patch ggaren: review-

Kent Hansen
Reported 2009-08-28 07:43:47 PDT
According to ECMA-262, section 10.1.8, the callee and length properties have attributes { DontEnum }.
Attachments
Proposed patch (1.46 KB, patch)
2009-08-28 07:45 PDT, Kent Hansen
ggaren: review-
Kent Hansen
Comment 1 2009-08-28 07:45:44 PDT
Created attachment 38736 [details] Proposed patch
Geoffrey Garen
Comment 2 2009-08-28 11:05:44 PDT
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.
Oliver Hunt
Comment 3 2009-08-28 11:31:56 PDT
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.
Geoffrey Garen
Comment 4 2009-08-28 11:39:21 PDT
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.
Kent Hansen
Comment 5 2009-08-31 05:53:39 PDT
(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.
Kent Hansen
Comment 6 2009-11-27 06:16:57 PST
Following up on Geoffrey's recommended solution, created https://bugs.webkit.org/show_bug.cgi?id=31933
Note You need to log in before you can comment on or make changes to this bug.