summaryrefslogtreecommitdiff
path: root/test/wasm2asm.traps.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/wasm2asm.traps.js')
-rw-r--r--test/wasm2asm.traps.js49
1 files changed, 45 insertions, 4 deletions
diff --git a/test/wasm2asm.traps.js b/test/wasm2asm.traps.js
index 45a04f4f1..cc16410f1 100644
--- a/test/wasm2asm.traps.js
+++ b/test/wasm2asm.traps.js
@@ -70,13 +70,22 @@ function asmFunc(global, env, buffer) {
return ((4294967295 << (k & 31 | 0) | 0) & x | 0) >>> (k & 31 | 0) | 0 | (((4294967295 >>> (32 - (k & 31 | 0) | 0) | 0) & x | 0) << (32 - (k & 31 | 0) | 0) | 0) | 0 | 0;
}
+ function __wasm_fetch_high_bits() {
+ return i64toi32_i32$HIGH_BITS | 0;
+ }
+
return {
empty: $0,
add: $1,
- div_s: $2
+ div_s: $2,
+ __wasm_fetch_high_bits: __wasm_fetch_high_bits
};
}
+var __array_buffer = new ArrayBuffer(65536);
+var HEAP32 = new Int32Array(__array_buffer);
+var HEAPF32 = new Float32Array(__array_buffer);
+var HEAPF64 = new Float64Array(__array_buffer);
var asmModule = asmFunc({
Math: Math,
Int8Array: Int8Array,
@@ -89,7 +98,39 @@ var asmModule = asmFunc({
Float64Array: Float64Array
}, {
-}, new ArrayBuffer(65536));
+}, __array_buffer);
+
+ function f32Equal(a, b) {
+ var i = new Int32Array(1);
+ var f = new Float32Array(i.buffer);
+ f[0] = a;
+ var ai = f[0];
+ f[0] = b;
+ var bi = f[0];
+
+ return (isNaN(a) && isNaN(b)) || a == b;
+ }
+ ;
+
+ function f64Equal(a, b) {
+ var i = new Int32Array(2);
+ var f = new Float64Array(i.buffer);
+ f[0] = a;
+ var ai1 = f[0];
+ var ai2 = f[1];
+ f[0] = b;
+ var bi1 = f[0];
+ var bi2 = f[1];
+
+ return (isNaN(a) && isNaN(b)) || (ai1 == bi1 && ai2 == bi2);
+ }
+ ;
+
+ function i64Equal(actual_lo, expected_lo, expected_hi) {
+ return actual_lo == (expected_lo | 0) &&
+ asmModule.__wasm_fetch_high_bits() == (expected_hi | 0);
+ }
+ ;
function check1() {
var wasm2asm_i32$0 = 0;
asmModule.empty();
@@ -105,7 +146,7 @@ function check2() {
if (!check2()) fail2();
function check3() {
function f() {
- div_s(0 | 0, 0 | 0);
+ asmModule.div_s(0 | 0, 0 | 0);
}
try {
@@ -119,7 +160,7 @@ function check3() {
if (!check3()) fail3();
function check4() {
function f() {
- div_s(2147483648 | 0, 4294967295 | 0);
+ asmModule.div_s(2147483648 | 0, 4294967295 | 0);
}
try {