JavaScript mühərriki — JavaScript kodunu icra edən proqram komponenti. İlk JavaScript mühərrikləri sadəcə interpretator idi, lakin bütün müvafiq müasir mühərriklər təkmilləşdirilmiş performans üçün JIT kompilyasiyasından istifadə edir.[1]
JavaScript mühərrikləri adətən veb-brauzer tərtibatçıları tərəfindən hazırlanır və hər bir brauzerdə mövcud olur. Brauzerdə JavaScript mühərriki Document Object Model vasitəsilə render mühərriki ilə birgə işləyir.
JavaScript mühərriklərinin istifadəsi brauzerlərlə məhdudlaşmır. Məsələn, V8 mühərriki Node.js və Deno iş mühiti sistemlərinin əsas komponentidir.
ECMAScript JavaScript-in standartlaşdırılmış spesifikasiyası olduğundan, ECMAScript mühərriki bu mühərriklər üçün başqa bir addır. WebAssembly-in gəlişi ilə bəzi mühərriklər bu kodu adi JavaScript kodu ilə eyni sandbox-da icra edə bilər.
İlk JavaScript mühərriki Brendan Eyx tərəfindən 1995-ci ildə Netscape Navigator veb-brauzeri üçün yaradılmışdır. Bu, Eyxin icad etdiyi yeni yaranan dil üçün ilkin interpretator idi. Daha sonra bu, hələ də Firefox brauzeri tərəfindən istifadə edilən SpiderMonkey mühərrikinə çevrildi.
İlk müasir JavaScript mühərriki Google tərəfindən Chrome brauzeri üçün yaradılmış V8 idi. V8 2008-ci ildə Chrome-un bir hissəsi kimi debüt etdi və onun performansı mövcud mühərriklərdən daha yaxşı idi.[2][3] Əsas yenilik icra müddətlərini əhəmiyyətli dərəcədə yaxşılaşdıra bilən JIT kompilyasiyası idi.
Digər brauzerlər rəqabət aparmaq üçün interpretatorlarını əsaslı inkişaf etdirməli idilər.[4] Apple, 30% daha yaxşı performansa malik olan Safari brauzeri üçün Nitro mühərrikini inkişaf etdirdi.[5] Mozilla öz SpiderMonkey mühərrikini təkmilləşdirmək üçün Nitro-nun hissələrini istifadə edirdi.[6]
2017-ci ildən bu mühərriklər WebAssembly üçün dəstək əlavə edib. Bu, səhifə skriptlərinin performans baxımından kritik hissələri üçün əvvəlcədən tərtib edilmiş icra sənədlərindən istifadə etməyə imkan verir.