tor-browser

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

resizable-dataview-bytelength.js (1023B)


      1 load(libdir + "asserts.js");
      2 
      3 function testResizableArrayBuffer() {
      4  for (let i = 0; i < 4; ++i) {
      5    let ab = new ArrayBuffer(i, {maxByteLength: i + 1});
      6    let ta = new DataView(ab, 0, i);
      7    for (let j = 0; j < 100; ++j) {
      8      ab.resize(i);
      9      assertEq(ta.byteLength, i);
     10 
     11      ab.resize(i + 1);
     12      assertEq(ta.byteLength, i);
     13 
     14      if (i > 0) {
     15        ab.resize(i - 1);
     16        assertThrowsInstanceOf(() => ta.byteLength, TypeError);
     17      }
     18    }
     19  }
     20 }
     21 for (let i = 0; i < 2; ++i) testResizableArrayBuffer();
     22 
     23 function testResizableArrayBufferAutoLength() {
     24  for (let i = 0; i < 4; ++i) {
     25    let ab = new ArrayBuffer(i, {maxByteLength: i + 1});
     26    let ta = new DataView(ab);
     27    for (let j = 0; j < 100; ++j) {
     28      ab.resize(i);
     29      assertEq(ta.byteLength, i);
     30 
     31      ab.resize(i + 1);
     32      assertEq(ta.byteLength, i + 1);
     33 
     34      if (i > 0) {
     35        ab.resize(i - 1);
     36        assertEq(ta.byteLength, i - 1);
     37      }
     38    }
     39  }
     40 }
     41 for (let i = 0; i < 2; ++i) testResizableArrayBufferAutoLength();