michael@0: var o = { }; michael@0: for (var i = 0; i <= 50; i++) michael@0: o[i] = i; michael@0: michael@0: Object.defineProperty(o, "51", { get: assertEq }); michael@0: michael@0: var threw = 0; michael@0: function g(o, i) { michael@0: try { michael@0: assertEq(o[i], i); michael@0: } catch (e) { michael@0: threw++; michael@0: } michael@0: } michael@0: michael@0: function f() { michael@0: for (var i = 0; i <= 51; i++) michael@0: g(o, i); michael@0: } michael@0: michael@0: f(); michael@0: f(); michael@0: f(); michael@0: assertEq(threw, 3); michael@0: