summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Memory-drainAllocationsLog-01.js
blob: 8b7599c73d9290f77912639c745f3611f14d9f22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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;
}