|
1 // A Map iterator does not visit entries removed by clear(). |
|
2 |
|
3 load(libdir + "iteration.js"); |
|
4 |
|
5 var m = Map(); |
|
6 var it = m[std_iterator](); |
|
7 m.clear(); |
|
8 assertIteratorDone(it, undefined); |
|
9 |
|
10 m = Map([["a", 1], ["b", 2], ["c", 3], ["d", 4]]); |
|
11 it = m[std_iterator](); |
|
12 assertIteratorNext(it, ["a", 1]); |
|
13 m.clear(); |
|
14 assertIteratorDone(it, undefined); |
|
15 |
|
16 var log = ""; |
|
17 m = Map([["a", 1], ["b", 2], ["c", 3], ["d", 4]]); |
|
18 for (var [k, v] of m) { |
|
19 log += k + v; |
|
20 if (k == "b") |
|
21 m.clear(); |
|
22 } |
|
23 assertEq(log, "a1b2"); |