Proxies fail comparison operator

Michael Lewis mike at
Thu Mar 30 18:50:07 UTC 2017

Hello community,

The proxy is almost an identical to the underlying object, but it* fails a
comparison check with the underlying object.*

This means that if anyone gets a reference to the underlying object before
it is proxied, then we have a problem.  For example:

var obj = {};
var proxy = new Proxy(obj, {});
obj == proxy; // false

*Isn't the purpose of the proxy to be exchanged with the original**,
without any negative side effects?  *Maybe that's not the intended use
case, but it's a useful one.  And, besides the comparison, I can't think of
any other "negative side effects".

It seems like the Proxy could have a *comparison trap*.  The comparison
could pass by default, and you could use the trap if you wanted to make
`proxy == obj` fail.

Also, a slight tangent: it would be awesome if you could *skip debugging
proxy traps when stepping through code.  *When you proxy both `get` and
`apply` for all objects/methods, you have 10x the work when trying to step
through your code.

I just subscribed to this list.  Is this an appropriate venue for this type
of inquiry?  I appreciate any feedback.


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

More information about the es-discuss mailing list