Proxy .__proto__ is not getPrototypeOf?

John Barton johnjbarton at
Mon May 5 10:40:29 PDT 2014

I'm hoping someone can explain this result which surprises me.

If I create an object with a Proxy-ed prototype, the resulting object does
not obey .__proto__ equal Object.getPrototypeOf().

For example:
  var aPrototype = {foo: 'foo'};
  var handler = {
  get: function(target, name, receiver) {
  console.log('   (Proxy handler \'get\' called for name = ' + name + ')');
  return target[name];
  var aProxy = Proxy(aPrototype, handler);
  var hasProxyAsProto = Object.create(aProxy);

At this point, I expected
  hasProxyAsProto.__proto__ === aProxy
but it it not true.  Moreover, the operation
calls the Proxy handler get function with name === '__proto__': that makes
no sense as hasProxyAsProto is not a Proxy.

I tried this on Firefox 29 and Chrome 36.  Complete example is here:

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

More information about the es-discuss mailing list