JavaScript engines are typically developed by
web browser vendors, and every major browser has one. In a browser, the JavaScript engine runs in concert with the
rendering engine via the
Document Object Model and
Web IDL bindings.[2] However, the use of JavaScript engines is not limited to browsers; for example, the
V8 engine is a core component of the
Node.jsruntime system.[3]
Since
ECMAScript is the standardized specification of JavaScript, ECMAScript engine is another name for these
implementations. With the advent of
WebAssembly, some engines can also execute this code in the same
sandbox as regular JavaScript code.[4][3]
Google debuted its
Chrome browser in 2008, with the
V8 JavaScript engine that was faster than its competition.[5][6] The key innovation was
just-in-time compilation (JIT), which
Mozilla had also been working on for SpiderMonkey.[7] Because of V8's performance, the other browser vendors needed to overhaul their engines for JIT.[8]Apple developed the
Nitro engine for its
Safari browser, which had 30% better performance than its predecessor.[9] Mozilla then leveraged portions of Nitro to improve SpiderMonkey.[10]
Since 2017, these engines have added support for
WebAssembly.[4]
JavaScriptCore is
Apple's engine for its
Safari browser. Other
WebKit-based browsers and the
Bun runtime system also use it.
KJS from
KDE was the starting point for its development.[11]
Chakra is the engine of the
Internet Explorer browser. It was also forked by
Microsoft for the original
Edge browser, but Edge was later rebuilt as a Chromium-based browser and thus now uses V8.[12][13]