throws-on-detached.js (842B)
1 // TypeError is thrown when the underlying ArrayBuffer is detached. 2 3 function testByteOffset() { 4 var ab = new ArrayBuffer(10); 5 var dv = new DataView(ab, 4, 0); 6 7 var q = 0; 8 var error; 9 try { 10 for (var i = 0; i <= 200; ++i) { 11 if (i === 200) { 12 detachArrayBuffer(ab); 13 } 14 q += dv.byteOffset; 15 } 16 } catch (e) { 17 error = e; 18 } 19 assertEq(q, 4 * 200); 20 assertEq(error instanceof TypeError, true); 21 } 22 testByteOffset(); 23 24 function testByteLength() { 25 var ab = new ArrayBuffer(10); 26 var dv = new DataView(ab, 4, 6); 27 28 var q = 0; 29 var error; 30 try { 31 for (var i = 0; i <= 200; ++i) { 32 if (i === 200) { 33 detachArrayBuffer(ab); 34 } 35 q += dv.byteLength; 36 } 37 } catch (e) { 38 error = e; 39 } 40 assertEq(q, 6 * 200); 41 assertEq(error instanceof TypeError, true); 42 } 43 testByteLength();