Механизм ECMAScript - это программа, которая выполняет исходный код, написанный в версии стандарта языка ECMAScript , например, JavaScript .
Это механизмы ECMAScript нового поколения для веб-браузеров, все из которых реализуют своевременную компиляцию (JIT) или варианты этой идеи. Преимущества в производительности для своевременной компиляции делают ее более подходящей для веб-приложений, написанных на JavaScript .
- Carakan : двигатель с JavaScript , разработанный Opera Software ASA , [1] включена в 10,50 [2] релизе Opera веб - браузер, до перехода на V8 с Opera 15 (не выпущен в 2013 году). [3] [4]
- Chakra (JScript9) : движок JScript, используемый в Internet Explorer . Впервые он был представлен на MIX 10 как часть предварительной версии платформы Internet Explorer 9. [5]
- Чакра : движок JavaScript, используемый в Microsoft Edge . [6]
- SpiderMonkey : движок JavaScript в приложениях Mozilla Gecko , включая Firefox . В настоящее время движок включает в себя компилятор IonMonkey и модуль оптимизации OdinMonkey, ранее включал компилятор TraceMonkey (первый javascript JIT) и JägerMonkey.
- JavaScriptCore : интерпретатор JavaScript и JIT, изначально унаследованный от KJS . Он используется в проекте WebKit и таких приложениях, как Safari . Также известен как Nitro, SquirrelFish и SquirrelFish Extreme. [7]
- JScript .NET : механизм JScript .NET Framework, используемый в ASP.NET на основе Common Language Runtime и COM Interop . К сожалению, поддержка .NET Core и CoreCLR была прекращена, поэтому его будущее выглядит сомнительным для ASP.NET Core .
- Тамарин : движок ActionScript и ECMAScript, используемый в Adobe Flash .
- V8 : движок JavaScript, используемый в Google Chrome , Node.js , Deno и V8.NET.
- Nashorn : движок JavaScript, используемый в Oracle Java Development Kit (JDK), начиная с версии 8. [8]
- iv, ECMAScript Lexer / Parser / Interpreter / VM / method JIT, написанный на C ++ [9]
- CL-JavaScript: Может компилировать JavaScript на машинный язык в реализациях Common Lisp, которые компилируются на машинный язык [10]
- BESEN: полная реализация JIT-компиляции пятого издания ECMAScript, написанная на Object Pascal. [11]
- Hermes: разработан Facebook для мобильных приложений React Native [12]
Следующие механизмы используют интерпретаторы времени выполнения, которые не компилируются в машинный код и обычно работают медленнее:
- Continuum: [13] самоинтерпретатор , который поддерживает старые проекты спецификации ECMAScript 2015. [14] Уникальным является то, что движок реализован в ECMAScript 3, что позволило запускать ES2015 в таких старых браузерах, как IE6. [15]
- Futhark : движок ECMAScript веб-браузера Opera версий с 9.50 по 10.10.
- InScript : устаревшая проприетарная библиотека, используемая для iCab 2 и 3.
- JScript : движок, который используется в Internet Explorer для версий до IE9, и один компонент механизма компоновки Trident .
- KJS : движок, используемый в Konqueror , и один компонент KHTML , предшественника JavaScriptCore.
- Линейное письмо B : Механизм ECMAScript веб-браузера Opera версий с 7.0 по 9.50, исключая.
- Нарцисс : JavaScript, реализованный в JavaScript ( мета-круговой оценщик ), предназначенный для работы в другом движке JavaScript, только теоретического и образовательного характера.
- JS-Interpreter Легкий интерпретатор JavaScript, реализованный на JavaScript с пошаговым выполнением.
- QtScript : изначально разработан Trolltech, теперь принадлежит The Qt Company . Он обеспечивает интеграцию QObject с JavaScriptCore.
- V4 (QJSEngine): новый движок ECMAScript от Qt, поддерживающий QML и QtQuick. Совместимость с ES6 и активная разработка в The Qt Company . V4 компилируется JIT. [16]
- Rhino : один из нескольких движков JavaScript от Mozilla , использующий платформу Java .
- YAJI: Механизм ECMAScript [17], основанный на реализации FESI [18] Жан-Марком Лугрином в 1999 году с использованием платформы Java , в настоящее время разрабатываемой для поддержки последних стандартов (спецификация ECMAScript 262, v5.1). [19]
- Duktape : компактный, легко встраиваемый движок Ecmascript E5 / E5.1. [20]
- XS JavaScript Engine: совместимый с ECMAScript 2020 [21] движок для микроконтроллеров с ограниченными ресурсами. [22] XS поддерживается Moddable как часть Moddable SDK и ранее был частью платформы Kinoma . [23]
- Jsish : интерпретатор подмножества ES5.1 со встроенной поддержкой SQLite, JSON, WebSocket и ZVFS. [24]
- Websocket.js: встраиваемый движок Javascript с поддержкой HTTP / Websocket. [25]
- Espruino : очень компактный интерпретатор специально для микроконтроллеров . Может работать менее чем в 8 КБ ОЗУ при выполнении из исходного кода (а не из байт-кода ).
- MuJS: легкая библиотека интерпретатора ECMAScript, предназначенная для встраивания в другое программное обеспечение с целью расширения их возможностей создания сценариев. Первоначально разрабатывался для MuPDF . [26]
- mJS: движок JavaScript с ограничениями. Используется для Интернета вещей (IoT).
- Tiny-JS: минимальный интерпретатор JavaScript, написанный на C ++.
- JerryScript: легкий движок JavaScript от Samsung для микроконтроллеров с ОЗУ менее 64 КБ.
- GNU Guile имеет интерпретатор ECMAScript начиная с версии 1.9.
- njs: легкий интерпретатор JavaScript, оптимизированный для написания сценариев веб-сервера и самого быстрого создания контекста виртуальных машин; используется в nginx . [27]
- QuickJS : легкий интерпретатор ECMAScript 6 от Фабриса Белларда и Чарли Гордона.
- engine262: движок JavaScript, написанный на JavaScript для разработки и исследования. Он в основном используется для проверки спецификации ECMAScript.
- graaljs: совместимый с ECMAScript движок JavaScript для GraalVM, который поддерживает взаимодействие языков и может также выполнять приложения Node.js.
Смотрите также
- Сравнение движков ECMAScript
- Движок JavaScript
- Сравнение программного обеспечения для виртуализации приложений
Рекомендации
- ^ "Архивная копия" . Архивировано из оригинала на 2009-05-31 . Проверено 9 июля 2009 .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ https://web.archive.org/web/20060303160759/http://my.opera.com/desktopteam/blog/
- ^ http://my.opera.com/ODIN/blog/300-million-users-and-move-to-webkit
- ^ http://my.opera.com/ODIN/blog/opera-14-for-android-is-out
- ^ Часто задаваемые вопросы , Microsoft, 13 марта 2010 г., заархивировано из оригинала 22 марта 2010 г. , получено 18 марта 2010 г.
- ^ «Таргетинг Edge против устаревших движков в API JsRT» . Проверено 10 сентября 2015 года .
- ^ http://trac.webkit.org/wiki/JavaScriptCore
- ^ http://www.oracle.com/technetwork/articles/java/jf14-nashorn-2126515.html
- ^ «Созвездие / iv» . Проверено 15 ноября 2015 .
- ^ «CL-JavaScript» . Проверено 14 сентября 2018 .
- ^ https://github.com/BeRo1985/besen
- ^ «Используя Гермес» . Facebook . Проверено 9 апреля 2021 года .
- ^ «Виртуальная машина ES6, построенная на JavaScript» . Архивировано из оригинала на 2012-12-03 . Проверено 1 декабря 2012 .
- ^ http://www.ecma-international.org/ecma-262/6.0/
- ^ «Континуум - виртуальная машина JavaScript, построенная на JavaScript» . Github . Проверено 1 декабря 2012 .
- ^ "V4 - Qt Wiki" . wiki.qt.io . Проверено 24 апреля 2021 .
- ^ «ЯДЗИ: еще один интерпретатор JavaScript» . Код Google . Google . Проверено 31 января 2012 .
- ^ «ФЭСИ» . Сентября 2003 года Архивировано из оригинала на 2012-09-06 . Проверено 6 августа 2012 .
- ^ «Спецификация языка ECMAScript, версия ECMA-262 5.1» (PDF) . Ecma International. Июнь 2011. Архивировано из оригинального (PDF) 12 апреля 2015 года . Проверено 31 января 2012 .
- ^ «Дуктапе» . Проверено 21 сентября 2013 .
- ^ https://github.com/Moddable-OpenSource/moddable/blob/public/documentation/xs/XS%20Conformance.md#results
- ^ https://www.moddable.com/faq.php#what-is-xs
- ^ https://www.moddable.com/XS7-TC-39
- ^ «Йсиш» . Проверено 30 апреля 2014 .
- ^ "Websocket.js" . Проверено 16 июля 2014 .
- ^ «MuJS» . Проверено 22 сентября 2014 .
- ^ «NGINX JavaScript в конфигурации вашего веб-сервера» . Проверено 30 октября 2018 .