JavaScript motoru,JavaScriptkodunu yürüten biryazılım bileşenidir . İlk JavaScriptmotorları yalnızcayorumlayıcılardı, ancak ilgili tüm modern motorlar ise gelişmiş performans içintam zamanında derlemeyi kullanır.[1]
JavaScript motorları genellikleweb tarayıcısı satan firmalar tarafından geliştirilir ve her büyük tarayıcıda bir tane Javascript motoru bulunur. Bir tarayıcıda, JavaScript motoruBelge Obje Modeli aracılığıylaişleme motoruyla uyum içinde çalışır.
JavaScript motorlarının kullanımları yalnızca tarayıcılar ile sınırlı değildir. Örneğin,V8 motoru,Node.js veDenoçalışma zamanı sistemlerinin temel bir bileşenidir.
ECMAScript, JavaScript'in standartlaştırılmış özelliği olduğundan, aynı zamanda bu motorlar içinECMAScript motoru adı da kullanılan başka bir diğer isimdir.WebAssembly'nin ortaya çıkmasıyla birlikte, bazı motorlar bu kodu normal JavaScript koduyla aynısanal alanda da çalıştırabilirler.
İlk JavaScript motoruBrendan Eich tarafından 1995 yılındaNetscape Navigatorweb tarayıcısı için oluşturuldu. Eich'in icat ettiği motor, yeni ortaya çıkan dil için ilkel birtercüman sayılırdı . (Bu daha sonrasındaFirefox tarayıcısı tarafından hâlâ kullanılanSpiderMonkey motoruna dönüşmüştür.)
İlk modern JavaScript motoru,Google tarafındanChrome tarayıcısı için oluşturulanV8 idi. V8, 2008'de Chrome'un bir parçası olarak piyasaya çıktı ve performansı önceki tüm motorlardan çok daha iyiydi.[2][3] En önemli yenilik, yürütme sürelerini önemli ölçüde iyileştirebilentam zamanında derlemeydi .
Diğer tarayıcı üreten firmaların rekabet edebilmek için yorumlayıcı motorlarını elden geçirmesi gerekiyordu.[4]Apple,Safari tarayıcısı için öncekinden %30 daha iyi bir performansa sahip olanNitro motorunu geliştirdi.[5]Mozilla ise kendi SpiderMonkey motorunu geliştirmek için Nitro'nun bazı kısımlarını kullandı.[6]
2017'den bu yana, bu motorların tamamındaWebAssembly için destek eklenmiştir. Bu, sayfa komut dosyalarının performans açısından kritik bölümlerinin önceden derlenmişyürütülebilir dosyaları kullanmasını sağlamaktadır.