summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/language/module-code/verify-dfs.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/language/module-code/verify-dfs.js')
-rw-r--r--js/src/tests/test262/language/module-code/verify-dfs.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/module-code/verify-dfs.js b/js/src/tests/test262/language/module-code/verify-dfs.js
new file mode 100644
index 0000000000..59432db45f
--- /dev/null
+++ b/js/src/tests/test262/language/module-code/verify-dfs.js
@@ -0,0 +1,35 @@
+// |reftest| module async
+// Copyright (C) 2020 Ecma International. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+description: Dynamic import can't preempt DFS evaluation order
+esid: sec-moduleevaluation
+info: |
+ Evaluate ( ) Concrete Method
+
+ 1. Assert: This call to Evaluate is not happening at the same time as another call to Evaluate within the surrounding agent.
+ [...]
+flags: [module, async]
+features: [dynamic-import]
+---*/
+
+import './verify-dfs-a_FIXTURE.js';
+import './verify-dfs-b_FIXTURE.js';
+
+// rely on function hoisting to create shared array
+export function evaluated(name) {
+ if (!evaluated.order) {
+ evaluated.order = [];
+ }
+ evaluated.order.push(name);
+}
+
+export function check(promise) {
+ promise.then(() => {
+ assert.sameValue(evaluated.order.length, 2);
+ assert.sameValue(evaluated.order[0], 'A');
+ assert.sameValue(evaluated.order[1], 'B');
+ })
+ .then($DONE, $DONE);
+}