Inline...

On Thu, Mar 19, 2015 at 4:50 PM Jan-Ivar Bruaroey <[email protected]> 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:

MemberExpression Arguments
CallExpression Arguments


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
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to