On Mon, May 5, 2014 at 11:44 AM, Allen Wirfs-Brock <al...@wirfs-brock.com>wrote:
> > On May 5, 2014, at 10:40 AM, John Barton wrote: > > 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]; > > > the above line needs to be: > return Reflect.get(target, name, receiver); > > Object.prototype.__proto__ is an accessor property and to work correctly > it needs to have the originally accessed object passed at the this value. > That's why 'get' handlers (and others) have a 'receiver' argument. > Thanks! With your change the example works. Unfortunately I'm still confused. Before I reduced the code to a short example I was using Object.getPrototypeOf(obj), like: https://gist.github.com/johnjbarton/30c3e72d51d9d64e36d1 rather than targt[name] my first examples shows. It also fails the same way. Let me rephrase my question: why is the Proxy get even called in this case? jjb
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss