<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jun 19, 2013, at 9:14 AM, Oliver Hunt wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><meta http-equiv="Content-Type" content="text/html charset=us-ascii"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I would be pro-killing this particular misfeature.  I know we have tests that verify that we accept the syntax, but i'm not sure if there's still *real* content the depends on it.<div><br></div><div>Does strict mode disallow it? IIRC strict mode has a blanket ban on non-reference lhs in assignment expressions but I don't have the spec handy.</div></div></blockquote><div><br></div><div>No, not in ES5/5.1.  ES5 allows an early error for an  assignment to that can be statically determined to be to a non-reference.  However, it also allows host functions to return references).  So presumably a call on the the LHS must be accepted in ES5/5.1 even though it will likely produce a runtime Reference error.</div><div><br></div><div>In the ES6 spec. no function call is allowed to return a reference and so a call on the LHS would be an early Reference error.</div><div><br></div><div>Allen</div><div><br></div><div><br></div><div><br></div><div><br></div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>--Oliver<br><div><br><div><div>On Jun 19, 2013, at 7:40 AM, Jason Orendorff <<a href="mailto:jason.orendorff@gmail.com">jason.orendorff@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div>The program<br><br>    if (0) Math.sin(0) = 1;<br></div><div>    alert("OK");<br></div><div><br></div><div>is permitted in all the major browsers. This was explicitly optional in ES1-5, but dropped from ES6:<br>
<br><a href="https://github.com/rwldrn/tc39-notes/blob/master/es6/2012-11/nov-29.md#eliminate-functions-returning-reference-values-from-the-specification">https://github.com/rwldrn/tc39-notes/blob/master/es6/2012-11/nov-29.md#eliminate-functions-returning-reference-values-from-the-specification</a><br>
<br></div><div>And good riddance, if we really think implementations can drop support for this cursed-legacy syntax. I'm willing to experiment with making this an early ReferenceError in Firefox. But if anyone has tried and run into Web compatibility issues, please speak up and save me some wasted effort!<br>
<br>Thanks,<br>-j<br></div></div>
_______________________________________________<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">https://mail.mozilla.org/listinfo/es-discuss</a><br></blockquote></div><br></div></div></div>_______________________________________________<br>es-discuss mailing list<br><a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>https://mail.mozilla.org/listinfo/es-discuss<br></blockquote></div><br></body></html>