blob: a7e7101f1b5211a4d252c546134f8ad9f7515360 [file] [log] [blame]
description(
"Tests what happens when CFG simplification leads to the elimination of a set local that had a type check, and then we branch on the variable not being null."
);
function foo(o) {
var x;
if (o.f)
x = o.g;
else
x = o.h;
if (x != null)
return x - 1;
else
return x;
}
silentTestPass = true;
noInline(foo);
for (var i = 0; i < 500; i = dfgIncrement({f:foo, i:i + 1, n:100})) {
var o = {f:foo};
var expected;
if (i < 450) {
o.g = i;
expected = "" + (i - 1);
} else {
o.g = null;
expected = "null";
}
shouldBe("foo(o)", expected);
}