michael@0: var eCount = 0; michael@0: var funs = [function () {}, function () {}]; michael@0: function someElement(a) { michael@0: ++eCount; michael@0: var i = (eCount >= 8) ? 1 : 0; michael@0: return a[i] michael@0: } michael@0: var recursionGuard = 0; michael@0: function recursiveThing() { michael@0: someElement(funs); michael@0: if (++recursionGuard % 2) { michael@0: e1(); michael@0: } michael@0: } michael@0: function e1() { michael@0: try {} catch (e) {} michael@0: someElement(funs); michael@0: recursiveThing() michael@0: } michael@0: recursiveThing() michael@0: gc(); michael@0: recursiveThing() michael@0: recursiveThing()