44 lines
666 B
JavaScript
44 lines
666 B
JavaScript
description("Tests that inlining many basic blocks does not trigger a bad assertion.");
|
|
|
|
function stuff(x) {
|
|
debug(x); // This needs to be a side-effect.
|
|
}
|
|
|
|
function foo(a, b) {
|
|
if (a) {
|
|
stuff(a);
|
|
return;
|
|
} else {
|
|
stuff(b);
|
|
return;
|
|
}
|
|
}
|
|
|
|
function fuzz(a, b) {
|
|
if (a + b)
|
|
foo(a, b);
|
|
if (a / b)
|
|
foo(b, a);
|
|
foo(a, b);
|
|
}
|
|
|
|
function baz(a, b) {
|
|
stuff(a);
|
|
if (a * b)
|
|
fuzz(a, b);
|
|
if (a - b)
|
|
fuzz(a, b);
|
|
fuzz(b, a);
|
|
}
|
|
|
|
function bar(a, b) {
|
|
stuff(a * b + a);
|
|
if (a + b)
|
|
baz(a, b);
|
|
stuff(a - b);
|
|
}
|
|
|
|
for (var i = 0; i < 1000; ++i)
|
|
bar(i, i + 1);
|
|
|