tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

bug-1997822.js (623B)


      1 // Check gray unmarking running as part of incremental GC correctly unmarks
      2 // edges traced via virtual dispatch on the marking tracer.
      3 
      4 function checkMarks(expected) {
      5  assertEq(getMarks().join(", "), expected.join(", "));
      6 }
      7 
      8 gczeal(0);
      9 gczeal('CheckGrayMarking');
     10 gc();
     11 
     12 let s = Symbol();
     13 addMarkObservers([s]);
     14 
     15 let m = new Map();
     16 m.set({}, s);
     17 addMarkObservers([m]);
     18 grayRoot()[0] = m;
     19 
     20 s = undefined;
     21 m = undefined;
     22 gc();
     23 checkMarks(['gray', 'gray']);
     24 
     25 schedulezone(this);
     26 startgc(1);
     27 while (gcstate() === 'Prepare') {
     28  gcslice(10);
     29 }
     30 print(gcstate());
     31 m = grayRoot()[0];
     32 finishgc();
     33 checkMarks(['black', 'black']);