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

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 // Dispatching an event to a debugger must keep enough of it gc-alive to avoid
     2 // crashing.
     4 var g = newGlobal();
     5 var hits;
     7 function addDebug() {
     8     // The loop is here to defeat the conservative GC. :-\
     9     for (var i = 0; i < 4; i++) {
    10         var dbg = new Debugger(g);
    11         dbg.onDebuggerStatement = function (stack) {
    12             hits++;
    13             this.enabled = false;
    14             this.onDebuggerStatement = undefined;
    15             gc();
    16         };
    17         if (i > 0) {
    18             dbg.enabled = false;
    19             dbg.onDebuggerStatement = undefined;
    20             dbg = null;
    21         }
    22     }
    23 }
    25 addDebug();
    26 hits = 0;
    27 g.eval("debugger;");
    28 assertEq(hits, 1);

mercurial