On Jul 25, 2010, at 5:06 PM, Brendan Eich wrote:

> On Jul 25, 2010, at 4:59 PM, Maciej Stachowiak wrote:
> 
>> On Jul 25, 2010, at 11:36 AM, Brendan Eich wrote:
>> 
>>> 
>>> Let's not go in circles. I claim:
>>> 
>>> * The horses are long gone from the barn.
>>> * The mistake is easy to overlook even for JS coders who do use semicolons.
>>> * The trade-off of banning ASI rule 1 first bullet to reduce 
>>> desensitization and eventually reduce the incidence of this kind of bug is 
>>> not a clear win, vs. migration tax into Harmony and usability problems even 
>>> writing fresh code.
>>> 
>>> In order to reliably remove this hazard, we would need to ban statements 
>>> from starting with '('. Perhaps we should consider doing so.
>> 
>> Banning statements from starting with '(' would remove one of the easiest 
>> workarounds for the rules against statements starting with 'function' or 
>> statements starting with '{'.
> 
> Yeah, that's too harsh -- you'd have to use an operator or assign to a dummy 
> variable or declare an initialized binding.
> 
> Mark's restricted production idea is on target, if we think it's worth doing.

At least in C or C++, I've seen code like this:

veryLongObjectName.someOtherVeryVeryLongObjectName.ridiculouslyLongFunctionName
    (longArgument1, longArgument2, longArgument3, longArgument4, longArgument5);

If I understand correctly, Mark's proposal would make that a syntax error in 
JavaScript. I'm not sure offhand if JavaScript programmers write in this style, 
or would find the loss annoying. Of course, you could always write this as a 
single very long line, or make sure that at least the open paren is on the 
first line, but programmers can be picky about questions of style like this.

Regards,
Maciej


_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to