• Home
  • Javascript engine v8 nel prossimo Google Chrome 65

Google ha annunciato l’inserimento dell’ultima versione del suo javascript engine v8 all’interno della versione 65 di Chrome. In realtà tale engine avrà un grosso impatto anche sulle Node.js v8 e v9.

La più grossa innovazione è nel WebAssembly portable code. Tale codice è integrato anche in Mozilla Firefox, Apple Safari e Microsoft Edge, ma non nella versione v8.


Cos’è Webassembly?

Nel giugno 2015 i più grandi sviluppatori di browser al mondo si mettono d’accordo per realizzare WebAssembly (abbreviato, WASM).

Si tratta di un linguaggio a basso livello che supporta l’esecuzione di script lato client, JavaScript su tutti. Offre la possibilità di scrivere codice in vari linguaggi (JavaScript, C, C++, Rust…) che viene compilato da questo motore e poi passato al browser.
In tal modo applicazioni e giochi sviluppati in WebAssembly superano i limiti tecnici imposti dai vari browser.

All’inizio, verso la fine del 2016, ci fu un’annunciata compatibilità da parte di Google Chrome, Mozilla Firefox, Chromium, Opera, Vivaldi.

Successivamente anche Apple Safari (a partire dalla versione 11) e Microsoft Edge (a partire dal motore EdgeHTML 16, che Microsoft integrò in Windows 10 Fall Creators Update) supportarono.


Le novità del javascript engine v8 versione 6.5

Innanzitutto la velocità di download e dunque di streaming. Google dichiara che Chrome 65 – che sarà rilasciato tra poche settimane – sarà in grado di scaricare il codice Webassembly a 50mbps su macchine di fascia alta.

Salto la parte tecnica, ma il significato della stessa è che scaricando a 50mbs, la compilazione del codice Webassembly sarà stata eseguita non appena il download sarà terminato.

Inoltre, grossissima novità introdotta nel v8 è il cosiddetto untrusted code mode. Questa modalità, attivata di default su Chrome, serve a gestire gli attacchi detti speculative side-channel (ovvero Spectre, di cui ti ho ampiamente parlato nei precedenti post, qui e qui) soprattutto nei confronti di codice non verificabile (not trusted) generato lato utente.

Infine, il javascript engine v8 implementa un sistema per identificare e prevenire il cosiddetto deoptimization loop. In poche parole, in precedenza quando codice ottimizzato veniva “deottimizzato” ed il compilatore/decompilatore non riusciva a capirne il motivo, andava in un ragionare all’infinito senza soluzione.


Dove scarico il javascript engine v8 versione 6.5 ?

Poichè ancora non su Chrome stabile, puoi scaricare il motore v8 nel branch 6.5 del repository git di Google.



Condividi: