2013/9/11 David Bruant <bruan...@gmail.com>

> I think it was discussed at some point to get rid of the restriction on
> the getPrototypeOf trap and enforce it only for non-extensible objects (but
> I can't find the info anymore, I might just be inventing this...). It would
> allow you to return a different object assuming the target is and remains
> extensible (more on that below).


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>.

[[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.

Cheers,
Tom
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to