Why can’t spread operator be used multiple times?
...
is not an operator. (...arr)
is not valid JavaScript. ...
is only allowed inside array literals and in arguments lists, but those are special forms of the syntax (notice the ...
in the production rules below).
ArrayLiteral
ArrayLiteral :
[ Elision_opt ]
[ ElementList ]
[ ElementList , Elision_opt ]
ElementList :
Elision_opt SpreadElement
ElementList , Elision_opt SpreadElement
SpreadElement:
... AssignmentExpression
Arguments
Arguments :
( )
( ArgumentList )
ArgumentList :
AssignmentExpression
... AssignmentExpression
ArgumentList , AssignmentExpression
ArgumentList , ... AssignmentExpression