Membranes, unmediated access to objects through Object.getPrototypeOf

Andreas Rossberg rossberg at google.com
Thu Oct 11 04:25:17 PDT 2012


On 11 October 2012 09:32, Brendan Eich <brendan at mozilla.org> wrote:
> Tom Van Cutsem wrote:
>>
>> - Proxy.revocable returns a tuple {proxy, revoke}. While more cumbersome
>> to work with (especially in pre-ES6 code without destructuring), this API
>> gets the authority to revoke a proxy exactly right: at proxy birth, only the
>> creator of the proxy holds the right to revoke it. This is infinitely better
>> than a global Proxy.revoke(proxy) method that would allow arbitrary objects
>> to revoke any proxy.
>
> Ok, thanks for this recap. It makes sense, the ocap treatments are working
> ;-).

Even then I don't think the additional creation API is needed. The
handler itself can be mutable, right? So why not have a function
Proxy.revoke that takes a _handler_ (not a proxy) and replaces all its
trap methods by poisoned traps? This is still perfectly ocap (because
only the creator has access to the handler), but requires no extra API
for creating revocable proxies -- just make sure your handler is
mutable.

/Andreas


More information about the es-discuss mailing list