List of ECMAScript engines

Last updated

An ECMAScript engine is a software platform that can run code written in ECMAScript, a programming language more commonly known as JavaScript.

Contents

More formally, an ECMAScript engine is, at least in part, a "conforming implementation" of the ECMAScript programming language specified by the ECMA-262 international standard. [1]

Many implementations of ECMAScript engines are available, which differ based on the platforms they are intended to support, their level of conformance, and other implementation-specific characteristics. This article attempts to provide a relatively comprehensive list of engines that execute ECMAScript code.

The uses of the listed engines vary widely; some of these are engines intended for browsers that can run ECMAScript code on websites that include ECMAScript, like V8 (used in both Google Chrome and Node.js) and SpiderMonkey; some are intended for specific platforms (like Tamarin, Espruino, Rhino, Nashorn, and GraalJS).

Browser engines

Web browsers that support JavaScript embed JavaScript engines in order to support JavaScript-enabled web pages. Different browsers use different engines, although there are now multiple browsers based on Chromium which use V8 as their JavaScript engine.

Obsolete browsers and engines

Some engines either power JavaScript in obsolete browsers (like Internet Explorer), or have subsequently been replaced (as the engine has in Opera, with its move to Chromium).

Internet Explorer

Opera

  • 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). [5] [6] [7]

Engines for other platforms

Java platform

Others

See also

Related Research Articles

<span class="mw-page-title-main">Document Object Model</span> Convention for representing and interacting with objects in HTML, XHTML, and XML documents

The Document Object Model (DOM) is a cross-platform and language-independent interface that treats an HTML or XML document as a tree structure wherein each node is an object representing a part of the document. The DOM represents a document with a logical tree. Each branch of the tree ends in a node, and each node contains objects. DOM methods allow programmatic access to the tree; with them one can change the structure, style or content of a document. Nodes can have event handlers attached to them. Once an event is triggered, the event handlers get executed.

<span class="mw-page-title-main">JavaScript</span> High-level programming language

JavaScript, often abbreviated as JS, is a programming language and core technology of the Web, alongside HTML and CSS. 99% of websites use JavaScript on the client side for webpage behavior.

ECMAScript is a standard for scripting languages, including JavaScript, JScript, and ActionScript. It is best known as a JavaScript standard intended to ensure the interoperability of web pages across different web browsers. It is standardized by Ecma International in the document ECMA-262.

<span class="mw-page-title-main">SpiderMonkey</span> JavaScript and WebAssembly engine

SpiderMonkey is an open-source JavaScript and WebAssembly engine by the Mozilla Foundation. The engine powers the Firefox web browser and has used multiple generations of JavaScript just-in-time (JIT) compilers, including TraceMonkey, JägerMonkey, IonMonkey, and the current WarpMonkey.

JScript is Microsoft's legacy dialect of the ECMAScript standard that is used in Microsoft's Internet Explorer web browser and HTML Applications, and as a standalone Windows scripting language.

Presto was the browser engine of the Opera web browser from the release of Opera 7 on 28 January 2003, until the release of Opera 15 on 2 July 2013, at which time Opera switched to using the Blink engine that was originally created for Chromium. Presto was also used to power the Opera Mini and Opera Mobile browsers.

WebKit is a browser engine primarily used in Apple's Safari web browser, as well as all web browsers on iOS and iPadOS. WebKit is also used by the PlayStation consoles starting with the PS3, the Tizen mobile operating systems, the Amazon Kindle e-book reader, Nintendo consoles starting with the 3DS Internet Browser, GNOME Web, and the discontinued BlackBerry Browser.

A JavaScript engine is a software component that executes JavaScript code. The first JavaScript engines were mere interpreters, but all relevant modern engines use just-in-time compilation for improved performance.

ECMAScript for XML (E4X) was an extension to ECMAScript to add native support for XML. The goal was to provide a simpler alternative to the DOM interface for accessing XML documents. E4X added XML as a primitive data structure to allow for faster access and better support within the language.

SCXML stands for State Chart XML: State Machine Notation for Control Abstraction. It is an XML-based markup language that provides a generic state-machine-based execution environment based on Harel statecharts.

Tamarin is a discontinued free software virtual machine with just-in-time compilation (JIT) support intended to implement the 4th edition of the ECMAScript (ES4) language standard. Tamarin source code originates from ActionScript Virtual Machine 2 (AVM2) developed by Adobe Systems, as introduced within Adobe Flash Player 9, which implements ActionScript 3 scripting language. ActionScript Virtual Machine 2 was donated as open-source to Mozilla Foundation on November 7, 2006, to develop Tamarin as a high-performance virtual machine, with the support from broad Mozilla community, to be used by Mozilla and Adobe Systems in the next generation of their JavaScript and ActionScript engines with the ultimate aim to unify the scripting languages across web browsers and Adobe Flash platform and ease the development of better performing rich web applications.

