description( | |
"Tests that the DFG knows that a Math.sqrt could potentially use value in arbitrary ways, and not just in a context that converts values to numbers." | |
); | |
function foo(array, i) { | |
var x = array[i]; | |
return Math.sqrt(x); | |
} | |
function bar(value) { | |
return value; | |
} | |
for (var i = 0; i < 200; ++i) { | |
if (i == 190) | |
Math.sqrt = bar; | |
var array, expected; | |
if (i >= 190) { | |
array = [, 1.5]; | |
expected = "void 0"; | |
} else { | |
array = [1.5]; | |
expected = "Math.sqrt(1.5)"; | |
} | |
shouldBe("foo(array, 0)", expected); | |
} | |