SpiderMonkey

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

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

История

править код

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

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

Описание

править код

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

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

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

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

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

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

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

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

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

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

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

Примечания

править код

Навигация