function e() { } | |
noInline(e); | |
function foo(b, c, d) { | |
let x; | |
function bar() { return x; } | |
if (b) { | |
let y = function() { return x; } | |
} else { | |
let y = function() { return x; } | |
} | |
if (c) { | |
function baz() { } | |
if (b) { | |
let y = function() { return x; } | |
e(y); | |
} else { | |
let y = function() { return x; } | |
e(y); | |
} | |
if (d) | |
d(); | |
e(baz); | |
} | |
} | |
noInline(foo); | |
for (let i = 0; i < 100000; i++) { | |
foo(!!(i % 2), true, false); | |
} | |
let threw = false; | |
try { | |
foo(true, true, true); | |
} catch(e) { | |
threw = true; | |
} | |
if (!threw) | |
throw new Error("Bad test") |