description( | |
"Tests that a variable predicted to be either int or double but proven to be an int does confuse the Branch logic." | |
); | |
function foo(a, b, c) { | |
a = b; | |
if (c) { | |
if (a) | |
return 1; | |
else | |
return 2; | |
} else if (b) | |
a = 0.5; | |
return a; | |
} | |
shouldBe("foo(0, 1, 0)", "0.5"); | |
for (var i = 0; i < 200; ++i) | |
shouldBe("foo(i, i + 1, i + 2)", "1"); | |