class="wikitable"
!Engine
!Description |
V8
|A JavaScript engine used in Google Chrome and other Chromium-based browsers (such as Microsoft Edge). Also used in Node.js, Deno, and V8.NET. |
SpiderMonkey
|A JavaScript engine in Mozilla Gecko applications, including Firefox. The engine currently includes the IonMonkey compiler and OdinMonkey optimization module, has previously included the TraceMonkey compiler (first JavaScript JIT) and JägerMonkey. |
JavaScriptCore
|A JavaScript interpreter and JIT originally derived from KJS. It is used in the WebKit project, applications such as Safari, and the Bun runtime. Also known as Nitro, SquirrelFish, and SquirrelFish Extreme.[{{Cite web |title=JavaScriptCore – WebKit |url=http://trac.webkit.org/wiki/JavaScriptCore}}] |
KJS
|The engine used in Konqueror, and one component of KHTML, a predecessor to JavaScriptCore. |
JScript
|The engine that is used in Internet Explorer for versions up to IE9, and one component of the MSHTML (Trident) browser engine. |
Chakra (JScript9)
|A JScript engine used in Internet Explorer. It was first previewed at MIX 10 as part of the Internet Explorer 9 Platform Preview.[{{citation |title=Frequently Asked Questions |date=2010-03-13 |url=http://ie.microsoft.com/testdrive/info/FrequentlyAskedQuestions/Default.html |access-date=2010-03-18 |archive-url=https://web.archive.org/web/20100322193213/http://ie.microsoft.com/testdrive/info/FrequentlyAskedQuestions/Default.html |archive-date=2010-03-22 |url-status=dead |publisher=Microsoft}}] |
Chakra
|A JavaScript engine used in Microsoft Edge [Legacy].[{{cite web |title=Targeting Edge vs. Legacy Engines in JsRT APIs |url=https://msdn.microsoft.com/en-us/library/dn903710(v=vs.94).aspx |access-date=10 September 2015}}] |
Linear B
|The ECMAScript engine of the Opera web browser versions 7.0 to 9.50, exclusive. |
Futhark
|The ECMAScript engine of the Opera web browser versions 9.50 to 10.10. |
Carakan
|A JavaScript engine developed by Opera Software ASA, included in the 10.50 release of the Opera web browser, until switching to V8 with Opera 15 (released in 2013).[{{Cite web |title=Carakan |url=http://labs.opera.com/news/2009/02/05/ |url-status=dead |archive-url=https://web.archive.org/web/20090531095136/http://labs.opera.com/news/2009/02/05/ |archive-date=2009-05-31 |access-date=2009-07-09}}][{{Cite web |title=Opera Desktop Team's Blog | Opera |url=http://my.opera.com/desktopteam/blog/ |archive-url=https://web.archive.org/web/20060303160759/http://my.opera.com/desktopteam/blog/ |archive-date=2006-03-03}}][{{Cite web |title=Dev.Opera — Blog |url=https://dev.opera.com/blog/ |website=dev.opera.com}}] |
Graal.js
|An ECMAScript compliant JavaScript engine for GraalVM which supports language interoperability that can also execute Node.js applications. |
Rhino
|One of several JavaScript engines from Mozilla, using the Java platform. |
Nashorn
|A JavaScript engine used in Oracle Java Development Kit (JDK) from Java versions 8-14.[{{cite web |title=Oracle Nashorn: A Next-Generation JavaScript Engine for the JVM |url=http://www.oracle.com/technetwork/articles/java/jf14-nashorn-2126515.html}}] Now available as a standalone library which can be used with Java 11 and higher.[{{cite web |title=Using Nashorn with different Java versions |url=https://github.com/szegedi/nashorn/wiki/Using-Nashorn-with-different-Java-versions |access-date=23 January 2025 |website=GitHub}}] |
JScript .NET
|A .NET Framework JScript engine used in ASP.NET based on Common Language Runtime and COM Interop. Support was dropped with .NET Core and CoreCLR so its future looks questionable for ASP.NET Core. |
Tamarin
|An ActionScript and ECMAScript engine used in Adobe Flash. |
GNU Guile
|features an ECMAScript interpreter as of version 1.9 |
iv
|ECMAScript Lexer / Parser / Interpreter / VM / method JIT written in C++.[{{cite web|url=https://github.com/Constellation/iv|title=Constellation/iv|website=GitHub|access-date=2015-11-15}}] |
CL-JavaScript
|Can compile JavaScript to machine language on Common Lisp implementations that compile to machine language.[{{cite web |title=CL-JavaScript |url=http://marijnhaverbeke.nl/cl-javascript/ |access-date=2018-09-14}}] |
BESEN
|A complete JIT-compiling implementation of ECMAScript Fifth Edition written in Object Pascal.[{{Cite web |date=18 November 2021 |title=Support me |url=https://github.com/BeRo1985/besen |website=GitHub}}] |
Hermes
|developed by Facebook for React Native mobile apps[{{cite web |title=Using Hermes |url=https://reactnative.dev/docs/hermes |access-date=9 April 2021 |publisher=Facebook}}] Can also be used independent from React Native. |
Continuum
|A self-interpreter that supports older drafts of the ECMAScript 2015 specification.[{{cite web |title=ECMAScript 2015 Language Specification – ECMA-262 6th Edition |url=http://www.ecma-international.org/ecma-262/6.0/}}] Uniquely, the engine is implemented in ECMAScript 3, which made it possible to run ES2015 in browsers as old as IE6.[{{cite web |title=An ES6 Virtual Machine Built in JavaScript |url=https://benvie.github.com/continuum/ |url-status=dead |archive-url=https://web.archive.org/web/20121203041426/http://benvie.github.com/continuum/ |archive-date=2012-12-03 |access-date=2012-12-01}}] |
InScript
|An obsolete proprietary library used for iCab 2 and 3. |
Jint
|Javascript interpreter with integrated engine for .NET |
Narcissus
|JavaScript implemented in JavaScript (a meta-circular evaluator), intended to run in another JavaScript engine, of theoretical and educational nature only. |
JS-Interpreter
|A lightweight JavaScript interpreter implemented in JavaScript with step-by-step execution. |
QtScript
|Originally developed by Trolltech, now owned by The Qt Company. It provides QObject integration with JavaScriptCore. |
V4 (QJSEngine)
|Qt's newer ECMAScript engine, powering QML and QtQuick. ES6-compliant and under active development at The Qt Company. V4 is JIT compiled.[{{Cite web |title=V4 - Qt Wiki |url=https://wiki.qt.io/V4 |access-date=2021-04-24 |website=wiki.qt.io}}] |
YAJI
|An ECMAScript engine based on the FESI implementation by Jean-Marc Lugrin in 1999, using the Java platform, currently being developed to support the latest standards (ECMAScript spec. 262, v5.1).[{{cite web |date=June 2011 |title=ECMAScript Language Specification ECMA-262 5.1 edition |url=http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf |url-status=dead |archive-url=https://web.archive.org/web/20150412040502/http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf |archive-date=2015-04-12 |access-date=2012-01-31 |publisher=Ecma International}}][{{cite web |title=YAJI: Yet Another JavaScript Interpreter |url=http://code.google.com/p/yaji-ecmascript-interpreter/ |access-date=2012-01-31 |work=Google Code}}][{{cite web |date=September 2003 |title=FESI |url=http://www.lugrin.ch/fesi |url-status=dead |archive-url=https://web.archive.org/web/20120906033028/http://www.lugrin.ch/fesi/ |archive-date=2012-09-06 |access-date=2012-08-06}}] |
Microvium
|JavaScript engine for microcontrollers, supporting a restricted subset of the ECMAScript specification, using less than 16{{nbsp}}kB of flash memory and 64{{nbsp}}B of RAM while idle.[{{cite web |date=11 June 2022 |title=Microvium is very small |url=https://coder-mike.com/blog/2022/06/11/microvium-is-very-small/ |access-date=23 August 2022}}] |
Duktape
|A small footprint, easily embeddable Ecmascript E5/E5.1 engine.[{{cite web |title=Duktape |url=http://www.duktape.org/ |access-date=2013-09-21}}] |
XS JavaScript Engine
|An ECMAScript 2020-compliant engine for microcontrollers with limited resources.[{{Cite web |title=moddable/documentation/xs/XS Conformance.md at public |url=https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/xs/XS%20Conformance.md#results |website=GitHub}}][{{cite web |title=Apps for IoT |url=https://www.moddable.com/faq.php#what-is-xs |url-status=dead |archive-url=https://web.archive.org/web/20181228063939/http://www.moddable.com/faq.php |archive-date=2018-12-28}}] XS is maintained by Moddable as part of the Moddable SDK and was formerly part of the Kinoma Platform.[{{cite web |title=Xs7 @ Tc-39 |url=https://www.moddable.com/XS7-TC-39}}] |
Jsish
|An ES5.1 subset interpreter with builtin SQLite, JSON, WebSocket, and ZVFS support.[{{cite web |title=Jsish |url=http://jsish.org/ |access-date=2014-04-30}}] |
Espruino
|A very small footprint interpreter specifically for microcontrollers. Can run in less than 8 kB of RAM by executing from source (rather than bytecode). |
MuJS
|A lightweight ECMAScript interpreter library, designed for embedding in other software to extend them with scripting capabilities. Originally developed for MuPDF.[{{cite web |title=MuJS |url=http://mujs.com/ |access-date=2014-09-22}}] |
mJS
|Restricted JavaScript engine. Used for Internet of Things (IoT). |
Tiny-JS
|A minimal JavaScript interpreter written in C++. |
JerryScript
|A lightweight JavaScript engine by Samsung for microcontrollers with less than 64 KB RAM. |
njs
|A lightweight JavaScript interpreter optimized for web server scripting and fastest VM context creation; used in nginx.[{{cite web |date=26 October 2018 |title=NGINX JavaScript in Your Web Server Configuration |url=https://www.youtube.com/watch?v=Jc_L6UffFOs |url-status=live |archive-url=https://ghostarchive.org/varchive/youtube/20211213/Jc_L6UffFOs |archive-date=2021-12-13 |access-date=2018-10-30 |website=YouTube}}{{cbignore}}] |
quickjs
|A lightweight ECMAScript 6 interpreter by Fabrice Bellard and Charlie Gordon; it features a compiler to produce binary executable from .js. |
engine262
|A JavaScript engine written in JavaScript for development and exploration. It is primarily used to validate the ECMAScript specification. |
Boa
|A JavaScript engine written in Rust.
{{Cite web |title=Let's build a JavaScript Engine |url=https://2019.jsconf.eu/jason-williams/lets-build-a-javascript-engine.html |access-date=2022-03-23 |website=2019.jsconf.eu |language=en}}[{{Cite web |title=GitHub - boa-dev/boa: Boa is an embeddable and experimental Javascript engine written in Rust. |url=https://github.com/boa-dev/boa |access-date=2022-04-08 |website=github.com |language=en}}] |
ScriptEase
|An old proprietary engine last updated in 2003. Only notable for its use in the James Webb Space Telescope.[{{Cite web |last=Clark |first=Mitchell |date=2022-08-18 |title=The James Webb Space Telescope runs JavaScript, apparently |url=https://www.theverge.com/2022/8/18/23206110/james-webb-space-telescope-javascript-jwst-instrument-control |access-date=2022-09-02 |website=The Verge |language=en}}] |
LibJS
|JavaScript engine of the SerenityOS and Ladybird projects.[{{Cite web |title=LibJS JavaScript engine |url=https://libjs.dev/ |access-date=2023-06-30 |website=libjs.dev}}] Initially it was an AST interpreter, but has been upgraded to a bytecode-based one.[{{Cite web |title=LibJS: Rip out the AST interpreter :^) · LadybirdBrowser/ladybird@2eaa528 |url=https://github.com/LadybirdBrowser/ladybird/commit/2eaa528a0ea606b2be9a1868ba711b1987409d70 |access-date=2024-07-10 |website=GitHub |language=en}}] |
Kiesel
|JavaScript engine by Linus Groh written in Zig.[{{Cite web |title=Kiesel JavaScript Engine |url=https://kiesel.dev/ |access-date=2025-04-09 |website=kiesel.dev}}][{{Cite web |last=kiesel-js |title=kiesel |url=https://codeberg.org/kiesel-js/kiesel |access-date=2025-04-09 |website=Codeberg.org |language=en-US}}][{{Cite web |title=Linus Groh |url=https://linus.dev/ |access-date=2025-04-18 |website=linus.dev}}] |