description( | |
"This tests that a skipped conversion of uint32 to number does not confuse OSR exit into thinking that the conversion is dead." | |
); | |
function foo(a, b, o) { | |
var x = a >>> b; | |
return o.f + (x | 0); | |
} | |
for (var i = 0; i < 200; ++i) { | |
var o; | |
var expected; | |
if (i < 150) { | |
o = {f:42}; | |
expected = 42 + ((i / 2) | 0); | |
} else { | |
o = {f:43, g:44}; | |
expected = 43 + ((i / 2) | 0); | |
} | |
shouldBe("foo(i, 1, o)", "" + expected); | |
} | |