1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/ion/bug860838-3.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,44 @@ 1.4 + 1.5 +var buf = new ArrayBuffer(4096); 1.6 +var f64 = new Float64Array(buf); 1.7 +var i32 = new Int32Array(buf); 1.8 +var u32 = new Uint32Array(buf); 1.9 + 1.10 +function ffi(d) { 1.11 + str = String(d); 1.12 +} 1.13 + 1.14 + 1.15 +function FFI1(glob, imp, b) { 1.16 + "use asm"; 1.17 + 1.18 + var i8=new glob.Int8Array(b);var u8=new glob.Uint8Array(b); 1.19 + var i16=new glob.Int16Array(b);var u16=new glob.Uint16Array(b); 1.20 + var i32=new glob.Int32Array(b);var u32=new glob.Uint32Array(b); 1.21 + var f32=new glob.Float32Array(b);var f64=new glob.Float64Array(b); 1.22 + 1.23 + var ffi=imp.ffi; 1.24 + 1.25 + function g() { 1.26 + ffi(+f64[0]) 1.27 + } 1.28 + return g 1.29 +} 1.30 + 1.31 +g = FFI1(this, {ffi:ffi}, buf); 1.32 + 1.33 + 1.34 +// that sounds dangerous! 1.35 +var a = [0,1,0xffff0000,0x7fff0000,0xfff80000,0x7ff80000,0xfffc0000,0x7ffc0000,0xffffffff,0x0000ffff,0x00008fff7]; 1.36 +for (i of a) { 1.37 + for (j of a) { 1.38 + u32[0] = i; 1.39 + u32[1] = j; 1.40 + 1.41 + print(f64[0]+" (input)"); 1.42 + //assertEq(f(), f64[0]); 1.43 + 1.44 + g(); 1.45 + assertEq(str, String(f64[0])); 1.46 + } 1.47 +}