summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/debug/Memory-takeCensus-12.js
blob: cb4f64ebc54611dabe9226ed23295b99b562fc2b (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// Sanity test that we can accumulate matching individuals in a bucket.

var g = newGlobal({newCompartment: true});
var dbg = new Debugger(g);

var bucket = { by: "bucket" };
var count = { by: "count", count: true, bytes: false };

var all = dbg.memory.takeCensus({ breakdown: bucket });
var allCount = dbg.memory.takeCensus({ breakdown: count }).count;

var coarse = dbg.memory.takeCensus({
  breakdown: {
    by: "coarseType",
    objects: bucket,
    strings: bucket,
    scripts: bucket,
    other: bucket
  }
});
var coarseCount = dbg.memory.takeCensus({
  breakdown: {
    by: "coarseType",
    objects: count,
    strings: count,
    scripts: count,
    other: count
  }
});

assertEq(all.length > 0, true);
assertEq(all.length, allCount);

assertEq(coarse.objects.length > 0, true);
assertEq(coarseCount.objects.count, coarse.objects.length);

assertEq(coarse.strings.length > 0, true);
assertEq(coarseCount.strings.count, coarse.strings.length);

assertEq(coarse.scripts.length > 0, true);
assertEq(coarseCount.scripts.count, coarse.scripts.length);

assertEq(coarse.other.length > 0, true);
assertEq(coarseCount.other.count, coarse.other.length);

assertEq(all.length >= coarse.objects.length, true);
assertEq(all.length >= coarse.strings.length, true);
assertEq(all.length >= coarse.scripts.length, true);
assertEq(all.length >= coarse.other.length, true);

function assertIsIdentifier(id) {
  assertEq(id, Math.floor(id));
  assertEq(id > 0, true);
  assertEq(id <= Math.pow(2, 48), true);
}

all.forEach(assertIsIdentifier);
coarse.objects.forEach(assertIsIdentifier);
coarse.strings.forEach(assertIsIdentifier);
coarse.scripts.forEach(assertIsIdentifier);
coarse.other.forEach(assertIsIdentifier);