blob: 990a6e4a6b07cc1f58b0da88925fa5623cd060c7 [file] [log] [blame]
// This tests that TypedArray length and byteLength correctly dump code when the prototypes move.
(function body() {
function foo(a) {
return a.length;
}
noInline(foo);
function bar(a) {
return a.byteLength;
}
noInline(bar);
function baz(a) {
return a.byteOffset;
}
noInline(baz);
let array = new Int32Array(15);
for (let i = 0; i < 5000; ++i) {
foo(array);
bar(array);
baz(array);
}
Object.setPrototypeOf(array, null);
let passed = false;
if (foo(array) !== undefined)
throw "length should have become undefined when the prototype changed";
if (bar(array) !== undefined)
throw "byteLength should have become undefined when the prototype changed";
if (baz(array) !== undefined)
throw "byteOffset should have become undefined when the prototype changed";
})();