On 27/12/10 13: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).
Both Carakan and V8 use numeric order for all uint32-named properties for all objects (even when sparse), and simply avoid using any heuristics at all by never changing between the two. This does cause some breakage, but currently neither ourselves nor V8 intend on changing to insertion order, preferring to use evangelism for what does break.
[1] is the V8 bug for the behaviour; looking through then duplicates we have of the bug we have for our behaviour, almost all duplicates are bugs reported by web developers, not site-compatibility bugs.
[1]: http://code.google.com/p/v8/issues/detail?id=164 -- Geoffrey Sneddon — Opera Software <http://gsnedders.com/> <http://www.opera.com/> _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

