I'm in the middle of updating the spec. of [[OwnPropertyKeys]] to returns an 
Array rather than an Iterator. While doing this I realized that because 
[[OwnPropertyKeys]] is essentially a new MOP level operation we have the 
opportunity to precisely define the property key ordering it exposes for 
ordinary objects. This seems like a one-time opportunity that we shouldn't pass 
up.

Note that this doesn't necessarily mean we need to change the 
unspecified/weakly specified ordering of exiting library functions such as 
Object.keys (even though they are specified in terms of [[OwnPropertyKeys]]).  
But it does mean that new library functions such as Reflect.ownKeys will be 
defined with a fully specified specified ordering.

The ordering I propose is:
1) All array index property keys, in ascending array index numeric order. 
Followed by:
2) All other string property keys, in property creation order. Followed by:
3) All symbol property keys, in property creation order

Does anybody see any reason why we shouldn't specify (this) property ordering? 

Allen
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to