blob: c2f04b64d53d395a39600d0fe84ae5e23ad1c963 [file] [log] [blame]
description("Regression test for 150745");
// We should be able to ORS exit from an inlined tail callee of a getter. This test shouldn't crash.
"use strict";
class Test {
constructor(a, b)
{
this.a = a;
this.b = b;
this.callCount = 0;
}
get sum()
{
return this.doSum(1, 2);
}
doSum(dummy1, dummy2)
{
this.callCount++;
if (this.callCount == 49000)
this.dfgCompiled = true;
if (this.callCount == 199000)
this.ftlCompiled = true;
return this.a + this.b;
}
}
var testObj = new Test(40, 2);
function getSum(o)
{
return o.sum;
}
for (var i = 0; i < 500000; i++) {
var result = getSum(testObj);
if (result != 42)
testFailed("Expected 42 from \"sum\" getter, got " + result);
}
testPassed("Able to OSR exit from an inlined tail callee of a getter.");