fold-typed-array-properties.js [plain text]
var a = new Int32Array(new ArrayBuffer(100), 4, 1);
if (a.length != 1)
throw "Error: bad length: " + a.length;
if (a.byteOffset != 4)
throw "Error: bad offset: " + a.byteOffset;
if (a.byteLength != 4)
throw "Error: bad byte length: " + a.byteLength;
function foo() {
if (a.length != 1)
throw "Error: bad length: " + a.length;
if (a.byteOffset != 4)
throw "Error: bad offset: " + a.byteOffset;
if (a.byteLength != 4)
throw "Error: bad byte length: " + a.byteLength;
}
for (var i = 0; i < 1000000; ++i)
foo();
transferArrayBuffer(a.buffer);
var didThrow = false;
try {
foo();
} catch (e) {
didThrow = true;
}
if (!didThrow)
throw "Should have thrown.";
if (a.length != 0)
throw "Error: bad length: " + a.length;
if (a.byteOffset != 0)
throw "Error: bad offset: " + a.byteOffset;
if (a.byteLength != 0)
throw "Error: bad byte length: " + a.byteLength;