WeakSet.prototype.add()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015.
Theadd() method ofWeakSet instances inserts the specified value into this set, if it is not already present.
In this article
Try it
const weakset = new WeakSet();const object = {};weakset.add(object);console.log(weakset.has(object));// Expected output: truetry { 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}Syntax
js
add(value)Parameters
valueThe value to add to the
WeakSetobject. Must be either an object or anon-registered symbol. Objects are compared byreference, not by value.
Return value
TheWeakSet object.
Exceptions
TypeErrorThrown if
valueis not an object or anon-registered symbol.
Examples
>Using add()
js
const ws = new WeakSet();ws.add(window); // add the window object to the WeakSetws.has(window); // true// WeakSet only takes objects as argumentsws.add(1);// results in "TypeError: Invalid value used in weak set" in Chrome// and "TypeError: 1 is not a non-null object" in FirefoxSpecifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-weakset.prototype.add> |