"use strict"; // This test passes when JSC doesn't crash. let p = new Proxy(function() { }, { apply: function() { return bar(); } }); function bar() { let item = getItem(); return item.foo; } let i; let shouldReturnBad = false; let good = [function() {return 1}, {b: 20}, {c: 40}, {d:50}] let bad = [{asdfhasf: 20}, {e:50}, {j:70}, {k:100}, null]; function getItem() { if (shouldReturnBad) return bad[i % bad.length]; return good[i % good.length]; } noInline(getItem); function start() { for (i = 0; i < 1000; i++) { p(); } shouldReturnBad = true; for (i = 0; i < 10000; i++) { try { p(); } catch(e) { } } } start();