?uem/p1-90`インターフェイスとは、関連付けられた値が特定の仕様に一致する
iterable インターフェイスには、
| プロパティ | 値 | 要件 |
|---|---|---|
%Symbol.iterator%
|
an |
返されるオブジェクトは |
iterator インターフェイスを実装するオブジェクトは、
| プロパティ | 値 | 要件 |
|---|---|---|
|
|
an |
返されるオブジェクトは next メソッドの以前の呼出しが next メソッドの以後のすべての呼出しも、 |
next 関数には引数を渡すことができますが、その解釈と有効性は対象の iterator に依存します。for-of 文および iterator のその他の一般的な利用者は引数を渡さないため、そのような方法で使用されることを想定する iterator オブジェクトは、引数なしで呼び出されることに対応できなければなりません。
| プロパティ | 値 | 要件 |
|---|---|---|
|
|
an |
返されるオブジェクトは next メソッドを呼び出す意図がないことを return メソッドの引数として渡された値を持つ |
|
|
an |
返されるオブジェクトは throw することです。メソッドが throw しない場合、返される IteratorResult オブジェクトは通常、値が |
通常、これらのメソッドの呼出し元は、呼び出す前にその存在を確認するべきです。for-of、yield*、および配列分割代入を含む特定の ECMAScript 言語機能は、存在確認を行った後にこれらのメソッドを呼び出します。
async iterable インターフェイスには、
| プロパティ | 値 | 要件 |
|---|---|---|
%Symbol.asyncIterator% |
an |
返されるオブジェクトは |
async iterator インターフェイスを実装するオブジェクトは、
| プロパティ | 値 | 要件 |
|---|---|---|
| IteratorResult オブジェクトの promise を返す関数 |
返される promise は、fulfilled されたとき、 さらに、fulfillment 値として機能する IteratorResult オブジェクトは、その値が promise(または「 |
next 関数には引数を渡すことができますが、その解釈と有効性は対象の async iterator に依存します。for-await-of 文および async iterator のその他の一般的な利用者は引数を渡さないため、そのような方法で使用されることを想定する async iterator オブジェクトは、引数なしで呼び出されることに対応できなければなりません。
| プロパティ | 値 | 要件 |
|---|---|---|
| IteratorResult オブジェクトの promise を返す関数 |
返される promise は、fulfilled されたとき、 さらに、fulfillment 値として機能する IteratorResult オブジェクトは、その値が promise(または「 |
|
| IteratorResult オブジェクトの promise を返す関数 |
返される promise は、fulfilled されたとき、 返される promise が fulfilled された場合、その IteratorResult オブジェクト fulfillment 値は通常、値が |
通常、これらのメソッドの呼出し元は、呼び出す前にその存在を確認するべきです。for-await-of および yield* を含む特定の ECMAScript 言語機能は、存在確認を行った後にこれらのメソッドを呼び出します。
IteratorResult インターフェイスには、
| プロパティ | 値 | 要件 |
|---|---|---|
|
|
a Boolean |
これは next メソッド呼出しの結果状態です。 |
|
|
an ECMAScript language value |
done が |
Iterator Helper オブジェクトは、特定の source
%IteratorHelperPrototype% オブジェクトは:
このプロパティは属性 { [[Writable]]:
Iterator
この関数は呼び出されたとき、次の手順を実行します。
%WrapForValidIteratorPrototype% オブジェクトは:
Iterator.prototype の初期値は
このプロパティは属性 { [[Writable]]:
この関数は呼び出されたとき、次の手順を実行します。
この関数は呼び出されたとき、次の手順を実行します。
Iterator prototype オブジェクトは:
この仕様で定義され、
次の式は、ECMAScript コードが %Iterator.prototype% オブジェクトへアクセスする方法の1つです。
Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))
Iterator.prototype.constructor は属性 { [[Enumerable]]:
[[Getter]] 属性の値は引数を必要としない組込み関数です。呼び出されたとき、次の手順を実行します。
[[Setter]] 属性の値は引数 v を取る組込み関数です。呼び出されたとき、次の手順を実行します。
ほとんどの組込み prototype 上の
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドの
この関数は呼び出されたとき、次の手順を実行します。
この関数の
Iterator.prototype[%Symbol.toStringTag%] は属性 { [[Enumerable]]:
[[Getter]] 属性の値は引数を必要としない組込み関数です。呼び出されたとき、次の手順を実行します。
[[Setter]] 属性の値は引数 v を取る組込み関数です。呼び出されたとき、次の手順を実行します。
ほとんどの組込み prototype 上の
%AsyncIteratorPrototype% オブジェクトは:
この仕様で定義され、
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドの
この関数は呼び出されたとき、次の手順を実行します。
この関数の
Async-from-Sync Iterator オブジェクトは、特定の同期
%AsyncFromSyncIteratorPrototype% オブジェクトは:
throw メソッドを持たない場合、capability を reject する前にクリーンアップする機会を与えるため、それを close する。throw メソッドを持たないことを示すため Async-from-Sync
| 内部スロット | 型 | 説明 |
|---|---|---|
| [[SyncIteratorRecord]] |
an |
適応対象となる元の同期 |
Disposable インターフェイスには、
| プロパティ | 値 | 要件 |
|---|---|---|
%Symbol.dispose%
|
a function object |
このメソッドを呼び出すと、呼出し元がこのオブジェクトを引き続き使用する意図がないことを 同じオブジェクトに対してこのメソッドを複数回呼び出す場合、すでに dispose 済みのリソースに対するクリーンアップ処理の繰返しを避けるべきであり、最初の呼出しで例外がスローされた場合でも例外をスローするべきではありません。ただし、この要件は強制されません。
|
AsyncDisposable インターフェイスには、
| プロパティ | 値 | 要件 |
|---|---|---|
%Symbol.asyncDispose%
|
promise を返す function object |
このメソッドを呼び出すと、呼出し元がこのオブジェクトを引き続き使用する意図がないことを 同じオブジェクトに対してこのメソッドを複数回呼び出す場合、すでに dispose 済みのリソースに対するクリーンアップ処理の繰返しを避けるべきであり、最初の呼出しで例外がスローされた、または rejected promise が返された場合でも、例外をスローしたり rejected promise を返したりするべきではありません。ただし、この要件は強制されません。
|
DisposableStack は、一緒に dispose されるべき1つ以上のリソースを保持するために使用できるオブジェクトです。
すべての DisposableStack オブジェクトは、相互排他的な2つの状態、disposed または pending のいずれかにあります。disposable stack d は、d に対して d.dispose() も d.move() も呼び出されていない場合に限り pending です。
DisposableStack
extends 節の値として使用できます。規定された DisposableStack の動作を継承しようとするサブクラスDisposableStack.prototype の組込みメソッドをサポートするために必要な内部状態を持つサブクラスインスタンスを作成して初期化するため、DisposableStack super 呼出しを含まなければなりません。この関数は呼び出されたとき、次の手順を実行します。
DisposableStack
DisposableStack.prototype の初期値は
このプロパティは属性 { [[Writable]]:
DisposableStack prototype オブジェクトは:
このメソッドは呼び出されたとき、次の手順を実行します。
DisposableStack.prototype.constructor の初期値は
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
DisposableStack.prototype.disposed は、set アクセサー関数が
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
%Symbol.dispose% プロパティの初期値は、
%Symbol.toStringTag% プロパティの初期値は String 値
このプロパティは属性 { [[Writable]]:
DisposableStack インスタンスは
| 内部スロット | 型 | 説明 |
|---|---|---|
| [[DisposableState]] |
|
disposable stack がその %Symbol.dispose% メソッドへの呼出しにどのように反応するかを制御します。
|
| [[DisposableResourceStack]] |
a |
disposable stack が dispose されたときに dispose されるリソース。リソースは初期化された順序で追加され、逆順で dispose されます。 |
AsyncDisposableStack は、非同期にまとめて dispose されるべき1つ以上のリソースを保持するために使用できるオブジェクトです。
すべての AsyncDisposableStack オブジェクトは、相互排他的な2つの状態、disposed または pending のいずれかにあります。async-disposable stack d は、d に対して d.disposeAsync() も d.move() も呼び出されていない場合に限り pending です。
AsyncDisposableStack
extends 節の値として使用できます。規定された AsyncDisposableStack の動作を継承しようとするサブクラスAsyncDisposableStack.prototype の組込みメソッドをサポートするために必要な内部状態を持つサブクラスインスタンスを作成して初期化するため、AsyncDisposableStack super 呼出しを含まなければなりません。この関数は呼び出されたとき、次の手順を実行します。
AsyncDisposableStack
AsyncDisposableStack.prototype の初期値は
このプロパティは属性 { [[Writable]]:
AsyncDisposableStack prototype オブジェクトは:
このメソッドは呼び出されたとき、次の手順を実行します。
AsyncDisposableStack.prototype.constructor の初期値は
このメソッドは呼び出されたとき、次の手順を実行します。
この async メソッドは呼び出されたとき、次の手順を実行します。
AsyncDisposableStack.prototype.disposed は、set アクセサー関数が
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
%Symbol.asyncDispose% プロパティの初期値は、
%Symbol.toStringTag% プロパティの初期値は String 値
このプロパティは属性 { [[Writable]]:
AsyncDisposableStack インスタンスは
| 内部スロット | 型 | 説明 |
|---|---|---|
| [[AsyncDisposableState]] |
|
disposable stack がその %Symbol.asyncDispose% メソッドへの呼出しにどのように反応するかを制御します。
|
| [[DisposableResourceStack]] |
a |
disposable stack が dispose されたときに dispose されるリソース。リソースは初期化された順序で追加され、逆順で dispose されます。 |
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 の状態と一致するように「固定」されている場合、resolved です。resolved promise を resolve または reject しようとしても効果はありません。promise は resolved でない場合、unresolved です。unresolved promise は常に pending 状態です。resolved promise は pending、fulfilled、または rejected のいずれかである可能性があります。
thenable とは、
PromiseCapability Record は、Promise または promise-like オブジェクトを、その promise を resolve または reject できる関数とともにカプセル化するために使用される
PromiseCapability Record は
| フィールド名 | 値 | 意味 |
|---|---|---|
| [[Promise]] | an Object | promise として使用可能なオブジェクト。 |
| [[Resolve]] | a function object | 与えられた promise を resolve するために使用される関数。 |
| [[Reject]] | a function object | 与えられた promise を reject するために使用される関数。 |
IfAbruptRejectPromise は、
は、次と同じ意味です。
PromiseReaction Record は、promise が特定の値で resolved または rejected になったときにどのように反応するべきかについての情報を保存するために使用される
PromiseReaction Record は
| フィールド名 | 値 | 意味 |
|---|---|---|
| [[Capability]] |
a |
この |
| [[Type]] |
|
[[Handler]] が |
| [[Handler]] |
a |
入力値に適用され、その戻り値が派生 promise に何が起こるかを決定する関数。[[Handler]] が |
resolve および reject 関数を抽出しようとします。promise と resolve および reject 関数は、新しい
ホスト定義の抽象操作 HostPromiseRejectionTracker。引数 promise (Promise) および operation ((
HostPromiseRejectionTracker の既定の実装は
HostPromiseRejectionTracker は次の2つの状況で呼び出されます。
HostPromiseRejectionTracker の典型的な実装では、未処理の rejection を開発者へ通知すると同時に、後から新しい handler が取り付けられて以前の通知が無効になった場合にも、それを通知するよう注意することが考えられます。
operation が
Promise
extends 節の値として使用できます。規定された Promise の動作を継承しようとするサブクラスPromise および Promise.prototype の組込みメソッドをサポートするために必要な内部状態を持つサブクラスインスタンスを作成して初期化するため、Promise super 呼出しを含まなければなりません。この関数は呼び出されたとき、次の手順を実行します。
executor 引数は function object でなければなりません。この Promise によって表される、場合によっては遅延される処理の開始および完了の報告のために呼び出されます。executor は2つの引数、resolve と reject で呼び出されます。これらは、遅延計算の最終的な完了または失敗を報告するために executor 関数が使用できる関数です。executor 関数から戻ることは、遅延処理が完了したことを意味するのではなく、遅延処理を最終的に実行する要求が受け付けられたことだけを意味します。
executor 関数へ渡される resolve 関数は単一の引数を受け取ります。executor コードは最終的に resolve 関数を呼び出して、関連付けられた Promise を resolve したいことを示すことができます。resolve 関数へ渡される引数は遅延処理の最終的な値を表し、実際の fulfillment 値でも、fulfilled された場合に値を提供する別の promise でもかまいません。
executor 関数へ渡される reject 関数は単一の引数を受け取ります。executor コードは最終的に reject 関数を呼び出して、関連付けられた Promise が reject され、決して fulfill されないことを示すことができます。reject 関数へ渡される引数は promise の rejection 値として使用されます。通常は Error オブジェクトです。
Promise
Promise
この関数は、渡された promise の fulfillment 値の配列で fulfilled される新しい promise を返すか、渡された promise のうち最初に reject されたものの理由で reject されます。このアルゴリズムの実行中、渡された
この関数は、元のすべての promise が settled、すなわち fulfilled または rejected のいずれかになった後にのみ、promise 状態のスナップショットの配列で fulfilled される promise を返します。このアルゴリズムの実行中、渡された
この関数は、与えられた promise のうち最初に fulfill された promise によって fulfilled される promise を返すか、与えられたすべての promise が reject された場合は、rejection の理由を保持する AggregateError で reject される promise を返します。このアルゴリズムの実行中、渡された
Promise.prototype の初期値は
このプロパティは属性 { [[Writable]]:
この関数は、渡された promise のうち最初に settle した promise と同じ方法で settle される新しい promise を返します。このアルゴリズムの実行中、渡された iterable のすべての要素を promise に resolve します。
iterable 引数が値を生成しない場合、または iterable が生成する promise のいずれも決して settle しない場合、このメソッドが返す pending promise は決して settle しません。
この関数は、渡された引数で reject された新しい promise を返します。
この関数は、渡された引数で resolve された新しい promise、または引数がこの
この関数は呼び出されたとき、次の手順を実行します。
この関数は3つのプロパティを持つオブジェクト、すなわち新しい promise と、それに関連付けられた resolve および reject 関数を返します。
Promise[%Symbol.species%] は、set アクセサー関数が
この関数の
Promise prototype メソッドは通常、その
Promise prototype オブジェクトは:
このメソッドは呼び出されたとき、次の手順を実行します。
Promise.prototype.constructor の初期値は
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このプロパティは属性 { [[Writable]]:
Promise インスタンスは
| 内部スロット | 型 | 説明 |
|---|---|---|
| [[PromiseState]] |
|
promise がその then メソッドへの呼出しにどのように反応するかを制御します。
|
| [[PromiseResult]] |
an ECMAScript language value or |
promise が fulfilled または rejected された値(存在する場合)。[[PromiseState]] が |
| [[PromiseFulfillReactions]] |
a |
promise が |
| [[PromiseRejectReactions]] |
a |
promise が |
| [[PromiseIsHandled]] | a Boolean | promise に fulfillment または rejection handler がこれまでに設定されたことがあるかどうかを示します。未処理の rejection の追跡に使用されます。 |
GeneratorFunction は通常、
GeneratorFunction
Function のサブクラスです。GeneratorFunction (…) は、同じ引数を持つオブジェクト作成式 new GeneratorFunction (…) と等価です。extends 節の値として使用できます。規定された GeneratorFunction の動作を継承しようとするサブクラスsuper 呼出しを含まなければなりません。generator function オブジェクトを定義するすべての ECMAScript 構文形式は GeneratorFunction の直接インスタンスを作成します。GeneratorFunction サブクラスのインスタンスを作成する構文上の手段はありません。最後の引数(存在する場合)は generator function の本体(実行可能コード)を指定し、それより前の引数は仮引数を指定します。
この関数は呼び出されたとき、次の手順を実行します。
GeneratorFunction
GeneratorFunction.prototype の初期値は
このプロパティは属性 { [[Writable]]:
GeneratorFunction prototype オブジェクトは:
GeneratorFunction.prototype.constructor の初期値は
このプロパティは属性 { [[Writable]]:
GeneratorFunction.prototype.prototype の初期値は
このプロパティは属性 { [[Writable]]:
このプロパティは属性 { [[Writable]]:
すべての GeneratorFunction インスタンスは ECMAScript
各 GeneratorFunction インスタンスは次の own プロパティを持ちます。
GeneratorFunction インスタンスが作成されるたびに、別の
このプロパティは属性 { [[Writable]]:
Function インスタンスとは異なり、GeneratorFunction の
AsyncGeneratorFunction は通常、
AsyncGeneratorFunction
Function のサブクラスです。AsyncGeneratorFunction (...) は、同じ引数を持つオブジェクト作成式 new AsyncGeneratorFunction (...) と等価です。extends 節の値として使用できます。規定された AsyncGeneratorFunction の動作を継承しようとするサブクラスsuper 呼出しを含まなければなりません。async generator function オブジェクトを定義するすべての ECMAScript 構文形式は AsyncGeneratorFunction の直接インスタンスを作成します。AsyncGeneratorFunction サブクラスのインスタンスを作成する構文上の手段はありません。最後の引数(存在する場合)は async generator function の本体(実行可能コード)を指定し、それより前の引数は仮引数を指定します。
この関数は呼び出されたとき、次の手順を実行します。
AsyncGeneratorFunction
AsyncGeneratorFunction.prototype の初期値は
このプロパティは属性 { [[Writable]]:
AsyncGeneratorFunction prototype オブジェクトは:
AsyncGeneratorFunction.prototype.constructor の初期値は
このプロパティは属性 { [[Writable]]:
AsyncGeneratorFunction.prototype.prototype の初期値は
このプロパティは属性 { [[Writable]]:
このプロパティは属性 { [[Writable]]:
すべての AsyncGeneratorFunction インスタンスは ECMAScript
各 AsyncGeneratorFunction インスタンスは次の own プロパティを持ちます。
このプロパティは属性 { [[Writable]]:
AsyncGeneratorFunction インスタンスが作成されるたびに、別の
このプロパティは属性 { [[Writable]]:
function インスタンスとは異なり、AsyncGeneratorFunction の
Generator は generator function を呼び出すことによって作成され、
Generator インスタンスは、そのインスタンスを作成した generator function の
%GeneratorPrototype% オブジェクトは:
.constructor の初期値は
このプロパティは属性 { [[Writable]]:
このメソッドは呼び出されたとき、次の手順を実行します。
このメソッドは呼び出されたとき、次の手順を実行します。
このプロパティは属性 { [[Writable]]:
Generator インスタンスは、
| 内部スロット | 型 | 説明 |
|---|---|---|
| [[GeneratorState]] |
|
generator の現在の実行状態。 |
| [[GeneratorContext]] | an execution context |
この generator のコードを実行するときに使用される |
| [[GeneratorBrand]] |
a String or |
異なる種類の generator を区別するために使用される brand。 |
AsyncGenerator は async generator function を呼び出すことによって作成され、
AsyncGenerator インスタンスは、そのインスタンスを作成した async generator function の
%AsyncGeneratorPrototype% オブジェクトは:
.constructor の初期値は
このプロパティは属性 { [[Writable]]:
このプロパティは属性 { [[Writable]]:
AsyncGenerator インスタンスは、以下で説明される内部スロットを持つ状態で最初に作成されます。
| 内部スロット | 型 | 説明 |
|---|---|---|
| [[AsyncGeneratorState]] | async generator の現在の実行状態。 | |
| [[AsyncGeneratorContext]] | an execution context | この async generator のコードを実行するときに使用される |
| [[AsyncGeneratorQueue]] | a |
async generator を再開する要求を表す |
| [[GeneratorBrand]] | a String or |
異なる種類の async generator を区別するために使用される brand。 |
AsyncGeneratorRequest は、async generator をどのように再開するべきかについての情報を保存するために使用され、対応する promise を fulfill または reject するための capability を含む
次のフィールドを持ちます。
| フィールド名 | 値 | 意味 |
|---|---|---|
| [[Completion]] | a |
async generator を再開するために使用されるべき |
| [[Capability]] | a |
この要求に関連付けられた promise capability。 |
AsyncFunction は通常、
AsyncFunction
Function のサブクラスです。AsyncFunction(…) は、同じ引数を持つオブジェクト作成式 new AsyncFunction(…) と等価です。extends 節の値として使用できます。規定された AsyncFunction の動作を継承しようとするサブクラスsuper 呼出しを含まなければなりません。async function オブジェクトを定義するすべての ECMAScript 構文形式は AsyncFunction の直接インスタンスを作成します。AsyncFunction サブクラスのインスタンスを作成する構文上の手段はありません。最後の引数(存在する場合)は async function の本体(実行可能コード)を指定します。それより前の引数は仮引数を指定します。
この関数は呼び出されたとき、次の手順を実行します。
AsyncFunction
AsyncFunction.prototype の初期値は
このプロパティは属性 { [[Writable]]:
AsyncFunction prototype オブジェクトは:
AsyncFunction.prototype.constructor の初期値は
このプロパティは属性 { [[Writable]]:
このプロパティは属性 { [[Writable]]:
すべての AsyncFunction インスタンスは ECMAScript
各 AsyncFunction インスタンスは次の own プロパティを持ちます。