List of ECMAScript engines

Last updated

An ECMAScript engine is a program that executes source code written in a version of the ECMAScript language standard, for example, JavaScript.

Contents

Just-in-time compilation engines

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.

Runtime interpreter engines

The following engines use runtime interpreters, which do not compile into native machine code and generally run more slowly:

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.

<span class="mw-page-title-main">Java virtual machine</span> Virtual machine that runs Java programs

A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes what is required in a JVM implementation. Having a specification ensures interoperability of Java programs across different implementations so that program authors using the Java Development Kit (JDK) need not worry about idiosyncrasies of the underlying hardware platform.

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 maintained by the Mozilla Foundation

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.

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.

WebKit is a browser engine developed by Apple and primarily used in its 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. WebKit's C++ application programming interface (API) provides a set of classes to display Web content in windows, and implements browser features such as following links when clicked by the user, managing a back-forward list, and managing a history of pages recently visited.

JScript .NET is a .NET programming language developed by Microsoft.

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.

Cross-browser compatibility is the ability of a website or web application to function across different browsers and degrade gracefully when browser features are absent or lacking.

ECMAScript for XML (E4X) was the standard ISO/IEC 22537:2006 programming language extension that adds native XML support to ECMAScript. The goal was to provide an alternative to DOM interfaces that uses a simpler syntax for accessing XML documents. It also offered a new way of making XML visible. Before the release of E4X, XML was always accessed at an object level. E4X instead treated XML as a primitive. This implied faster access, better support, and acceptance as a building block of a program.

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.

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

References

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