« Bugzilla Issues Index
#3724 — "enumerate" traps are not sprung when [[Enumerate]] accesses prototype properties
- bug_id:
3724
- creation_ts:
2015-02-02 03:29:00 -0800
- short_desc:
"enumerate" traps are not sprung when [[Enumerate]] accesses prototype properties
- delta_ts:
2015-02-19 19:11:01 -0800
- product:
Draft for 6th Edition
- component:
technical issue
- version:
Rev 31: January 15, 2015 Draft
- rep_platform:
All
- op_sys:
All
- bug_status:
RESOLVED
- resolution:
FIXED
- priority:
Normal
- bug_severity:
enhancement
- everconfirmed:
true
- reporter:
Leon Arnott
- assigned_to:
Allen Wirfs-Brock
- cc:
d
- commentid:
11867
- comment_count:
0
- who:
Leon Arnott
- bug_when:
2015-02-02 03:29:27 -0800
Ordinary Object [[Enumerate]] (9.1.11) is required to process properties from prototypes of the object, but is currently **not** required to call the prototype's [[Enumerate]] as the means of accessing them.
This produces the following undesirable behaviour: if an object has a prototype which is a proxy with an "enumerate" trap, the trap will not be triggered by performing for-in on the object. In particular, if code is given a proxy with an "enumerate" trap, it can merely enclose the proxy in an Object.create() call to bypass the trap outright.
See: https://esdiscuss.org/topic/the-enumerate-trap-and-object-create
- commentid:
12609
- comment_count:
1
- who:
Allen Wirfs-Brock
- bug_when:
2015-02-13 16:11:21 -0800
fixed in rev34 editor's draft
- commentid:
13089
- comment_count:
2
- who:
Allen Wirfs-Brock
- bug_when:
2015-02-19 19:11:01 -0800
fixed in rev34