?uem/p1-90`匿名の export default 宣言の一部としてのみ現れることができ、その
代替の意味論は、
関数が
次の生成規則のインスタンスを処理するとき
arguments、super、this、または new.target に対するローカル束縛を定義しません。arguments、super、this、または new.target への参照は、レキシカルに外側の環境内の束縛へ解決されなければなりません。通常、これは直近の外側の関数の Function Environment です。super への参照を含む場合でも、手順 super を参照する super を実装するために必要な状態には、
yield の直後の構文文脈では、
匿名の export default 宣言の一部としてのみ現れることができ、その
throw メソッドからの例外は伝播される。内側の throw メソッドからのnext と同様に処理される。throw メソッドを持たない場合、このスローによって yield* ループは終了する。ただし、まず iterator にクリーンアップの機会を与える必要がある。yield* プロトコル違反、すなわち iterator が throw メソッドを持たないことを示すために 匿名の export default 宣言の一部としてのみ現れることができます。
クラス定義は常に
await が 以下に列挙されていない、この仕様内のすべての文法生成規則の選択肢は、暗黙的に次の AllPrivateIdentifiersValid の既定定義を持ちます。
以下に列挙されていない、この仕様内のすべての文法生成規則の選択肢は、暗黙的に次の ContainsArguments の既定定義を持ちます。
仕様を簡潔にするため、プライベートメソッドおよびアクセサーは、プライベートフィールドとともにクラスインスタンスの [[PrivateElements]] スロットに含まれます。ただし、任意のオブジェクトは、あるクラスによって定義されたプライベートメソッドおよびアクセサーをすべて持つか、まったく持たないかのいずれかです。この機能は、各メソッドまたはアクセサーを個別に追跡する必要のない戦略を使用してプライベートメソッドおよびアクセサーを実装することを、実装が選択できるように設計されています。
たとえば実装は、インスタンスのプライベートメソッドを対応する this 値としてどのクラス
これはプライベートフィールドとは異なります。フィールド初期化子はクラスのインスタンス化中にスローする可能性があるため、個々のオブジェクトが特定のクラスのプライベートフィールドの真部分集合のみを持つ場合があり、そのため一般にプライベートフィールドは個別に追跡しなければなりません。
次の生成規則ごとに定義される。
constructor(...args) { super(...args); } と同様に動作する。最も重要な違いは、前述の %Array.prototype% 上の constructor() {} と同様に動作する。[Await] パラメーターが存在する場合、await は
await は識別子として構文解析される場合があります。これには次の文脈が含まれます。
次の生成規則のインスタンスを処理するとき
末尾位置の呼出しが定義されるのは
call はソーステキストの特定の範囲を表す
直後に呼出し結果の
同じ using 宣言または await using 宣言がある場合、その呼出しは末尾位置呼出しになることができません。
次の生成規則ごとに定義される。
末尾位置の呼出しは、対象関数を呼び出す前に、現在実行中の関数の
たとえば、末尾位置の呼出しによって実装のアクティベーションレコードスタックが増加する量は、対象関数のアクティベーションレコードのサイズが呼出し元関数のアクティベーションレコードのサイズを超える分だけであるべきです。対象関数のアクティベーションレコードの方が小さい場合、スタック全体のサイズは減少するべきです。