<div dir="ltr">You basically demonstrated nobody read my comment in there months ago ;-)<div><br></div><div><a href="https://github.com/zenparsing/es-function-bind/issues/17#issuecomment-120978833">https://github.com/zenparsing/es-function-bind/issues/17#issuecomment-120978833</a><br></div><div><br></div><div><br></div><div>Anyway, the security concern is non  existent to me, every method of every instance of every class can  be a communication channel, everything bound can be a communication channel, I don't see why ::obj.someMethod would be different and  is not explained anywhere in there.</div><div><br></div><div>But since nobody read that thread anymore,  I guess it's pointless to even keep writing in there.</div><div><br></div><div>Best Regards</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Nov 11, 2015 at 4:52 PM, Bergi <span dir="ltr"><<a href="mailto:a.d.bergi@web.de" target="_blank">a.d.bergi@web.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Andrea Giammarchi schrieb:<span class=""><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Just my thoughts, I wouldn't put any self-bound thing in the class and<br>
rather improve that `::` proposal so that whenever you `obj::method` it<br>
creates a uniquely bound callback so that `obj::method === obj::method`<br>
</blockquote>
<br></span>
This was considered: <a href="https://github.com/zenparsing/es-function-bind/issues/17" rel="noreferrer" target="_blank">https://github.com/zenparsing/es-function-bind/issues/17</a> - it's quite unexpected that an operator would return the same result every time, and there are security considerations as well. Also it would be quite complicated to spec - how and where did you store the memoisation. Feel free to join the discussion!<br>
<br>
Using the `::` operator in the class declaration itself makes sense to me. It conveys "this method will always be bound" very effectively, and you wouldn't even need special syntax to access it.<br>
```js<br>
class Xample {<br>
  ::myListener(…) {…}<br>
}<br>
```<br>
should desugar to<br>
```js<br>
class Xample {<br>
  // a getter on the prototype<br>
  get myListener() {<br>
    // with per-instance memoisation<br>
    return this.myListener = (…) => {<br>
      // that returns a bound method<br>
      …<br>
    };<br>
  }<br>
}<br>
```<br>
It might be equivalently done via a custom decorator of course:<br>
```js<br>
class Xample {<br>
  @autobind<br>
  myListener(…) {…}<br>
}<br>
```<br>
<br>
Regards,<br>
 Bergi<div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</div></div></blockquote></div><br></div>