X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/2d39b0e377c0896910ee49ae70082ba665faf986..ed1e77d3adeb83d26fd1dfb16dd84cabdcefd250:/tests/stress/arguments-custom-properties-gc.js diff --git a/tests/stress/arguments-custom-properties-gc.js b/tests/stress/arguments-custom-properties-gc.js new file mode 100644 index 0000000..86e44d5 --- /dev/null +++ b/tests/stress/arguments-custom-properties-gc.js @@ -0,0 +1,36 @@ +function makeBaseArguments() { + return arguments; +} + +noInline(makeBaseArguments); + +function makeArray(length) { + var array = new Array(length); + for (var i = 0; i < length; ++i) + array[i] = 99999; + return array; +} + +noInline(makeArray); + +function cons(f) { + var result = makeBaseArguments(); + result.f = f; + return result; +} + +var array = []; +for (var i = 0; i < 100000; ++i) + array.push(cons(i)); + +for (var i = 0; i < 1000000; ++i) { + var j = (i * 3) % array.length; + array[j] = cons(j); + + makeArray(i % 7); +} + +for (var i = 0; i < array.length; ++i) { + if (array[i].f != i) + throw "Error: bad value of f at " + i + ": " + array[i].f; +}