Source code
Revision control
Copy as Markdown
Other Tools
// 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);