tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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 }