<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2013/9/11 David Bruant <span dir="ltr"><<a href="mailto:bruant.d@gmail.com" target="_blank">bruant.d@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Le 11/09/2013 06:10, Boris Zbarsky a écrit :<div class="im"><br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Hey all,<br>
<br>
I was looking at implementing a membrane using ES6 proxies and ran into a snag.  Consider a situation where object A has prototype B.  A' is a proxy implementing the membrane, whose target is A.<br>
<br>
But now if Object.getPrototypeOf(A') is invoked the return value will be B (unless it just throws).  There's no way for A' to return a new proxy B' whose target is B in this situation.<br>
</blockquote></div>
In essence yes. In practice, you can do:<br>
    // trap:<br>
    getPrototypeOf: function(target){<br>
        target.__proto__ = B';<br>
        return B';<br>
    }<br>
But of course, it changes A [[Prototype]], which is probably not desirable. And of course, although to-be-standard, __proto__ is bad taste...<br></blockquote><div><br></div><div style>Indeed, this is also the pattern I used, except it doesn't set the `__proto__` of the real target, but of a shadow target: <<a href="https://github.com/tvcutsem/harmony-reflect/blob/master/examples/membrane.js#L246">https://github.com/tvcutsem/harmony-reflect/blob/master/examples/membrane.js#L246</a>>.</div>
<div style><br></div><div style>Setting `__proto__` may be bad taste in general, but this is a case where using this capability is necessary.</div><div style><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Ps: btw, wasn't "GetInheritance" supposed to be renamed "GetPrototype"?<br></blockquote><div><br></div><div style>I think we had agreement on that. Allen?</div><div style><br></div><div style>Cheers,</div>
<div style>Tom</div></div></div></div>