次期JavaScript 2.0のベース仕様になるとみられるECMAScript Edition 4だが、先日The Ecma TG1 groupから参照実装のアーリーアクセス(マイルストーン2)が提供された。ソースコードが提供されているほか、Windows、Mac OS X、Linuxのバイナリが用意されている。
M2で実装されている機能は次のとおり。
- クラスおよびインタフェース
- 名前空間
- pragmas
- let / const / let-const
- イテレータ
- enumerability control
- type expressions / definitions / アノテーション
- ランタイム型チェック(スタンダードモード)
- nullability
- destructuring assignment
- スライスシンタックス
- ハッシュコード
- catchalls
- map / vector
- data / time の改善
- メタオブジェクト
- static generics
- 文字列のトリム
- typeof
- globals
- expression closures
- name objects
- type operators (is / to / cast / wrap)
実装されているが今後も作業が必要な機能は次のとおり。
- 継承チェック
- ストリクトモード
- 型パラメータ
- structural types
- numbers / decimal
- getters / setters
- packages
実装が初期段階のものは次のとおり。
- program units
- generic function
- updates to unicode
- updates to regexps
まだ実装に取りかかっていない機能が次のとおり。
- generators
- tail calls
- 3重クォート
- stack inspection
- reformed with
- resurrected eval
- help for the argument object
- "this function" / "this generator"
残りの作業は仕様検討や議論を必要とするとしており、ECMAScript Edition 4の仕様策定や参照実装のリリースはまだ先のことになりそうだ。しかしすでに参照実装の実現へ向けて実装が進められていることは注目に値する。同MLにはWebブラウザの開発ベンダも含まれており、それぞれのブラウザ向けの実装に活かされている。
JavaScriptやまたはほかのECMAScriptをベースとしたスクリプト言語は、Webブラウザで実行されるスクリプト言語という位置づけから飛躍し、システム構築に活用できるプログラミング言語として立場を築きつつある。ECMAScript Edition 4 / JavaScript 2.0で導入される機能は高度なもので、その方向性を確実なものにするとみられる。