I’ve just completed my first survey of the current ECMAScript 4 implementations. I went through and attempted to compile as many bugs and features as possible, as stated by the ECMAScript 4 specification and double-check them against all the actively-maintained implementations. You can view a nice overview below.

I think it’s fascinating to note that there’s 3 implementations that already have over 25% of all the new features in the language implemented.

View: The raw data

About the implementations:

ECMAScript 4 Reference Implementation (ES4 RI)

This is the reference implementation provided by the ECMA technical group, as a reference for those creating their own implementations.

Tamarin

Tamarin is the joint effort of Mozilla and Adobe to adapt the Open Source Adobe Virtual Machine to match ECMAScript 4 – and run in Firefox 3.next() (via ActionMonkey) and Flash 10.

Update from Tom:

Tamarin VM by itself doesn’t directly support ECMAScript source code. Rather, the subproject esc (written in ECMAScript 4) compiles ECMAScript 4 to abc bytecode that is run by the Tamarin VM.

Spidermonkey

Spidermonkey is the JavaScript engine currently in Firefox (and other Mozilla-based projects). It’s being actively updated with new features to match the ES4 specification. This project will, most likely, be superseded by ActionMonkey.

Rhino

Rhino is a Java implementation of JavaScript which is currently being updated to meet the ECMAScript 4 specification.

Futhark (Opera)

Futhark is the JavaScript engine that is a part of Opera 9.5 (Kestrel) and will be a part of Opera 10 (Peregrine). It’s being actively updated to match the ECMAScript 4 specification.

Mbedthis

Mbedthis has used Javascript as a web scripting language in its AppWeb embedded web server product for several years. More recently, they have been updating the language for use in mobile devices and has developed a C and Java VM for hosting Javascript widget style applications to run in standard features phones. They are tracking ES4 and are upgrading their implementation as the spec is finalized. They are planning to release a test version late Q1 2008 that will implement most of the planned features in ES4. This will be dual license: open source and commercial.