From fa88d82778834843bd05fe0148e954a8ff047161 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Mon, 18 Nov 2024 16:50:44 +0100 Subject: [PATCH 1/2] Add a JavaScript object feature --- features/object-js.yml | 44 ++++++ features/object-js.yml.dist | 306 ++++++++++++++++++++++++++++++++++++ 2 files changed, 350 insertions(+) create mode 100644 features/object-js.yml create mode 100644 features/object-js.yml.dist diff --git a/features/object-js.yml b/features/object-js.yml new file mode 100644 index 00000000000..120c5e5d807 --- /dev/null +++ b/features/object-js.yml @@ -0,0 +1,44 @@ +name: Object +description: Objects in JavaScript are collections of key-value pairs. +spec: https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object-objects +status: + compute_from: javascript.builtins.Object +compat_features: + - javascript.builtins.Object + - javascript.builtins.Object.Object + - javascript.builtins.Object.assign + - javascript.builtins.Object.constructor + - javascript.builtins.Object.create + - javascript.builtins.Object.defineProperties + - javascript.builtins.Object.defineProperty + - javascript.builtins.Object.entries + - javascript.builtins.Object.freeze + - javascript.builtins.Object.fromEntries + - javascript.builtins.Object.getOwnPropertyDescriptor + - javascript.builtins.Object.getOwnPropertyDescriptors + - javascript.builtins.Object.getOwnPropertyNames + - javascript.builtins.Object.getOwnPropertySymbols + - javascript.builtins.Object.getPrototypeOf + - javascript.builtins.Object.hasOwn + - javascript.builtins.Object.hasOwnProperty + - javascript.builtins.Object.is + - javascript.builtins.Object.isExtensible + - javascript.builtins.Object.isFrozen + - javascript.builtins.Object.isPrototypeOf + - javascript.builtins.Object.isSealed + - javascript.builtins.Object.keys + - javascript.builtins.Object.preventExtensions + - javascript.builtins.Object.preventExtensions.ES2015_behavior + - javascript.builtins.Object.propertyIsEnumerable + - javascript.builtins.Object.seal + - javascript.builtins.Object.setPrototypeOf + - javascript.builtins.Object.toString + - javascript.builtins.Object.valueOf + - javascript.builtins.Object.values + - javascript.operators.object_initializer + - javascript.operators.object_initializer.computed_property_names + - javascript.operators.object_initializer.shorthand_method_names + - javascript.operators.object_initializer.shorthand_property_names + - javascript.operators.object_initializer.spread_properties + - javascript.operators.optional_chaining + - javascript.grammar.shorthand_object_literals diff --git a/features/object-js.yml.dist b/features/object-js.yml.dist new file mode 100644 index 00000000000..a50f072fca3 --- /dev/null +++ b/features/object-js.yml.dist @@ -0,0 +1,306 @@ +# Generated from: object-js.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: "1" + chrome_android: "18" + edge: "12" + firefox: "1" + firefox_android: "4" + safari: "1" + safari_ios: "1" +compat_features: + # ⬇️ Same status as overall feature ⬇️ + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "1" + # firefox_android: "4" + # safari: "1" + # safari_ios: "1" + - javascript.builtins.Object + - javascript.builtins.Object.Object + - javascript.builtins.Object.constructor + - javascript.builtins.Object.toString + - javascript.builtins.Object.valueOf + - javascript.operators.object_initializer + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "1" + # chrome_android: "18" + # edge: "12" + # firefox: "1" + # firefox_android: "4" + # safari: "3" + # safari_ios: "1" + - javascript.builtins.Object.hasOwnProperty + - javascript.builtins.Object.isPrototypeOf + - javascript.builtins.Object.propertyIsEnumerable + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "5" + # chrome_android: "18" + # edge: "12" + # firefox: "3.5" + # firefox_android: "4" + # safari: "5" + # safari_ios: "5" + - javascript.builtins.Object.getPrototypeOf + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "5" + # chrome_android: "18" + # edge: "12" + # firefox: "4" + # firefox_android: "4" + # safari: "5" + # safari_ios: "5" + - javascript.builtins.Object.create + - javascript.builtins.Object.defineProperties + - javascript.builtins.Object.getOwnPropertyDescriptor + - javascript.builtins.Object.getOwnPropertyNames + - javascript.builtins.Object.keys + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "5" + # chrome_android: "18" + # edge: "12" + # firefox: "4" + # firefox_android: "4" + # safari: "5.1" + # safari_ios: "6" + - javascript.builtins.Object.defineProperty + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "6" + # chrome_android: "18" + # edge: "12" + # firefox: "4" + # firefox_android: "4" + # safari: "5.1" + # safari_ios: "5" + - javascript.builtins.Object.freeze + - javascript.builtins.Object.isExtensible + - javascript.builtins.Object.isFrozen + - javascript.builtins.Object.isSealed + - javascript.builtins.Object.preventExtensions + - javascript.builtins.Object.seal + + # baseline: high + # baseline_low_date: 2015-09-30 + # baseline_high_date: 2018-03-30 + # support: + # chrome: "19" + # chrome_android: "25" + # edge: "12" + # firefox: "22" + # firefox_android: "22" + # safari: "9" + # safari_ios: "9" + - javascript.builtins.Object.is + + # baseline: high + # baseline_low_date: 2015-09-30 + # baseline_high_date: 2018-03-30 + # support: + # chrome: "34" + # chrome_android: "34" + # edge: "12" + # firefox: "31" + # firefox_android: "31" + # safari: "9" + # safari_ios: "9" + - javascript.builtins.Object.setPrototypeOf + + # 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.Object.getOwnPropertySymbols + + # baseline: high + # baseline_low_date: 2015-09-30 + # baseline_high_date: 2018-03-30 + # support: + # chrome: "43" + # chrome_android: "43" + # edge: "12" + # firefox: "33" + # firefox_android: "33" + # safari: "9" + # safari_ios: "9" + - javascript.grammar.shorthand_object_literals + + # baseline: high + # baseline_low_date: 2015-09-30 + # baseline_high_date: 2018-03-30 + # support: + # chrome: "44" + # chrome_android: "44" + # edge: "12" + # firefox: "35" + # firefox_android: "35" + # safari: "9" + # safari_ios: "9" + - javascript.builtins.Object.preventExtensions.ES2015_behavior + + # baseline: high + # baseline_low_date: 2015-09-30 + # baseline_high_date: 2018-03-30 + # support: + # chrome: "45" + # chrome_android: "45" + # edge: "12" + # firefox: "34" + # firefox_android: "34" + # safari: "9" + # safari_ios: "9" + - javascript.builtins.Object.assign + + # baseline: high + # baseline_low_date: 2015-12-02 + # baseline_high_date: 2018-06-02 + # support: + # chrome: "47" + # chrome_android: "47" + # edge: "12" + # firefox: "33" + # firefox_android: "33" + # safari: "9" + # safari_ios: "9" + - javascript.operators.object_initializer.shorthand_property_names + + # baseline: high + # baseline_low_date: 2015-12-02 + # baseline_high_date: 2018-06-02 + # support: + # chrome: "47" + # chrome_android: "47" + # edge: "12" + # firefox: "34" + # firefox_android: "34" + # safari: "8" + # safari_ios: "8" + - javascript.operators.object_initializer.computed_property_names + + # baseline: high + # baseline_low_date: 2015-12-02 + # baseline_high_date: 2018-06-02 + # support: + # chrome: "47" + # chrome_android: "47" + # edge: "12" + # firefox: "34" + # firefox_android: "34" + # safari: "9" + # safari_ios: "9" + - javascript.operators.object_initializer.shorthand_method_names + + # baseline: high + # baseline_low_date: 2017-03-27 + # baseline_high_date: 2019-09-27 + # support: + # chrome: "54" + # chrome_android: "54" + # edge: "14" + # firefox: "47" + # firefox_android: "47" + # safari: "10.1" + # safari_ios: "10.3" + - javascript.builtins.Object.entries + - javascript.builtins.Object.values + + # baseline: high + # baseline_low_date: 2017-04-05 + # baseline_high_date: 2019-10-05 + # support: + # chrome: "54" + # chrome_android: "54" + # edge: "15" + # firefox: "50" + # firefox_android: "50" + # safari: "10" + # safari_ios: "10" + - javascript.builtins.Object.getOwnPropertyDescriptors + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "60" + # chrome_android: "60" + # edge: "79" + # firefox: "55" + # firefox_android: "55" + # safari: "11.1" + # safari_ios: "11.3" + - javascript.operators.object_initializer.spread_properties + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "73" + # chrome_android: "73" + # edge: "79" + # firefox: "63" + # firefox_android: "63" + # safari: "12.1" + # safari_ios: "12.2" + - javascript.builtins.Object.fromEntries + + # baseline: high + # baseline_low_date: 2020-07-28 + # baseline_high_date: 2023-01-28 + # support: + # chrome: "80" + # chrome_android: "80" + # edge: "80" + # firefox: "74" + # firefox_android: "79" + # safari: "13.1" + # safari_ios: "13.4" + - javascript.operators.optional_chaining + + # baseline: high + # baseline_low_date: 2022-03-14 + # baseline_high_date: 2024-09-14 + # support: + # chrome: "93" + # chrome_android: "93" + # edge: "93" + # firefox: "92" + # firefox_android: "92" + # safari: "15.4" + # safari_ios: "15.4" + - javascript.builtins.Object.hasOwn From f79fd04f2c02edba0a3065b52faea9bf838cb996 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Tue, 19 Nov 2024 11:53:13 +0100 Subject: [PATCH 2/2] rename to object-object --- features/{object-js.yml => object-object.yml} | 0 features/{object-js.yml.dist => object-object.yml.dist} | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename features/{object-js.yml => object-object.yml} (100%) rename features/{object-js.yml.dist => object-object.yml.dist} (99%) diff --git a/features/object-js.yml b/features/object-object.yml similarity index 100% rename from features/object-js.yml rename to features/object-object.yml diff --git a/features/object-js.yml.dist b/features/object-object.yml.dist similarity index 99% rename from features/object-js.yml.dist rename to features/object-object.yml.dist index a50f072fca3..36d93354c7a 100644 --- a/features/object-js.yml.dist +++ b/features/object-object.yml.dist @@ -1,4 +1,4 @@ -# Generated from: object-js.yml +# Generated from: object-object.yml # Do not edit this file by hand. Edit the source file instead! status: