// Recursion through the get hook works; runaway recursion is checked. load(libdir + "asserts.js"); var hits = 0, limit = 10; var proto = new Proxy({}, { get(t, id, r) { assertEq(r, obj); if (hits++ >= limit) return "ding"; return obj[id]; } }); var obj = Object.create(proto); assertEq(obj.prop, "ding"); hits = 0; limit = Infinity; assertThrowsInstanceOf(() => obj.prop, InternalError); assertEq(hits > 10, true);