tor-browser

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

Set-iterator-remove-5.js (551B)


      1 // Removing a Set entry already visited by an iterator does not cause any
      2 // entries to be skipped.
      3 
      4 var str = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
      5 var set = new Set(str);
      6 
      7 var log = '';
      8 var i = 0;
      9 for (var x of set) {
     10    log += x;
     11    if (i++ % 5 === 0) {
     12        // Delete all entries preceding this one.
     13        for (let y of set) {
     14            if (y === x)
     15                break;
     16            set.delete(y);
     17        }
     18    }
     19 }
     20 assertEq(log, str);
     21 assertEq(set.size, 1);  // Elements 0 to 24 are removed, leaving only 25 (Z).
     22 assertEq(set.has('Z'), true);