Chrome appears to follow the spec a little closer.  Observe the following:

var someVar = 5;

//valid syntax, throws ReferenceError
function passPlease(){
   alert(++++someVar);
}

//invalid syntax, throws SyntaxError
function failPlease(){
   alert(someVar++++);
}

-Joe

Allen Wirfs-Brock <[email protected]> wrote:

>
>On Sep 6, 2012, at 12:17 PM, Joseph Spencer wrote:
>
>> My apologies on that one.  I meant to type the following:
>> 
>> PostfixExpression:
>>     LeftHandSideExpression [no LineTerminator here] ++
>>     LeftHandSideExpression [no LineTerminator here] --
>> 
>> PrefixExpression:
>>     ++ [no LineTerminator here] LeftHandSideExpression
>>     -- [no LineTerminator here] LeftHandSideExpression
>> 
>> It appears to me that as currently written the following is considered valid 
>> sytax:
>> 
>> ++++someVar;
>> 
>> I hadn't thought about es3 compatability though, so I could see the 
>> reasoning in keeping it as is.
>> As a noobie (and most likely someone in dire need of correction ;) 
>> approaching this , it seems to 
>> me that there are a few loose ends in the grammar.  For instance, the 
>> following statements seem 
>> allowable by the grammar as currently written:
>> 
>> 
>> ++typeof someVar;
>> ++new Date();
>> ++null;
>> 
>> My knowledge is lacking on this though, so I am probably missing something.  
>> I was surprised
>> to find that the following is valid syntax and a perfectly legal 
>> FunctionDeclaration, but throws a 
>> ReferenceError when executed:
>> 
>> function failPlease(){
>>    alert(++++a);
>> }
>
>According to the specification, those all should produce runtime 
>ReferenceError exceptions.  However, at least Firefox, reports them as early 
>syntax errors.  Technically, that is out of conformance with the spec. 
>
>Based upon that evidence, it would appear that FF implements a grammar that is 
>closer to you are suggesting rather than what is in the spec. In either case 
>there is an error, but the FF implementation prevents the entire Program unit 
>from running.
>
>Allen
>
>
>
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to