JavaScript awaitの後続の値がPromiseではない場合の挙動

疑問に思って調べたことのメモです。

await を使う時に、後続の値はPromiseを書くのが普通ですが、以下のようにPromise以外の値を指定した場合にどうなるのか。

async function f2() {
  var y = await 20;
  console.log(y); // 20
}
f2();

このコードはMDNからの抜粋です。

説明にも書いてありますが、値が promise ではなかった場合、値を解決された promise に変換して、それを待ちます、とのことです。

値を解決されたPromiseとはこちらのページで説明されています。

いままでは、Promise以外を指定するとエラーになるものだと思っていたので、勉強になりました。