On 27.12.2010 15: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.

I see, so this heuristic decisions can spread also on a = {} in Firefox (I mean it's not currently guaranteed in exactly Firefox that the enumeration order of {} will be the same as specified by addition -- as we saw in the previous example)?

Can you also show a memory representation (at lower level) of "dense" and "sparse" (?) data. It will help to understand the advantages of choosing the needed order by implementers. It's not required to show it right now, but, if possible -- when you'll have a time to show it.

  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).


Yes, abstractly it's clear, but if to see the memory representation (since e.g. I don't know well C-level of representation well) it would be even better.

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).

Hm, so it's not about serious technical performance issues and _any needed_ order can be implemented. I see, thanks.

  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.

It seems sensible (again -- abstractly), but if to see the memory representation, it would be even more sensible.

  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.


Hm... It's not so hard to describe the algorithm abstractly. But I am not aware about which implementation performance issues it may follow.

Dmitry.

Andreas

It's interesting. Could you summarize these objections?

Dmitry.



_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to