| // Test when there are more allocations than the maximum log length. |
| |
| const root = newGlobal(); |
| const dbg = new Debugger(); |
| dbg.addDebuggee(root) |
| |
| dbg.memory.maxAllocationsLogLength = 3; |
| dbg.memory.trackingAllocationSites = true; |
| |
| root.eval([ |
| "this.alloc1 = {};", // line 1 |
| "this.alloc2 = {};", // line 2 |
| "this.alloc3 = {};", // line 3 |
| "this.alloc4 = {};", // line 4 |
| ].join("\n")); |
| |
| const allocs = dbg.memory.drainAllocationsLog(); |
| |
| // Should have stayed at the maximum length. |
| assertEq(allocs.length, 3); |
| // Should have kept the most recent allocation. |
| assertEq(allocs[2].frame.line, 4); |
| // Should have thrown away the oldest allocation. |
| assertEq(allocs.map(x => x.frame.line).indexOf(1), -1); |