| Index: test/mjsunit/regress/regress-3976.js
|
| diff --git a/test/mjsunit/regress/regress-491.js b/test/mjsunit/regress/regress-3976.js
|
| similarity index 65%
|
| copy from test/mjsunit/regress/regress-491.js
|
| copy to test/mjsunit/regress/regress-3976.js
|
| index 2cf5e20ed6ab69946843ad04a4a7be35113d8187..c151f689f46e57126b6ed73b458941c4ca6a769e 100644
|
| --- a/test/mjsunit/regress/regress-491.js
|
| +++ b/test/mjsunit/regress/regress-3976.js
|
| @@ -1,4 +1,4 @@
|
| -// Copyright 2009 the V8 project authors. All rights reserved.
|
| +// Copyright 2015 the V8 project authors. All rights reserved.
|
| // Redistribution and use in source and binary forms, with or without
|
| // modification, are permitted provided that the following conditions are
|
| // met:
|
| @@ -25,23 +25,56 @@
|
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
| -// See: http://code.google.com/p/v8/issues/detail?id=491
|
| -// This should not hit any asserts in debug mode on ARM.
|
| +// Flags: --max-old-space-size=60
|
|
|
| -function function_with_n_strings(n) {
|
| - var source = '(function f(){';
|
| - for (var i = 0; i < n; i++) {
|
| - if (i != 0) source += ';';
|
| - source += '"x"';
|
| +table = [];
|
| +
|
| +for (var i = 0; i < 32; i++) {
|
| + table[i] = String.fromCharCode(i + 0x410);
|
| +}
|
| +
|
| +
|
| +var random = (function() {
|
| + var seed = 10;
|
| + return function() {
|
| + seed = (seed * 1009) % 8831;
|
| + return seed;
|
| + };
|
| +})();
|
| +
|
| +
|
| +function key(length) {
|
| + var s = "";
|
| + for (var i = 0; i < length; i++) {
|
| + s += table[random() % 32];
|
| }
|
| - source += '})()';
|
| - eval(source);
|
| + return '"' + s + '"';
|
| }
|
|
|
| -var i;
|
| -for (i = 500; i < 600; i++) {
|
| - function_with_n_strings(i);
|
| +
|
| +function value() {
|
| + return '[{' + '"field1" : ' + random() + ', "field2" : ' + random() + '}]';
|
| }
|
| -for (i = 1100; i < 1200; i++) {
|
| - function_with_n_strings(i);
|
| +
|
| +
|
| +function generate(n) {
|
| + var s = '{';
|
| + for (var i = 0; i < n; i++) {
|
| + if (i > 0) s += ', ';
|
| + s += key(random() % 10 + 7);
|
| + s += ':';
|
| + s += value();
|
| + }
|
| + s += '}';
|
| + return s;
|
| }
|
| +
|
| +
|
| +print("generating");
|
| +
|
| +var str = generate(50000);
|
| +
|
| +print("parsing " + str.length);
|
| +JSON.parse(str);
|
| +
|
| +print("done");
|
|
|