JavaScriptエンジン

JavaScriptエンジン (英語: JavaScript engine) は、JavaScriptのコードを実行するコンピュータプログラムである。初期のJavaScriptエンジンは単なるインタプリタであったが、近年の全てのエンジンは、性能の向上のためにJITコンパイルを利用している。 JavaScriptエンジンは通常、ウェブブラウザのベンダーによって開発されており、全ての主要なブラウザはそのエンジンを搭載している。ブラウザでは、JavaScriptエンジンはDOMを介してレンダリングエンジンと連携して実行される。 JavaScriptエンジンの使用はブラウザに限定されたものではなく、例えば、V8は一般的なNode.jsランタイムシステムのコアコンポーネントである。 ECMAScriptはJavaScriptの標準仕様なので、ECMAScriptエンジン (英語: ECMAScript engine) はJavaScriptエンジンの別名である。 最初のJavaScriptエンジンはNetscape Navigator向けにブレンダン・アイクによって1995年に作成された。これは彼によって新たに開発された言語であるJavaScriptのための初歩的なインタプリタであった。 最初のモダンなJavaScriptエンジンは、GoogleがGoogle Chrome (Chromium) のために作成したV8である。V8は2008年にChromeの一部として登場し、それ以前のどのエンジンよりも遥かに優れた性能であった。V8はJITコンパイルを採用したことが革新的であり、これによって実行時間を大幅に改善することができる。 V8との競争のために、他のブラウザベンダーはインタプリタをオーバーホールする必要があった。AppleはSafari向けにNitroを開発した。このエンジンは以前のエンジンより30%優れた性能を示した。MozillaはNitroを部分的に活用して、SpiderMonkeyを改良した。OperaはインタプリタをCarakanに置き換えた。このエンジンは場合によっては従来より2倍高速であった。 2017年から、主要ブラウザがWebAssemblyに対応するようになり、性能が重要となる部分で事前にコンパイルされた実行ファイルを使用できるようになった。JavaScriptエンジンは通常のJavaScriptのコードと同じサンドボックスでWebAssemblyのコードを実行する。 V8 - Googleによって開発された最も使用されているJavaScriptエンジンで、Google ChromeなどのChromiumベースのブラウザで使用されている。また、CEF（英語版）やElectron (ソフトウェア)などのChromiumが組み込まれているソフトウェアフレームワークによって構築されているアプリケーションでも使用されている。その他の使用例としては、Node.jsランタイムシステムが含まれている。 SpiderMonkey - MozillaによってFirefoxと派生物向けに開発された。GNOME Shellでの拡張機能の対応のためにも使用されている。 JavaScriptCore - AppleのSafari向けのエンジンであり、その他のWebKitベースのブラウザでも使用されている。KDEのKJSがベースとなっている。 Chakra - Microsoft Edgeのエンジンであり、Internet Explorerの同名のエンジンからフォークした。MicrosoftはEdgeをChromiumベースとして再開発しており、これによりV8を使用するように変更される。Internet Explorerでは引き続きChakraが使用される。 Hermes - Facebookが開発したエンジンであり、React Nativeを使用するAndroidアプリ向けに最適化されている。 [脚注の使い方] ^ このエンジンはSpiderMonkey呼ばれており、改良された上でFirefoxでも引き続き使用されている。 ^ Looper, Jen (2015年9月21日). “A Guide to JavaScript Engines for Idiots”. Telerik Developer Network. 2019年1月16日時点のオリジナルよりアーカイブ。2016年3月17日閲覧。 ^ Shankland, Stephen (2008年9月2日). “Speed test: Google Chrome beats Firefox, IE, Safari”. CNET Business Tech. CBS Interactive. 2019年11月9日閲覧。 ^ “Big browser comparison test: Internet Explorer vs. Firefox, Opera, Safari and Chrome”. PC Games Hardware. Computec Media AG. 2019年11月9日閲覧。 ^ “Lifehacker Speed Tests: Safari 4, Chrome 2”. Lifehacker. 2019年11月9日閲覧。 ^ “Mozilla asks, 'Are we fast yet?'”. Wired. 2019年1月18日閲覧。 ^ “Apple Releases Safari 5”. Cision PR Newswire (2010年6月7日). 2019年11月9日閲覧。 ^ Shankland, Stephen (2010年3月2日). “Opera 10.5 brings new JavaScript engine”. CNET. CBS Interactive. 2019年11月9日閲覧。 ^ Shankland, Stephen (2009年2月5日). “Need for speed spurs Opera JavaScript overhaul”. CNET. CBS Interactive. 2019年11月9日閲覧。 ^ Stachowiak, Maciej (2008年11月9日). “Companies and Organizations that have contributed to WebKit”. WebKit Wiki. 2019年4月13日閲覧。 ^ Belfiore, Joe (2018-12-06), Microsoft Edge: Making the web better through more open source collaboration, Microsoft, https://blogs.windows.com/windowsexperience/2018/12/06/microsoft-edge-making-the-web-better-through-more-open-source-collaboration  ^ “Microsoft Edge and Chromium Open Source: Our Intent”. Microsoft Edge Team (2018年12月6日). 2018年12月8日閲覧。 ^ Tung, Liam (2019-07-12), Facebook just released this new open source JavaScript engine, ZDNet, https://www.zdnet.com/article/facebook-just-released-a-new-open-source-javascript-engine/