SpiderMonkey | это... Что такое SpiderMonkey? (original) (raw)
SpiderMonkey
Тип | Движок JavaScript |
---|---|
Автор | Брендан Айк |
Разработчики | Mozilla Foundation/Mozilla Corporation |
Написана на | Си/C++ |
Аппаратная платформа | Кроссплатформенное программное обеспечение |
Последняя версия | 1.8.5 (31 марта 2011) |
Лицензия | MPL/GPL/LGPL |
Сайт | developer.mozilla.org/en/SpiderMonkey mozilla.org/js/spidermonkey/ |
SpiderMonkey — первый в истории движок JavaScript.
История
SpiderMonkey был написан Бренданом Айком во время его работы в Netscape Communications, а позднее сделан открытым. В настоящее время SpiderMonkey поддерживается Mozilla Foundation.
Описание
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).
ActionMonkey
В 2006 году для Mozilla 2 планировалось использовать Tamarin[en][1] — открытую виртуальную машину ActionScript, разработанную в Macromedia (позже Adobe).[2]. Проект по интеграции SpiderMonkey и Tamarin получил кодовое название ActionMonkey. Позднее этот проект был отменен в силу ряда причин.[3]
TraceMonkey
В 2009 году к SpiderMonkey добавлена возможность компиляции JavaScript в машинный код, что существенно ускорило выполнение JavaScript кода. Проект получил название TraceMonkey.
Браузер Firefox, начиная с версии 3.5, для исполнения JavaScript кода использует по умолчанию TraceMonkey.[4]
JägerMonkey
Для того, чтобы достичь производительности сравнимой с другими движками, в 2010 году к SpiderMonkey было решено добавить JIT-компиляцию, основанную на компиляции целого метода (англ. method-based JIT)[5]. Проект получил название JaegerMonkey (JägerMonkey).
Браузер Firefox использует JägerMonkey начиная с версии 4.0.
IONMonkey
Новая версия разрабатывается в Mozilla Foundation.[6]
Примечания
- ↑ Tamarin Project
- ↑ Официальное объявление о начале интеграции SpiderMonkey с Tamarin
- ↑ ActionMonkey на wiki.mozilla.org
- ↑ TraceMonkey на wiki.mozilla.org
- ↑ JaegerMonkey на wiki.mozilla.org
- ↑ IonMonkey на wiki.mozilla.org
Ссылки
Проекты Mozilla Foundation | |
---|---|
Браузеры | Camino • Firefox (2 • 3 • 3.5 • 4 • история версий • Mobile) • SeaMonkey |
Другие проекты | Firefox OS • Bugzilla • ChatZilla • Lightning • Penelope • Sunbird • Sync • Thunderbird • Persona |
Не развиваются | Calendar Project • Minimo • Mozilla Suite • Nvu • Prism |
Инфраструктура | Gecko • Necko • XBL • XPCOM • XPConnect • XPInstall • XUL • XULRunner |
Компоненты | Composer • NSPR • Rhino • SpiderMonkey • Tamarin • Venkman |
ECMAScript | |
---|---|
Диалекты | ActionScript · Caja · JavaScript (движки) · JScript · JScript .NET · Objective-J · QtScript · WMLScript |
Движки(сравнение) | Carakan · Futhark · InScript · JavaScriptCore (SquirrelFish) · JScript · KJS · Linear B · Narcissus · QtScript · Rhino · YAJI · SpiderMonkey (TraceMonkey, JägerMonkey) · Tamarin · V8 · Chakra |
Фреймворки,библиотеки | JavaScript(сравнение) Client-side(список, фреймворки AJAX) Ample SDK · CougarXML · Dojo · Echo · Ext JS · Google Web Toolkit · jQuery · Lively Kernel · midori · MochiKit · MooTools · OpenLink AJAX · Prototype · Pyjamas · qooxdoo · Rialto · Rico · script.aculo.us · SmartClient · SproutCore · Spry · YUI Library Server-side(сравнение) AppJet · Jaxer · Node.js Библиотеки(список) SWFObject · SWFAddress ActionScript PureMVC Множественныереализации Cappuccino (JavaScript, Objective-J) |
Люди | Брендан Айк · Дуглас Крокфорд · Джон Резиг |
Другое | DHTML · Ecma International · JSAN · JSDoc · JSLint · JSON · JSSS · Sputnik · SunSpider · CommonJS |