Help wanted: Membrane proxies + Object.freeze() == paradox

Jason Orendorff jason.orendorff at
Tue May 23 15:45:19 UTC 2017

On Tue, May 23, 2017 at 2:44 AM, Alex Vincent <ajvincent at> wrote:

> Full details are at ,
> which is where I'm hoping to find a solution.

To fix this, you must create a third object for each dry proxy, to serve as
its [[ProxyTarget]]. There's no way around it. And you're right, it's not
easy; you have to implement all of the handler methods, because none of the
defaults do the right thing anymore.

All the target checks in the design were intended to (a) allow proxies to
claim to have immutable parts; and yet (b) maintain the language's
invariants that immutable parts cannot change, even for proxies.
[[ProxyTarget]] looks like an ease-of-use feature, but it's not; it's
really in support of (a) and (b), and as you've found, it actually makes
some things harder.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list