WeakMap object allows you to store key/value pairs. The difference from Map is that keys must be objects and are weakly referenced. This means that if there aren't any other strong references to the key, the element in WeakMap can be removed by garbage collector.
WeakMap constructor has an optional parameter, which can be any iterable object (for example Array) containing key/value pairs as two-element arrays.
const o1 = {a: 1, b: 2},
o2 = {};
const weakmap = new WeakMap([[o1, true], [o2, o1]]);