E-mail on the topic: https://mail.mozilla.org/pipermail/es-discuss/2011-March/013039.html.
I think it would be worth for spec readability to give a name to the
for-in property enumeration internal method and list it as such in ES5
8.6.2 Table 8 regardless the fact that it is implementation-dependent.
>From the spec edition point of view, it would require a bit of
re-writing for the for-in statement semantics algorithm.
I have noticed that there is no mention of this internal method in
For the record, this internal method is "called" in (at least I haven't
found any other place):
* 12.6.4 The for-in Statement (twice)
* 126.96.36.199 Object.defineProperties
* 188.8.131.52 Object.keys
* (Indirect) 15.12.3 JSON.stringify
"The ordering of the Strings should be the same as that used by the
Object.keys standard built-in function."
It would probably help to define more easily how proxies reify
Object.keys. The 'enumerate' trap would just reify this new internal
method ( [[enumerate]]? ) and as such there would be no need to modify
the for-in statement definition as it is in
move to ES6 draft
In ES6 this is the [[Enumerate]] internal method