summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Memory-allocationsLogOverflowed-01.js
blob: 5e7176db343ddb1d8138adf0017d38434c466ee8 (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
// Test basic usage of `Debugger.Memory.prototype.allocationsLogOverflowed`.

const root = newGlobal({newCompartment: true});
const dbg = new Debugger(root);
dbg.memory.trackingAllocationSites = true;
dbg.memory.maxAllocationsLogLength = 1;

root.eval("(" + function immediate() {
  // Allocate more than the max log length.
  this.objs = [{}, {}, {}, {}];
} + "());");

// The log should have overflowed.
assertEq(dbg.memory.allocationsLogOverflowed, true);

// Once drained, the flag should be reset.
const allocs = dbg.memory.drainAllocationsLog();
assertEq(dbg.memory.allocationsLogOverflowed, false);

// If we keep allocations under the max log length, then we shouldn't have
// overflowed.
dbg.memory.maxAllocationsLogLength = 10000;
root.eval("this.objs = [{}, {}, {}, {}];");
assertEq(dbg.memory.allocationsLogOverflowed, false);