Before the second browser war in 2008-2009, JavaScript engines (also termed JavaScript interpreter or JavaScript implementation) were simply interpreters that read and executed JavaScriptsource code.

The first JavaScript engine was created by Brendan Eich at Netscape Communications Corporation for the Netscape Navigator web browser. The engine, code named SpiderMonkey, is implemented in C++. It has since been updated (in JavaScript 1.5) to conform to ECMA-262 Edition 3. The Rhino engine, created primarily by Norris Boyd (also at Netscape) is a 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 3.5's TraceMonkey.

A typical major browser has a graphical engine and an independent 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 engine gives developers access to functionality (networking, DOM handling, external events, HTML5 video, canvas and data storage) needed to control the web browser.

During this period there was a race by browser developers to develop even faster JavaScript engines in response to the growing use of 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. In 2008, Google Chrome was praised for its JavaScript performance, but other browsers soon received new JavaScript engines which were faster. Later, Chrome won in the races of better performance. Chrome's strength is its application performance and 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 virtual machines, Chrome's JavaScript execution performance has been found to be slower.[7][8][9][10] Google responded with the Danish-developed V8 which boosted JavaScript performance in Google Chrome 2.

On June 2, 2008, the WebKit development team announced SquirrelFish,[11] a then-new 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 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 includes the optimization technique that offered "performance improvements ranging between 20 and 40 times faster" compared to Firefox 3 in some cases.[14]

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 9.[2] JägerMonkey began testing in the publicly released Firefox 4.0 beta in Summer 2010.[15]Safari 5, also released in Summer 2010, featured 30 percent faster JavaScript performance than Safari 4 (using the Nitro engine).[16]

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).