Source code

Revision control

Copy as Markdown

Other Tools

// |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();