Движок JavaScript — это программный компонент , выполняющий код JavaScript . Первые движки JavaScript были просто интерпретаторами , но все современные движки используют JIT-компиляцию для повышения производительности. [1]
Механизмы JavaScript обычно разрабатываются поставщиками веб-браузеров , и они есть в каждом крупном браузере. В браузере механизм JavaScript работает совместно с механизмом рендеринга через объектную модель документа .
Использование движков JavaScript не ограничивается браузерами. Например, движок V8 является основным компонентом систем времени выполнения Node.js и Deno .
Поскольку ECMAScript — это стандартизированная спецификация JavaScript, механизм ECMAScript — это другое название этих движков. С появлением WebAssembly некоторые движки также могут выполнять этот код в той же песочнице , что и обычный код JavaScript.
Первый движок JavaScript был создан Бренданом Эйхом в 1995 году для веб-браузера Netscape Navigator . Это был элементарный переводчик зарождающегося языка, изобретенного Эйхом. (Этот движок эволюционировал в движок SpiderMonkey , который до сих пор используется браузером Firefox .)
Google дебютировал со своим браузером Chrome в 2008 году с движком JavaScript V8 , который был быстрее, чем у конкурентов. [2] [3] Ключевым нововведением стала JIT- компиляция , над которой Mozilla также работала для SpiderMonkey. [4] Из-за производительности V8 другим производителям браузеров пришлось переработать свои движки для JIT. [5] Apple разработала движок Nitro для своего браузера Safari , производительность которого на 30 % выше, чем у его предшественника. [6] Затем Mozilla использовала части Nitro для улучшения SpiderMonkey. [7]
С 2017 года в эти движки добавлена поддержка WebAssembly .