summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Memory-drainAllocationsLog-01.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/debug/Memory-drainAllocationsLog-01.js')
-rw-r--r--js/src/jit-test/tests/debug/Memory-drainAllocationsLog-01.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/debug/Memory-drainAllocationsLog-01.js b/js/src/jit-test/tests/debug/Memory-drainAllocationsLog-01.js
new file mode 100644
index 0000000000..8b7599c73d
--- /dev/null
+++ b/js/src/jit-test/tests/debug/Memory-drainAllocationsLog-01.js
@@ -0,0 +1,31 @@
+// Test basic usage of drainAllocationsLog()
+
+const root = newGlobal({newCompartment: true});
+const dbg = new Debugger();
+const wrappedRoot = dbg.addDebuggee(root)
+dbg.memory.trackingAllocationSites = true;
+
+root.eval("(" + function immediate() {
+ this.tests = [
+ {x: 1},
+ [],
+ /(two|2)\s*problems/,
+ new function Ctor(){},
+ new Object(),
+ new Array(),
+ new Date(),
+ ];
+} + "());");
+
+const allocs = dbg.memory.drainAllocationsLog();
+print(allocs.join("\n--------------------------------------------------------------------------\n"));
+print("Total number of allocations logged: " + allocs.length);
+
+let idx = -1;
+for (let object of root.tests) {
+ let wrappedObject = wrappedRoot.makeDebuggeeValue(object);
+ let allocSite = wrappedObject.allocationSite;
+ let newIdx = allocs.map(x => x.frame).indexOf(allocSite);
+ assertEq(newIdx > idx, true);
+ idx = newIdx;
+}