Skip to content

Commit

Permalink
Add a JavaScript object feature (#2269)
Browse files Browse the repository at this point in the history
* Add a JavaScript object feature

* rename to object-object
  • Loading branch information
Elchi3 authored Nov 19, 2024
1 parent 61ae923 commit 7ad2346
Show file tree
Hide file tree
Showing 2 changed files with 350 additions and 0 deletions.
44 changes: 44 additions & 0 deletions features/object-object.yml
Original file line number Diff line number Diff line change
@@ -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
306 changes: 306 additions & 0 deletions features/object-object.yml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,306 @@
# Generated from: object-object.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

0 comments on commit 7ad2346

Please sign in to comment.