SpiderMonkey

SpiderMonkey（スパイダーモンキー）はFirefoxなどで使用されている世界初のJavaScriptエンジンである。ブレンダン・アイクがネットスケープコミュニケーションズで開発し、後にオープンソースとして公開され、2025年1月現在、Mozilla Foundation が保守している。

 内部 
SpiderMonkey はC言語で実装され、コンパイラ、インタプリタ、逆コンパイラ、ガベージコレクタ、標準クラス群などから成る。それ単体では Document Object Model (DOM) のようなホスト環境を提供しない。

SpiderMonkey およびそれと姉妹関係にある Rhino は、ECMAScript for XML (E4X) 標準をサポートしている。

 応用 
JavaScript のホスト環境を提供する他のアプリに組み込んで使用する。最も一般的なアプリケーションは Mozilla Firefox と Mozilla Application Suite / SeaMonkey であり、他にも Adobe Acrobat と Adobe Reader がある。さらに、Yahoo! Widgets や ウルティマオンラインのサーバエミュレータである UOX3 でもJavaScriptエンジンとして使っている。変わったところでは、オープンソースのロールプレイングゲーム設計支援ツールである Sphere でもJavaScriptエンジンとして使っている。また、SpiderMonkey の一部は、WineプロジェクトでJScript機能の実装に流用されているwine-cvs mailing list, 2008年9月16日: “jscript: Added regular expression compiler based on Mozilla regexp implementation”。

 TraceMonkey 
Mozilla は SpiderMonkey に “Trace Trees” を使った最適化を行ってきた。2009年7月にリリースされた Firefox 3.5 では、この新たな最適化版を実装しており「場合によっては20%から40%の性能向上」になるというFirefox to get massive JavaScript performance boost ars technica, 2008年8月22日。Firefox 11 以降では使われていない。

 JägerMonkey 
TraceMonkey を利用できないケースを高速化する Method JIT。アセンブラ部分は WebKit の SquirrelFish Extreme (Nitro) のものをベースとしているStarting JägerMonkey David Mandelin's blog。Firefox 18 以降では IonMonkey にとって替わられ、さらにFirefox 83以降では WarpMonkey にとって替わられた。

 関連項目 
 Rhino

 脚注 

 外部リンク 
 SpiderMonkey (JavaScript-C) Engine
 Documentation for SpiderMonkey
 Franky Braem Tutorial on using JS from C++
 wxJavaScript, porting wxWidgets using SpiderMonkey
 SpiderApe - SpiderMonkey 上の C++ ライブラリ。SpiderMonkey の組み込みと拡張を単純化することを意図している。
 SpiderMonkeyエンジンを使っているプロジェクト - JavaScript Native Interface, JavaScript Host
 jslibs project - zlib, SQLite, NSPR, ode, libpng, libjpeg, libffi, (...) といった SpiderMonkey 用ライブラリ群
 Malzilla - SpiderMonkey を使ってWebページ上のJavaScriptを調べることでマルウェアを探し出すツール
 TriXUL - (TriXUL CVS) - SpiderMonkey を組み込んだXMLベースのGUIツールキット。GUIの背後にあるロジックをJavaScriptで実装する。JavaScript から C++ オブジェクトを呼び出せる。

Category:Mozilla
Category:JavaScript
Category:Mozilla Public Licenseを利用するソフトウェア