description( | |
"Tests that CheckArray(NonArray) actually proves that the input isn't an array." | |
); | |
function foo(a, i) { | |
return a[i]; | |
} | |
function bar(o, p, q) { | |
if (q) | |
o = 42; | |
if (p) | |
return o[0]; | |
else | |
return 42; | |
} | |
function baz(o, p) { | |
var result = foo(o, 0); | |
result += bar(o, p, false); | |
return result; | |
} | |
noInline(baz); | |
// Get bar's profiling to claim that it sees a particular original array. | |
for (var i = 0; i < 100; ++i) | |
bar(["fizz"], true, false); | |
while (!dfgCompiled({f:baz})) { | |
var o = {}; | |
o[0] = "buzz"; | |
baz(o, false); | |
} | |
shouldBe("baz([\"blah\"], true)", "\"blahblah\""); | |