Mypal/js/src/jit-test/tests/modules/global-scope.js

35 lines
886 B
JavaScript

// Test interaction with global object and global lexical scope.
function evalModuleAndCheck(source, expected) {
let m = parseModule(source);
m.declarationInstantiation();
m.evaluation();
assertEq(getModuleEnvironmentValue(m, "r"), expected);
}
var x = 1;
evalModuleAndCheck("export let r = x; x = 2;", 1);
assertEq(x, 2);
let y = 3;
evalModuleAndCheck("export let r = y; y = 4;", 3);
assertEq(y, 4);
if (helperThreadCount() == 0)
quit();
function offThreadEvalModuleAndCheck(source, expected) {
offThreadCompileModule(source);
let m = finishOffThreadModule();
print("compiled");
m.declarationInstantiation();
m.evaluation();
assertEq(getModuleEnvironmentValue(m, "r"), expected);
}
offThreadEvalModuleAndCheck("export let r = x; x = 5;", 2);
assertEq(x, 5);
offThreadEvalModuleAndCheck("export let r = y; y = 6;", 4);
assertEq(y, 6);