Use cases for WeakMap
Brendan Eich
brendan at mozilla.com
Mon May 16 00:25:08 PDT 2011
On May 16, 2011, at 12:18 AM, Erik Corry wrote:
> 2011/5/16 Brendan Eich <brendan at mozilla.com>:
>> On May 16, 2011, at 12:01 AM, Brendan Eich wrote:
>>
>>> On May 15, 2011, at 11:55 PM, Erik Corry wrote:
>>>
>>>> 2011/5/16 Brendan Eich <brendan at mozilla.com>:
>>>>> Not if the object is frozen.
>>>>
>>>> That shouldn't prevent you adding private names. See earlier message
>>>> in this thread.
>>>
>>
>>> Frozen means [[Extensible]] is false, so you can't add any properties, ...
>>
>> I'll go further: frozen means the implementation should be free to move the object and anything associated with its shallow-frozen key/value state into read-only memory, so the full force of 50-year-plus OS and hardware MMU protection can ensure [[Extensible]] really is false.
>
> I think this would also preclude the most efficient implementation of
> Weak Maps. In fact I have a hard time seeing how you would GC weak
> maps at all under these conditions.
Why, because GC metadata has to go in the same page as the frozen object that might be a key in a weak map?
Weak maps are in Firefox nightlies. We're playing with page protection too (not for freezing, yet). This seems like a dare, but it also seems to be dodging my point in replying again: that private names cannot be used to extend frozen objects in the "[[Extensible]] = true" sense of the spec.
/be
More information about the es-discuss
mailing list