Such a built in memoization, whether by boundTo or this enhancement to bind itself, creates a fatal ambient communications channel. <div><br></div><div>    // initSES initialization, freezing all built in primordials other than the true global</div>
<div><br></div><div>    // load Alice as a confined object graph</div><div><br></div><div>    // load Bob as a confined object graph. Alice and Bob should not be able to communicate</div><div>    // Covert channels mean we might not be able to prevent them from communicating bits</div>
<div>    // But we must certainly prevent capability leaks</div><div><br></div><div>    Alice says</div><div><br></div><div>        Object.boundTo(Object).foo = capabilityBobShouldntGet;</div><div>or</div><div>        Object.bind(Object).foo = capabilityBobShouldntGet;</div>
<div><br></div><div>    Bob says</div><div><br></div><div>        var HAH = Object.boundTo(Object).foo;</div><div>or</div><div>        var HAH = Object.bind(Object).foo;</div><div><br></div><div>David's WeakMap approach elegantly avoid this problem, because Alice and Bob can only communicate if they already share access to this WeakMap, in which case they could already communicate anyway.</div>
<div><br></div><div><br><br><div class="gmail_quote">On Thu, Jan 5, 2012 at 5:22 PM, Brendan Eich <span dir="ltr"><<a href="mailto:brendan@mozilla.com">brendan@mozilla.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Jan 5, 2012, at 4:47 PM, Andrea Giammarchi wrote:<br>
<br>
> Guys, by any chance we can go back into the topic?<br>
<br>
</div>You'll have to polyfill Function.prototype.bind in the current world of pre-ES5 browsers. Why not then go on to wrap it in a memoizing version that uses a WeakMap if available (emulated with strong keys/values array-based implementation if not)?<br>

<br>
If you need this machinery, it's all doable. If we should evolve a Harmony bind or betterBind based on your experience and others, we can do that.<br>
<br>
Right now the lack of memoization is not a burning issue, from what I hear. You've raised it, I think for the first time on es-discuss.<br>
<span class="HOEnZb"><font color="#888888"><br>
/be<br>
</font></span><div class="HOEnZb"><div class="h5"><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>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>    Cheers,<br>    --MarkM<br>
</div>