mirror of
https://github.com/tc39/test262.git
synced 2025-07-21 04:54:44 +02:00
add dfs tests for https://github.com/tc39/ecma262/pull/1669
This commit is contained in:
parent
b59d07937a
commit
b0bb917dc6
8
test/language/module-code/verify-dfs-a_FIXTURE.js
Normal file
8
test/language/module-code/verify-dfs-a_FIXTURE.js
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
// Copyright (C) 2020 Ecma International. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
import { evaluated, check } from './verify-dfs.js';
|
||||||
|
|
||||||
|
check(import('./verify-dfs-b_FIXTURE.js'));
|
||||||
|
|
||||||
|
evaluated('A');
|
6
test/language/module-code/verify-dfs-b_FIXTURE.js
Normal file
6
test/language/module-code/verify-dfs-b_FIXTURE.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
// Copyright (C) 2020 Ecma International. All rights reserved.
|
||||||
|
// This code is governed by the BSD license found in the LICENSE file.
|
||||||
|
|
||||||
|
import { evaluated } from './verify-dfs.js';
|
||||||
|
|
||||||
|
evaluated('B');
|
34
test/language/module-code/verify-dfs.js
Normal file
34
test/language/module-code/verify-dfs.js
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
// 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);
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user