On Jun 19, 2013, at 9:14 AM, Oliver Hunt wrote: > 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. > > 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.
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. 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. Allen > > --Oliver > > On Jun 19, 2013, at 7:40 AM, Jason Orendorff <[email protected]> > wrote: > >> The program >> >> if (0) Math.sin(0) = 1; >> alert("OK"); >> >> is permitted in all the major browsers. This was explicitly optional in >> ES1-5, but dropped from ES6: >> >> https://github.com/rwldrn/tc39-notes/blob/master/es6/2012-11/nov-29.md#eliminate-functions-returning-reference-values-from-the-specification >> >> 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! >> >> Thanks, >> -j >> _______________________________________________ >> es-discuss mailing list >> [email protected] >> https://mail.mozilla.org/listinfo/es-discuss > > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

