JavaScript-Engine - JavaScript engine
Eine JavaScript-Engine ist ein Computerprogramm, das JavaScript- Code ausführt . Die ersten JavaScript-Engines waren reine Interpreter , aber alle relevanten modernen Engines verwenden die Just-in-Time-Kompilierung für eine verbesserte Leistung.
JavaScript-Engines werden normalerweise von Webbrowser- Anbietern entwickelt, und jeder große Browser hat eine. In einem Browser läuft die JavaScript-Engine zusammen mit der Rendering-Engine und kann Elemente des Document Object Model manipulieren .
Die Verwendung von JavaScript-Engines ist nicht auf Browser beschränkt. Die V8-Engine ist beispielsweise eine Kernkomponente der Laufzeitsysteme Node.js und Deno (Programme, die JS-Quellcode ausführen).
Da ECMAScript die standardisierte Spezifikation von JavaScript ist, ist ECMAScript-Engine ein anderer Name für diese Engines. Mit dem Aufkommen von WebAssembly können einige Engines diesen Code auch in derselben Sandbox wie regulärer JavaScript-Code ausführen.
Geschichte
Die erste JavaScript-Engine wurde 1995 von Brendan Eich für den Webbrowser Netscape Navigator entwickelt . Es war ein rudimentärer Dolmetscher für die aufkommende Sprache, die Eich erfunden hatte. (Dies entwickelte sich zur SpiderMonkey- Engine, die immer noch vom Firefox- Browser verwendet wird.)
Die erste moderne JavaScript-Engine war V8 , die von Google für seinen Chrome- Browser entwickelt wurde. V8 debütierte 2008 als Teil von Chrome und seine Leistung war viel besser als bei jedem früheren Motor. Die wichtigste Neuerung war die Just-in-Time-Kompilierung , die die Ausführungszeiten erheblich verbessern kann.
Andere Browseranbieter mussten ihre Interpreter überarbeiten, um wettbewerbsfähig zu sein. Apple hat die Nitro- Engine für seinen Safari- Browser entwickelt, der eine 30% bessere Leistung als sein Vorgänger hatte. Mozilla nutzte Teile von Nitro, um seine eigene SpiderMonkey-Engine zu verbessern.
Seit 2017 unterstützen diese Engines WebAssembly . Dies ermöglicht die Verwendung vorkompilierter ausführbarer Dateien für leistungskritische Teile von Seitenskripten.
Bemerkenswerte Motoren
- V8 von Google ist die am häufigsten verwendete JavaScript-Engine. Google Chrome und die vielen anderen Chromium- basierten Browser verwenden es ebenso wie Anwendungen, die mit CEF , Electron oder einem anderen Framework erstellt wurden , das Chromium einbettet. Andere Verwendungen umfassen die Laufzeitsysteme Node.js und Deno .
- SpiderMonkey wurde von Mozilla für die Verwendung in Firefox und seinen Forks entwickelt . Die GNOME-Shell verwendet es zur Unterstützung von Erweiterungen.
- JavaScriptCore ist Apples Engine für seinen Safari- Browser. Andere WebKit- basierte Browser verwenden es ebenfalls. KJS von KDE war der Ausgangspunkt für seine Entwicklung.
- Chakra ist die Engine des Internet Explorer- Browsers. Es wurde auch von Microsoft für den ursprünglichen Edge- Browser gegabelt , aber Edge wurde später als Chromium-basierter Browser umgebaut und verwendet daher jetzt V8.