Single destructuring argument to an arrow function

Brendan Eich brendan at mozilla.org
Fri Mar 20 22:34:35 UTC 2015


But we could extend the cover grammar with some work. You'd have to push 
ArrayLiteral and ObjectLiteral down from PrimaryExpression alternative 
right-hand sides, to live under 
CoverParenthesizedExpressionAndArrowParameterList.Seems do-able -- 
anyone see a fatal problem? Could be an ES7 relaxation from ES6, if it 
matters enough to users.

/be

Rick Waldron wrote:
> Inline...
>
> On Thu, Mar 19, 2015 at 4:50 PM Jan-Ivar Bruaroey <jib at mozilla.com 
> <mailto:jib at mozilla.com>> wrote:
>
>     Hi group! First post, so be gentle.
>
>
> Welcome
>
>
>     I love how arrow functions allow single arguments to be passed without
>     parenthesis, so I expected this to work:
>
>          Promise.all([true, false]).then([foo, bar] => console.log(foo +”,
>     "+ bar));
>
>     but it doesn't:
>
>          SyntaxError: invalid arrow-function arguments (parentheses around
>     the arrow-function may help)
>
>     I understand from the spec that this is as defined, but is there a
>     technical reason to disallow it?
>
>
> To prevent ambiguity with:
>
> MemberExpressionArguments
> CallExpressionArguments
>
>
> Arguments[Yield] :
> |(| |)|
> |(| ArgumentList[?Yield] |)|
> ArgumentList[Yield] :
> AssignmentExpression[In, ?Yield]
> |...| AssignmentExpression[In, ?Yield]
> ArgumentList[?Yield] |,| AssignmentExpression[In, ?Yield]
> ArgumentList[?Yield] |,| |...| AssignmentExpression[In, ?Yield]
>
>
> e.g.
>
>   fn([a, b])
>
> Rick
>
>
>     The parenthesis seem redundant to the naked eye.
>
>     Thanks,
>
>     .: Jan-Ivar :.
>
>     _______________________________________________
>     es-discuss mailing list
>     es-discuss at mozilla.org <mailto:es-discuss at mozilla.org>
>     https://mail.mozilla.org/listinfo/es-discuss
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss


More information about the es-discuss mailing list