ru.wikipedia.org

SpiderMonkey — Википедия

SpiderMonkey
Логотип программы SpiderMonkey
Тип Движок JavaScript
Автор Брендан Эйх
Разработчики Mozilla Foundation/Mozilla Corporation
Написана на C++, Си
Операционные системы Unix-подобная операционная система и Windows
Аппаратная платформа Кроссплатформенное программное обеспечение
Последняя версия 128.0 (16 июля 2024 года)
Тестовая версия
Репозиторий hg.mozilla.org/mozilla-c…
github.com/mozilla/gecko…
Лицензия MPL/GPL/LGPL
Сайт spidermonkey.dev
Логотип Викисклада Медиафайлы на Викискладе

SpiderMonkey — движок JavaScript с открытым исходным кодом, разрабатываемый Mozilla Foundation. Используется в браузере Mozilla Firefox. Первый в истории движок JavaScript[2].

SpiderMonkey был написан Бренданом Эйхом во время его работы в Netscape Communications, а позднее сделан открытым. В настоящее время SpiderMonkey поддерживается Mozilla Foundation.

История версий SpiderMonkey
Версия Дата выпуска Соответствующая версия ECMAScript Версия браузера Добавленная функциональность
1.0 март 1996 Netscape Navigator 2.0
1.1 август 1996 Netscape Navigator 3.0
1.2 июнь 1997 Netscape Navigator 4.0 — 4.05
1.3 октябрь 1998 ECMA-262 1st + 2nd edition Netscape Navigator 4.06-4.7x
1.4 Netscape Server
1.5 ноябрь 2000 ECMA-262 3rd edition Netscape Navigator 6, Firefox 1.0
1.6 ноябрь 2005[3] Firefox 1.5 дополнительные методы массива, дженерики массивов и строк, ECMAScript для XML (E4X)
1.7 октябрь 2006 Firefox 2.0 итераторы и генераторы, оператор let, array comprehensions, деструктурирующее присваивание
1.8 июнь 2008 Firefox 3.0 выражения-генераторы, замыкания выражений
1.8.5 март 2011 ECMA-262 5th edition Firefox 4.0 поддержка JSON
1.8.8 январь 2012 Firefox 10.0
17 ноябрь 2012 Firefox 17.0
24 сентябрь 2013 Firefox 24.0
31 июль 2014 Firefox 31.0
38 май 2015 Firefox 38.0
45 март 2016 Firefox 45.0
52 март 2017 Firefox 52.0
60 май 2018 Firefox 60.0
68 июль 2019 Firefox 68.0
78 июнь 2020 Firefox 78.0
91 август 2021 Firefox 91.0
102 июнь 2022 Firefox 102.0
103 июль 2022 Firefox 103.0
128 июль 2024 Firefox 128.0

SpiderMonkey написан на языке Си и включает в себя компилятор, интерпретатор, декомпилятор, сборщик мусора и стандартные классы. Он не предоставляет рабочего окружения, такого как DOM.

SpiderMonkey встраивается в другие приложения, которые предоставляют рабочее окружение для JavaScript. Наиболее популярными программами являются Mozilla Firefox и Mozilla Application Suite/SeaMonkey, а также Adobe Acrobat. SpiderMonkey также используется в качестве движка JavaScript для Yahoo! Widgets (ранее известного под именем «Konfabulator») и UOX3, эмулятора Ultima Online.

SpiderMonkey, как и родственный ему движок Rhino, имеет поддержку стандарта ECMAScript для XML (E4X).

В 2006 году для Mozilla 2 планировалось использовать Tamarin[4] — открытую виртуальную машину ActionScript, разработанную в Macromedia (позже Adobe)[5]. Проект по интеграции SpiderMonkey и Tamarin получил кодовое название ActionMonkey. Позднее этот проект был отменен в силу ряда причин[6].

В 2009 году к SpiderMonkey добавлена возможность компиляции JavaScript в машинный код, что существенно ускорило выполнение JavaScript-кода. Проект получил название TraceMonkey.

Браузер Firefox, начиная с версии 3.5, для исполнения JavaScript-кода использует по умолчанию TraceMonkey[7].

Для того, чтобы достичь производительности, сравнимой с другими движками, в 2010 году к SpiderMonkey было решено добавить JIT-компиляцию, основанную на компиляции целого метода (англ. method-based JIT)[8]. Проект получил название JaegerMonkey (JägerMonkey).

Браузер Firefox использует JägerMonkey начиная с версии 4.0.

Новая версия разрабатывается в Mozilla Foundation[9].

Браузер Firefox использует IonMonkey начиная с версии 18.0.

Несмотря на то, что IonMonkey ещё не до конца реализован, частично внедрён в Nightly 23, Mozilla Foundation приступили к созданию следующей версии — OdinMonkey[10].

  1. https://hg.mozilla.org/releases/mozilla-esr52/rev/FIREFOX_52_7_2esr_RELEASE
  2. Андрей Никифиров. Как работает JavaScript: часть первая. GeekBrains (23 октября 2017). Дата обращения: 14 октября 2024. Архивировано 1 июня 2023 года.
  3. New in JavaScript 1.6. Дата обращения: 28 июля 2015. Архивировано из оригинала 5 сентября 2015 года.
  4. Tamarin Project Архивировано 10 февраля 2007 года.
  5. Официальное объявление о начале интеграции SpiderMonkey с Tamarin Архивировано 27 апреля 2007 года.
  6. ActionMonkey на wiki.mozilla.org. Дата обращения: 5 декабря 2009. Архивировано 28 января 2012 года.
  7. TraceMonkey на wiki.mozilla.org. Дата обращения: 5 декабря 2009. Архивировано 3 января 2012 года.
  8. JaegerMonkey на wiki.mozilla.org. Дата обращения: 15 марта 2011. Архивировано 23 августа 2013 года.
  9. IonMonkey на wiki.mozilla.org. Дата обращения: 8 апреля 2012. Архивировано 11 мая 2012 года.
  10. OdinMonkey на wiki.mozilla.org. Дата обращения: 27 апреля 2013. Архивировано 22 июля 2013 года.