This article has multiple issues. Please help improve it or discuss these issues on the talk page . (Learn how and when to remove these messages)
|
An ECMAScript engine is a software platform that can run code written in ECMAScript, a programming language more commonly known as JavaScript.
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).
These are new generation ECMAScript engines for web browsers, all implementing just-in-time compilation (JIT) or variations of that idea. The performance benefits for just-in-time compilation make it much more suitable for web applications written in JavaScript.
The following engines use runtime interpreters, which do not compile into native machine code and generally run more slowly:
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.
SpiderMonkey is an open-source JavaScript and WebAssembly engine by the Mozilla Foundation.
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.
Rhino is a JavaScript engine written fully in Java and managed by the Mozilla Foundation as open source software. It is separate from the SpiderMonkey engine, which is also developed by Mozilla, but written in C++ and used in Mozilla Firefox.
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, 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.
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.
GraalVM is a Java Development Kit (JDK) written in Java. The open-source distribution of GraalVM is based on OpenJDK, and the enterprise distribution is based on Oracle JDK. As well as just-in-time (JIT) compilation, GraalVM can compile a Java application ahead of time. This allows for faster initialization, greater runtime performance, and decreased resource consumption, but the resulting executable can only run on the platform it was compiled for.
This is a list of articles related to the JavaScript programming language.
Deno is a runtime for JavaScript, TypeScript, and WebAssembly that is based on the V8 JavaScript engine and the Rust programming language. Deno was co-created by Ryan Dahl, who also created Node.js.
Boa is an open-source JavaScript engine written in Rust. Boa was introduced at JSConf EU 2019 by Jason Williams.