With the recent talk of JavaScript 1.9 there’s been some confusion as to what exactly that version means – especially in relation to other browsers. Here’s a quick breakdown:

IE 6-7 support JScript 5 (which is equivalent to ECMAScript 3, JavaScript 1.5)

IE 8 supports JScript 6 (which is equivalent to ECMAScript 3, JavaScript 1.5 – more bug fixes over JScript 5)

Firefox 1.0 supports JavaScript 1.5 (ECMAScript 3 equivalent)

Firefox 1.5 supports JavaScript 1.6 (1.5 + Array Extras + E4X + misc.)

Firefox 2.0 supports JavaScript 1.7 (1.6 + Generator + Iterators + let + misc.)

Firefox 3.0 supports JavaScript 1.8 (1.7 + Generator Expressions + Expression Closures + misc.)

The next version of Firefox will support JavaScript 1.9 (1.8 + To be determined)

Opera supports a language that is equivalent to ECMAScript 3 + Getters and Setters + misc.

Safari supports a language that is equivalent to ECMAScript 3 + Getters and Setters + misc.

It should be noted that the only browser that supports ‘JavaScript’ are Mozilla-based ones. However, all modern browsers support a version of ECMAScript – at least version 3. JavaScript 1.6-1.9 are just code names for the interim versions of ECMAScript (JavaScript on Gecko) that are leading up to JavaScript 2.0 (ECMAScript 4). Of course no other browser will support another JavaScript 1.6-1.9, since they aren’t obligated to support JavaScript. However, that hasn’t stopped browsers from implementing JavaScript features (such as getters and setters in Opera and Safari).

A big goal of Mozilla is to try implementing difficult ECMAScript features, helping to lead other browsers by example. By using these stepping-stone JavaScript 1.6-1.9 releases as a way to test out bug fixes and functionality both users, and browser vendors, can get a better picture of the changes that will be occurring in the language. This has been a big point in the development of JavaScript 2 (ECMAScript 4) – Mozilla was able to show, through demonstrable real-world usage, that certain features were safe to implement (generators, array comprehension, and getters and setters). Mozilla will be continuing this tradition with JavaScript 1.9, landing new features and bug fixes (the vast majority of which will be from the upcoming ECMAScript 4 specification) – helping to bring the newest version of JavaScript just a couple steps closer.