incremental-02.js (622B)
1 var objs; 2 3 function init() 4 { 5 objs = new Object(); 6 var x = new Object(); 7 objs.root = x; 8 x.a = new Object(); 9 x.b = new Object(); 10 11 /* 12 * Clears out the arena lists. Otherwise all the objects above 13 * would be considered to be created during the incremental GC. 14 */ 15 gc(); 16 } 17 18 /* 19 * Use eval here so that the interpreter frames end up higher on the 20 * stack, which avoids them being seen later on by the conservative 21 * scanner. 22 */ 23 eval("init()"); 24 25 gcslice(0); // Start IGC, but don't mark anything. 26 selectforgc(objs.root); 27 gcslice(1); 28 delete objs.root.b; 29 delete objs.root.a; 30 gcslice();