Mozilla Foundation, JavaScript Evangelist, John Resig氏は22日(米国時間)、JavaScriptやそれを取り巻くバージョンについて説明に混乱があったとし、Webブラウザとそれが実装しているECMAScript/JavaScriptのバージョンについてまとめている。同氏は同月16日(米国時間)、 Planning JavaScript 1.9においてすでにFirefox 3に搭載する機能は決定されており、今後は以後のバージョンでどこまでJavaScriptの機能を実装していくか検討する段階にきたという説明をしているが、この辺りの説明をさしてバージョンとその意味するところを明確にしたい狙いがあるとみられる。

同氏の説明によるとWebブラウザとその実装しているECMAScript/JavaScriptのバージョンは次のとおり。

  • IE6-7: JScript 5 (ECMAScript 3/JavaScript 1.5に等価)
  • IE8: JScript 6 (ECMAScript 3/JavaScript 1.5に等価だがJScript 5のバグが修正されている)
  • Firefox 1.0: JavaScript 1.5 (ECMAScript 3に等価)
  • Firefox 1.5: JavaScript 1.6 (JavaScript 1.5にArray Extras、E4Xそのほか機能を追加)
  • Firefox 2.0: JavaScript 1.7 (JavaScript 1.6にGenerator、Iterators、letそのほか機能を追加)
  • Firefox 3.0: JavaScript 1.8 (JavaScript 1.7にGenerator Expressions、Expression Closuresそのほか機能を追加)
  • Firefox 4.0?: JavaScript 1.9 (JavaScript 1.8に機能を追加予定)
  • Opera: ECMAScript 3にGetters、Settersそのほか機能を追加
  • Safari: ECMAScript 3にGetters、Settersそのほか機能を追加

同氏はJavaScriptの実装をサポートしているのはMozillaベースのブラウザだけである点を強調している。通常サポートされるのはECMAScriptであってJavaScriptではない。JavaScript 1.6から1.9までの呼称はECMAScript (JavaScript on Gecko)の仮バージョンに対するコード名であって、JavaScript 2.0 (ECMAScript 4)が登場するまでの呼び方に過ぎないというわけだ。ただし、JavaScript 1.6-1.9の名称が使われていないからといってMozilla以外のブラウザが同列の機能をサポートしていないわけでないため注意が必要だ。

よって正式にほかのブラウザが最新のJavaScript実装をサポートした、といえるのはJavaScript 2 (ECMAScript 4)が登場してからということになる。同氏のまとめた説明はわかりやすいものなので、関係者はJohn Resig氏のまとめたVersions of JavaScriptをチェックしておくといいだろう。