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