Informação oficial sobre ‘argumentos’ nas funções do ES6 Arrow?

(() => console.log(arguments))(1,2,3); // Chrome, FF, Node give "1,2,3" // Babel gives "arguments is not defined" from parent scope 

De acordo com Babel (e pelo que eu posso dizer as recomendações iniciais do TC39), isso é “inválido” já que as funções de seta devem estar usando seu escopo pai para argumentos. A única informação que eu pude encontrar que contradiz isso é um único comentário dizendo que isso foi rejeitado pelo TC39, mas não consigo encontrar nada para apoiar isso.

Apenas procurando por documentos oficiais aqui.

Chrome, FF e nó parecem estar errados aqui, Babel está correto:

As funções de seta não possuem um próprio arguments binding em seu escopo; Nenhum object de argumentos é criado ao chamá-los.

procurando por documentos oficiais aqui

As expressões de function de seta são avaliadas para funções que têm seu [[ThisMode]] definido como lexical e, quando são chamadas, a instância de declaração não cria um object de arguments . Existe até uma nota específica (18a) afirmando que ” As funções de seta nunca possuem objects de argumentos “.

Como observado por Bergi, as funções de seta não possuem sua própria variável de arguments .

No entanto, se você quiser capturar os argumentos para a sua function de seta, você pode simplesmente usar um parâmetro de descanso

 const myFunc = (...args) => console.log ("arguments", args) myFunc (1, 2, 3) // arguments [1, 2, 3]