// Check byte counts produced by takeCensus. const g = newGlobal(); g.eval("setLazyParsingDisabled(true)"); g.eval("setJitCompilerOption('ion.warmup.trigger', 1000)"); const dbg = new Debugger(g); g.evaluate("function one() {}", { fileName: "one.js" }); g.evaluate(`function two1() {} function two2() {}`, { fileName: "two.js" }); g.evaluate(`function three1() {} function three2() {} function three3() {}`, { fileName: "three.js" }); const report = dbg.memory.takeCensus({ breakdown: { by: "coarseType", scripts: { by: "filename", then: { by: "count", count: true, bytes: false }, noFilename: { by: "internalType", then: { by: "count", count: true, bytes: false } } }, // Not really interested in these, but they're here for completeness. objects: { by: "count", count: true, byte: false }, strings: { by: "count", count: true, byte: false }, other: { by: "count", count: true, byte: false }, } }); print(JSON.stringify(report, null, 4)); assertEq(report.scripts["one.js"].count, 1); assertEq(report.scripts["two.js"].count, 2); assertEq(report.scripts["three.js"].count, 3); const noFilename = report.scripts.noFilename; assertEq(!!noFilename, true); assertEq(typeof noFilename, "object");