JavaScriptエンジン () は、JavaScriptのコードを実行するコンピュータプログラム、ソフトウェアエンジンである。初期のJavaScriptエンジンは単なるインタプリタであったが、近年の全てのエンジンは、性能の向上のためにJITコンパイルを利用している。
JavaScriptエンジンは通常、ウェブブラウザのベンダーによって開発されており、全ての主要なブラウザはそのエンジンを搭載している。ブラウザでは、JavaScriptエンジンはDOMを介してレンダリングエンジンと連携して実行される。
JavaScriptエンジンの使用はブラウザに限定されたものではなく、例えば、V8は一般的なNode.jsランタイムシステムのコアコンポーネントとして使用されている。
ECMAScriptはJavaScriptの標準仕様で、ECMAScriptエンジン () は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アプリ向けに最適化されている。
脚注
注釈
出典