js/src/jit-test/tests/gc/incremental-02.js

Thu, 15 Jan 2015 15:59:08 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 15:59:08 +0100
branch
TOR_BUG_9701
changeset 10
ac0c01689b40
permissions
-rw-r--r--

Implement a real Private Browsing Mode condition by changing the API/ABI;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 var objs;
     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();
    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 }
    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()");
    25 gcslice(0);
    26 selectforgc(objs.root);
    27 gcslice(1);
    28 delete objs.root.b;
    29 delete objs.root.a;
    30 gcslice();

mercurial