Source code

Revision control

Copy as Markdown

Other Tools

// This test case was created before %TypedArrayPrototype%.toString was
// implemented. Now that we've got %TypedArrayPrototype%.toString the test will
// attempt to create a 300300001 character long string and either timeout or
// throw an oom error. Restore the original behavior by replacing toString with
// Object.prototype.toString.
Uint8ClampedArray.prototype.toString = Object.prototype.toString;
function A(a) { this.a = a; }
A.prototype.foo = function (x) {};
function B(b) { this.b = b; }
B.prototype.foo = function (x) {};
function C(c) {}
function makeArray(n) {
var classes = [A, B, C];
var arr = [];
for (var i = 0; i < n; i++) {
arr.push(new classes[i % 3](i % 3));
}
return arr;
}
function runner(arr, resultArray, len) {
for (var i = 0; i < len; i++) {
var obj = arr[i];
resultArray[0] += new obj.foo(i);
}
}
var resultArray = [0];
var arr = makeArray(30000);
C.prototype.foo = Uint8ClampedArray;
runner(arr, resultArray, 30000);