| // Copyright 2017 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| (async function() { |
| TestRunner.addResult('Tests that evaluation with top-level await may be performed in console.'); |
| |
| await TestRunner.loadModule('console_test_runner'); |
| await TestRunner.showPanel('console'); |
| |
| await TestRunner.evaluateInPagePromise(` |
| function foo(x) { |
| return x; |
| } |
| |
| function koo() { |
| return Promise.resolve(4); |
| } |
| `); |
| |
| var test = ConsoleTestRunner.evaluateInConsolePromise; |
| await test('await Promise.resolve(1)'); |
| await test('{a:await Promise.resolve(1)}'); |
| await test('$_'); |
| await test('let {a,b} = await Promise.resolve({a: 1, b:2}), f = 5;'); |
| await test('a'); |
| await test('b'); |
| await test('let c = await Promise.resolve(2)'); |
| await test('c'); |
| await test('let d;'); |
| await test('d'); |
| await test('let [i,{abc:{k}}] = [0,{abc:{k:1}}];'); |
| await test('i'); |
| await test('k'); |
| await test('var l = await Promise.resolve(2);'); |
| await test('l'); |
| await test('foo(await koo());'); |
| await test('$_'); |
| await test('const m = foo(await koo());'); |
| await test('m'); |
| await test('const n = foo(await\nkoo());'); |
| await test('n'); |
| await test('`status: ${(await Promise.resolve({status:200})).status}`'); |
| await test('for (let i = 0; i < 2; ++i) await i'); |
| await test('for (let i = 0; i < 2; ++i) { await i }'); |
| await test('await 0'); |
| await test('await 0;function foo(){}'); |
| await test('foo'); |
| await test('class Foo{}; await 1;'); |
| await test('Foo'); |
| await test('await 0;function* gen(){}'); |
| await test('for (var i = 0; i < 10; ++i) { await i; }') |
| await test('i'); |
| await test('for (let j = 0; j < 5; ++j) { await j; }') |
| await test('j'); |
| await test('gen'); |
| await test('await 5; return 42;'); |
| await test('let o = await 1, p'); |
| await test('p'); |
| await test('let q = 1, s = await 2'); |
| await test('s'); |
| await test('await {...{foo: 42}}'); |
| await new Promise(resolve => ConsoleTestRunner.waitForRemoteObjectsConsoleMessages(resolve)); |
| ConsoleTestRunner.dumpConsoleMessages(); |
| TestRunner.completeTest(); |
| })(); |