Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions features/functions.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Functions
description: "Functions are series of statements that can be called and return a value. The `function` keyword (as in `function () { }`) and arrow (`=>`) expression create functions. The JavaScript functions protocol includes default and rest parameters and binding to `this`."
spec:
- https://tc39.es/ecma262/multipage/ecmascript-language-functions-and-classes.html#sec-ecmascript-language-functions-and-classes
- https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-function-objects
group: javascript
status:
compute_from: javascript.functions
compat_features:
- javascript.builtins.Function
- javascript.builtins.Function.Function
- javascript.builtins.Function.apply
- javascript.builtins.Function.apply.generic_arrays_as_arguments
- javascript.builtins.Function.bind
- javascript.builtins.Function.call
- javascript.builtins.Function.length
- javascript.builtins.Function.toString
- javascript.builtins.Function.length.configurable_true
- javascript.builtins.Function.name
- javascript.builtins.Function.name.configurable_true
- javascript.builtins.Function.name.inferred_names
- javascript.builtins.Function.@@hasInstance
- javascript.functions
- javascript.functions.arguments
- javascript.functions.arguments.length
- javascript.functions.arguments.@@iterator
- javascript.functions.arrow_functions
- javascript.functions.arrow_functions.trailing_comma
- javascript.functions.block_level_functions
- javascript.functions.default_parameters
- javascript.functions.default_parameters.destructured_parameter_with_default_value_assignment
- javascript.functions.default_parameters.parameters_without_defaults_after_default_parameters
- javascript.functions.get
- javascript.functions.get.computed_property_names
- javascript.functions.method_definitions
- javascript.functions.method_definitions.async_methods
- javascript.functions.method_definitions.generator_methods_not_constructable
- javascript.functions.rest_parameters
- javascript.functions.rest_parameters.destructuring
- javascript.functions.set
- javascript.functions.set.computed_property_names
- javascript.operators.function
- javascript.operators.function.trailing_comma
- javascript.statements.function
- javascript.statements.function.trailing_comma_in_parameters
328 changes: 328 additions & 0 deletions features/functions.yml.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,328 @@
# Generated from: functions.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.Function
- javascript.builtins.Function.Function
- javascript.builtins.Function.apply
- javascript.builtins.Function.call
- javascript.builtins.Function.length
- javascript.builtins.Function.toString
- javascript.functions
- javascript.functions.arguments
- javascript.functions.arguments.length
- javascript.operators.function
- javascript.statements.function

# baseline: high
# baseline_low_date: 2015-07-29
# baseline_high_date: 2018-01-29
# support:
# chrome: "1"
# chrome_android: "18"
# edge: "12"
# firefox: "1.5"
# firefox_android: "4"
# safari: "3"
# safari_ios: "1"
- javascript.functions.get
- javascript.functions.set

# baseline: high
# baseline_low_date: 2015-07-29
# baseline_high_date: 2018-01-29
# support:
# chrome: "7"
# chrome_android: "18"
# edge: "12"
# firefox: "4"
# firefox_android: "4"
# safari: "5.1"
# safari_ios: "6"
- javascript.builtins.Function.bind

# baseline: high
# baseline_low_date: 2015-07-29
# baseline_high_date: 2018-01-29
# support:
# chrome: "17"
# chrome_android: "18"
# edge: "12"
# firefox: "4"
# firefox_android: "4"
# safari: "6"
# safari_ios: "6"
- javascript.builtins.Function.apply.generic_arrays_as_arguments

# baseline: high
# baseline_low_date: 2015-09-30
# baseline_high_date: 2018-03-30
# support:
# chrome: "39"
# chrome_android: "39"
# edge: "12"
# firefox: "34"
# firefox_android: "34"
# safari: "9"
# safari_ios: "9"
- javascript.functions.method_definitions

# baseline: high
# baseline_low_date: 2016-03-21
# baseline_high_date: 2018-09-21
# support:
# chrome: "42"
# chrome_android: "42"
# edge: "13"
# firefox: "43"
# firefox_android: "43"
# safari: "9.1"
# safari_ios: "9.3"
- javascript.functions.method_definitions.generator_methods_not_constructable

# baseline: high
# baseline_low_date: 2016-03-21
# baseline_high_date: 2018-09-21
# support:
# chrome: "46"
# chrome_android: "46"
# edge: "12"
# firefox: "34"
# firefox_android: "34"
# safari: "9.1"
# safari_ios: "9.3"
- javascript.functions.get.computed_property_names
- javascript.functions.set.computed_property_names

# baseline: high
# baseline_low_date: 2016-07-27
# baseline_high_date: 2019-01-27
# support:
# chrome: "52"
# chrome_android: "52"
# edge: "12"
# firefox: "46"
# firefox_android: "46"
# safari: "9"
# safari_ios: "9"
- javascript.functions.arguments.@@iterator

