WeakMap-constructor-generator-1.js (461B)
1 // The argument to WeakMap can be a generator. 2 3 var k1 = {}; 4 var v1 = 42; 5 var k2 = {}; 6 var v2 = 43; 7 var k3 = {}; 8 9 var done = false; 10 11 function* data() { 12 yield [k1, v1]; 13 yield [k2, v2]; 14 done = true; 15 }; 16 17 m = new WeakMap(data()); 18 19 assertEq(done, true); // the constructor consumes the argument 20 assertEq(m.has(k1), true); 21 assertEq(m.has(k2), true); 22 assertEq(m.has(k3), false); 23 assertEq(m.get(k1), v1); 24 assertEq(m.get(k2), v2); 25 assertEq(m.get(k3), undefined);