32 lines
761 B
JavaScript
32 lines
761 B
JavaScript
//@ skip if $model == "Apple Watch Series 3" # added by mark-jsc-stress-test.py
|
|
// This tests that we do not constantly OSR on instanceof where the RHS is a bound function.
|
|
// While this bound functions are unlikely to be passed to instanceof often C-API users use
|
|
// the same method of overriding instanceof expressions.
|
|
|
|
|
|
function Constructor(x) {
|
|
this.x = x;
|
|
}
|
|
|
|
Constructor.prototype = {}
|
|
|
|
BoundConstructor = Constructor.bind();
|
|
foo = new Constructor(1);
|
|
bar = new BoundConstructor(1);
|
|
|
|
i = 0;
|
|
|
|
function test()
|
|
{
|
|
if (!(foo instanceof BoundConstructor)) {
|
|
throw new Error("foo should be an instanceof BoundConstructor");
|
|
}
|
|
let j = 0;
|
|
for (;j < 1000; j++) {}
|
|
return j;
|
|
}
|
|
noInline(test);
|
|
|
|
for (i = 0; i < 50000; i++)
|
|
test();
|