On Nov 12, 2014, at 4:46 PM, Cyrus Najmabadi wrote: > Hey ES6ers, > > I’m currently implementing some of the ES6 support for the next version of > TypeScript. The part I’m looking at right now is generators and yield > expressions. So far we feel fairly comfortable with the grammar and > understand the implications of the [Yield] and [GeneratorParameter]. One > spec issue that is getting us to scratch our heads though is this section: > > When the production > ArrowParameters[Yield] : > CoverParenthesizedExpressionAndArrowParameterList[?Yield] > > is recognized the following grammar is used to refine the interpretation of > CoverParenthesizedExpressionAndArrowParameterList: > > ArrowFormalParameters[Yield, GeneratorParameter] : > ( StrictFormalParameters[?Yield, ?GeneratorParameter] ) > > The issue relates to the [GeneratorParamater] parameter on > ArrowFormalParameters. We can’t see any path through the grammar that could > ever end up enabling this parameter. While > CoverParenthesizedExpressionAndArrowParameterList picks up the ‘yield’ > parameter from ArrowParameters, there seems to be nothing related to > ‘GeneratorParameter’.
See static semantic rules of http://people.mozilla.org/~jorendorff/es6-draft.html#sec-arrow-function-definitions-static-semantics-early-errors and the second algorithm in http://people.mozilla.org/~jorendorff/es6-draft.html#sec-static-semantics-coveredformalslist > > We also find the presence of this grammar parameter here to be somewhat odd > as arrow function can’t be generators. It is dealing with code such as this: var yield = 42; function *g() { var f = (arg=yield) => arg; //it is a syntax error to use 'yield' within an arraw parameter list inside a generator function yield f(); } > > Is this an issue with the spec? Or is there some subtlety here that we’ve > missed that enables this parameter? It's subtle. Allen
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

