var a = new Int32Array(new ArrayBuffer(100), 4, 1); | |
if (a.length != 1) | |
throw "Error: bad length (start): " + a.length; | |
if (a.byteOffset != 4) | |
throw "Error: bad offset (start): " + a.byteOffset; | |
if (a.byteLength != 4) | |
throw "Error: bad byte length (start): " + a.byteLength; | |
function foo(when) { | |
var tmp = a.length; | |
if (tmp != 1) | |
throw "Error: bad length (" + when + "): " + tmp; | |
tmp = a.byteOffset; | |
if (tmp != 4) | |
throw "Error: bad offset (" + when + "): " + tmp; | |
tmp = a.byteLength; | |
if (tmp != 4) | |
throw "Error: bad byte length (" + when + "): " + tmp; | |
} | |
for (var i = 0; i < 1000000; ++i) | |
foo("loop"); | |
transferArrayBuffer(a.buffer); | |
var didThrow = false; | |
try { | |
foo("after transfer"); | |
} catch (e) { | |
didThrow = true; | |
} | |
if (!didThrow) | |
throw "Should have thrown."; |