coderef

WeakSetBaseline · Widely available

A WeakSet object stores unique values of any type without creating strong references to the values, such that membership in the set does not prevent garbage collection of the value.

Supported in all major browsers for at least 30 months — safe to use without fallbacks. Baseline since Sep 30, 2015. Widely available since Mar 30, 2018.

Browser support

DesktopChrome
1–35Not supported
36+Supportedsince Jul 16, 2014
Current: 155
Edge
12+Supportedsince Jul 29, 2015
Current: 154
Firefox
1–33Not supported
34+Supportedsince Dec 1, 2014
Current: 157
Safari
1–8Not supported
9+Supportedsince Sep 30, 2015
Current: 27
MobileChrome Android
18–35Not supported
36+Supportedsince Jul 16, 2014
Current: 155
Firefox Android
4–33Not supported
34+Supportedsince Dec 1, 2014
Current: 157
Safari iOS
1–8Not supported
9+Supportedsince Sep 16, 2015
Current: 27

How to use

This feature is Baseline widely available — use it freely, no fallback needed.

Example

Full syntax and examples are on MDN: WeakSet.

Feature detection

JS · check before using
if (typeof WeakSet !== "undefined") {
  // WeakSet is available
}

Sub-features

Support for each part of the feature (8). The overall table above shows when the whole feature works.

Sub-featureChromeEdgeFirefoxSafariChrome AndroidFirefox AndroidSafari iOS
WeakSet361234936349
WeakSet.WeakSet361234936349
WeakSet.WeakSet.iterable_allowed381234938349
WeakSet.WeakSet.null_allowed361237936379
WeakSet.add361234936349
WeakSet.delete361234936349
WeakSet.has361234936349
WeakSet.symbol_as_keys10910914616.410914616.4