| Index: test/mjsunit/stack-traces-gc.js
|
| diff --git a/test/mjsunit/regress/regress-cnlt-elements.js b/test/mjsunit/stack-traces-gc.js
|
| similarity index 74%
|
| copy from test/mjsunit/regress/regress-cnlt-elements.js
|
| copy to test/mjsunit/stack-traces-gc.js
|
| index 634534c53307caad7c7b7724d875d142272a9edf..218b898b4b7307efec8073072c88c5891e884c8a 100644
|
| --- a/test/mjsunit/regress/regress-cnlt-elements.js
|
| +++ b/test/mjsunit/stack-traces-gc.js
|
| @@ -27,17 +27,34 @@
|
|
|
| // Flags: --expose-gc
|
|
|
| -var a = JSON.parse('{"b":1,"c":2,"d":3,"e":4}');
|
| -var b = JSON.parse('{"12040200":1, "a":2, "b":2}');
|
| -var c = JSON.parse('{"24050300":1}');
|
| -b = null;
|
| +var sum = 0;
|
| +
|
| +Error.prepareStackTrace = function(error, stack) {
|
| + sum += error.num;
|
| +}
|
| +
|
| +for (var i = 0; i < 100; i++) {
|
| + var error = new Error();
|
| + error.num = i;
|
| + error = undefined;
|
| +}
|
| +
|
| gc();
|
| +assertEquals(0, sum);
|
| +
|
| +var array = [];
|
| +for (var i = 0; i < 100; i++) {
|
| + var error = new Error();
|
| + error.num = i;
|
| + array.push(error);
|
| + error = undefined;
|
| +}
|
| +
|
| +var expected_sum = 99 * 50;
|
| +
|
| gc();
|
| -c.a1 = 2;
|
| -c.a2 = 2;
|
| -c.a3 = 2;
|
| -c.a4 = 2;
|
| -c.a5 = 2;
|
| -c.a6 = 2;
|
| -c.a7 = 2;
|
| -c.a8 = 2;
|
| +// We expect that not all stack traces are formatted after only one GC.
|
| +assertTrue(expected_sum > sum);
|
| +
|
| +for (var i = 0; i < 10; i++) gc();
|
| +assertEquals(expected_sum, sum);
|
|
|