?um/p1-90`The
The
The
The
The
The
The
無名の export default 宣言の一部としてのみ現れることができ、その
The
代替意味論は、
生成規則
のインスタンスを処理するとき、
The
The
The
arguments、super、this、または new.target の局所束縛を定義しない。arguments、super、this、または new.target への任意の参照は、レキシカルに包含する環境内の束縛に解決されなければならない。通常、これは直近で包含する関数の Function Environment である。super への参照を含む場合があっても、ステップ super を参照する super を実装するために必要な状態は、
The
The
The
The
yield の直後の構文コンテキストでは、
Generators に関係する抽象操作は
The
The
匿名 export default 宣言の一部としてのみ現れることができ、その
The
throw メソッドからの例外は伝播される。内側の throw メソッドからの next と同様に処理される。throw メソッドを持たない場合、この throw は yield* ループを終了させる。しかし、その前に iterator にクリーンアップの機会を与える必要がある。throw メソッドを持たないという yield* プロトコル違反を示すために AsyncGenerators に関係する抽象操作は
The
The
匿名 export default 宣言の一部としてのみ現れることができる。
The
クラス定義は常に strict mode コードである。
await が The
The
早期エラールールにより、
The
The
The
The
この仕様において以下に列挙されていないすべての文法生成規則選択肢は、暗黙に AllPrivateIdentifiersValid の次のデフォルト定義を持つ:
The
The
この仕様において以下に列挙されていないすべての文法生成規則選択肢は、暗黙に ContainsArguments の次のデフォルト定義を持つ:
The
The
The
The
The
仕様を簡潔にするため、private メソッドおよびアクセサは、private フィールドとともに、クラスインスタンスの [[PrivateElements]] スロットに含まれる。しかし、任意のオブジェクトは、所与のクラスによって定義された private メソッドおよびアクセサのすべてを持つか、まったく持たないかのいずれかである。この機能は、実装が各メソッドまたはアクセサを個別に追跡する必要のない戦略を用いて private メソッドおよびアクセサを実装することを選択できるように設計されている。
例えば、実装はインスタンス private メソッドを対応する this 値として実行されたかを追跡できる。その場合、オブジェクト上でインスタンス private メソッドを検索することは、そのメソッドを定義するクラスコンストラクタがそのオブジェクトを初期化するために使用されたことを確認し、その後
これは private フィールドとは異なる。フィールド初期化子はクラスのインスタンス化中に投げる可能性があるため、個々のオブジェクトは所与のクラスの private フィールドの適切な部分集合だけを持つ場合があり、したがって private フィールドは一般に個別に追跡されなければならない。
It is defined piecewise over the following productions:
constructor(...args) { super(...args); } と同様に振る舞う。最も注目すべき相違点は、前述の %Array.prototype% 上の constructor() {} と同様に振る舞う。The
[Await] パラメータが存在するとき、await は
await は識別子として解析されてもよい。これには次のコンテキストが含まれる:
The
The
The
生成規則
のインスタンスを処理するとき、
The
The
The
The
末尾位置呼び出しは、呼び出し元コンテキストの連鎖の観測を可能にする一般的な非標準言語拡張(
The
call は、ソーステキストの特定の範囲を表す
呼び出し結果の
It is defined piecewise over the following productions:
The
末尾位置呼び出しは、ターゲット関数を呼び出す前に、現在実行中の関数実行コンテキストに関連付けられた一時的な内部リソースを解放するか、ターゲット関数を支援するためにそれらのリソースを再利用しなければならない。
例えば、末尾位置呼び出しは、ターゲット関数のアクティベーションレコードのサイズが呼び出し元関数のアクティベーションレコードのサイズを超える分だけ、実装のアクティベーションレコードスタックを増加させるべきである。ターゲット関数のアクティベーションレコードがより小さい場合、スタックの合計サイズは減少するべきである。