"use strict"; let flag = true; function o() { if (flag) return {x:20}; return {y:20, x:20}; } noInline(o); let counter = 0; function e() { if ((++counter) % 50 === 0) throw new Error; } noInline(e); let counter2 = 0; function e2() { if ((++counter2) % 2 === 0) throw new Error; } noInline(e2); function escape(){ } noInline(escape); function baz(o) { try { e(); escape(o.x); } catch(e) { escape(o.x); e2(); } finally { o.x; } } noInline(baz); { let o = {x:20}; function run() { for (let i = 0; i < 1000; ++i) { try { baz(o); } catch { } } } run(); o = {y:40, x:20}; run(); }