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")