blob: 5d6463c4814f23d34209544f57cb3013c55a0b6c [file] [log] [blame]
//@ skip if $model =~ /^Apple Watch/
function assert(b) {
if (!b)
throw new Error;
}
noInline(assert)
function getZ(o) {
return o.z
}
noInline(getZ)
function C() {
this.x = 42;
}
let objs = [];
for (let i = 0; i < 50; ++i) {
objs.push(new C);
}
function doTest(zVal) {
for (let i = 0; i < objs.length; ++i) {
let o = objs[i];
assert(o.x === 42);
assert(getZ(o) === zVal)
}
}
noInline(doTest);
for (let i = 0; i < 10000; ++i) {
const X = { i }
C.prototype.z = X
doTest(X)
}
delete C.prototype.z
for (let i = 0; i < 20000; ++i) {
getZ({z: i})
doTest(undefined)
}