blob: e9f2fb41c6fb612a5f8fe3a7c877c976f7c7de6f [file] [log] [blame]
// 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);