The add() method of WeakSet instances inserts the specified value into this set, if it is not already present.
const weakset = new WeakSet();
const object = {};
weakset.add(object);
console.log(weakset.has(object));
// Expected output: true
try {
weakset.add(1);
} catch (error) {
console.log(error);
// Expected output (Chrome): TypeError: Invalid value used in weak set
// Expected output (Firefox): TypeError: WeakSet value must be an object, got 1
// Expected output (Safari): TypeError: Attempted to add a non-object key to a WeakSet
}add(value)valueThe value to add to the WeakSet object. Must be either an object or a non-registered symbol. Objects are compared by reference, not by value.
The WeakSet object.
TypeErrorThrown if value is not an object or a non-registered symbol.
const ws = new WeakSet();
ws.add(window); // add the window object to the WeakSet
ws.has(window); // true
// WeakSet only takes objects as arguments
ws.add(1);
// results in "TypeError: Invalid value used in weak set" in Chrome
// and "TypeError: 1 is not a non-null object" in Firefox