Chromium Code Reviews| 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 66% |
| copy from test/mjsunit/regress/regress-491.js |
| copy to test/mjsunit/regress/regress-3976.js |
| index 2cf5e20ed6ab69946843ad04a4a7be35113d8187..b327817453e27db9585e8018eb2453133551296d 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,54 @@ |
| // (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. |
| +table = []; |
|
ulan
2015/03/20 10:56:54
Can we get faster test by setting max_old_space_si
Erik Corry
2015/03/20 11:39:23
Good idea. Reducing by a factor of 20 with a max
|
| -function function_with_n_strings(n) { |
| - var source = '(function f(){'; |
| - for (var i = 0; i < n; i++) { |
| - if (i != 0) source += ';'; |
| - source += '"x"'; |
| +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(1000000); |
| + |
| +print("parsing " + str.length); |
| +JSON.parse(str); |
| + |
| +print("done"); |