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

Alex Vincent ajvincent at
Tue May 23 07:44:47 UTC 2017

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

In short:  if

   1. I have a function wetB() and an instance of wetB called wet_b,
   2. I call Object.freeze(wet_b);
   3. I create matching "membrane" proxies for wetB and wet_b named dryB
   and dry_b,


   - Reflect.get(wetB, "prototype") === Reflect.getPrototypeOf(wet_b)
   - Reflect.get(dryB, "prototype") !== Reflect.getPrototypeOf(dry_b)

This is a paradox:  I claim that what's true on the "wet" object graph
should be true on the "dry" object graph.

Please, if you can offer help on this to fix the sample code I've posted,
or if you can confirm that my claim above is incorrect and never can be
correct, I'd appreciate it.

Alex Vincent

Hayward, CA, USA

"The first step in confirming there is a bug in someone else's work is
confirming there are no bugs in your own."
-- Alexander J. Vincent, June 30, 2001
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list