michael@0: function A(a) { this.a = a; } michael@0: A.prototype.foo = function (x) {}; michael@0: function B(b) { this.b = b; } michael@0: B.prototype.foo = function (x) {}; michael@0: function C(c) {} michael@0: function makeArray(n) { michael@0: var classes = [A, B, C]; michael@0: var arr = []; michael@0: for (var i = 0; i < n; i++) { michael@0: arr.push(new classes[i % 3](i % 3)); michael@0: } michael@0: return arr; michael@0: } michael@0: function runner(arr, resultArray, len) { michael@0: for (var i = 0; i < len; i++) { michael@0: var obj = arr[i]; michael@0: resultArray[0] += obj.foo(i); michael@0: } michael@0: } michael@0: var resultArray = [0]; michael@0: var arr = makeArray(30000); michael@0: C.prototype.foo = Uint8ClampedArray; michael@0: runner(arr, resultArray, 30000);