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

Reply via email to