blob: bcdc108b9a541dae2ddfe0fa30c984cee9b18be9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
// |jit-test| skip-if: isLcovEnabled()
function func(doEval) {
if (doEval) {
const dbg = this.newGlobal({sameZoneAs: {}}).Debugger({});
dbg.getNewestFrame().eval(`
function reaction() {
// Access global variable to walk through the environment chain.
return Map;
};
Promise.resolve(1).then(reaction);
`);
}
}
assertEq(isLazyFunction(func), true);
assertEq(isRelazifiableFunction(func), false);
// Delazify here.
func(false);
// Delazified function should be marked relazifiable.
assertEq(isLazyFunction(func), false);
assertEq(isRelazifiableFunction(func), true);
// Perform Frame.prototype.eval
func(true);
// Frame.prototype.eval should mark the enclosing script non-relazifiable.
assertEq(isLazyFunction(func), false);
assertEq(isRelazifiableFunction(func), false);
// This shouldn't relazify `func`.
relazifyFunctions();
relazifyFunctions();
assertEq(isLazyFunction(func), false);
assertEq(isRelazifiableFunction(func), false);
// Execute the inner function to make sure the enclosing script is not lazy.
drainJobQueue();
|