diff options
Diffstat (limited to 'test/wasm2asm.traps.js')
-rw-r--r-- | test/wasm2asm.traps.js | 82 |
1 files changed, 47 insertions, 35 deletions
diff --git a/test/wasm2asm.traps.js b/test/wasm2asm.traps.js index 3c393454e..7d3d5c3f9 100644 --- a/test/wasm2asm.traps.js +++ b/test/wasm2asm.traps.js @@ -17,6 +17,9 @@ function asmFunc(global, env, buffer) { var Math_floor = global.Math.floor; var Math_ceil = global.Math.ceil; var Math_sqrt = global.Math.sqrt; + var abort = env.abort; + var nan = global.NaN; + var infinity = global.Infinity; var i64toi32_i32$HIGH_BITS = 0; function $0() { @@ -46,10 +49,39 @@ function asmFunc(global, env, buffer) { }; } -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 __array_buffer = new ArrayBuffer(65536) + var HEAP32 = new Int32Array(__array_buffer); + var HEAPF32 = new Float32Array(__array_buffer); + var HEAPF64 = new Float64Array(__array_buffer); + var nan = NaN; + var infinity = Infinity; + ; + + 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 = i[0]; + var ai2 = i[1]; + f[0] = b; + var bi1 = i[0]; + var bi2 = i[1]; + + return (isNaN(a) && isNaN(b)) || (ai1 == bi1 && ai2 == bi2); + } + ; var asmModule = asmFunc({ Math: Math, Int8Array: Int8Array, @@ -59,40 +91,20 @@ var asmModule = asmFunc({ Uint16Array: Uint16Array, Uint32Array: Uint32Array, Float32Array: Float32Array, - Float64Array: Float64Array + Float64Array: Float64Array, + Infinity: Infinity, + NaN: NaN }, { - + abort: function abort() { + unreachable(); + console_log(); + } + , + print: function print() {} }, __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 = i[0]; - var ai2 = i[1]; - f[0] = b; - var bi1 = i[0]; - var bi2 = i[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 i64Equal(actual_lo, actual_hi, expected_lo, expected_hi) { + return actual_lo == (expected_lo | 0) && actual_hi == (expected_hi | 0); } ; function check1() { |