summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/module-code/top-level-await/top-level-ticks-2.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/language/module-code/top-level-await/top-level-ticks-2.js')
-rw-r--r--js/src/tests/test262/language/module-code/top-level-await/top-level-ticks-2.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/module-code/top-level-await/top-level-ticks-2.js b/js/src/tests/test262/language/module-code/top-level-await/top-level-ticks-2.js
new file mode 100644
index 0000000000..5cf533e5b1
--- /dev/null
+++ b/js/src/tests/test262/language/module-code/top-level-await/top-level-ticks-2.js
@@ -0,0 +1,47 @@
+// |reftest| module async
+// 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');