tor-browser

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

arraybuffer-transfer.js (806B)


      1 let exp = wasmEvalText(`(module
      2    (memory 1)
      3    (export "mem" (memory 0))
      4    (func $f (result i32) (i32.load (i32.const 0)))
      5    (export "zero" (func $f))
      6 )`).exports;
      7 
      8 const byteLength = 65536;
      9 let buffer = exp.mem.buffer;
     10 let i32 = new Int32Array(buffer);
     11 let zero = exp.zero;
     12 
     13 const magic = 0xbadf00d;
     14 
     15 assertEq(zero(), 0);
     16 assertEq(i32[0], 0);
     17 
     18 i32[0] = magic;
     19 
     20 assertEq(zero(), magic);
     21 assertEq(i32[0], magic);
     22 
     23 assertEq(buffer.detached, false);
     24 assertEq(buffer.byteLength, byteLength);
     25 
     26 // Can't transfer Wasm prepared array buffers.
     27 assertThrowsInstanceOf(() => buffer.transfer(), TypeError);
     28 
     29 // |buffer| is still attached.
     30 assertEq(buffer.detached, false);
     31 assertEq(buffer.byteLength, byteLength);
     32 
     33 // Access still returns the original value.
     34 assertEq(zero(), magic);
     35 assertEq(i32[0], magic);