严格来说,JavaScript 其实指的是 Netscape/Mozilla 对 ECMAScript 标准的实现,但考虑到习惯因素,这里就不咬文嚼字了。
目前仍然在开发中的 JavaScript (ECMAScript) 开放源代码的实现包括:
#### JavaScriptCore
Apple 开发的 JavaScript 引擎,以 Mac OS X Framework 的形式提供,与 WebCore 一同结合而成 WebKit Framework。JavaScript 是基于 KDE 计划的 KJS 库和 PCRE 正则表达式库开发的。
特点:
* 强大的垃圾回收器
* 使用 C++ 开发
* 基于标准 C/C++ 库和 ICU (IBM 的 Unicode 库)
* Mac OS X 程序调用它比较方便
* 采用创建语法树并执行的形式,而不是生成 bytecode 再执行
* 提供 C, Java (JNI), Objective-C, Qt 的 binding
* 跨平台,可在 win32 下使用
网站:
* [The WebKit Open Source Project](http://webkit.org/projects/javascript/index.html)
* [Trac](http://trac.webkit.org/projects/webkit/browser/trunk/JavaScriptCore)
* 提供代码 (Subversion), Bugzilla
KDE 提供了 kjsembed 库,也是基于 KJS 的,但依赖 Qt (和 KDE)。
#### SEE
是 Simple ECMAScript Engine 的缩写,提供了 ECMAScript 的解析器和运行时环境。提供到 JavaScript 1.5 (ECMAScript 第 3 版) 的兼容性。
特点:
* 不直接提供 DOM,但 API 设计时是考虑到了支持 DOM 绑定的
* 关注正确性与可移植性
网站:
* [SEE](http://www.adaptive-enterprises.com.au/~d/software/see/)
* 提供代码的 snapshot, Subversion, 邮件列表和 Bugzilla
文档:
[Using SEE](http://www.adaptive-enterprises.com.au/websvn/filedetails.php?repname=SEE&path=/see/trunk/doc/USAGE.html)
#### DMDScript
Digital Mars 的 ECMAScript 实现,作者是 D 语言的发明者。
特点:
* 声称要比其他实现都快
* 有 D 语言实现也有 C++ 语言实现
* 混合 License (开源软件可以使用 GPL)
* 加上了 Microsoft Jscript 扩展
网站:
* [DScript](http://www.digitalmars.com/dscript/)
* 只提供单独的[源代码压缩包](http://ftp.digitalmars.com/dmdscript.zip)下载。
* 有邮件列表,没有版本管理库。
#### SpiderMonkey
Mozilla 的 JavaScript 参考实现,支持到 JavaScript 1.7。
特点:
* 使用者数量众多,对 JavaScript 和语言扩展支持最快
* 专门为单独 (standalone) 编译考虑,不需要依赖任何其他的 mozilla 软件/库
* 要保证线程安全则需要 NSPR 库
* 向 Adobe 贡献的 tamarin 引擎转移的步骤进行很慢
网站:
* [SpiderMonkey](http://www.mozilla.org/js/spidermonkey)
* 代码提供压缩包 (从 FTP) 和 CVS。有 Bugzilla。有[新闻组](http://groups.google.com/group/mozilla.dev.tech.js-engine)。