summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Memory-takeCensus-03.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/debug/Memory-takeCensus-03.js')
-rw-r--r--js/src/jit-test/tests/debug/Memory-takeCensus-03.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/debug/Memory-takeCensus-03.js b/js/src/jit-test/tests/debug/Memory-takeCensus-03.js
new file mode 100644
index 0000000000..4284f642d8
--- /dev/null
+++ b/js/src/jit-test/tests/debug/Memory-takeCensus-03.js
@@ -0,0 +1,26 @@
+// Debugger.Memory.prototype.takeCensus behaves plausibly as we add and remove debuggees.
+
+load(libdir + 'census.js');
+
+var dbg = new Debugger;
+
+var census0 = dbg.memory.takeCensus();
+Census.walkCensus(census0, "census0", Census.assertAllZeros);
+
+var g1 = newGlobal({newCompartment: true});
+dbg.addDebuggee(g1);
+var census1 = dbg.memory.takeCensus();
+Census.walkCensus(census1, "census1", Census.assertAllNotLessThan(census0));
+
+var g2 = newGlobal({newCompartment: true});
+dbg.addDebuggee(g2);
+var census2 = dbg.memory.takeCensus();
+Census.walkCensus(census2, "census2", Census.assertAllNotLessThan(census1), new Set(["bytes"]));
+
+dbg.removeDebuggee(g2);
+var census3 = dbg.memory.takeCensus();
+Census.walkCensus(census3, "census3", Census.assertAllEqual(census1), new Set(["bytes"]));
+
+dbg.removeDebuggee(g1);
+var census4 = dbg.memory.takeCensus();
+Census.walkCensus(census4, "census4", Census.assertAllEqual(census0));