summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/bug1776358.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/wasm/bug1776358.js')
-rw-r--r--js/src/jit-test/tests/wasm/bug1776358.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/bug1776358.js b/js/src/jit-test/tests/wasm/bug1776358.js
new file mode 100644
index 0000000000..b2cf178bf2
--- /dev/null
+++ b/js/src/jit-test/tests/wasm/bug1776358.js
@@ -0,0 +1,28 @@
+let func = wasmEvalText(`(module
+ (func
+ (param f64) (param f64) (param f64) (param f64) (param f64)
+ (param f64) (param f64) (param f64) (param f64)
+ )
+ (func
+ (param i32)
+ (result i32)
+ ;; Call in a dead branch.
+ (if (i32.const 0) (then
+ (call 0
+ (f64.const 0) (f64.const 0) (f64.const 0) (f64.const 0) (f64.const 0)
+ (f64.const 0) (f64.const 0) (f64.const 0) (f64.const 0)
+ )
+ ))
+ ;; Division to trigger a trap.
+ (i32.div_s (get_local 0) (get_local 0))
+ )
+ (export "" (func 1))
+)`).exports[""];
+assertEq(func(7), 1);
+let ex;
+try {
+ func(0);
+} catch (e) {
+ ex = e;
+}
+assertEq(ex instanceof WebAssembly.RuntimeError, true);