JavaScriptエンジン (英語: JavaScript engine) は、JavaScriptのコードを実行するコンピュータプログラムである。初期のJavaScriptエンジンは単なるインタプリタであったが、近年の全てのエンジンは、性能の向上のためにJITコンパイルを利用している[1]。
JavaScriptエンジンは通常、ウェブブラウザのベンダーによって開発されており、全ての主要なブラウザはそのエンジンを搭載している。ブラウザでは、JavaScriptエンジンはDOMを介してレンダリングエンジンと連携して実行される。
JavaScriptエンジンの使用はブラウザに限定されたものではなく、例えば、V8は一般的なNode.jsランタイムシステムのコアコンポーネントとして使用されている。
ECMAScriptはJavaScriptの標準仕様で、ECMAScriptエンジン (英語: ECMAScript engine) はJavaScriptエンジンの別名として使われる。
最初のJavaScriptエンジンはNetscape Navigator向けにブレンダン・アイクによって1995年に作成された。これは彼によって新たに開発された言語であるJavaScriptのための初歩的なインタプリタであった[注釈 1]。
最初のモダンなJavaScriptエンジンは、GoogleがGoogle Chrome (Chromium) のために作成したV8である。V8は2008年にChromeの一部として登場し、それ以前のどのエンジンよりも遥かに優れた性能であった[2][3][4]。V8はJITコンパイルを採用したことが革新的であり、これによって実行時間を大幅に改善することができる。
V8との競争のために、他のブラウザベンダーはインタプリタの性能を改善する必要があった[5]。AppleはSafari向けにNitroを開発した。このエンジンは以前のエンジンより30%優れた性能を示した[6]。MozillaはNitroを部分的に活用して、SpiderMonkeyを改良した[7]。OperaはインタプリタをCarakanに置き換えた。このエンジンは場合によっては従来より2倍高速であった[8]。
2017年から、主要ブラウザがWebAssemblyに対応するようになると、性能が重要となる部分で事前にコンパイルされた実行ファイルを使用できるようになった。JavaScriptエンジンは通常のJavaScriptのコードと同じサンドボックスでWebAssemblyのコードを実行する。