summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/parser/stencil-eager-delazify-certviewer.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/parser/stencil-eager-delazify-certviewer.js')
-rw-r--r--js/src/jit-test/tests/parser/stencil-eager-delazify-certviewer.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/parser/stencil-eager-delazify-certviewer.js b/js/src/jit-test/tests/parser/stencil-eager-delazify-certviewer.js
new file mode 100644
index 0000000000..ddd7f32ed4
--- /dev/null
+++ b/js/src/jit-test/tests/parser/stencil-eager-delazify-certviewer.js
@@ -0,0 +1,35 @@
+// |jit-test| skip-if: helperThreadCount() === 0 || isLcovEnabled()
+
+const eagerOptions = {
+ fileName: "certViewer.js",
+ lineNumber: 1,
+ eagerDelazificationStrategy: "OnDemandOnly",
+};
+
+const concurrentOptions = {
+ fileName: "certViewer.js",
+ lineNumber: 1,
+ eagerDelazificationStrategy: "ConcurrentDepthFirst",
+};
+
+// Check that `undefined` is properly resolved to the global scope.
+let script = `
+function certDecoderInitializer() {
+ return undefined;
+}
+
+let result = certDecoderInitializer();
+export { result };
+`;
+
+function evalModule(source, opts) {
+ let job = offThreadCompileModuleToStencil(source, opts);
+ let stencil = finishOffThreadStencil(job);
+ let m = instantiateModuleStencil(stencil);
+ moduleLink(m);
+ moduleEvaluate(m)
+ return m.result;
+}
+
+assertEq(evalModule(script, eagerOptions), undefined);
+assertEq(evalModule(script, concurrentOptions), undefined);