summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/timeout/2.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /js/src/jit-test/tests/wasm/timeout/2.js
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/jit-test/tests/wasm/timeout/2.js')
-rw-r--r--js/src/jit-test/tests/wasm/timeout/2.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/timeout/2.js b/js/src/jit-test/tests/wasm/timeout/2.js
new file mode 100644
index 0000000000..25267f226c
--- /dev/null
+++ b/js/src/jit-test/tests/wasm/timeout/2.js
@@ -0,0 +1,30 @@
+// |jit-test| exitstatus: 6; skip-if: !wasmIsSupported()
+
+// Don't include wasm.js in timeout tests: when wasm isn't supported, it will
+// quit(0) which will cause the test to fail.
+
+var tbl = new WebAssembly.Table({initial:1, element:"anyfunc"});
+
+new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`(module
+ (import "imports" "tbl" (table 1 funcref))
+ (func $iloop
+ loop $top
+ br $top
+ end
+ )
+ (elem (i32.const 0) $iloop)
+)`)), {imports:{tbl}});
+
+var outer = new WebAssembly.Instance(new WebAssembly.Module(wasmTextToBinary(`(module
+ (import "imports" "tbl" (table 1 funcref))
+ (type $v2v (func))
+ (func (export "run")
+ i32.const 0
+ call_indirect (type $v2v)
+ )
+)`)), {imports:{tbl}});
+
+setJitCompilerOption('simulator.always-interrupt', 1);
+timeout(1, () => { tbl.set(0, null); gc() });
+outer.exports.run();
+assertEq(true, false);