Promise Resolve Function

new Promise((resolve) => ...) するときの resolve 関数の実態。 [[Promise]] と [[AlreadyResolved]] の内部レコードを持つ。

  • alreadyResolved でガード
  • thenable でない場合には、 FulfillPromise (resolve値)
  • thenable の場合には、[[Promise]] に対する resolve/reject を CreateResolvingFunctions で再度作成し、 then に対してそれらを渡しながら実行するような Job を HostEnqueuePromiseJob
    • 再度 resolve/reject を作成しているのは、ガードで既に alreadyResolved にしてしまっているからの模様。

src: https://tc39.es/ecma262/#sec-promise-resolve-functions