Implementing membranes using proxies, and [[GetInheritance]]

Tom Van Cutsem tomvc.be at gmail.com
Fri Sep 13 00:19:06 PDT 2013


2013/9/12 Mark S. Miller <erights at google.com>

> Membranes need shadow targets, because of non-extensibility of objects and
> non-configurability of properties. This special case of
> no-invariants-anywhere is not JavaScript. Trying to do membranes without
> shadow targets is a useless exercise.
>

True, but by removing the invariant check on getPrototypeOf, a membrane
proxy can now avoid the cost of actually storing the wrapped prototype on
the shadow target until the real target becomes observably non-extensible
(which may never occur).

More generally, membranes always need to be set-up with shadow targets, but
they don't actually need to use them until the real target has some
invariants.

Cheers,
Tom
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20130913/9a4bb465/attachment-0001.html>


More information about the es-discuss mailing list