michael@0: var so = []; michael@0: michael@0: function U(unusedV) michael@0: { michael@0: for (var i = 0; i < so.length; ++i) michael@0: return false; michael@0: so.push(0); michael@0: } michael@0: michael@0: function C(v) michael@0: { michael@0: if (typeof v == "object" || typeof v == "function") { michael@0: for (var i = 0; i < 10; ++i) {} michael@0: U(v); michael@0: } michael@0: } michael@0: michael@0: function exploreProperties(obj) michael@0: { michael@0: var props = []; michael@0: for (var o = obj; o; o = Object.getPrototypeOf(o)) { michael@0: props = props.concat(Object.getOwnPropertyNames(o)); michael@0: } michael@0: for (var i = 0; i < props.length; ++i) { michael@0: var p = props[i]; michael@0: try { michael@0: var v = obj[p]; michael@0: C(v); michael@0: } catch(e) { } michael@0: } michael@0: } michael@0: michael@0: function boom() michael@0: { michael@0: var a = []; michael@0: var b = function(){}; michael@0: var c = [{}]; michael@0: exploreProperties(a); michael@0: exploreProperties(b); michael@0: exploreProperties(c); michael@0: exploreProperties(c); michael@0: } michael@0: michael@0: boom(); michael@0: