mirror of https://github.com/tc39/test262.git
47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
// Copyright (C) 2019 Leo Balter. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
|
|
/*---
|
|
esid: sec-asyncblockstart
|
|
description: >
|
|
Evaluation of await ticks order
|
|
info: |
|
|
AsyncBlockStart ( promiseCapability, asyncBody, asyncContext )
|
|
|
|
1. Assert: promiseCapability is a PromiseCapability Record.
|
|
2. Let runningContext be the running execution context.
|
|
3. Set the code evaluation state of asyncContext such that when evaluation is resumed for that execution context the following steps will be performed:
|
|
a. Let result be the result of evaluating asyncBody.
|
|
...
|
|
includes: [compareArray.js]
|
|
flags: [module, async]
|
|
features: [top-level-await]
|
|
---*/
|
|
|
|
var expected = [
|
|
'await 1',
|
|
'tick 1',
|
|
'await 2',
|
|
'tick 2',
|
|
'await 3',
|
|
'tick 3',
|
|
'await 4',
|
|
'tick 4',
|
|
];
|
|
|
|
var actual = [];
|
|
|
|
Promise.resolve(0)
|
|
.then(() => actual.push('tick 1'))
|
|
.then(() => actual.push('tick 2'))
|
|
.then(() => actual.push('tick 3'))
|
|
.then(() => actual.push('tick 4'))
|
|
.then(() => {
|
|
assert.compareArray(actual, expected, 'Ticks for top level await and promises');
|
|
}).then($DONE, $DONE);
|
|
|
|
await actual.push('await 1');
|
|
await actual.push('await 2');
|
|
await actual.push('await 3');
|
|
await actual.push('await 4');
|