X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/2d39b0e377c0896910ee49ae70082ba665faf986..ed1e77d3adeb83d26fd1dfb16dd84cabdcefd250:/tests/stress/construct-varargs-inline-smaller-Foo.js diff --git a/tests/stress/construct-varargs-inline-smaller-Foo.js b/tests/stress/construct-varargs-inline-smaller-Foo.js new file mode 100644 index 0000000..77b5b3d --- /dev/null +++ b/tests/stress/construct-varargs-inline-smaller-Foo.js @@ -0,0 +1,35 @@ +function Foo(a, b) { + var array = []; + for (var i = 0; i < arguments.length; ++i) + array.push(arguments[i]); + this.f = array; +} + +function bar(array) { + return new Foo(...array); +} + +noInline(bar); + +function checkEqual(a, b) { + if (a.length != b.length) + throw "Error: bad value of c, length mismatch: " + a + " versus " + b; + for (var i = a.length; i--;) { + if (a[i] != b[i]) + throw "Error: bad value of c, mismatch at i = " + i + ": " + a + " versus " + b; + } +} + +function test(array) { + var expected = array; + var actual = bar(array).f; + checkEqual(actual, expected); +} + +for (var i = 0; i < 10000; ++i) { + var array = []; + for (var j = 0; j < i % 6; ++j) + array.push(j); + test(array); +} +