summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Memory-drainAllocationsLog-08.js
blob: e9f2fb41c6fb612a5f8fe3a7c877c976f7c7de6f (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
// Test retrieving the log multiple times.

const root = newGlobal();
const dbg = new Debugger();
dbg.addDebuggee(root)

root.eval([
  "this.allocs = [];",
  "this.doFirstAlloc = " + function () {
    this.allocs.push({});           this.firstAllocLine = Error().lineNumber;
  },
  "this.doSecondAlloc = " + function () {
    this.allocs.push(new Object()); this.secondAllocLine = Error().lineNumber;
  }
].join("\n"));

dbg.memory.trackingAllocationSites = true;

root.doFirstAlloc();
let allocs1 = dbg.memory.drainAllocationsLog();
root.doSecondAlloc();
let allocs2 = dbg.memory.drainAllocationsLog();

let allocs1Lines = allocs1.filter(x => !!x.frame).map(x => x.frame.line);
assertEq(allocs1Lines.indexOf(root.firstAllocLine) != -1, true);
assertEq(allocs1Lines.indexOf(root.secondAllocLine) == -1, true);

let allocs2Lines = allocs2.filter(x => !!x.frame).map(x => x.frame.line);
assertEq(allocs2Lines.indexOf(root.secondAllocLine) != -1, true);
assertEq(allocs2Lines.indexOf(root.firstAllocLine) == -1, true);