It does not work as well as simply omitting ** entirely.

On Tue, Aug 25, 2015 at 9:42 AM, Isiah Meadows <isiahmead...@gmail.com>
wrote:

> I like this. It works very well.
>
> On Tue, Aug 25, 2015, 12:38 Claude Pache <claude.pa...@gmail.com> wrote:
>
>>
>> I think the following grammar could work.
>> Replace the current (ES2015) PostfixExpression production with:
>>
>> ```
>> IncrementExpression:
>>     LeftHandSideExpression
>>     LeftHandSideExpression [no LineTerminator here] ++
>>     LeftHandSideExpression [no LineTerminator here] --
>>     ++ LeftHandSideExpression
>>     -- LeftHandSideExpression
>> ```
>>
>> And define UnaryExpression as:
>>
>> ```
>> UnaryExpression:
>>     IncrementExpression
>>     delete UnaryExpression
>>     void UnaryExpression
>>     typeof UnaryExpression
>>     ++ UnaryExpression
>>     + UnaryExpression
>>     -- UnaryExpression
>>     - UnaryExpression
>>     ~ UnaryExpression
>>     ! UnaryExpression
>>     IncrementExpression ** UnaryExpression
>> ```
>>
>> where the following production (which exists only to avoid to confusingly
>> interpret, e.g., `++x++` as `+ +x++`):
>>
>> ```
>> UnaryExpression:
>>     ++ UnaryExpression
>>     -- UnaryExpression
>> ```
>>
>> yields a static SyntaxError (or a static ReferenceError if we want to be
>> 100% compatible ES2015).
>>
>>
>> That way, we have the following expected behaviour:
>> * in/decrement operators bind most tightly;
>> * unary and exponentiation operators are applied from right to left.
>>
>>
>> —Claude
>>
>>
>> _______________________________________________
>> es-discuss mailing list
>> es-discuss@mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>


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

Reply via email to