<div dir="ltr"><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Aug 24, 2014 at 9:52 PM, Mark Everitt <span dir="ltr"><<a href="mailto:mark.s.everitt@gmail.com" target="_blank">mark.s.everitt@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Today I encountered an inconsistency between SpiderMonkey and V8 (in Aurora 33.0a2 (2014-08-24) and Canary 39.0.2135.0 canary (64-bit)). In chrome, I can bind an arrow function, and in firefox I cannot (see this gist: <a href="https://gist.github.com/qubyte/43e0093274e793cc82ba" target="_blank">https://gist.github.com/qubyte/43e0093274e793cc82ba</a>)<br>



<br></div>I find reading the ES6 draft spec hard going, but from searching around I get the impression that it states that bind should not be successful on an arrow function. If this is the case, then it raises an issue. There seems to be no clean way to tell apart regular functions and arrow functions (the only way I can do this is by looking at the result of toString). That being the case, arrow functions mean that we can no longer trust call, apply and bind, since we cannot easily tell if the function we want to bind is an arrow function and will silently ignore us.<br>



<br></div>Having said all that, if I have the wrong end of the stick and this is a bug in SpiderMonkey, please let me know!<br></div></blockquote><div><br></div><div>SpiderMonkey is correct. Arrow functions aren't meant to be a drop in replacement for all functions. I replied to that bug confirming that Canary is incorrect with relevant spec notes. </div>

<div><br></div><div><br></div><div>Rick</div><div><br></div></div></div></div>