On Nov 26, 2012, at 10:13 AM, David Bruant wrote: > Le 26/11/2012 19:00, Tom Van Cutsem a écrit : >> 2012/11/24 Allen Wirfs-Brock <[email protected]> >> >> I see that [2] call for filtering __proto__ access in Get/Put handlers. I >> think that dealing with it in a Get/SetInheritance handler would be a much >> more efficient way to hand this extremely rare operation. Rather than >> filtering for it on every property access, an handler that cares only needs >> to worry about the actual Get/SetInhertiance. >> >> Hmm, so you're arguing that proxy.__proto__ would be equivalent to >> Object.getPrototypeOf(proxy), and trigger the "getPrototypeOf" trap, rather >> than triggering the "get" trap? >> >> I guess that more accurately reflects the magical behavior of __proto__. > The magical behavior as it currently is in some engines, but not how it's > described in the current strawman: > > var o = Object.create(null); > var a = o.__proto__; > > a is undefined according to the current strawman. In this case, the "get" > trap is what should be called if o was a proxy. > With __proto__ spec'ed as in the strawman (own Object.prototype property), > "get" really is the accurate trap.
With syntactic detection of o.__proto__ the semantics would be something like: 1) If o and object with dunder proto enabled, then return [[GetInheritance]] of O (using current draft internal method names) 2) else return [[GetP]] of o with "__proto__") Allen > > David
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

