43 lines
759 B
JavaScript
43 lines
759 B
JavaScript
//@ skip if $model == "Apple Watch Series 3" # added by mark-jsc-stress-test.py
|
|
"use strict";
|
|
|
|
function clobber() { }
|
|
noInline(clobber);
|
|
|
|
class C { }
|
|
class D { }
|
|
|
|
function foo(x, C) {
|
|
clobber();
|
|
return x instanceof C;
|
|
}
|
|
noInline(foo);
|
|
|
|
function access(o) {
|
|
return o.foo0;
|
|
}
|
|
noInline(access);
|
|
|
|
function theClass(i) {
|
|
if (i & 1)
|
|
return C;
|
|
return D;
|
|
}
|
|
noInline(theClass);
|
|
|
|
let x = new C;
|
|
for (let i = 0; i < 1000; ++i) {
|
|
let k = theClass(i);
|
|
if (i < 20)
|
|
k["foo" + i] = i;
|
|
if (i >= 20)
|
|
access(k);
|
|
if (i === 100)
|
|
k["foo" + i] = i;
|
|
let result = foo(x, k);
|
|
if (k === C && result !== true)
|
|
throw new Error("Bad")
|
|
if (k !== C && result !== false)
|
|
throw new Error("Bad")
|
|
}
|