[[OwnPropertyKeys]] key ordering

Allen Wirfs-Brock allen at wirfs-brock.com
Tue Apr 22 10:26:05 PDT 2014


On Apr 22, 2014, at 8:45 AM, Andreas Rossberg wrote:

> On 22 April 2014 16:52, Allen Wirfs-Brock <allen at wirfs-brock.com> wrote:
>> 
>> On Apr 22, 2014, at 12:02 AM, Andreas Rossberg wrote:
>> 
>>> On 19 April 2014 20:14, Allen Wirfs-Brock <allen at wirfs-brock.com> wrote:
>>>> 
>>>> 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
>>> 
>>> Creation order? I don't know about other VM's, but for V8 it's
>>> unlikely that we are willing to pay the price for tracking that
>>> accurately.
>> 
>> My recollection of the last time we surveyed this was that all major engines did for-in enumeration of non-array index own property keys in creations/insertion order.  Has something changed for V8 in this regard?  My understanding is that the web depends upon that ordering for such properties.
> 
> We do track it for up to 2^24 properties, after that we give up. As
> far as the web is concerned, that is more than enough (and you most
> likely run OOM before that anyway). A specialised test might try to
> push it, though. I suppose you could argue that is simply an
> implementation limit, like stack limits.

I think treating this as an implementation limitation is just fine.  I'd prefer not to explicitly state such a permision in the spec. (just like we don't for stack depth) because I wouldn't want to come up with an specific number and I wouldn't want any implementation to interpret the lack of a specific number as permission to set a silly limit like 8.

Allen


More information about the es-discuss mailing list