| // new WeakMap(arr) throws if arr contains holes (or undefined values). |
| |
| load(libdir + "asserts.js"); |
| |
| var k1 = {}; |
| var v1 = 42; |
| var k2 = {}; |
| var v2 = 43; |
| var k3 = {}; |
| var v3 = {}; |
| |
| assertThrowsInstanceOf(function () { new WeakMap([undefined]); }, TypeError); |
| assertThrowsInstanceOf(function () { new WeakMap([null]); }, TypeError); |
| assertThrowsInstanceOf(function () { new WeakMap([[k1, v1], [k2, v2], , [k3, k3]]); }, TypeError); |
| assertThrowsInstanceOf(function () { new WeakMap([[k1, v1], [k2, v2], ,]); }, TypeError); |
| |
| // new WeakMap(iterable) throws if iterable doesn't have array-like objects |
| |
| assertThrowsInstanceOf(function () { new WeakMap([1, 2, 3]); }, TypeError); |
| assertThrowsInstanceOf(function () { |
| let s = new Set([1, 2, "abc"]); |
| new WeakMap(s); |
| }, TypeError); |