Tests that evaluation with top-level await may be performed in console. await Promise.resolve(1) 1 {a:await Promise.resolve(1)} {a: 1} $_ {a: 1} let {a,b} = await Promise.resolve({a: 1, b:2}), f = 5; undefined a 1 b 2 let c = await Promise.resolve(2) undefined c 2 let d; undefined d undefined let [i,{abc:{k}}] = [0,{abc:{k:1}}]; undefined i 0 k 1 var l = await Promise.resolve(2); undefined l 2 foo(await koo()); 4 $_ 4 const m = foo(await koo()); undefined m 4 const n = foo(await koo()); undefined n 4 `status: ${(await Promise.resolve({status:200})).status}` 'status: 200' for (let i = 0; i < 2; ++i) await i 1 for (let i = 0; i < 2; ++i) { await i } 1 await 0 0 await 0;function foo(){} 0 foo ƒ foo(){} class Foo{}; await 1; 1 Foo class Foo{} await 0;function* gen(){} 0 for (let j = 0; j < 5; ++j) { await j; } 4 j VM:1 Uncaught ReferenceError: j is not defined at :1:1 (anonymous) @ VM:1 gen ƒ* gen(){} await 5; return 42; VM:1 Uncaught SyntaxError: Illegal return statement (at VM:1:10) let o = await 1, p undefined p undefined let q = 1, s = await 2 undefined s 2 await {...{foo: 42}} {foo: 42}