Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1838)

Unified Diff: test/mjsunit/stack-traces-gc.js

Issue 11377158: Fire 'stack' getter of error objects after GC. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: add budgetting Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« src/heap.cc ('K') | « test/cctest/test-heap.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« src/heap.cc ('K') | « test/cctest/test-heap.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698