{
  "javascript": {
    "builtins": {
      "WeakMap": {
        "__compat": {
          "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/WeakMap",
          "spec_url": "https://tc39.es/ecma262/multipage/keyed-collections.html#sec-weakmap-objects",
          "tags": [
            "web-features:snapshot:ecmascript-2015",
            "web-features:weakmap"
          ],
          "support": {
            "bun": {
              "version_added": "1.0.0"
            },
            "chrome": {
              "version_added": "36"
            },
            "chrome_android": "mirror",
            "deno": {
              "version_added": "1.0"
            },
            "edge": {
              "version_added": "12"
            },
            "firefox": {
              "version_added": "6"
            },
            "firefox_android": "mirror",
            "ie": {
              "version_added": "11"
            },
            "nodejs": {
              "version_added": "0.12.0"
            },
            "oculus": "mirror",
            "opera": "mirror",
            "opera_android": "mirror",
            "safari": {
              "version_added": "8"
            },
            "safari_ios": "mirror",
            "samsunginternet_android": "mirror",
            "webview_android": "mirror",
            "webview_ios": "mirror"
          },
          "status": {
            "experimental": false,
            "standard_track": true,
            "deprecated": false
          }
        },
        "WeakMap": {
          "__compat": {
            "description": "`WeakMap()` constructor",
            "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/WeakMap",
            "spec_url": "https://tc39.es/ecma262/multipage/keyed-collections.html#sec-weakmap-constructor",
            "tags": [
              "web-features:snapshot:ecmascript-2015",
              "web-features:weakmap"
            ],
            "support": {
              "bun": {
                "version_added": "1.0.0"
              },
              "chrome": {
                "version_added": "36"
              },
              "chrome_android": "mirror",
              "deno": {
                "version_added": "1.0"
              },
              "edge": {
                "version_added": "12"
              },
              "firefox": {
                "version_added": "6"
              },
              "firefox_android": "mirror",
              "ie": {
                "version_added": "11"
              },
              "nodejs": {
                "version_added": "0.12.0"
              },
              "oculus": "mirror",
              "opera": "mirror",
              "opera_android": "mirror",
              "safari": {
                "version_added": "8"
              },
              "safari_ios": "mirror",
              "samsunginternet_android": "mirror",
              "webview_android": "mirror",
              "webview_ios": "mirror"
            },
            "status": {
              "experimental": false,
              "standard_track": true,
              "deprecated": false
            }
          },
          "iterable_allowed": {
            "__compat": {
              "description": "`new WeakMap(iterable)`",
              "tags": [
                "web-features:snapshot:ecmascript-2015",
                "web-features:weakmap"
              ],
              "support": {
                "bun": {
                  "version_added": "1.0.0"
                },
                "chrome": {
                  "version_added": "38"
                },
                "chrome_android": "mirror",
                "deno": {
                  "version_added": "1.0"
                },
                "edge": {
                  "version_added": "12"
                },
                "firefox": {
                  "version_added": "36"
                },
                "firefox_android": "mirror",
                "nodejs": {
                  "version_added": "0.12.0"
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                  "version_added": "9"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "webview_ios": "mirror"
              },
              "status": {
                "experimental": false,
                "standard_track": true,
                "deprecated": false
              }
            }
          },
          "null_allowed": {
            "__compat": {
              "description": "`new WeakMap(null)`",
              "tags": [
                "web-features:snapshot:ecmascript-2015",
                "web-features:weakmap"
              ],
              "support": {
                "bun": {
                  "version_added": "1.0.0"
                },
                "chrome": {
                  "version_added": "36"
                },
                "chrome_android": "mirror",
                "deno": {
                  "version_added": "1.0"
                },
                "edge": {
                  "version_added": "12"
                },
                "firefox": {
                  "version_added": "37"
                },
                "firefox_android": "mirror",
                "ie": {
                  "version_added": "11"
                },
                "nodejs": {
                  "version_added": "0.12.0"
                },
                "oculus": "mirror",
                "opera": "mirror",
                "opera_android": "mirror",
                "safari": {
                  "version_added": "8"
                },
                "safari_ios": "mirror",
                "samsunginternet_android": "mirror",
                "webview_android": "mirror",
                "webview_ios": "mirror"
              },
              "status": {
                "experimental": false,
                "standard_track": true,
                "deprecated": false
              }
            }
          }
        },
        "delete": {
          "__compat": {
            "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/delete",
            "spec_url": "https://tc39.es/ecma262/multipage/keyed-collections.html#sec-weakmap.prototype.delete",
            "tags": [
              "web-features:snapshot:ecmascript-2015",
              "web-features:weakmap"
            ],
            "support": {
              "bun": {
                "version_added": "1.0.0"
              },
              "chrome": {
                "version_added": "36"
              },
              "chrome_android": "mirror",
              "deno": {
                "version_added": "1.0"
              },
              "edge": {
                "version_added": "12"
              },
              "firefox": {
                "version_added": "6",
                "notes": "Before Firefox 38, this method threw a `TypeError` when the key parameter was not an object. This has been fixed in version 38 and later to return `false` as per the ES2015 standard."
              },
              "firefox_android": "mirror",
              "ie": {
                "version_added": "11"
              },
              "nodejs": {
                "version_added": "0.12.0"
              },
              "oculus": "mirror",
              "opera": "mirror",
              "opera_android": "mirror",
              "safari": {
                "version_added": "8"
              },
              "safari_ios": "mirror",
              "samsunginternet_android": "mirror",
              "webview_android": "mirror",
              "webview_ios": "mirror"
            },
            "status": {
              "experimental": false,
              "standard_track": true,
              "deprecated": false
            }
          }
        },
        "get": {
          "__compat": {
            "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/get",
            "spec_url": "https://tc39.es/ecma262/multipage/keyed-collections.html#sec-weakmap.prototype.get",
            "tags": [
              "web-features:snapshot:ecmascript-2015",
              "web-features:weakmap"
            ],
            "support": {
              "bun": {
                "version_added": "1.0.0"
              },
              "chrome": {
                "version_added": "36"
              },
              "chrome_android": "mirror",
              "deno": {
                "version_added": "1.0"
              },
              "edge": {
                "version_added": "12"
              },
              "firefox": {
                "version_added": "6",
                "notes": "Before Firefox 38, this method threw a `TypeError` when the key parameter was not an object. However, the ES2015 specification specifies to return `undefined` instead. Furthermore, `WeakMap.prototype.get` accepted an optional second argument as a fallback value, which is not part of the standard. Both non-standard behaviors are removed in version 38 and higher."
              },
              "firefox_android": "mirror",
              "ie": {
                "version_added": "11"
              },
              "nodejs": {
                "version_added": "0.12.0"
              },
              "oculus": "mirror",
              "opera": "mirror",
              "opera_android": "mirror",
              "safari": {
                "version_added": "8"
              },
              "safari_ios": "mirror",
              "samsunginternet_android": "mirror",
              "webview_android": "mirror",
              "webview_ios": "mirror"
            },
            "status": {
              "experimental": false,
              "standard_track": true,
              "deprecated": false
            }
          }
        },
        "getOrInsert": {
          "__compat": {
            "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/getOrInsert",
            "spec_url": "https://tc39.es/ecma262/multipage/keyed-collections.html#sec-weakmap.prototype.getorinsert",
            "tags": [
              "web-features:getorinsert"
            ],
            "support": {
              "bun": {
                "version_added": "1.2.20"
              },
              "chrome": {
                "version_added": "145"
              },
              "chrome_android": "mirror",
              "edge": "mirror",
              "firefox": {
                "version_added": "144"
              },
              "firefox_android": "mirror",
              "oculus": "mirror",
              "opera": "mirror",
              "opera_android": "mirror",
              "safari": {
                "version_added": "26.2"
              },
              "safari_ios": "mirror",
              "samsunginternet_android": "mirror",
              "webview_android": "mirror",
              "webview_ios": "mirror"
            },
            "status": {
              "experimental": false,
              "standard_track": true,
              "deprecated": false
            }
          }
        },
        "getOrInsertComputed": {
          "__compat": {
            "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/getOrInsertComputed",
            "spec_url": "https://tc39.es/ecma262/multipage/keyed-collections.html#sec-weakmap.prototype.getorinsertcomputed",
            "tags": [
              "web-features:getorinsert"
            ],
            "support": {
              "bun": {
                "version_added": "1.2.20"
              },
              "chrome": {
                "version_added": "145"
              },
              "chrome_android": "mirror",
              "edge": "mirror",
              "firefox": {
                "version_added": "144"
              },
              "firefox_android": "mirror",
              "oculus": "mirror",
              "opera": "mirror",
              "opera_android": "mirror",
              "safari": {
                "version_added": "26.2"
              },
              "safari_ios": "mirror",
              "samsunginternet_android": "mirror",
              "webview_android": "mirror",
              "webview_ios": "mirror"
            },
            "status": {
              "experimental": false,
              "standard_track": true,
              "deprecated": false
            }
          }
        },
        "has": {
          "__compat": {
            "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/has",
            "spec_url": "https://tc39.es/ecma262/multipage/keyed-collections.html#sec-weakmap.prototype.has",
            "tags": [
              "web-features:snapshot:ecmascript-2015",
              "web-features:weakmap"
            ],
            "support": {
              "bun": {
                "version_added": "1.0.0"
              },
              "chrome": {
                "version_added": "36"
              },
              "chrome_android": "mirror",
              "deno": {
                "version_added": "1.0"
              },
              "edge": {
                "version_added": "12"
              },
              "firefox": {
                "version_added": "6",
                "notes": "Before Firefox 38, this method threw a `TypeError` when the key parameter was not an object. This has been fixed in version 38 and later to return `false` as per the ES2015 standard."
              },
              "firefox_android": "mirror",
              "ie": {
                "version_added": "11"
              },
              "nodejs": {
                "version_added": "0.12.0"
              },
              "oculus": "mirror",
              "opera": "mirror",
              "opera_android": "mirror",
              "safari": {
                "version_added": "8"
              },
              "safari_ios": "mirror",
              "samsunginternet_android": "mirror",
              "webview_android": "mirror",
              "webview_ios": "mirror"
            },
            "status": {
              "experimental": false,
              "standard_track": true,
              "deprecated": false
            }
          }
        },
        "set": {
          "__compat": {
            "mdn_url": "https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/WeakMap/set",
            "spec_url": "https://tc39.es/ecma262/multipage/keyed-collections.html#sec-weakmap.prototype.set",
            "tags": [
              "web-features:snapshot:ecmascript-2015",
              "web-features:weakmap"
            ],
            "support": {
              "bun": {
                "version_added": "1.0.0"
              },
              "chrome": {
                "version_added": "36"
              },
              "chrome_android": "mirror",
              "deno": {
                "version_added": "1.0"
              },
              "edge": {
                "version_added": "12"
              },
              "firefox": {
                "version_added": "6",
                "notes": "Before Firefox 38, this method threw a `TypeError` when the key parameter was not an object. This has been fixed in version 38 and later to return `false` as per the ES2015 standard."
              },
              "firefox_android": "mirror",
              "ie": {
                "version_added": "11",
                "partial_implementation": true,
                "notes": "Returns 'undefined' instead of the 'Map' object."
              },
              "nodejs": {
                "version_added": "0.12.0"
              },
              "oculus": "mirror",
              "opera": "mirror",
              "opera_android": "mirror",
              "safari": {
                "version_added": "8"
              },
              "safari_ios": "mirror",
              "samsunginternet_android": "mirror",
              "webview_android": "mirror",
              "webview_ios": "mirror"
            },
            "status": {
              "experimental": false,
              "standard_track": true,
              "deprecated": false
            }
          }
        },
        "symbol_as_keys": {
          "__compat": {
            "description": "Non-registered symbols as keys",
            "tags": [
              "web-features:snapshot:ecmascript-2023",
              "web-features:weakmap"
            ],
            "support": {
              "bun": {
                "version_added": "1.0.0"
              },
              "chrome": {
                "version_added": "109"
              },
              "chrome_android": "mirror",
              "deno": {
                "version_added": "1.28"
              },
              "edge": "mirror",
              "firefox": {
                "version_added": "146"
              },
              "firefox_android": "mirror",
              "nodejs": {
                "version_added": "20.1.0"
              },
              "oculus": "mirror",
              "opera": "mirror",
              "opera_android": "mirror",
              "safari": {
                "version_added": "16.4"
              },
              "safari_ios": "mirror",
              "samsunginternet_android": "mirror",
              "webview_android": "mirror",
              "webview_ios": "mirror"
            },
            "status": {
              "experimental": false,
              "standard_track": true,
              "deprecated": false
            }
          }
        }
      }
    }
  }
}
