37 lines
996 B
JavaScript
37 lines
996 B
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
// Test that HeapSnapshot.prototype.takeCensus finds GC roots that are on the
|
|
// stack.
|
|
//
|
|
// Ported from js/src/jit-test/tests/debug/Memory-takeCensus-04.js
|
|
|
|
function run_test() {
|
|
var g = newGlobal();
|
|
var dbg = new Debugger(g);
|
|
|
|
g.eval(`
|
|
function withAllocationMarkerOnStack(f) {
|
|
(function () {
|
|
var onStack = allocationMarker();
|
|
f();
|
|
}());
|
|
}
|
|
`);
|
|
|
|
equal("AllocationMarker" in saveHeapSnapshotAndTakeCensus(dbg).objects, false,
|
|
"There shouldn't exist any allocation markers in the census.");
|
|
|
|
var allocationMarkerCount;
|
|
g.withAllocationMarkerOnStack(() => {
|
|
const census = saveHeapSnapshotAndTakeCensus(dbg);
|
|
allocationMarkerCount = census.objects.AllocationMarker.count;
|
|
});
|
|
|
|
equal(allocationMarkerCount, 1,
|
|
"Should have one allocation marker in the census, because there " +
|
|
"was one on the stack.");
|
|
|
|
do_test_finished();
|
|
}
|