JavaScript-Engine: V8 9.1 bringt neues Template-Interface für Embedder

Google hält mit dem Update unter anderem Neuerungen für das Top-Level await sowie die Syntax zur Prüfung privater Brands bereit.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen

(Bild: Trismegist san/Shutterstock.com)

Von
  • Madeleine Domogalla

Für Googles JavaScript-Engine V8 liegt wenige Monate nach der neunten Hauptversion die Version 9.1 vor. Bis das nächste Chrome-Release unter der Versionsnummer 91 stabil ist, behält die aktuelle V8-Version den Beta-Status. Neben einem neuen Template-Interface für Embedder bringt das Update weitere Neuerungen für die Syntax zur Prüfung privater Brands.

Mit dem Update stellt die V8-API den Embeddern ein neues Template-Interface zur Verfügung, über das sich neue Instanzen erstellen lassen. Das Klonen bestehender Objektinstanzen nimmt weniger Zeit in Anspruch als das Erstellen und Konfigurieren einer neuen Instanz. Die JavaScript-Engine greift auf eine zweistufige Cache-Strategie zurück – ein kleiner schneller Array-Cache und ein großer langsamer Dictionary-Cache –, um kürzlich erstellte Objekte anhand der Templates zu suchen und direkt zu klonen.

Bisher wurde der Cache-Index für Templates beim Erstellen der Vorlagen zugewiesen und nicht beim Einfügen in den Cache. Dadurch hat die Engine Platz im schnelleren Array-Cache auch für letztlich nicht instanziierte Templates reserviert.

V8 9.1 hält das Top-Level await ab sofort standardmäßig aktiviert. Das bedeutet, dass Anwendungen den Befehl auch außerhalb einer async-Funktionen verwenden können, allerdings nur auf der obersten Modulebene. Der Einsatz in Skripten oder innerhalb von Funktionen ohne async ist nicht gestattet. Damit entfällt die Notwendigkeit für den Kommandozeilenparameter --harmony-top-level-await. Auch die Syntax zur Prüfung privater Brands ist ab sofort per Default aktiviert, ohne dass --harmony-private-brand-checks erforderlich ist. Diese Funktion soll den in-Operator auf die Weise erweitern, dass er auch mit den #-Namen von privaten Feldern funktioniert.

Nähere Informationen zur neuen Version der JavaScript-Engine finden sich im Beitrag auf dem V8-Blog.

(mdo)