summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/regress/movable-traps.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/wasm/regress/movable-traps.js')
-rw-r--r--js/src/jit-test/tests/wasm/regress/movable-traps.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/regress/movable-traps.js b/js/src/jit-test/tests/wasm/regress/movable-traps.js
new file mode 100644
index 000000000..07a980a1e
--- /dev/null
+++ b/js/src/jit-test/tests/wasm/regress/movable-traps.js
@@ -0,0 +1,40 @@
+load(libdir + "wasm.js");
+
+let bodies = [
+ `
+ i32.const 1
+ i32.const 0
+ i32.div_s
+ `,
+ `
+ i32.const 1
+ i32.const 0
+ i32.rem_s
+ `,
+ `
+ f64.const 1797693134862315708145274e284
+ i64.trunc_s/f64
+ `,
+ `
+ f32.const 1797693134862315708145274e284
+ i32.trunc_s/f32
+ `
+];
+
+for (let body of bodies) {
+ wasmFullPass(`
+ (module
+ (func $f (param $x i32) (result i32)
+ loop $top
+ get_local $x
+ if
+ get_local $x
+ br 2
+ end
+ ${body}
+ br $top
+ end
+ )
+ (export "run" $f)
+ )`, 42, {}, 42);
+}