"use strict"; function assert(cond, m) { if (!cond) throw new Error("broke assertion: '" + m + "'"); } noInline(assert); function baz(b) { if (b) throw new Error("Baz"); } function bar(b) { var exception = null; try { baz(b); } catch(e) { exception = e; baz(b); } finally { if (b) assert(exception); } } function foo(b) { var exception = null; try { bar(b); } catch(e) { exception = e; } if (b) assert(exception); } const NUM_LOOPS = 1000; for (var i = 0; i < NUM_LOOPS; i++) { foo(i === NUM_LOOPS - 1); }