Skip to content

ECMAScript 2015 (ES6) e além

O Node.js é construído com versões modernas do V8. Ao manter-se atualizado com os lançamentos mais recentes deste motor, garantimos que novos recursos da especificação JavaScript ECMA-262 sejam disponibilizados aos desenvolvedores Node.js em tempo hábil, bem como melhorias contínuas de desempenho e estabilidade.

Todos os recursos do ECMAScript 2015 (ES6) são divididos em três grupos para recursos shipping, staged e in progress:

  • Todos os recursos shipping, que o V8 considera estáveis, são ativados por padrão no Node.js e NÃO requerem nenhum tipo de sinalizador de tempo de execução.
  • Recursos staged, que são recursos quase completos que não são considerados estáveis pela equipe do V8, exigem um sinalizador de tempo de execução: --harmony.
  • Recursos in progress podem ser ativados individualmente por seu respectivo sinalizador harmony, embora isso seja altamente desencorajado, a menos que seja para fins de teste. Nota: esses sinalizadores são expostos pelo V8 e podem mudar potencialmente sem nenhum aviso de depreciação.

Quais recursos são enviados com qual versão do Node.js por padrão?

O site node.green fornece uma excelente visão geral dos recursos ECMAScript suportados em várias versões do Node.js, com base na tabela de compatibilidade do kangax.

Quais recursos estão em progresso?

Novos recursos estão sendo constantemente adicionados ao motor V8. De maneira geral, espere que eles cheguem a um lançamento futuro do Node.js, embora o tempo seja desconhecido.

Você pode listar todos os recursos em progresso disponíveis em cada versão do Node.js pesquisando no argumento --v8-options. Observe que esses são recursos incompletos e possivelmente com defeito do V8, portanto, use-os por sua conta e risco:

sh
node --v8-options | grep "in progress"

Tenho minha infraestrutura configurada para aproveitar o sinalizador --harmony. Devo removê-lo?

O comportamento atual do sinalizador --harmony no Node.js é habilitar apenas recursos staged. Afinal, agora é sinônimo de --es_staging. Como mencionado acima, esses são recursos completos que ainda não foram considerados estáveis. Se você quiser jogar pelo seguro, especialmente em ambientes de produção, considere remover esse sinalizador de tempo de execução até que ele seja enviado por padrão no V8 e, consequentemente, no Node.js. Se você mantiver isso habilitado, deve estar preparado para que atualizações futuras do Node.js interrompam seu código se o V8 alterar sua semântica para seguir mais de perto o padrão.

Como descobrir qual versão do V8 é fornecida com uma versão específica do Node.js?

O Node.js fornece uma maneira simples de listar todas as dependências e suas respectivas versões que são fornecidas com um binário específico através do objeto global process. No caso do motor V8, digite o seguinte no seu terminal para recuperar sua versão:

sh
node -p process.versions.v8