for-in evaluation order
ash_js at firemirror.com
Mon Dec 27 05:06:12 PST 2010
On 27 Dec 2010, at 12:40, Andreas Gal wrote:
> I can't speak for other VM implementors, but I think most implementors will not want to guarantee either enumeration method (property addition order vs numeric order). In some cases we store array data "dense", in others we punt and use a natural object representation. The decision when we switch between representations is a brittle heuristics. Allowing the underlying representation and along with it the enumeration order to bleed through is faster than normalizing (which in some cases would mean sorting property indexed names).
> That having said, if TC39 decides to standardize enumeration order, I am pretty sure we can make pretty much any standard enumeration order reasonably fast (maybe a little less fast than before though). Mark suggested at some point enumerating indexed properties first in numeric order, and then all remaining properties. Its the most sensible approach I have heard so far. If someone drafts a proposal to standardize enumeration order, I volunteer to implement it in Firefox and get some performance data. That would help calming implementor's nerves.
As an interesting related tidbit: ruby 1.9 changed the key order on its hashes from sorted to insertion order:
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the es-discuss