tor-browser

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

resizable-array-buffers-transferable.js (1022B)


      1 const scopes = [
      2  "SameProcess",
      3  "DifferentProcess",
      4  "DifferentProcessForIndexedDB",
      5 ];
      6 
      7 function testArrayBufferTransferable(scope) {
      8  var length = 4;
      9  var byteLength = length * Uint8Array.BYTES_PER_ELEMENT;
     10  var maxByteLength = 2 * byteLength;
     11 
     12  var ab = new ArrayBuffer(byteLength, {maxByteLength});
     13  assertEq(ab.resizable, true);
     14  assertEq(ab.byteLength, byteLength);
     15  assertEq(ab.maxByteLength, maxByteLength);
     16 
     17  var ta = new Uint8Array(ab);
     18  ta.set([33, 44, 55, 66]);
     19  assertEq(ta.toString(), "33,44,55,66");
     20 
     21  var clonebuf = serialize(ab, [ab], {scope});
     22  var ab2 = deserialize(clonebuf);
     23  assertEq(ab2 instanceof ArrayBuffer, true);
     24  assertEq(new Uint8Array(ab2).toString(), "33,44,55,66");
     25  assertEq(ab2.resizable, true);
     26  assertEq(ab2.byteLength, byteLength);
     27  assertEq(ab2.maxByteLength, maxByteLength);
     28 
     29  assertEq(ab.detached, true);
     30  assertEq(ab2.detached, false);
     31 
     32  ab2.resize(maxByteLength);
     33  assertEq(ab2.byteLength, maxByteLength);
     34 }
     35 scopes.forEach(testArrayBufferTransferable);