From 240bb2008a6b3fb2061d9a961da3b795f49f39b9 Mon Sep 17 00:00:00 2001 From: Pete LePage Date: Thu, 8 Aug 2024 12:50:49 -0400 Subject: [PATCH 1/3] Add WeakMap and WeakSet --- features/weakmap.yml | 15 +++++++++ features/weakmap.yml.dist | 69 +++++++++++++++++++++++++++++++++++++++ features/weakset.yml | 14 ++++++++ features/weakset.yml.dist | 68 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 166 insertions(+) create mode 100644 features/weakmap.yml create mode 100644 features/weakmap.yml.dist create mode 100644 features/weakset.yml create mode 100644 features/weakset.yml.dist diff --git a/features/weakmap.yml b/features/weakmap.yml new file mode 100644 index 00000000000..10e724e804d --- /dev/null +++ b/features/weakmap.yml @@ -0,0 +1,15 @@ +name: WeakMap +description: Map objects hold key-value pairs and does not create strong references to its keys. +spec: https://tc39.es/ecma262/multipage/keyed-collections.html#sec-weakmap-objects +status: + compute_from: javascript.builtins.WeakMap +compat_features: + - javascript.builtins.WeakMap + - javascript.builtins.WeakMap.WeakMap + - javascript.builtins.WeakMap.WeakMap.iterable_allowed + - javascript.builtins.WeakMap.WeakMap.null_allowed + - javascript.builtins.WeakMap.delete + - javascript.builtins.WeakMap.get + - javascript.builtins.WeakMap.has + - javascript.builtins.WeakMap.set + - javascript.builtins.WeakMap.symbol_as_keys diff --git a/features/weakmap.yml.dist b/features/weakmap.yml.dist new file mode 100644 index 00000000000..18cd5e7539b --- /dev/null +++ b/features/weakmap.yml.dist @@ -0,0 +1,69 @@ +# Generated from: weakmap.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2015-07-29 + baseline_high_date: 2018-01-29 + support: + chrome: "36" + chrome_android: "36" + edge: "12" + firefox: "6" + firefox_android: "6" + safari: "8" + safari_ios: "8" +compat_features: + # ⬇️ Same status as overall feature ⬇️ + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "36" + # chrome_android: "36" + # edge: "12" + # firefox: "6" + # firefox_android: "6" + # safari: "8" + # safari_ios: "8" + - javascript.builtins.WeakMap + - javascript.builtins.WeakMap.WeakMap + - javascript.builtins.WeakMap.delete + - javascript.builtins.WeakMap.get + - javascript.builtins.WeakMap.has + - javascript.builtins.WeakMap.set + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "36" + # chrome_android: "36" + # edge: "12" + # firefox: "37" + # firefox_android: "37" + # safari: "8" + # safari_ios: "8" + - javascript.builtins.WeakMap.WeakMap.null_allowed + + # baseline: high + # baseline_low_date: 2015-09-30 + # baseline_high_date: 2018-03-30 + # support: + # chrome: "38" + # chrome_android: "38" + # edge: "12" + # firefox: "36" + # firefox_android: "36" + # safari: "9" + # safari_ios: "9" + - javascript.builtins.WeakMap.WeakMap.iterable_allowed + + # baseline: false + # support: + # chrome: "109" + # chrome_android: "109" + # edge: "109" + # safari: "16.4" + # safari_ios: "16.4" + - javascript.builtins.WeakMap.symbol_as_keys diff --git a/features/weakset.yml b/features/weakset.yml new file mode 100644 index 00000000000..4260e5ba586 --- /dev/null +++ b/features/weakset.yml @@ -0,0 +1,14 @@ +name: WeakSet +description: Set objects store unique values of any type and does not create strong references to its keys. +spec: https://tc39.es/ecma262/multipage/keyed-collections.html#sec-weakset-objects +status: + compute_from: javascript.builtins.WeakSet +compat_features: + - javascript.builtins.WeakSet + - javascript.builtins.WeakSet.WeakSet + - javascript.builtins.WeakSet.WeakSet.iterable_allowed + - javascript.builtins.WeakSet.WeakSet.null_allowed + - javascript.builtins.WeakSet.add + - javascript.builtins.WeakSet.delete + - javascript.builtins.WeakSet.has + - javascript.builtins.WeakSet.symbol_as_keys diff --git a/features/weakset.yml.dist b/features/weakset.yml.dist new file mode 100644 index 00000000000..1d3bee604af --- /dev/null +++ b/features/weakset.yml.dist @@ -0,0 +1,68 @@ +# Generated from: weakset.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2015-09-30 + baseline_high_date: 2018-03-30 + support: + chrome: "36" + chrome_android: "36" + edge: "12" + firefox: "34" + firefox_android: "34" + safari: "9" + safari_ios: "9" +compat_features: + # ⬇️ Same status as overall feature ⬇️ + # baseline: high + # baseline_low_date: 2015-09-30 + # baseline_high_date: 2018-03-30 + # support: + # chrome: "36" + # chrome_android: "36" + # edge: "12" + # firefox: "34" + # firefox_android: "34" + # safari: "9" + # safari_ios: "9" + - javascript.builtins.WeakSet + - javascript.builtins.WeakSet.WeakSet + - javascript.builtins.WeakSet.add + - javascript.builtins.WeakSet.delete + - javascript.builtins.WeakSet.has + + # baseline: high + # baseline_low_date: 2015-09-30 + # baseline_high_date: 2018-03-30 + # support: + # chrome: "36" + # chrome_android: "36" + # edge: "12" + # firefox: "37" + # firefox_android: "37" + # safari: "9" + # safari_ios: "9" + - javascript.builtins.WeakSet.WeakSet.null_allowed + + # baseline: high + # baseline_low_date: 2015-09-30 + # baseline_high_date: 2018-03-30 + # support: + # chrome: "38" + # chrome_android: "38" + # edge: "12" + # firefox: "34" + # firefox_android: "34" + # safari: "9" + # safari_ios: "9" + - javascript.builtins.WeakSet.WeakSet.iterable_allowed + + # baseline: false + # support: + # chrome: "109" + # chrome_android: "109" + # edge: "109" + # safari: "16.4" + # safari_ios: "16.4" + - javascript.builtins.WeakSet.symbol_as_keys From a4ee1f0a1cf40f0daaa4b8ba6ced0b58e6719cf7 Mon Sep 17 00:00:00 2001 From: Pete LePage Date: Mon, 19 Aug 2024 09:55:03 -0400 Subject: [PATCH 2/3] Apply suggestions from code review Co-authored-by: Daniel D. Beck --- features/weakmap.yml | 2 +- features/weakset.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/features/weakmap.yml b/features/weakmap.yml index 10e724e804d..448328c8058 100644 --- a/features/weakmap.yml +++ b/features/weakmap.yml @@ -1,5 +1,5 @@ name: WeakMap -description: Map objects hold key-value pairs and does not create strong references to its keys. +description: A `WeakMap` object holds key-value pairs that do not create strong references to its keys, such that value data can be associated with a key without preventing garbage collection of the key. spec: https://tc39.es/ecma262/multipage/keyed-collections.html#sec-weakmap-objects status: compute_from: javascript.builtins.WeakMap diff --git a/features/weakset.yml b/features/weakset.yml index 4260e5ba586..62ff817fc9b 100644 --- a/features/weakset.yml +++ b/features/weakset.yml @@ -1,5 +1,5 @@ name: WeakSet -description: Set objects store unique values of any type and does not create strong references to its keys. +description: 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. spec: https://tc39.es/ecma262/multipage/keyed-collections.html#sec-weakset-objects status: compute_from: javascript.builtins.WeakSet From 092fb1b8489c49906957214db867d2c1b95d0858 Mon Sep 17 00:00:00 2001 From: Pete LePage Date: Mon, 19 Aug 2024 11:20:56 -0400 Subject: [PATCH 3/3] add `group: collections` --- features/weakmap.yml | 1 + features/weakset.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/features/weakmap.yml b/features/weakmap.yml index 448328c8058..33369549725 100644 --- a/features/weakmap.yml +++ b/features/weakmap.yml @@ -1,6 +1,7 @@ name: WeakMap description: A `WeakMap` object holds key-value pairs that do not create strong references to its keys, such that value data can be associated with a key without preventing garbage collection of the key. spec: https://tc39.es/ecma262/multipage/keyed-collections.html#sec-weakmap-objects +group: collections status: compute_from: javascript.builtins.WeakMap compat_features: diff --git a/features/weakset.yml b/features/weakset.yml index 62ff817fc9b..0b4b29c68ae 100644 --- a/features/weakset.yml +++ b/features/weakset.yml @@ -1,6 +1,7 @@ name: WeakSet description: 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. spec: https://tc39.es/ecma262/multipage/keyed-collections.html#sec-weakset-objects +group: collections status: compute_from: javascript.builtins.WeakSet compat_features: