blob: af66146754f990f1a8ab769fe6652a222882b083 [file] [log] [blame]
description(
"This test checks corner cases of the number cell reuse code. In particular, it checks for known cases where code generation for number cell reuse caused assertions to fail."
);
function leftConstantRightSimple(a)
{
return 0.1 * (a * a);
}
shouldBe("leftConstantRightSimple(2)", "0.4");
function leftConstantRightComplex(a)
{
return 0.1 * (a * a + a);
}
shouldBe("leftConstantRightComplex(1)", "0.2");
function leftSimpleRightConstant(a)
{
return (a * a) * 0.1;
}
shouldBe("leftSimpleRightConstant(2)", "0.4");
function leftComplexRightConstant(a)
{
return (a * a + a) * 0.1;
}
shouldBe("leftComplexRightConstant(1)", "0.2");
function leftThisRightSimple(a)
{
return this * (a * a);
}
shouldBeNaN("leftThisRightSimple(2)");
shouldBe("leftThisRightSimple.call(2, 2)", "8");
function leftThisRightComplex(a)
{
return this * (a * a + a);
}
shouldBeNaN("leftThisRightComplex(2)");
shouldBe("leftThisRightComplex.call(2, 2)", "12");
function leftSimpleRightThis(a)
{
return (a * a) * this;
}
shouldBeNaN("leftSimpleRightThis(2)");
shouldBe("leftSimpleRightThis.call(2, 2)", "8");
function leftComplexRightThis(a)
{
return (a * a + a) * this;
}
shouldBeNaN("leftComplexRightThis(2)");
shouldBe("leftComplexRightThis.call(2, 2)", "12");