diff options
Diffstat (limited to 'js/src/jit-test/tests/modules/global-scope.js')
-rw-r--r-- | js/src/jit-test/tests/modules/global-scope.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/modules/global-scope.js b/js/src/jit-test/tests/modules/global-scope.js new file mode 100644 index 000000000..90a9f7026 --- /dev/null +++ b/js/src/jit-test/tests/modules/global-scope.js @@ -0,0 +1,32 @@ +// Test interaction with global object and global lexical scope. + +function parseAndEvaluate(source) { + let m = parseModule(source); + m.declarationInstantiation(); + return m.evaluation(); +} + +var x = 1; +assertEq(parseAndEvaluate("let r = x; x = 2; r"), 1); +assertEq(x, 2); + +let y = 3; +assertEq(parseAndEvaluate("let r = y; y = 4; r"), 3); +assertEq(y, 4); + +if (helperThreadCount() == 0) + quit(); + +function offThreadParseAndEvaluate(source) { + offThreadCompileModule(source); + let m = finishOffThreadModule(); + print("compiled"); + m.declarationInstantiation(); + return m.evaluation(); +} + +assertEq(offThreadParseAndEvaluate("let r = x; x = 5; r"), 2); +assertEq(x, 5); + +assertEq(offThreadParseAndEvaluate("let r = y; y = 6; r"), 4); +assertEq(y, 6); |