David Bruant (2013-09-11T15:02:04.000Z)
domenic at domenicdenicola.com (2013-09-25T01:41:24.263Z)
Le 11/09/2013 16:22, Tom Van Cutsem a écrit : > No, I think you're confusing with an invariant on [[SetInheritance]]. > Basically [[SetInheritance]] has no invariants as long as the object > is extensible. If it is non-extensible, then proxies enforce that the > prototype of proxy and target are the same, see https://people.mozilla.org/~jorendorff/es6-draft.html#sec-9.3.2. oh ok. > [[GetInheritance]] always checks whether the proxy and target's > prototype are the same, but as you pointed out, if the target is > extensible, you can set its prototype to some other object before > returning a value from the getPrototypeOf trap. It's annoying to cleanup post-trap though (to restore the target initial prototype). Is the invariant on getPrototypeOf that important on extensible objects? I think it is the only trap that enforces something without a related eternal invariant.