V8 is a JavaScript and WebAssembly engine developed by Google for its Chrome browser. V8 is free and open-source software that is part of the Chromium project and also used separately in non-browser contexts, notably the Node.js runtime system.

<span class="mw-page-title-main">Sputnik (JavaScript conformance test)</span> Conformity test for JavaScript implementations

Sputnik was a JavaScript conformance test suite. The purpose of the test suite was to determine how well a JavaScript implementation adheres to the ECMA-262 specification, 5th edition, looking only at those features that were also present in the 3rd edition. It contained over 5000 tests that touched all aspects of the JavaScript language.

Chakra is a proprietary JScript engine developed by Microsoft. It is used in the Internet Explorer web browser.

Chakra was a free and open-source JavaScript engine developed by Microsoft for its Microsoft Edge Legacy web browser. It is a fork of the same-named JScript engine used in Internet Explorer. Like the EdgeHTML browser engine, the declared intention was that it would reflect the "Living Web". The core components of Chakra were open-sourced as ChakraCore. In 2021, Microsoft terminated support for the engine, citing its transition to a Chromium based engine for Edge. Support has been transferred to the community, where it remains inactive.

CommonJS is a project to standardize the module ecosystem for JavaScript outside of web browsers.

asm.js is a subset of JavaScript designed to allow computer software written in languages such as C to be run as web applications while maintaining performance characteristics considerably better than standard JavaScript, which is the typical language used for such applications.

<span class="mw-page-title-main">WebAssembly</span> Assembly language and bytecode for web browsers

WebAssembly (Wasm) defines a portable binary-code format and a corresponding text format for executable programs as well as software interfaces for facilitating communication between such programs and their host environment.

This is a list of articles related to the JavaScript programming language.

Boa is an open-source JavaScript engine written in Rust. Boa was introduced at JSConf EU 2019 by Jason Williams.

References

  1. "ECMAScript® 2025 Language Specification".
  2. "JavaScriptCore – WebKit".
  3. Frequently Asked Questions, Microsoft, 2010-03-13, archived from the original on 2010-03-22, retrieved 2010-03-18
  4. "Targeting Edge vs. Legacy Engines in JsRT APIs" . Retrieved 10 September 2015.
  5. "Carakan". Archived from the original on 2009-05-31. Retrieved 2009-07-09.
  6. "Opera Desktop Team's Blog | Opera". Archived from the original on 2006-03-03.
  7. "Dev.Opera — Blog". dev.opera.com.
  8. "Oracle Nashorn: A Next-Generation JavaScript Engine for the JVM".
  9. "Using Nashorn with different Java versions". GitHub . Retrieved 23 January 2025.
  10. "Constellation/iv". GitHub . Retrieved 2015-11-15.
  11. "CL-JavaScript" . Retrieved 2018-09-14.
  12. "Support me". GitHub . 18 November 2021.
  13. "Using Hermes". Facebook. Retrieved 9 April 2021.
  14. "ECMAScript 2015 Language Specification – ECMA-262 6th Edition".
  15. "An ES6 Virtual Machine Built in JavaScript". Archived from the original on 2012-12-03. Retrieved 2012-12-01.
  16. "V4 - Qt Wiki". wiki.qt.io. Retrieved 2021-04-24.
  17. "ECMAScript Language Specification ECMA-262 5.1 edition" (PDF). Ecma International. June 2011. Archived from the original (PDF) on 2015-04-12. Retrieved 2012-01-31.
  18. "YAJI: Yet Another JavaScript Interpreter". Google Code. Retrieved 2012-01-31.
  19. "FESI". September 2003. Archived from the original on 2012-09-06. Retrieved 2012-08-06.
  20. "Microvium is very small". 11 June 2022. Retrieved 23 August 2022.
  21. "Duktape" . Retrieved 2013-09-21.
  22. "moddable/documentation/xs/XS Conformance.md at public". GitHub .
  23. "Apps for IoT". Archived from the original on 2018-12-28.
  24. "Xs7 @ Tc-39".
  25. "Jsish" . Retrieved 2014-04-30.
  26. "MuJS" . Retrieved 2014-09-22.
  27. "NGINX JavaScript in Your Web Server Configuration". YouTube . 26 October 2018. Archived from the original on 2021-12-13. Retrieved 2018-10-30.
  28. "Let's build a JavaScript Engine". 2019.jsconf.eu. Retrieved 2022-03-23.
  29. "GitHub - boa-dev/boa: Boa is an embeddable and experimental Javascript engine written in Rust". github.com. Retrieved 2022-04-08.
  30. Clark, Mitchell (2022-08-18). "The James Webb Space Telescope runs JavaScript, apparently". The Verge. Retrieved 2022-09-02.
  31. "LibJS JavaScript engine". libjs.dev. Retrieved 2023-06-30.
  32. "LibJS: Rip out the AST interpreter :^) · LadybirdBrowser/ladybird@2eaa528". GitHub. Retrieved 2024-07-10.
  33. Ladybird browser update (February 2024), 29 February 2024, retrieved 2024-04-18