Source code
Revision control
Copy as Markdown
Other Tools
var objs;
function init()
{
objs = new Object();
var x = new Object();
objs.root1 = x;
objs.root2 = new Object();
x.ptr = new Object();
x = null;
/*
* Clears out the arena lists. Otherwise all the objects above
* would be considered to be created during the incremental GC.
*/
gc();
}
/*
* Use eval here so that the interpreter frames end up higher on the
* stack, which avoids them being seen later on by the conservative
* scanner.
*/
eval("init()");
gcslice(0); // Start IGC, but don't mark anything.
selectforgc(objs.root2);
gcslice(1);
objs.root2.ptr = objs.root1.ptr;
objs.root1.ptr = null;
gcslice();