HOME
ListMoto - JavaScript Engine


--- Advertisement ---



See also

ECMAScript

v t e

A JavaScript
JavaScript
engine is a program or interpreter which executes JavaScript
JavaScript
code. A JavaScript
JavaScript
engine may be a traditional interpreter, or it may utilize just-in-time compilation to bytecode in some manner.[1] Although there are several uses for a JavaScript
JavaScript
engine, it is most commonly used in Web browsers.[2][3][unreliable source?]

Contents

1 History 2 Performance evolution

2.1 The JavaScript
JavaScript
engine race: 2008 and 2009 2.2 The JavaScript
JavaScript
engine race: 2010 2.3 2011

3 JavaScript
JavaScript
engines

3.1 Active projects 3.2 Inactive projects

4 Implementations 5 See also 6 References 7 External links

History[edit] Before the second browser war in 2008-2009, JavaScript
JavaScript
engines (also termed JavaScript
JavaScript
interpreter or JavaScript
JavaScript
implementation) were simply interpreters that read and executed JavaScript
JavaScript
source code. The first JavaScript
JavaScript
engine was created by Brendan Eich
Brendan Eich
at Netscape Communications Corporation for the Netscape Navigator
Netscape Navigator
web browser. The engine, code named SpiderMonkey, is implemented in C++. It has since been updated (in JavaScript
JavaScript
1.5) to conform to ECMA-262 Edition 3. The Rhino engine, created primarily by Norris Boyd (also at Netscape) is a JavaScript
JavaScript
implementation in Java. Like SpiderMonkey, Rhino is ECMA-262 Edition 3 compliant. Applications of the technology include Apple Safari 4's Nitro, Google Chrome's V8 and Mozilla Firefox
Firefox
3.5's TraceMonkey. By far the most common host environment for JavaScript
JavaScript
is a web browser. Web browsers
Web browsers
typically use the public application programming interface (API) to create "host objects" responsible for reflecting the Document Object Model
Document Object Model
(DOM) into JavaScript. Performance evolution[edit]

"..previously behind-the-scenes programming technology called JavaScript
JavaScript
is getting new visibility .. "

—CNET[3]

A typical major browser has a graphical engine and an independent JavaScript
JavaScript
engine, which allows for easier testing, reimplementation or use in other projects. For example, Carakan is used with Presto; Nitro with WebKit; SpiderMonkey with Gecko; KJS with KHTML; Rhino by default has no layout engine. Other combinations are possible, for example, V8 with Blink in Google Chrome. The JavaScript
JavaScript
engine gives developers access to functionality (networking, DOM handling, external events, HTML5 video, canvas and data storage) needed to control the web browser. The JavaScript
JavaScript
engine race: 2008 and 2009[edit] During this period there was a race by browser developers to develop even faster JavaScript
JavaScript
engines in response to the growing use of JavaScript
JavaScript
frameworks and Ajax, as the user's experience is directly influenced by the browser's ability to execute the site's client-side code. Launched on 2 September 2008, Google Chrome
Google Chrome
was praised for its JavaScript
JavaScript
performance, but other browsers soon received new JavaScript
JavaScript
engines which were faster. Later, Chrome won in the races of better performance. Chrome's strength is its application performance and JavaScript
JavaScript
processing speed, both of which were independently verified by multiple websites to be the fastest amongst the major browsers of its time.[4][5][6] With the advent of WebKit's Squirrelfish and Mozilla's TraceMonkey JavaScript
JavaScript
virtual machines, Chrome's JavaScript
JavaScript
execution performance had been found to be slower.[7][8][9][10] Google responded with the Danish-developed V8 which boosted JavaScript
JavaScript
performance in Google Chrome
Google Chrome
2. On June 2, 2008, the WebKit development team announced SquirrelFish,[11] a then-new JavaScript
JavaScript
engine that vastly improves Safari's speed at interpreting scripts.[12] The engine was one of the new features in Safari 4, released for developers on June 11, 2008; the final JavaScript
JavaScript
engine was called Nitro. In January 2009, the engine then known as SquirrelFish Extreme (SFX) was enabled for Mac OS X on x86-64 architectures as it passes all tests on that platform by Apple Inc.[13] Released June 30, 2009, Firefox 3.5
Firefox 3.5
includes the optimization technique that offered "performance improvements ranging between 20 and 40 times faster" compared to Firefox 3
Firefox 3
in some cases.[14] The JavaScript
JavaScript
engine race: 2010[edit] In early 2010, the Norwegian Opera browser replaced the aging Futhark with the faster Carakan, which was 2.5 times faster in early testing.[3] Others in the race, at this time, include Apple's Safari's Nitro (the engine formerly known as SquirrelFish) and Firefox's new JägerMonkey (a "cross-child of Nitro with the older TraceMonkey Engine").[2] Microsoft lagged behind, lacking a dedicated JavaScript engine and being the slowest of the major browsers. Although by mid-2010, Microsoft held out the carrot of Chakra in then unreleased Internet Explorer
Internet Explorer
9.[2] JägerMonkey began testing in the publicly released Firefox 4.0
Firefox 4.0
beta in Summer 2010.[15] Safari 5, also released in Summer 2010, featured 30 percent faster JavaScript
JavaScript
performance than Safari 4
Safari 4
(using the Nitro engine).[16] 2011[edit] In 2011, Firefox 4
Firefox 4
and Internet Explorer 9
Internet Explorer 9
were released with their JavaScript
JavaScript
software.[citation needed] JavaScript
JavaScript
engines[edit] Active projects[edit]

