Menü
Developer

JavaScript: V8 5.0 setzt auf Performance

Kaum ist ein neuer Branch für Version 5.0 der JavaScript-Engine angelegt, verkündet das Entwicklerteam auch schon experimentellen WebAssembly-Support ab V8 5.1.117.

Von
vorlesen Drucken Kommentare lesen 11 Beiträge
JavaScript: V8 5.0 setzt auf Performance

Zwar verbleibt Version 5.0 des V8-JavaScript-Projekts in der Betaphase, bis es einen stabilen Build mit Chrome 50 gibt, vorbereitend weist Entwickler Michael Hablich trotzdem schon einmal auf die Neuerungen in Version 5 der für den Chrome-Browser entwickelten Engine hin. So hat das Team unter anderem weiter am Umgang mit Features des letzten ECMAScript-Standards ES2015 gearbeitet, wodurch sie nun etwa Hooks zum Anpassen regulärer Ausdrücke und das Unicode-Flag kennt.

Darüber hinaus soll sich die Performance beim Einsatz von Funktionen aus ES2015 und ES5 verbessert haben. Da bei V8 die Versionsnummern nicht unbedingt auf Inkompatibilitäten zu Vorgängerversionen oder andere schwerwiegende Änderungen schließen lassen, lohnt bei Neuveröffentlichungen ein Blick auf die Liste der API-Änderungen. Demnach gibt es für Nutzer der Engine in anderen Projekten für V8 5.0 nichts wichtiges zu beachten. Allerdings wurde etwa SetAccessCheckCallback als veraltet markiert, was beim Einsatz zu Warnmeldungen führt.

WebAssembly in V8

Kurz nach der Veröffentlichung der Bekanntmachung zu V8 5.0 verkündete Googles Seth Thompson, dass die JavaScript-Engine ab Version 5.1.117 beziehungsweise Chrome Canary 51.0.2677.0 mit experimentellem WebAssembly-Support ausgestattet ist (ähnlich lautende Ankündigungen gab es aufgrund der Zusammenarbeit zudem bei Microsoft und Mozilla). Seit Juni 2015 arbeiten Apple, Google, Microsoft und Mozilla gemeinsam mit der W3C WebAssembly Community Group an dem portablen Bytecode, der sich in einem kompakten Binärformat kodieren und fast in nativer Geschwindigkeit innerhalb einer speichersicheren Sandbox ausführen lassen soll.

Interessierte Entwickler können die WebAssembly-Implementierung durch Aktivieren des --expose_wasm-Flags oder chrome://flags#enable-webassembly ausprobieren. Nach dem Neustart des Browsers steht dann ein Wasm-Objekt zur Verfügung, das Zugriff auf eine API gewährt, die entsprechende Module instantiieren und laufen lassen kann.

Bei der Umsetzung nutzt V8 Teile der Infrastruktur der virtuellen Maschine, etwa den TurboFan-Compiler. Als zukünftige Änderungen in der Implementierung sind derzeit beispielsweise eine textliche Repräsentierung von WebAssembly geplant. Außerdem dient das Wasm-Objekt derzeit wohl nur als Platzhalter und soll so überarbeitet werden, dass leistungsfähigere Methoden und Eigenschaften zur Verfügung stehen. (jul)