/* 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(); }