Lançamento do V8 v5.7
A cada seis semanas, criamos um novo branch do V8 como parte do nosso processo de lançamento. Cada versão é ramificada a partir do Git master do V8 imediatamente antes de um marco Beta do Chrome. Hoje, estamos felizes em anunciar nosso mais novo branch, V8 versão 5.7, que estará em beta até seu lançamento em coordenação com o Chrome 57 Stable em algumas semanas. O V8 5.7 está repleto de novidades voltadas para desenvolvedores. Gostaríamos de oferecer um prévia de alguns destaques em antecipação ao lançamento.
Melhorias de desempenho
Funções assíncronas nativas tão rápidas quanto Promises
As funções assíncronas agora são aproximadamente tão rápidas quanto o mesmo código escrito com Promises. O desempenho de execução das funções assíncronas quadruplicou de acordo com nossos microbenchmarks. Durante o mesmo período, o desempenho geral de Promises também dobrou.
Melhoria contínua do ES2015
O V8 continua a tornar os recursos da linguagem ES2015 mais rápidos para que os desenvolvedores utilizem novos recursos sem sofrer custos de desempenho. O operador spread, a desestruturação e os geradores agora são aproximadamente tão rápidos quanto seus equivalentes ingênuos do ES5.
RegExp 15% mais rápido
Migrar funções RegExp de uma implementação de JavaScript auto-hospedada para uma que se conecta à arquitetura de geração de código do TurboFan resultou em um desempenho de RegExp ~15% mais rápido no geral. Mais detalhes podem ser encontrados no post dedicado do blog.
Recursos da linguagem JavaScript
Várias adições recentes à biblioteca padrão ECMAScript estão incluídas nesta versão. Dois métodos de String, padStart
e padEnd
, fornecem recursos úteis de formatação de strings, enquanto Intl.DateTimeFormat.prototype.formatToParts
oferece aos autores a capacidade de personalizar a formatação de data/hora de forma sensível ao idioma.
WebAssembly habilitado
O Chrome 57 (que inclui o V8 v5.7) será o primeiro lançamento a habilitar o WebAssembly por padrão. Para mais detalhes, consulte os documentos introdutórios em webassembly.org e a documentação da API no MDN.
Adições à API do V8
Por favor, confira nosso resumo das alterações da API. Este documento é atualizado regularmente algumas semanas após cada grande lançamento. Desenvolvedores com um checkout ativo do V8 podem usar git checkout -b 5.7 -t branch-heads/5.7
para experimentar os novos recursos do V8 v5.7. Alternativamente, você pode assinar o canal Beta do Chrome e experimentar os novos recursos em breve.
PromiseHook
Esta API C++ permite aos usuários implementar código de perfil que rastreia o ciclo de vida de Promises. Isso habilita a futura API AsyncHook do Node, que permite construir propagação de contexto assíncrono.
A API PromiseHook
fornece quatro ganchos de ciclo de vida: init, resolve, antes e depois. O gancho init é executado quando uma nova Promise é criada; o gancho resolve é executado quando uma Promise é resolvida; os ganchos antes & depois são executados imediatamente antes e depois de um PromiseReactionJob
. Para mais informações, confira o issue de acompanhamento e o documento de design.