return when desugaring to closures

Brendan Eich brendan at
Thu Oct 16 12:04:38 PDT 2008

On Oct 16, 2008, at 11:38 AM, Waldemar Horwat wrote:

> Brendan Eich wrote:
>> That's not a valid grammar.

It is unambiguous. How do you define "valid"?

>>  You can't have an AssignmentExpression terminating a  
>> PrimaryExpression.  It leads to trouble such as:
> let a = b + c
> being interpreted as both:
> (let a = b) + c

No, it clearly parses as:

> let a = (b + c)

and we've shipped this for several releases, and it sees use -- it has  
not been problematic. Parenthesize if you mean (let a = b) + 1.

Same goes for expression closures. Bottom up parsers will shift, top  
down will consume greedily. So what's the real problem?


More information about the Es-discuss mailing list