tor-browser

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

resizable-dataview-byteoffset-sab.js (1231B)


      1 function testResizableArrayBufferAutoLength() {
      2  for (let i = 0; i < 4; ++i) {
      3    let sab = new SharedArrayBuffer(i, {maxByteLength: i + 100});
      4    let ta = new DataView(sab);
      5    for (let j = 0; j < 100; ++j) {
      6      assertEq(ta.byteOffset, 0);
      7 
      8      sab.grow(i + j + 1);
      9      assertEq(ta.byteOffset, 0);
     10    }
     11  }
     12 }
     13 for (let i = 0; i < 2; ++i) testResizableArrayBufferAutoLength();
     14 
     15 function testResizableArrayBufferAutoLengthNonZeroOffset() {
     16  for (let i = 1; i < 4 + 1; ++i) {
     17    let sab = new SharedArrayBuffer(i + 1, {maxByteLength: i + 100 + 1});
     18    let ta = new DataView(sab, 1);
     19    for (let j = 0; j < 100; ++j) {
     20      assertEq(ta.byteOffset, 1);
     21 
     22      sab.grow(i + j + 2);
     23      assertEq(ta.byteOffset, 1);
     24    }
     25  }
     26 }
     27 for (let i = 0; i < 2; ++i) testResizableArrayBufferAutoLengthNonZeroOffset();
     28 
     29 function testResizableArrayBufferNonZeroOffset() {
     30  for (let i = 2; i < 4 + 2; ++i) {
     31    let sab = new SharedArrayBuffer(i + 2, {maxByteLength: i + 100 + 2});
     32    let ta = new DataView(sab, 1, 1);
     33    for (let j = 0; j < 100; ++j) {
     34      assertEq(ta.byteOffset, 1);
     35 
     36      sab.grow(i + j + 3);
     37      assertEq(ta.byteOffset, 1);
     38    }
     39  }
     40 }
     41 for (let i = 0; i < 2; ++i) testResizableArrayBufferNonZeroOffset();