diff options
Diffstat (limited to 'test/wasm2js.asserts.js')
-rw-r--r-- | test/wasm2js.asserts.js | 79 |
1 files changed, 39 insertions, 40 deletions
diff --git a/test/wasm2js.asserts.js b/test/wasm2js.asserts.js index b097a5aaa..9d20ffe57 100644 --- a/test/wasm2js.asserts.js +++ b/test/wasm2js.asserts.js @@ -1,4 +1,36 @@ -function asmFunc(global, env, 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); + } + + function i64Equal(actual_lo, actual_hi, expected_lo, expected_hi) { + return actual_lo == (expected_lo | 0) && actual_hi == (expected_hi | 0); + } + +function asmFunc0(global, env, buffer) { "use asm"; var HEAP8 = new global.Int8Array(buffer); var HEAP16 = new global.Int16Array(buffer); @@ -49,51 +81,18 @@ function asmFunc(global, env, buffer) { }; } -const memasmFunc = new ArrayBuffer(65536); -const retasmFunc = asmFunc({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc); - - 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); - } - - function i64Equal(actual_lo, actual_hi, expected_lo, expected_hi) { - return actual_lo == (expected_lo | 0) && actual_hi == (expected_hi | 0); - } - ; +const memasmFunc0 = new ArrayBuffer(65536); +const retasmFunc0 = asmFunc0({Math,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,NaN,Infinity}, {abort:function() { throw new Error('abort'); }},memasmFunc0); function check1() { var wasm2js_i32$0 = 0; - retasmFunc.empty(); + retasmFunc0.empty(); wasm2js_i32$0 = 1; return wasm2js_i32$0 | 0; } -if (!check1()) fail1(); +if (!check1()) throw 'assertion failed: ( assert_return ( call empty ) )'; function check2() { - return (retasmFunc.add(1 | 0, 1 | 0) | 0 | 0) == (2 | 0) | 0; + return (retasmFunc0.add(1 | 0, 1 | 0) | 0 | 0) == (2 | 0) | 0; } -if (!check2()) fail2(); +if (!check2()) throw 'assertion failed: ( assert_return ( call add ( i32.const 1 ) ( i32.const 1 ) ) ( i32.const 2 ) )'; |