bug860838-3.js (950B)
1 var buf = new ArrayBuffer(4096); 2 var f64 = new Float64Array(buf); 3 var i32 = new Int32Array(buf); 4 var u32 = new Uint32Array(buf); 5 6 function ffi(d) { 7 str = String(d); 8 } 9 10 11 function FFI1(glob, imp, b) { 12 "use asm"; 13 14 var i8=new glob.Int8Array(b);var u8=new glob.Uint8Array(b); 15 var i16=new glob.Int16Array(b);var u16=new glob.Uint16Array(b); 16 var i32=new glob.Int32Array(b);var u32=new glob.Uint32Array(b); 17 var f32=new glob.Float32Array(b);var f64=new glob.Float64Array(b); 18 19 var ffi=imp.ffi; 20 21 function g() { 22 ffi(+f64[0]) 23 } 24 return g 25 } 26 27 g = FFI1(this, {ffi:ffi}, buf); 28 29 30 // that sounds dangerous! 31 var a = [0,1,0xffff0000,0x7fff0000,0xfff80000,0x7ff80000,0xfffc0000,0x7ffc0000,0xffffffff,0x0000ffff,0x00008fff7]; 32 for (i of a) { 33 for (j of a) { 34 u32[0] = i; 35 u32[1] = j; 36 37 print(f64[0]+" (input)"); 38 //assertEq(f(), f64[0]); 39 40 g(); 41 assertEq(str, String(f64[0])); 42 } 43 }