JavaScript: V8 8.5 bringt V8-Compiler Liftoff für alle Plattformen

Google integriert mit dem Update der JavaScript-Engine V8 die WebAssembly-Unterstützung für mehrwertige Code-Blöcke und Function Returns.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen
JavaScript: V8 8.5 bringt V8-Compiler Liftoff für alle Plattformen
Lesezeit: 3 Min.
Inhaltsverzeichnis

Google hat Version 8.5 der JavaScript-Engine V8 veröffentlicht. Bis Chrome 85 stabil ist, behält die aktuelle Version den Beta-Status. Das Update hält unter anderem Unterstützung für das Konvertieren zwischen WebAssembly-I64-Werten und JavaScript-BigInts bereit.

Das Update führt den neuen Promise-Kombinator Promise.any ein. Damit lassen sich Promises lösen, sobald eins der eingebundenen Promises erfüllt ist. Für den Fall, dass alle Promises zurückgewiesen werden, gilt der einschließende Promise ebenfalls als abgewiesen, und das neue AggregateError-Objekt enthält eine error-Property mit den Informationen über die Gründe in Form eines Arrays. Weitere Details zu den Neuerungen finden sich in einem separaten Beitrag.

Bei promise.any handelt es sich in gewisser Weise um das Gegenstück zu promise.all, das unter anderem in TypeScript 3.9 eingeflossen ist und in ECMAScript2020 als Standard gilt. Es gilt erst dann als erfüllt, wenn alle enthaltenden Promises erfüllt sind.

Mit String.prototype.replaceAll erhalten Entwickler die Möglichkeit, alle Stellen eines Substrings zu ersetzen, ohne eine globale RegExp erstellen zu müssen. Darüber hinaus führt Version 8.5 neue logische Operatoren für Zuordnungen ein. Dahinter verbergen sich neue zusammengesetzte Zuweisungsoperatoren, die die logischen Operatoren &&,|| oder ?? ähnlich wie TypeScript 4.0 mit Zuweisungen kombiniert. Dabei gilt es zu beachten, dass die logischen Assignment-Operatoren im Gegensatz zu mathematischen und bitweise zusammengesetzten Zuweisungsoperatoren die Zuordnung nur bedingt ausführen.

Der V8-Compiler Liftoff, den das V8-Team 2018 integriert hatte, ist mit dem Update nun auf allen Plattformen verfügbar. Die Aktivierung soll eine erhöhte Geschwindigkeit beim Kompilieren hervorrufen – insbesondere auf Arm-Geräten (32- und 64-Bit). Chrome liefert Liftoff mit Version M-85 aus.

Version 8.5 der JavaScript-Engine integriert die WebAssembly-Unterstützung für mehrwertige Code-Blöcke und Funktionsrückgaben. Damit reagiert das V8-Entwicklerteam auf einen Vorschlag im April 2020 für den WebAssembly-Standard. Darüber hinaus unterstützt V8 8.5 offenbar die Konvertierung von WebAssembly-I64-Werten von und zu JavaScript-BigInts. Dadurch erhalten Entwickler die Möglichkeit, WebAssembly-Funktionen mit I64-Parametern und Rückgabewerten aus JavaScript ohne Precision-Verlust aufzurufen.

Wie üblich hat das Release der JavaScript-Engine Beta-Status, bis die zugehörige Chrome-Version 85 als stabiles Release erscheint. Eine Anleitung, wie Entwickler auf das Git-Repository zugreifen können, findet sich in der V8-Dokumentation. Außerdem ist die aktuelle Engine in der Beta zu Chrome 85 enthalten, die Google über den Chrome-Beta-Channel bereitstellt.

(mdo)