Map-constructor-generator-1.js (443B)
1 // The argument to Map can be a generator. 2 3 var done = false; 4 function* data(n) { 5 var s = ''; 6 for (var i = 0; i < n; i++) { 7 yield [s, i]; 8 s += '.'; 9 } 10 done = true; 11 } 12 13 var m = new Map(data(50)); 14 assertEq(done, true); // the constructor consumes the argument 15 assertEq(m.size, 50); 16 assertEq(m.get(""), 0); 17 assertEq(m.get("....."), 5); 18 assertEq(m.get(Array(49+1).join(".")), 49); 19 assertEq(m.has(undefined), false);