names [Was: Approach of new Object methods in ES5]

Brendan Eich brendan at mozilla.com
Sat Apr 17 08:16:07 PDT 2010


On Apr 17, 2010, at 12:06 AM, David Herman wrote:

>> A Name object that is required to be a leaf in the live object  
>> graph has the advantage that it can be strongly referenced by the  
>> implementation when used as a property name (key), without  
>> reference cycles being possible. Implementations would be able to  
>> count on this property. We could choose to specify Names this way,  
>> and the current spec seems to lean this way.
>
>
> Good points. Correct me if I'm wrong, but it also seems an  
> implementation could be free to GC object slots for unreachable leaf- 
> name-keys.

Yes, this would make for a superior implementation ;-). But is it the  
spec's business to mandate it, or specify much at all about GC? I  
think not, obviously; you may agree. Just calling out the issue of  
under-specification here.


> IOW, being a property-key does not imply reachability. (For strings  
> this is obviously not true, since they are forgeable.)

Right, which is why Mark's EphemeronTable implementation works for  
Names.

/be


More information about the es-discuss mailing list