PromiseReaction Record

(PromiseCapability Record, Fulfill or Reject, JobCallback Record or empty) のレコード。

src: https://tc39.es/ecma262/#sec-promisereaction-records

Related Scraps:

PromiseCapability Record

([[Promise]], [[Resolve]], [[Reject]]) なレコード。 jQuery の Deferred の処理系内部実装のようなもの。

NewPromiseReactionJob

引数: (PromiseReaction Record, value)

以下のように reaction を実行する Job を作成して返す。

PerformPromiseThen

引数: (promise, onfulfill, onreject, resultCapability?)

capability がない場合があり、 await 式の場合が該当する。

Promise インスタンスの内部プロパティ

Promise のインスタンスが、その機能の実現のため内部に保持するプロパティについて:

NewPromiseCapability

引数: コンストラクタ

返り値: PromiseCapability Record

処理: new して、その際に resolve, reject を取り出して、それらをまとめて capability record へまとめて return

CreateResolvingFunctions

Promise Resolve Function と Promise Reject Function のペアを作成する。それぞれ AlreadyResolved を共有するため、ペアで作成される必要がある。

FulfillPromise

Promise Resolve Function のサブルーチン。 FulfillPromise(promise, value) の形式。

HostEnqueuePromiseJob

enqueueMicroTask の tc39 上での用語。 この enqueue した順番に各 Job は呼び出される必要がある。 (厳密に queue であることが要求される。)

Promise.prototype.then

ざっくり、 NewPromiseCapability して PerformPromiseThen (this, arg1, arg2, capability) する。

PromiseResolve

Promise.resolve の処理そのもの。 引数が Promise だったならばそのまま返し、 そうでなければ NewPromiseCapability して、即座に resolve を呼び、その promise を return