<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Thu, Jun 18, 2015 at 9:54 AM Boris Zbarsky <<a href="mailto:bzbarsky@mit.edu">bzbarsky@mit.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 6/18/15 9:01 AM, Kyle Simpson wrote:<br>
> In addition to the fact that this feature is long since co-existing in FF and doesn't seem to have broken the web<br>
<br>
Firefox doesn't ship let support on the web by default yet.  For<br>
example, this HTML:<br>
<br>
<script>let x = 5;</script><br>
<br>
will result in:<br>
<br>
   SyntaxError: missing ; before statement<br>
<br>
at the location of the 'x'.<br></blockquote><div><br></div><div>Strange, this works in the console, but not in a script <a href="https://i.gyazo.com/e55d26495c3fe8b01938fe1b99664682.png">https://i.gyazo.com/e55d26495c3fe8b01938fe1b99664682.png</a></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
You have to explicitly opt in to let support in Firefox right now via<br>
language="javascript1.8" or similar.<br></blockquote><div><br></div><div>More importantly, the only reason `let (names) {}` "co-exists" in those special opt-in versions is because `let` is not allowed as an identifier. The issue that Gary Guo pointed out is a very real breaking change for the web. </div><div><br></div><div>Using language="javascript1.8" will make all of these result in SyntaxError: </div><div><br></div><div>  var let = 1;</div><div>  var let = function() {};<br></div><div>  function let() {}</div><div>  let(1); <br></div><div><br></div><div>Otherwise this would be ambiguous: </div><div><br></div><div>  let (a) </div><div>  {}</div><div><br></div><div>Adding this non-standard restriction prevented authors from using `let` as an identifier. </div><div><br></div><div>I wonder if some application of `[no LineTerminator here]` might make this work? Is it worth it?</div><div><br></div><div>Rick</div></div></div>