summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/drop.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/wasm/drop.js')
-rw-r--r--js/src/jit-test/tests/wasm/drop.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/drop.js b/js/src/jit-test/tests/wasm/drop.js
new file mode 100644
index 000000000..bf65e587c
--- /dev/null
+++ b/js/src/jit-test/tests/wasm/drop.js
@@ -0,0 +1,47 @@
+load(libdir + "wasm.js");
+
+for (let type of ['i32', 'f32', 'f64']) {
+ assertEq(wasmEvalText(`
+ (module
+ (func $test (result ${type}) (param $p ${type}) (param $p2 ${type})
+ get_local $p
+ get_local $p2
+ (block)
+ drop
+ )
+ (export "test" $test)
+ )
+ `).exports.test(0x1337abc0, 0xffffffff), 0x1337abc0);
+}
+
+assertEq(wasmEvalText(`
+ (module
+ (func $test (result i32) (param $p i32) (param $p2 f32) (param $p3 f64) (param $p4 i32)
+ get_local $p
+ get_local $p2
+ get_local $p3
+ get_local $p4
+ (block)
+ drop
+ (block)
+ (block)
+ drop
+ drop
+ )
+ (export "test" $test)
+ )
+`).exports.test(0x1337abc0, 0xffffffff), 0x1337abc0);
+
+setJitCompilerOption('wasm.test-mode', 1);
+
+assertEqI64(wasmEvalText(`
+ (module
+ (func $test (result i64) (param $p i64) (param $p2 i64)
+ get_local $p
+ get_local $p2
+ (block)
+ drop
+ )
+ (export "test" $test)
+ )
+`).exports.test(createI64(0x1337abc0), createI64(0xffffffff | 0)), createI64(0x1337abc0));