Rhino, managed by the Mozilla Foundation, open source, developed entirely in Java SpiderMonkey, the first JavaScript
JavaScript
engine, which powered Netscape Navigator and today powers Firefox V8 - open source, developed by Google in Denmark, part of Google Chrome JavaScriptCore
JavaScriptCore
- open source, marketed as Nitro and developed by Apple for Safari KJS - KDE's ECMAScript/ JavaScript
JavaScript
engine originally developed by Harri Porten for the KDE project's Konqueror
Konqueror
web browser Chakra (JScript9), for Internet Explorer[17][18] Chakra (JavaScript) for Microsoft Edge Nashorn, open source as part of OpenJDK, written by Oracle Java Languages and Tool Group[19] Juce, a C++
C++
application framework, contains a custom embedded interpreter using part of JavaScript's syntax. JerryScript, is an ultra-lightweight JavaScript
JavaScript
engine for the Internet of Things. Jsish, a JavaScript
JavaScript
engine with type-checking modelled after Tcl.

Inactive projects[edit]

Tamarin, by Adobe Labs Carakan, by Opera Software, used by Opera web browser version 10.50 until switching to V8 with Opera 14 (released in 2013).[20][21] Futhark, by Opera Software, used by Opera web browser versions 9.50 to 10.10 until replaced by Carakan in Opera 10.50 (released March 2010). Narcissus, open source, written by Brendan Eich, who also wrote SpiderMonkey

Implementations[edit] See also: List of ECMAScript engines and Comparison of layout engines (ECMAScript) JavaScript
JavaScript
is a dialect of ECMAScript, which is supported in many applications, especially web browsers. Dialects sometimes include extensions to the language, or to the standard library and related application programming interfaces (API) such as the World Wide Web Consortium (W3C) specified Document Object Model
Document Object Model
(DOM). This means that an application written in one dialect may be incompatible with another, unless the applications are written to use only a common subset of supported features and APIs ("core"). A dialect and an implementation are distinct: a dialect of a language is a significant variant of that language, while an implementation of a language (or dialect) executes a program written in that language (or dialect).

Application Dialect and latest version ECMAScript edition

Google Chrome, the V8 engine JavaScript ECMA-262, edition 6

Mozilla Firefox, the Gecko layout engine, SpiderMonkey, and Rhino JavaScript
JavaScript
1.8.5 ECMA-262, edition 6

Safari, the Nitro engine JavaScript ECMA-262, edition 6

Microsoft Edge, the Chakra engine JavaScript ECMA-262, edition 6

Opera, the Carakan engine (until Opera 2015) ECMAScript with some JavaScript
JavaScript
1.5 and JScript extensions[22] ECMA-262, edition 5.1

KHTML
KHTML
layout engine, KDE's Konqueror JavaScript
JavaScript
1.5 ECMA-262, edition 3

Adobe Acrobat JavaScript
JavaScript
1.5 ECMA-262, edition 3

OpenLaszlo JavaScript
JavaScript
1.4 ECMA-262, edition 3

Max/MSP JavaScript
JavaScript
1.5 ECMA-262, edition 3

ANT Galio 3 JavaScript
JavaScript
1.5 with RMAI extensions ECMA-262, edition 3

See also[edit]

Browser speed test

References[edit]

