WeakMap-constructor-5.js (780B)
1 // new WeakMap(arr) throws if arr contains holes (or undefined values). 2 3 load(libdir + "asserts.js"); 4 5 var k1 = {}; 6 var v1 = 42; 7 var k2 = {}; 8 var v2 = 43; 9 var k3 = {}; 10 var v3 = {}; 11 12 assertThrowsInstanceOf(function () { new WeakMap([undefined]); }, TypeError); 13 assertThrowsInstanceOf(function () { new WeakMap([null]); }, TypeError); 14 assertThrowsInstanceOf(function () { new WeakMap([[k1, v1], [k2, v2], , [k3, k3]]); }, TypeError); 15 assertThrowsInstanceOf(function () { new WeakMap([[k1, v1], [k2, v2], ,]); }, TypeError); 16 17 // new WeakMap(iterable) throws if iterable doesn't have array-like objects 18 19 assertThrowsInstanceOf(function () { new WeakMap([1, 2, 3]); }, TypeError); 20 assertThrowsInstanceOf(function () { 21 let s = new Set([1, 2, "abc"]); 22 new WeakMap(s); 23 }, TypeError);