Jump to content

JavaScript engine

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by סוס פוני (talk | contribs) at 01:29, 22 November 2023. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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.[1]

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.

The use of JavaScript engines is not limited to browsers. For example, the V8 engine (from Chromium and Google Chrome browsers) is the engine of the Node.js and Deno runtime systems, and JavaScriptCore (from Safari) is the engine of the bun runtime.

Since ECMAScript is the standardized specification of JavaScript, ECMAScript engine is another name for these engines. With the advent of WebAssembly, some engines can also execute this code in the same sandbox as regular JavaScript code.

History

The first JavaScript engine was created by Brendan Eich in 1995 for the Netscape Navigator web browser. It was a rudimentary interpreter for the nascent language Eich invented. (This evolved into the SpiderMonkey engine, still used by the Firefox browser.)

The first modern JavaScript engine was V8, created by Google for its Chrome browser. V8 debuted as part of Chrome in 2008, and its performance was much better than any prior engine.[2][3] The key innovation was just-in-time compilation, which can significantly improve execution times.

Other browser vendors needed to overhaul their interpreters to compete.[4] Apple developed the Nitro engine for its Safari browser, which had 30% better performance than its predecessor.[5] Mozilla leveraged portions of Nitro to improve its own SpiderMonkey engine.[6]

Since 2017, these engines have added support for WebAssembly. This enables the use of pre-compiled executables for performance-critical portions of page scripts.

Notable engines

References

  1. ^ Looper, Jen (2015-09-21). "A Guide to JavaScript Engines for Idiots". Telerik Developer Network. Archived from the original on 2018-12-08. Retrieved 2018-12-08.
  2. ^ "Big browser comparison test: Internet Explorer vs. Firefox, Opera, Safari and Chrome". PC Games Hardware. Computec Media AG. Archived from the original on 2012-05-02. Retrieved 2010-06-28.
  3. ^ "Lifehacker Speed Tests: Safari 4, Chrome 2". Lifehacker. Retrieved 2010-06-28.
  4. ^ "Mozilla asks, 'Are we fast yet?'". Wired. Retrieved 18 January 2019.
  5. ^ Safari 5 Released
  6. ^ Shankland, Stephen (2010-03-02). "Opera 10.5 brings new JavaScript engine". CNET. CBS Interactive. Archived from the original on 2013-10-03. Retrieved 2012-01-30.
  7. ^ Stachowiak, Maciej (November 9, 2008). "Companies and Organizations that have contributed to WebKit". WebKit Wiki. Retrieved April 13, 2019.
  8. ^ Belfiore, Joe (2020-01-15), New year, new browser – The new Microsoft Edge is out of preview and now available for download, Microsoft
  9. ^ "Microsoft Edge and Chromium Open Source: Our Intent". Microsoft Edge Team. 6 December 2018. Retrieved 8 December 2018.