# baseline: high
# baseline_low_date: 2016-08-02
# baseline_high_date: 2019-02-02
# support:
# chrome: "15"
# chrome_android: "18"
# edge: "14"
# firefox: "1"
# firefox_android: "4"
# safari: "6"
# safari_ios: "6"
- javascript.builtins.Function.name

# baseline: high
# baseline_low_date: 2016-09-20
# baseline_high_date: 2019-03-20
# support:
# chrome: "43"
# chrome_android: "43"
# edge: "12"
# firefox: "37"
# firefox_android: "37"
# safari: "10"
# safari_ios: "10"
- javascript.builtins.Function.length.configurable_true

# baseline: high
# baseline_low_date: 2016-09-20
# baseline_high_date: 2019-03-20
# support:
# chrome: "43"
# chrome_android: "43"
# edge: "14"
# firefox: "38"
# firefox_android: "38"
# safari: "10"
# safari_ios: "10"
- javascript.builtins.Function.name.configurable_true

# baseline: high
# baseline_low_date: 2016-09-20
# baseline_high_date: 2019-03-20
# support:
# chrome: "45"
# chrome_android: "45"
# edge: "12"
# firefox: "22"
# firefox_android: "22"
# safari: "10"
# safari_ios: "10"
- javascript.functions.arrow_functions

# baseline: high
# baseline_low_date: 2016-09-20
# baseline_high_date: 2019-03-20
# support:
# chrome: "47"
# chrome_android: "47"
# edge: "12"
# firefox: "15"
# firefox_android: "15"
# safari: "10"
# safari_ios: "10"
- javascript.functions.rest_parameters

# baseline: high
# baseline_low_date: 2016-09-20
# baseline_high_date: 2019-03-20
# support:
# chrome: "49"
# chrome_android: "49"
# edge: "12"
# firefox: "46"
# firefox_android: "46"
# safari: "10"
# safari_ios: "10"
- javascript.functions.block_level_functions

# baseline: high
# baseline_low_date: 2016-09-20
# baseline_high_date: 2019-03-20
# support:
# chrome: "49"
# chrome_android: "49"
# edge: "14"
# firefox: "15"
# firefox_android: "15"
# safari: "10"
# safari_ios: "10"
- javascript.functions.default_parameters

# baseline: high
# baseline_low_date: 2016-09-20
# baseline_high_date: 2019-03-20
# support:
# chrome: "49"
# chrome_android: "49"
# edge: "14"
# firefox: "26"
# firefox_android: "26"
# safari: "10"
# safari_ios: "10"
- javascript.functions.default_parameters.parameters_without_defaults_after_default_parameters

# baseline: high
# baseline_low_date: 2016-09-20
# baseline_high_date: 2019-03-20
# support:
# chrome: "49"
# chrome_android: "49"
# edge: "14"
# firefox: "41"
# firefox_android: "41"
# safari: "10"
# safari_ios: "10"
- javascript.functions.default_parameters.destructured_parameter_with_default_value_assignment

# baseline: high
# baseline_low_date: 2017-04-05
# baseline_high_date: 2019-10-05
# support:
# chrome: "50"
# chrome_android: "50"
# edge: "15"
# firefox: "50"
# firefox_android: "50"
# safari: "10"
# safari_ios: "10"
- javascript.builtins.Function.@@hasInstance

# baseline: high
# baseline_low_date: 2017-04-05
# baseline_high_date: 2019-10-05
# support:
# chrome: "55"
# chrome_android: "55"
# edge: "15"
# firefox: "52"
# firefox_android: "52"
# safari: "10.1"
# safari_ios: "10.3"
- javascript.functions.method_definitions.async_methods

# baseline: high
# baseline_low_date: 2017-04-25
# baseline_high_date: 2019-10-25
# support:
# chrome: "58"
# chrome_android: "58"
# edge: "12"
# firefox: "52"
# firefox_android: "52"
# safari: "10"
# safari_ios: "10"
- javascript.functions.arrow_functions.trailing_comma

# baseline: high
# baseline_low_date: 2017-04-25
# baseline_high_date: 2019-10-25
# support:
# chrome: "58"
# chrome_android: "58"
# edge: "14"
# firefox: "52"
# firefox_android: "52"
# safari: "10"
# safari_ios: "10"
- javascript.operators.function.trailing_comma
- javascript.statements.function.trailing_comma_in_parameters

# baseline: high
# baseline_low_date: 2020-01-15
# baseline_high_date: 2022-07-15
# support:
# chrome: "49"
# chrome_android: "49"
# edge: "79"
# firefox: "52"
# firefox_android: "52"
# safari: "10"
# safari_ios: "10"
- javascript.functions.rest_parameters.destructuring

# baseline: high
# baseline_low_date: 2020-01-15
# baseline_high_date: 2022-07-15
# support:
# chrome: "51"
# chrome_android: "51"
# edge: "79"
# firefox: "53"
# firefox_android: "53"
# safari: "10"
# safari_ios: "10"
- javascript.builtins.Function.name.inferred_names