TC39

Ecma InternationalのTC39は、JavaScript開発者、実装者、専門家などのグループで、JavaScriptの仕様をメンテナンスし発展させるためにコミュニティと協力しています。

我々は
Ecma International
所属の委員会です。

コントリビュート

既存のプロポーザルに対するフィードバック、ドキュメントの改善、テスト、実装、さらには言語機能に関するアイデアなど、JavaScriptコミュニティからのコントリビュートをTC39は歓迎します。詳細については、コントリビュータガイドをご覧ください。

TC39のミーティングにメンバーとして参加するには、Ecmaに参加してください。

仕様

我々はJavaScript(正式には、ECMAScript)の仕様をGitHub上で開発し、2ヶ月ごとにミーティングを行い、プロポーザルについて議論しています。このプロセスの詳細については、新しい言語機能のプロポーザルの5つのステージを参照してください。より詳細な情報については、ミーティングの議題議事録をご覧ください。

プロポーザルの状態

現在の仕様候補一覧

このセクションでは、我々のプロセスにおいてステージ3に到達している、つまり完了が近いプロポーザルを紹介しています。
プロポーザル一覧の読み方

各プロポーザルは他の資料へのリンクが貼ってあります。表示されているタグは以下の属性を示しています。各タグが何を意味しているかは以下の例を参照してください。全てのタグはマウスカーソルをホバーさせたら詳細が表示されます。

タグの種類とそれぞれの意味

Legacy RegExp features in JavaScript

提出者: Claude Pache | 支持者: Mark Miller, Claude Pache
JavaScriptの古い(非推奨の)正規表現機能の仕様ドラフトです。例えば、RegExp.$1RegExp.prototype.compileメソッドのようなコンストラクタのスタティックプロパティなどです。

Hashbang Grammar

提出者、及び支持者: Bradley Farias
このプロポーザルは、シェバン/ハッシュバンに対応しているいくつかのCLI JSのホストでデファクトとなっている使用方法と合わせるものです。それらのホストは現在、JSエンジンにソーステキストを渡す前にそれらを有効なものにするためにハッシュバンを取り除いています。これはそれがどのように行われるかを統一、また標準化します。

Atomics.waitAsync

提出者: Lars Hansen | 支持者: Shu-yu Guo, Lars Hansen
主にブロッキングが許されないエージェントで使用するための"Atomics.waitの非同期版"をECMAScriptに追加するためのプロポーザルです。

.at()

提出者、及び支持者: Shu-yu Guo, Tab Atkins
すべての基本的なインデックス可能なクラス(Array, String, TypedArray)に、.at()メソッドを追加するプロポーザルです。

Import Assertions

提出者、及び支持者: Myles Borins, Sven Sauleau, Dan Clark, Daniel Ehrenberg
ES Modulesをアサーション付きでインポートする構文のためのプロポーザルです。

JSON Modules

提出者、及び支持者: Sven Sauleau, Daniel Ehrenberg, Myles Borins, Dan Clark
JSONファイルをモジュールとしてインポートするためのプロポーザルです。

Ergonomic Brand Checks

提出者、及び支持者: Jordan Harband
例外なしにブランドチェックを実現するためのプロポーザルです。

Class Static Block

提出者、及び支持者: Ron Buckton
Class static blockは、クラス定義の評価中に追加の静的初期化を実行する仕組みを提供します。これは、静的解析ツールに役立つ情報を提供し、デコレーターのための妥当なターゲットであるため、パブリックフィールドの置き換えを意図したものではありません。むしろ、これは既存のユースケースを補強し、このプロポーザルで現在処理されていない新しいユースケースを実現できるようにすることを目的としています。

Error Cause

提出者: Chengzhong Wu | 支持者: Ron Buckton, Chengzhong Wu, Hemanth HM
エラーは、実行時の異常を表現するために作られます。予期しない動作の診断を容易にするためは、エラーメッセージやエラーインスタンスのプロパティなど、その時点で何が起こったかを明らかにする状況情報をエラーに追加する必要があります。エラーが内部の深いメソッドからスローされた場合、スローされたエラーは、適切な例外設計パターンなしに簡単に処理できるとは限りません。このプロポーザルは原因を伝達するための便利な手段を導入します。

Temporal

提出者、及び支持者: Maggie Pint, Matt Johnson, Philipp Dunkel
ECMAScriptでは、Dateが長年の悩みの種でした。そこで提案されたのがTemporalであり、これは(Mathのような)トップレベルの名前空間として振る舞い、ECMAScriptに最新のdate/time APIをもたらすグローバルオブジェクトです。動機の詳しい説明については、プロポーザルのREADMEをご覧ください。

Accessible Object.prototype.hasOwnProperty()

提出者: Jamie Kyle, Tierney Cyren | 支持者 Tierney Cyren
よりObject.prototype.hasOwnProperty()を利用しやすくするためのObject.hasOwn()のプロポーザルです。

In-Place Resizable and Growable ArrayBuffers

提出者、及び支持者: Shu-yu Guo
ArrayBufferは、バイナリデータをインメモリで処理できるようにし、大きな成功を収めました。このプロポーザルは、ArrayBufferコンストラクタを拡張することで、バッファのインプレースの拡張と縮小が可能な最大長を新たに受け取れるようにします。同様に、SharedArrayBufferは、インプレースの拡張が可能な最大長を新たに受け取れるように拡張されています。transferメソッドは、ArrayBufferをデタッチし、ゼロコピーによる移動を行い、リサイズ可能なArrayBufferインスタンスをArrayBufferインスタンスとして「固定」するための標準的な方法としてもここで再導入されています。
全ステージのプロポーザルを見る