Hi David,

2013/2/13 David Bruant <bruan...@gmail.com>

> Le 12/02/2013 14:29, Brendan Eich a écrit :
>
>> Loss of identity, extra allocations, and forwarding overhead remain
>> problems.
>>
> I'm doubtful loss of identity matters often enough to be a valid argument
> here. I'd be interested in being proved wrong, though.
>

I do think identity is an issue in practice, especially without a membrane
in-place to preserve object identity across the membrane. Also:


>  It's true you want either a membrane or an already-frozen object in such
>> a setting.
>>
> Not a membrane, just a proxy that protects its target. Objects linked from
> the proxy likely came from somewhere else. They're in charge of deciding of
> their own "integrity policy".


"Freezing" an object by handing out a read-only view is fragile without a
full membrane: what if a method of the wrapped object returns |this|, or
passes its |this| argument to some client-provided callback? It's all too
easy for a direct reference to the target to escape, thus bypassing the
read-only view. This is not the case with frozen objects.

I went a bit too far suggesting frozen objects could de-facto disappear
> with proxies.
> I'm still unclear on the need for specific seal/freeze/isSealed/isFrozen
> traps
>

I think Allen and I reached consensus that we might do without those traps.
In addition, Allen was considering an alternative design where the "state"
of an object (i.e. "extensible", "non-extensible", "sealed" or "frozen") is
represented explicitly as an internal property, so that Object.isFrozen and
Object.isSealed must not "derive" the state of an object from its
properties.

Cheers,
Tom
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to