<br><br><div class="gmail_quote">On Thu, Oct 4, 2012 at 4:36 AM, David Bruant <span dir="ltr"><<a href="mailto:bruant.d@gmail.com" target="_blank">bruant.d@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<div><br></div><div>Currently, the wiki says:</div><div>"Invariant check: check whether the targetís prototype and the trap result are identical."</div><div><br></div><div>If the trap can only report one value, there is almost no point in having a trap.</div>
</blockquote><div><br></div><div>General principle: even when the successful result of the trap must be identical to that same operation as performed on the target, making it a trap has two uses and a corresponding hazard:</div>
<div><br></div><div>* It allows the operation to be aborted by throwing an exception.</div><div>* It allows the target to be modified first, in anticipation of the target being queried at the end of the trap.</div><div><br>
</div><div>The hazard which is necessarily implied by these is that it allows interleaving of user code within an operation that would otherwise have been safe against interleaving. That's one of the reasons why we don't trap everything with this "identical" feature, for example, === and typeof.</div>
<div><br></div><div><br></div><div>†</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div></div><div>A getPrototypeOf trap allows for proxies to potentially simulate __proto__ in a platform where it wouldn't exist†natively. It only does if it's possible to freely report any Object (as per ES5.1 - 8.6) or null.</div>

<div>Or maybe what was meant was only when the target is non-extensible?</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>David</div>
</font></span><br>_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>† † Cheers,<br>† † --MarkM<br>