tor-browser

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

Map-iterator-remove-1.js (917B)


      1 // A map iterator can cope with removing the current entry.
      2 
      3 function test(pairs) {
      4    print(JSON.stringify(pairs));
      5    var map = new Map(pairs);
      6    
      7    var all_keys = '';
      8    var false_keys = '';
      9    for (let [k, v] of map) {
     10        all_keys += k;
     11        if (!v)
     12            false_keys += k;
     13    }
     14 
     15    var log = '';
     16    for (let [k, remove] of map) {
     17        log += k;
     18        if (remove)
     19            map.delete(k);
     20    }
     21    assertEq(log, all_keys);
     22 
     23    var remaining_keys = [...map].map(([k]) => k).join('');
     24    assertEq(remaining_keys, false_keys);
     25 }
     26 
     27 // removing the only entry
     28 test([['a', true]]);
     29 
     30 // removing the first entry
     31 test([['a', true], ['b', false], ['c', false]]);
     32 
     33 // removing a middle entry
     34 test([['a', false], ['b', true], ['c', false]]);
     35 
     36 // removing the last entry
     37 test([['a', false], ['b', false], ['c', true]]);
     38 
     39 // removing all entries
     40 test([['a', true], ['b', true], ['c', true]]);