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.
Версии
[править | править код]Версия | Дата выпуска | Соответствующая версия 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).
ActionMonkey
[править | править код]В 2006 году для Mozilla 2 планировалось использовать Tamarin[4] — открытую виртуальную машину ActionScript, разработанную в Macromedia (позже Adobe)[5]. Проект по интеграции SpiderMonkey и Tamarin получил кодовое название ActionMonkey. Позднее этот проект был отменен в силу ряда причин[6].
TraceMonkey
[править | править код]В 2009 году к SpiderMonkey добавлена возможность компиляции JavaScript в машинный код, что существенно ускорило выполнение JavaScript-кода. Проект получил название TraceMonkey.
Браузер Firefox, начиная с версии 3.5, для исполнения JavaScript-кода использует по умолчанию TraceMonkey[7].
JägerMonkey
[править | править код]Для того, чтобы достичь производительности, сравнимой с другими движками, в 2010 году к SpiderMonkey было решено добавить JIT-компиляцию, основанную на компиляции целого метода (англ. method-based JIT)[8]. Проект получил название JaegerMonkey (JägerMonkey).
Браузер Firefox использует JägerMonkey начиная с версии 4.0.
IonMonkey
[править | править код]Новая версия разрабатывается в Mozilla Foundation[9].
Браузер Firefox использует IonMonkey начиная с версии 18.0.
OdinMonkey
[править | править код]Несмотря на то, что IonMonkey ещё не до конца реализован, частично внедрён в Nightly 23, Mozilla Foundation приступили к созданию следующей версии — OdinMonkey[10].
Примечания
[править | править код]- ↑ https://hg.mozilla.org/releases/mozilla-esr52/rev/FIREFOX_52_7_2esr_RELEASE
- ↑ Андрей Никифиров. Как работает JavaScript: часть первая . GeekBrains (23 октября 2017). Дата обращения: 14 октября 2024.
- ↑ New in JavaScript 1.6 . Дата обращения: 28 июля 2015. Архивировано из оригинала 5 сентября 2015 года.
- ↑ Tamarin Project Архивировано 10 февраля 2007 года.
- ↑ Официальное объявление о начале интеграции SpiderMonkey с Tamarin Архивировано 27 апреля 2007 года.
- ↑ ActionMonkey на wiki.mozilla.org . Дата обращения: 5 декабря 2009. Архивировано 28 января 2012 года.
- ↑ TraceMonkey на wiki.mozilla.org . Дата обращения: 5 декабря 2009. Архивировано 3 января 2012 года.
- ↑ JaegerMonkey на wiki.mozilla.org . Дата обращения: 15 марта 2011. Архивировано 23 августа 2013 года.
- ↑ IonMonkey на wiki.mozilla.org . Дата обращения: 8 апреля 2012. Архивировано 11 мая 2012 года.
- ↑ OdinMonkey на wiki.mozilla.org . Дата обращения: 27 апреля 2013. Архивировано 22 июля 2013 года.
Ссылки
[править | править код]- Официальная страница проекта (англ.)
- Документация по SpiderMonkey для разработчиков Архивная копия от 8 апреля 2007 на Wayback Machine (англ.)