A JavaScript engine is a software component that runs JavaScript for a host environment, usually a web browser. The browser interfaces between its objects, such as a the elements of a webpage or document being presented to a user, and scripts running in the JavaScript engine, which can access the outside objects through global objects instantiated by the browser.
There are several mainstream JavaScript implementations, including:
- Rhino - managed by the Mozilla Foundation, open source, developed entirely in Java
- SpiderMonkey - the first ever JavaScript engine, written in C by Brendan Eich at Netscape Communications. Later refined into TraceMonkey by the Mozilla Foundation.
- V8 - open source, developed by Google in Denmark, part of Google Chrome
- KJS - KDE's ECMAScript/JavaScript engine originally developed by Harri Porten for the Konqueror web browser
- Squirrelfish - open source, also known as JavaScriptCore, provides an engine for WebKit implementations, forked from KJS. Refined into Squirrelfish Extreme or "Nitro" by Apple featuring significant performance enhancements.
- Narcissus - a JavaScript engine implemented in JavaScript, open source, also written by Brendan Eich
- Tamarin - a JavaScript engine related to SpiderMonkey, developed by Adobe and used in Flash Player.
The Plum VoiceXML IVR Platform includes a version of the SpiderMonkey engine for running JavaScript code embedded in VoiceXML documents.