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();