Rooting the mark phase in the operand stack and local variable slots mirrors exactly what HotSpot's garbage collectors do when they treat active stack frames as GC roots before any region- or generation-specific logic runs. Building this simple mark-and-sweep collector on your mini-JVM is the same foundational step that preceded G1, ZGC, and every other production JVM collector historically.