^ Looper, Jen (2015-09-21). "A Guide to JavaScript
JavaScript
Engines for Idiots". Telerik
Telerik
Developer Network. Retrieved 2016-03-17.  ^ a b c Shankland, Stephen (2010-03-02). "Opera 10.5 brings new JavaScript
JavaScript
engine". CNET. CBS Interactive. Retrieved 2012-01-30.  ^ a b c Shankland, Stephen (February 5, 2009). "Need for speed spurs Opera JavaScript
JavaScript
overhaul". CNET. CBS Interactive.  ^ Shankland, Stephen (2008-09-02). "Speed test: Google Chrome
Google Chrome
beats Firefox, IE, Safari". CNET
CNET
Business Tech. CBS Interactive. Retrieved 2010-06-28.  ^ "Big browser comparison test: Internet Explorer
Internet Explorer
vs. Firefox, Opera, Safari and Chrome". PC Games Hardware. Computec Media AG. Retrieved 2010-06-28.  ^ " Lifehacker
Lifehacker
Speed Tests: Safari 4, Chrome 2". Lifehacker. Retrieved 2010-06-28.  ^ Shankland, Stephen (2008-10-31). "Third Chrome beta another notch faster". CNET. CBS Interactive. Retrieved 2010-06-28.  ^ Shankland, Stephen (2008-09-19). "Step aside, Chrome, for Squirrelfish Extreme". CNET. CBS Interactive. Retrieved 2010-06-29.  ^ "SquirrelFish Extreme: Fastest JavaScript
JavaScript
Engine Yet". satine.org. Retrieved 2010-06-29.  ^ Shankland, Stephen (2008-09-03). " Firefox
Firefox
counters Google's browser speed test". CNET
CNET
Business Tech. CBS Interactive. Retrieved 2010-06-29.  ^ Garen, Geoffrey (2008-06-02). "Announcing SquirrelFish". Retrieved 2008-06-11.  ^ Lipskas, Vygantas (2008-06-11). "Apple Safari 4". Retrieved 2008-06-11.  ^ "Changeset 40439 – WebKit". Trac.webkit.org. Retrieved 2016-05-08.  ^ Ryan Paul (2008-08-22). " Firefox
Firefox
to get massive JavaScript performance boost". arstechnica.com. Ars Technica © 2010 Condé Nast Digital. Retrieved 2010-06-28.  ^ " Firefox 4
Firefox 4
Vision: fast, powerful, and empowering".  ^ Safari 5
Safari 5
Released ^ Marius Oiaga (2010-03-20), " Internet Explorer 9
Internet Explorer 9
Beta Next – New IE9 Builds Every 8 Weeks", softpedia.com, SoftNews NET SRL, retrieved 2010-06-28  ^ "Targeting Edge vs. Legacy Engines in JsRT APIs". Microsoft.com. Retrieved 2015-09-10.  ^ J. Laskey (2011-07-19), Adventures in JSR-292 or How To Be A Duck Without Really Trying (PDF), Oracle  ^ "Dev.Opera — Blog". My.opera.com. Retrieved 2016-05-08.  ^ "Dev.Opera — Blog". My.opera.com. Retrieved 2016-05-08.  ^ "Web specifications support in Opera Presto". Opera.com. Opera Software ASA. Retrieved 2010-06-28. 

External links[edit]

Are We Fast Yet? - A daily comparison of bleeding-edge JavaScript engines for Mozilla Firefox, Google Chrome
Google Chrome
and Apple Safari. Peacekeeper – Browser speed test SunSpider – Online JavaScript
JavaScript
speed test Speed-Battle – Online JavaScript
JavaScript
speed test Descripter – A different open source JavaScript
JavaScript
engine on Java platform

v t e

ECMAScript

Dialects

ActionScript Caja JavaScript

engines asm.js

JScript JScript .NET QtScript TypeScript WMLScript

Engines (comparison)

Carakan Futhark InScript JavaScriptCore JScript KJS Linear B Narcissus QtScript Rhino SpiderMonkey

TraceMonkey JägerMonkey

Tamarin V8 ChakraCore

Chakra

JScript .NET Nashorn

Frameworks

Client-side

Ample SDK Chaplin.js Dojo Echo Ext JS Google Web Toolkit jQuery Lively Kernel midori MochiKit MooTools Prototype Pyjs qooxdoo Rialto Rico script.aculo.us SmartClient SproutCore Spry Wakanda Framework

Server-side

AppJet Jaxer Node.js WakandaDB

Multiple

Cappuccino

Objective-J

PureMVC

Libraries

Backbone.js SWFObject SWFAddress Underscore.js

People

Brendan Eich Douglas Crockford John Resig Scott Isaacs

Other

DHTML Ecma International JSDoc JSGI JSHint JSLint JSON JSSS Sputnik SunSpider Asynchronous module definition CommonJS

Lists JavaScript
JavaScript
libraries Ajax frameworks Comparisons JavaScript
JavaScript
frameworks server-side JavaScript

v t e

JavaScript

Code analysis

JSHint JSLint

Transcompilers

CoffeeScript Dart Emscripten Google Closure Compiler Google Web Toolkit Morfik TypeScript AtScript Opa Haxe ClojureScript

Concepts

Ajax Client-side Dynamic HTML JavaScript
JavaScript
library JavaScript
JavaScript
syntax Unobtrusive JavaScript

Debuggers

Firebug Komodo IDE Microsoft Script Debugger Microsoft Script Editor Opera Dragonfly Venkman Web Inspector

Doc generators

JSDoc

Editors (comparison)

Ace

Cloud9 IDE

Atom CodeMirror

Light Table Brackets

Koding Orion Visual Studio

Visual Studio Express

Visual Studio Code Visual Studio Team Services

Engines

Comparison of layout engines List of ECMAScript engines List of JavaScript
JavaScript
engines

Frameworks

Comparison of JavaScript
JavaScript
frameworks List of JavaScript
JavaScript
libraries

Related technologies

Cascading Style Sheets Document Object Model HTML JSON WebAssembly

Package managers

npm NuGet

Server-side

Active Server Pages CommonJS JSGI Node.js Wakanda

Unit testing

Jasmine Mocha QUnit List of JavaScript
JavaScript
unit testing frameworks

People

Douglas Crockford Brend

.