?um/p1-90`インターフェイスとは、関連付けられた値が特定の仕様に一致するプロパティキーの集合である。インターフェイスの仕様で記述されているすべてのプロパティを提供する任意のオブジェクトは、そのインターフェイスに適合する。インターフェイスは、個別のオブジェクトによって表されるものではない。任意のインターフェイスに適合する、別々に実装されたオブジェクトは多数存在し得る。個々のオブジェクトは複数のインターフェイスに適合し得る。
iterable インターフェイスは、
| プロパティ | 値 | 要件 |
|---|---|---|
%Symbol.iterator%
|
|
返されるオブジェクトは |
iterator インターフェイスを実装するオブジェクトは、
| プロパティ | 値 | 要件 |
|---|---|---|
|
|
IteratorResult オブジェクトを返す関数 |
返されるオブジェクトは next メソッドへの以前の呼び出しが、next メソッドへの以後のすべての呼び出しも、 |
next 関数に引数を渡してもよいが、その解釈と妥当性は対象の iterator に依存する。for-of 文および iterator のその他の一般的な利用者は引数を渡さないため、そのような方法で使用されることを想定する iterator オブジェクトは、引数なしで呼び出されることに対処できるようにしておかなければならない。
| プロパティ | 値 | 要件 |
|---|---|---|
|
|
IteratorResult オブジェクトを返す関数 |
返されるオブジェクトは next メソッド呼び出しを行う意図がないことを return メソッドの引数として渡された値を持つ |
|
|
IteratorResult オブジェクトを返す関数 |
返されるオブジェクトは throw することである。メソッドが throw しない場合、返される IteratorResult オブジェクトは通常、値が |
通常、これらのメソッドの呼び出し元は、それらを呼び出す前に存在を確認するべきである。for-of、yield*、および配列分割代入を含む特定の ECMAScript 言語機能は、存在確認を行った後にこれらのメソッドを呼び出す。
async iterable インターフェイスは、
| プロパティ | 値 | 要件 |
|---|---|---|
%Symbol.asyncIterator% |
返されるオブジェクトは |
async iterator インターフェイスを実装するオブジェクトは、
| プロパティ | 値 | 要件 |
|---|---|---|
| IteratorResult オブジェクトに対する promise を返す関数 |
返される promise は、履行されたとき、 さらに、履行値として機能する IteratorResult オブジェクトは、値が promise(または「thenable」)ではない |
next 関数に引数を渡してもよいが、その解釈と妥当性は対象の async iterator に依存する。for-await-of 文および async iterator のその他の一般的な利用者は引数を渡さないため、そのような方法で使用されることを想定する async iterator オブジェクトは、引数なしで呼び出されることに対処できるようにしておかなければならない。
| プロパティ | 値 | 要件 |
|---|---|---|
| IteratorResult オブジェクトに対する promise を返す関数 |
返される promise は、履行されたとき、 さらに、履行値として機能する IteratorResult オブジェクトは、値が promise(または「thenable」)ではない |
|
| IteratorResult オブジェクトに対する promise を返す関数 |
返される promise は、履行されたとき、 返される promise が履行された場合、IteratorResult オブジェクト履行値は通常、値が |
通常、これらのメソッドの呼び出し元は、それらを呼び出す前に存在を確認するべきである。for-await-of および yield* を含む特定の ECMAScript 言語機能は、存在確認を行った後にこれらのメソッドを呼び出す。
IteratorResult インターフェイスは、
| プロパティ | 値 | 要件 |
|---|---|---|
|
|
Boolean |
これは next メソッド呼び出しの結果状態である。 |
|
|
|
done が |
Iterator Helper オブジェクトは、特定のソース
%IteratorHelperPrototype% オブジェクト:
このプロパティは属性 { [[Writable]]:
Iterator コンストラクター:
この関数は、呼び出されたとき次の手順を実行する:
%WrapForValidIteratorPrototype% オブジェクト:
Iterator.prototype の初期値は
このプロパティは属性 { [[Writable]]:
Iterator プロトタイプオブジェクト:
この仕様で定義され、
次の式は、ECMAScript コードが %Iterator.prototype% オブジェクトにアクセスできる方法の一つである:
Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))
Iterator.prototype.constructor は、属性 { [[Enumerable]]:
[[Get]] 属性の値は、引数を必要としない built-in 関数である。呼び出されたとき、次の手順を実行する:
[[Set]] 属性の値は、引数 v を取る built-in 関数である。呼び出されたとき、次の手順を実行する:
ほとんどの built-in プロトタイプ上の
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
この関数は、呼び出されたとき次の手順を実行する:
この関数の
Iterator.prototype[%Symbol.toStringTag%] は、属性 { [[Enumerable]]:
[[Get]] 属性の値は、引数を必要としない built-in 関数である。呼び出されたとき、次の手順を実行する:
[[Set]] 属性の値は、引数 v を取る built-in 関数である。呼び出されたとき、次の手順を実行する:
ほとんどの built-in プロトタイプ上の
%AsyncIteratorPrototype% オブジェクト:
この仕様で定義され、
この関数は、呼び出されたとき次の手順を実行する:
この関数の
Async-from-Sync Iterator オブジェクトは、特定の同期
The
%AsyncFromSyncIteratorPrototype% オブジェクト:
throw メソッドを持たない場合、capability を拒否する前にクリーンアップする機会を与えるためにそれを閉じる。throw メソッドを持たないことを示すために Async-from-Sync
| 内部スロット | 型 | 説明 |
|---|---|---|
| [[SyncIteratorRecord]] |
|
適応されている元の同期 |
The
Promise は、遅延された(かつ非同期である可能性のある)計算の最終的な結果のプレースホルダーとして使用されるオブジェクトである。
任意の Promise は、相互に排他的な 3 つの状態、すなわち fulfilled、rejected、および pending のいずれかにある:
p は、p.then(f, r) が関数 f を呼び出す p は、p.then(f, r) が関数 r を呼び出す promise は、pending でない場合、すなわち fulfilled または rejected のいずれかである場合、settled であると言われる。
promise は、settled であるか、または別の promise の状態に一致するように「locked in」されている場合、resolved である。resolved promise を resolve または reject しようとしても効果はない。promise は、resolved でなければ unresolved である。unresolved promise は常に pending 状態にある。resolved promise は pending、fulfilled、または rejected であり得る。
PromiseCapability Record は、Promise または promise-like オブジェクトを、その promise を resolve または reject できる関数とともにカプセル化するために使用される
PromiseCapability Record は、
| フィールド名 | 値 | 意味 |
|---|---|---|
| [[Promise]] | Object | promise として使用できるオブジェクト。 |
| [[Resolve]] |
|
与えられた promise を resolve するために使用される関数。 |
| [[Reject]] |
|
与えられた promise を reject するために使用される関数。 |
IfAbruptRejectPromise は、
は、次と同じ意味である:
PromiseReaction Record は、promise が与えられた値で resolved または rejected になったときにどのように反応すべきかに関する情報を格納するために使用される
PromiseReaction Record は、
| フィールド名 | 値 | 意味 |
|---|---|---|
| [[Capability]] |
|
このレコードが reaction handler を提供する promise の capability。 |
| [[Type]] |
|
[[Type]] は、[[Handler]] が |
| [[Handler]] |
|
入力値に適用されるべき関数であり、その戻り値が派生 promise に何が起こるかを支配する。[[Handler]] が |
The
The
The resolve 関数と reject 関数を抽出しようとする。promise と resolve 関数および reject 関数は、新しい
この抽象操作は Promise のサブクラス化をサポートする。これは、渡された executor 関数引数を Promise コンストラクターと同じ方法で呼び出す任意のコンストラクターに対して generic であるためである。Promise コンストラクターの static メソッドを任意のサブクラスへ一般化するために使用される。
The
The
The
The
HostPromiseRejectionTracker の既定の実装は、
HostPromiseRejectionTracker は 2 つのシナリオで呼び出される:
HostPromiseRejectionTracker の典型的な実装は、unhandled rejection について開発者に通知しようとしつつ、以前のそのような通知が後から新しい handler の付加によって無効化された場合にも注意深く通知するかもしれない。
operation が
The
The
Promise コンストラクター:
extends 節における値として使用してよい。指定された Promise の動作を継承することを意図するサブクラスコンストラクターは、Promise および Promise.prototype の built-in メソッドをサポートするために必要な内部状態を持つサブクラスインスタンスを作成し初期化するため、Promise コンストラクターへの super 呼び出しを含まなければならない。この関数は、呼び出されたとき次の手順を実行する:
executor 引数は
executor 関数に渡される resolve 関数は単一の引数を受け入れる。executor コードは、関連付けられた Promise を resolve したいことを示すために、最終的に resolve 関数を呼び出してよい。resolve 関数に渡される引数は、遅延動作の最終的な値を表し、実際の fulfillment 値、または fulfilled された場合にその値を提供する別の promise のいずれかであり得る。
executor 関数に渡される reject 関数は単一の引数を受け入れる。executor コードは、関連付けられた Promise が rejected であり、決して fulfilled されないことを示すために、最終的に reject 関数を呼び出してよい。reject 関数に渡される引数は promise の rejection 値として使用される。通常、それは Error オブジェクトである。
Promise コンストラクターによって executor 関数に渡される resolve 関数と reject 関数は、関連付けられた promise を実際に resolve および reject する能力を持つ。サブクラスは、resolve と reject に対してカスタマイズされた値を渡す異なるコンストラクター動作を持ち得る。
Promise コンストラクター:
この関数は、渡された promise の fulfillment 値の配列で fulfilled される新しい promise、または rejected になる最初の渡された promise の理由で rejected される新しい promise を返す。このアルゴリズムを実行する際、渡された
この関数は、その
The
The
この関数は、元のすべての promise が settled、すなわち fulfilled または rejected のいずれかになった後にのみ、promise 状態の snapshot の配列で fulfilled される promise を返す。このアルゴリズムを実行する際、渡された
この関数は、その
The
この関数は、与えられた promise のうち最初に fulfilled されたものによって fulfilled される promise、または与えられた promise のすべてが rejected された場合に rejection 理由を保持する AggregateError で rejected される promise を返す。このアルゴリズムを実行する際、渡された
この関数は、その Promise コンストラクターのパラメータ規約をサポートするコンストラクター関数であることを要求する。
The
Promise.prototype の初期値は
このプロパティは属性 { [[Writable]]:
この関数は、渡された promise のうち最初に settle する promise と同じ方法で settled される新しい promise を返す。このアルゴリズムを実行する際、渡された iterable のすべての要素を promise に resolve する。
iterable 引数が値を生成しない場合、または iterable によって生成された promise のいずれも決して settle しない場合、このメソッドによって返される pending promise は決して settled にならない。
この関数は、その resolve メソッドを提供することも期待する。
The
この関数は、渡された引数で rejected された新しい promise を返す。
この関数は、その
この関数は、渡された引数で resolved された新しい promise、または引数がこのコンストラクターによって生成された promise である場合はその引数自体を返す。
この関数は、その
The
この関数は、呼び出されたとき次の手順を実行する:
この関数は、その
この関数は、新しい promise と、それに関連付けられた resolve 関数および reject 関数を合わせた 3 つのプロパティを持つオブジェクトを返す。
Promise[%Symbol.species%] は set accessor 関数が
この関数の
Promise プロトタイプメソッドは通常、派生オブジェクトを作成するために、その
Promise プロトタイプオブジェクト:
このメソッドは、呼び出されたとき次の手順を実行する:
Promise.prototype.constructor の初期値は
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
The
このプロパティは属性 { [[Writable]]:
Promise インスタンスは、
| 内部スロット | 型 | 説明 |
|---|---|---|
| [[PromiseState]] |
|
promise がその then メソッドへの入力呼び出しにどのように反応するかを支配する。
|
| [[PromiseResult]] |
|
promise が fulfilled または rejected された値(存在する場合)。[[PromiseState]] が |
| [[PromiseFulfillReactions]] |
|
promise が |
| [[PromiseRejectReactions]] |
|
promise が |
| [[PromiseIsHandled]] | Boolean | promise が fulfillment または rejection handler をこれまでに持ったことがあるかどうかを示す。unhandled rejection tracking で使用される。 |
GeneratorFunction は、通常
GeneratorFunction コンストラクター:
Function のサブクラスである。GeneratorFunction (…) は、同じ引数を持つオブジェクト作成式 new GeneratorFunction (…) と等価である。extends 節の値として使用してよい。指定された GeneratorFunction の動作を継承することを意図するサブクラスコンストラクターは、built-in GeneratorFunction の動作に必要な内部スロットを持つサブクラスインスタンスを作成し初期化するため、GeneratorFunction コンストラクターへの super 呼び出しを含まなければならない。generator function オブジェクトを定義するすべての ECMAScript 構文形式は、GeneratorFunction の直接インスタンスを作成する。GeneratorFunction サブクラスのインスタンスを作成する構文上の手段は存在しない。最後の引数(存在する場合)は generator function の本体(実行可能コード)を指定し、それより前の任意の引数は仮引数を指定する。
この関数は、呼び出されたとき次の手順を実行する:
GeneratorFunction コンストラクター:
GeneratorFunction.prototype の初期値は
このプロパティは属性 { [[Writable]]:
GeneratorFunction プロトタイプオブジェクト:
GeneratorFunction.prototype.constructor の初期値は
このプロパティは属性 { [[Writable]]:
GeneratorFunction.prototype.prototype の初期値は
このプロパティは属性 { [[Writable]]:
このプロパティは属性 { [[Writable]]:
すべての GeneratorFunction インスタンスは ECMAScript 関数オブジェクトであり、
各 GeneratorFunction インスタンスは、次の own プロパティを持つ:
GeneratorFunction インスタンスが作成されるたびに、別の通常のオブジェクトも作成され、それが generator function の
このプロパティは属性 { [[Writable]]:
Function インスタンスとは異なり、GeneratorFunction の
AsyncGeneratorFunction は、通常
AsyncGeneratorFunction コンストラクター:
Function のサブクラスである。AsyncGeneratorFunction (...) は、同じ引数を持つオブジェクト作成式 new AsyncGeneratorFunction (...) と等価である。extends 節の値として使用してよい。指定された AsyncGeneratorFunction の動作を継承することを意図するサブクラスコンストラクターは、built-in AsyncGeneratorFunction の動作に必要な内部スロットを持つサブクラスインスタンスを作成し初期化するため、AsyncGeneratorFunction コンストラクターへの super 呼び出しを含まなければならない。async generator function オブジェクトを定義するすべての ECMAScript 構文形式は、AsyncGeneratorFunction の直接インスタンスを作成する。AsyncGeneratorFunction サブクラスのインスタンスを作成する構文上の手段は存在しない。最後の引数(存在する場合)は async generator function の本体(実行可能コード)を指定し、それより前の任意の引数は仮引数を指定する。
この関数は、呼び出されたとき次の手順を実行する:
AsyncGeneratorFunction コンストラクター:
AsyncGeneratorFunction.prototype の初期値は
このプロパティは属性 { [[Writable]]:
AsyncGeneratorFunction プロトタイプオブジェクト:
AsyncGeneratorFunction.prototype.constructor の初期値は
このプロパティは属性 { [[Writable]]:
AsyncGeneratorFunction.prototype.prototype の初期値は
このプロパティは属性 { [[Writable]]:
このプロパティは属性 { [[Writable]]:
すべての AsyncGeneratorFunction インスタンスは ECMAScript 関数オブジェクトであり、
各 AsyncGeneratorFunction インスタンスは、次の own プロパティを持つ:
このプロパティは属性 { [[Writable]]:
AsyncGeneratorFunction インスタンスが作成されるたびに、別の通常のオブジェクトも作成され、それが async generator function の
このプロパティは属性 { [[Writable]]:
function インスタンスとは異なり、AsyncGeneratorFunction の
Generator は generator function を呼び出すことによって作成され、
Generator インスタンスは、そのインスタンスを作成した generator function の
%GeneratorPrototype% オブジェクト:
.constructor の初期値は
このプロパティは属性 { [[Writable]]:
このメソッドは、呼び出されたとき次の手順を実行する:
このメソッドは、呼び出されたとき次の手順を実行する:
このプロパティは属性 { [[Writable]]:
Generator インスタンスは、
| 内部スロット | 型 | 説明 |
|---|---|---|
| [[GeneratorState]] |
|
generator の現在の実行状態。 |
| [[GeneratorContext]] |
|
この generator のコードを実行するときに使用される実行コンテキスト。 |
| [[GeneratorBrand]] |
String または |
異なる種類の generator を区別するために使用される brand。 |
The
The
The
The
The
The
The
The
AsyncGenerator は async generator function を呼び出すことによって作成され、
AsyncGenerator インスタンスは、そのインスタンスを作成した async generator function の
%AsyncGeneratorPrototype% オブジェクト:
.constructor の初期値は
このプロパティは属性 { [[Writable]]:
このプロパティは属性 { [[Writable]]:
AsyncGenerator インスタンスは、以下に記述される内部スロットを持って最初に作成される:
| 内部スロット | 型 | 説明 |
|---|---|---|
| [[AsyncGeneratorState]] | async generator の現在の実行状態。 | |
| [[AsyncGeneratorContext]] | この async generator のコードを実行するときに使用される実行コンテキスト。 | |
| [[AsyncGeneratorQueue]] | async generator を再開する要求を表す |
|
| [[GeneratorBrand]] | String または |
異なる種類の async generator を区別するために使用される brand。 |
AsyncGeneratorRequest は、async generator がどのように再開されるべきかについての情報を格納するために使用され、対応する promise を fulfill または reject するための capability を含む
これは次のフィールドを持つ:
| フィールド名 | 値 | 意味 |
|---|---|---|
| [[Completion]] | async generator を再開するために使用されるべき |
|
| [[Capability]] | この要求に関連付けられた promise capability。 |
The
The
The
The
The
The
The
The
The
AsyncFunction は、通常
AsyncFunction コンストラクター:
Function のサブクラスである。AsyncFunction(…) は、同じ引数を持つオブジェクト作成式 new AsyncFunction(…) と等価である。extends 節の値として使用してよい。指定された AsyncFunction の動作を継承することを意図するサブクラスコンストラクターは、built-in async function の動作に必要な内部スロットを持つサブクラスインスタンスを作成し初期化するため、AsyncFunction コンストラクターへの super 呼び出しを含まなければならない。async function オブジェクトを定義するすべての ECMAScript 構文形式は、AsyncFunction の直接インスタンスを作成する。AsyncFunction サブクラスのインスタンスを作成する構文上の手段は存在しない。最後の引数(存在する場合)は async function の本体(実行可能コード)を指定する。それより前の任意の引数は仮引数を指定する。
この関数は、呼び出されたとき次の手順を実行する:
AsyncFunction コンストラクター:
AsyncFunction.prototype の初期値は
このプロパティは属性 { [[Writable]]:
AsyncFunction プロトタイプオブジェクト:
AsyncFunction.prototype.constructor の初期値は
このプロパティは属性 { [[Writable]]:
このプロパティは属性 { [[Writable]]:
すべての AsyncFunction インスタンスは ECMAScript 関数オブジェクトであり、
各 AsyncFunction インスタンスは、次の own プロパティを持つ:
The
The
The