diff --git a/features/regexp.yml b/features/regexp.yml new file mode 100644 index 00000000000..36e69da1708 --- /dev/null +++ b/features/regexp.yml @@ -0,0 +1,58 @@ +name: Regular expressions +description: The `RegExp` object represents a regular expression, a notation for matching text patterns. +spec: https://tc39.es/ecma262/multipage/text-processing.html#sec-regexp-regular-expression-objects +status: + compute_from: javascript.builtins.RegExp +compat_features: + - javascript.builtins.RegExp + - javascript.builtins.RegExp.@@match + - javascript.builtins.RegExp.@@matchAll + - javascript.builtins.RegExp.@@replace + - javascript.builtins.RegExp.@@search + - javascript.builtins.RegExp.@@species + - javascript.builtins.RegExp.@@split + - javascript.builtins.RegExp.dotAll + - javascript.builtins.RegExp.exec + - javascript.builtins.RegExp.flags + - javascript.builtins.RegExp.global + - javascript.builtins.RegExp.global.prototype_accessor + - javascript.builtins.RegExp.hasIndices + - javascript.builtins.RegExp.ignoreCase + - javascript.builtins.RegExp.ignoreCase.prototype_accessor + - javascript.builtins.RegExp.lastIndex + - javascript.builtins.RegExp.multiline + - javascript.builtins.RegExp.multiline.prototype_accessor + - javascript.builtins.RegExp.RegExp + - javascript.builtins.RegExp.source + - javascript.builtins.RegExp.source.empty_regex_string + - javascript.builtins.RegExp.source.escaping + - javascript.builtins.RegExp.source.prototype_accessor + - javascript.builtins.RegExp.sticky + - javascript.builtins.RegExp.sticky.anchored_sticky_flag + - javascript.builtins.RegExp.sticky.prototype_accessor + - javascript.builtins.RegExp.test + - javascript.builtins.RegExp.toString + - javascript.builtins.RegExp.toString.escaping + - javascript.builtins.RegExp.unicode + - javascript.builtins.RegExp.unicodeSets + - javascript.grammar.regular_expression_literals + - javascript.regular_expressions.backreference + - javascript.regular_expressions.capturing_group + - javascript.regular_expressions.character_class + - javascript.regular_expressions.character_class_escape + - javascript.regular_expressions.character_escape + - javascript.regular_expressions.character_escape.unicode + - javascript.regular_expressions.disjunction + - javascript.regular_expressions.input_boundary_assertion + - javascript.regular_expressions.literal_character + - javascript.regular_expressions.lookahead_assertion + - javascript.regular_expressions.lookbehind_assertion + - javascript.regular_expressions.modifier + - javascript.regular_expressions.named_backreference + - javascript.regular_expressions.named_capturing_group + - javascript.regular_expressions.named_capturing_group.duplicate_named_capturing_groups + - javascript.regular_expressions.non_capturing_group + - javascript.regular_expressions.quantifier + - javascript.regular_expressions.unicode_character_class_escape + - javascript.regular_expressions.wildcard + - javascript.regular_expressions.word_boundary_assertion diff --git a/features/regexp.yml.dist b/features/regexp.yml.dist new file mode 100644 index 00000000000..843e8507a47 --- /dev/null +++ b/features/regexp.yml.dist @@ -0,0 +1,308 @@ +# Generated from: regexp.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.RegExp + - javascript.builtins.RegExp.RegExp + - javascript.builtins.RegExp.exec + - javascript.builtins.RegExp.global + - javascript.builtins.RegExp.ignoreCase + - javascript.builtins.RegExp.lastIndex + - javascript.builtins.RegExp.multiline + - javascript.builtins.RegExp.source + - javascript.builtins.RegExp.test + - javascript.builtins.RegExp.toString + - javascript.grammar.regular_expression_literals + - javascript.regular_expressions.backreference + - javascript.regular_expressions.capturing_group + - javascript.regular_expressions.character_class + - javascript.regular_expressions.character_class_escape + - javascript.regular_expressions.character_escape + - javascript.regular_expressions.disjunction + - javascript.regular_expressions.input_boundary_assertion + - javascript.regular_expressions.literal_character + - javascript.regular_expressions.lookahead_assertion + - javascript.regular_expressions.non_capturing_group + - javascript.regular_expressions.quantifier + - javascript.regular_expressions.wildcard + - javascript.regular_expressions.word_boundary_assertion + + # baseline: high + # baseline_low_date: 2015-07-29 + # baseline_high_date: 2018-01-29 + # support: + # chrome: "6" + # chrome_android: "18" + # edge: "12" + # firefox: "38" + # firefox_android: "38" + # safari: "5" + # safari_ios: "4.2" + - javascript.builtins.RegExp.source.empty_regex_string + + # baseline: high + # baseline_low_date: 2016-01-26 + # baseline_high_date: 2018-07-26 + # support: + # chrome: "48" + # chrome_android: "48" + # edge: "12" + # firefox: "38" + # firefox_android: "38" + # safari: "1.3" + # safari_ios: "1" + - javascript.builtins.RegExp.global.prototype_accessor + - javascript.builtins.RegExp.ignoreCase.prototype_accessor + - javascript.builtins.RegExp.multiline.prototype_accessor + + # baseline: high + # baseline_low_date: 2016-01-26 + # baseline_high_date: 2018-07-26 + # support: + # chrome: "48" + # chrome_android: "48" + # edge: "12" + # firefox: "41" + # firefox_android: "41" + # safari: "1.3" + # safari_ios: "1" + - javascript.builtins.RegExp.source.prototype_accessor + + # baseline: high + # baseline_low_date: 2016-09-20 + # baseline_high_date: 2019-03-20 + # support: + # chrome: "49" + # chrome_android: "49" + # edge: "13" + # firefox: "3" + # firefox_android: "4" + # safari: "10" + # safari_ios: "10" + - javascript.builtins.RegExp.sticky + + # baseline: high + # baseline_low_date: 2016-09-20 + # baseline_high_date: 2019-03-20 + # support: + # chrome: "49" + # chrome_android: "49" + # edge: "13" + # firefox: "38" + # firefox_android: "38" + # safari: "10" + # safari_ios: "10" + - javascript.builtins.RegExp.sticky.prototype_accessor + + # baseline: high + # baseline_low_date: 2016-09-20 + # baseline_high_date: 2019-03-20 + # support: + # chrome: "49" + # chrome_android: "49" + # edge: "13" + # firefox: "44" + # firefox_android: "44" + # safari: "10" + # safari_ios: "10" + - javascript.builtins.RegExp.sticky.anchored_sticky_flag + + # baseline: high + # baseline_low_date: 2016-09-20 + # baseline_high_date: 2019-03-20 + # support: + # chrome: "50" + # chrome_android: "50" + # edge: "12" + # firefox: "46" + # firefox_android: "46" + # safari: "10" + # safari_ios: "10" + - javascript.builtins.RegExp.unicode + - javascript.regular_expressions.character_escape.unicode + + # baseline: high + # baseline_low_date: 2016-09-20 + # baseline_high_date: 2019-03-20 + # support: + # chrome: "50" + # chrome_android: "50" + # edge: "13" + # firefox: "49" + # firefox_android: "49" + # safari: "10" + # safari_ios: "10" + - javascript.builtins.RegExp.@@match + - javascript.builtins.RegExp.@@search + + # baseline: high + # baseline_low_date: 2016-09-20 + # baseline_high_date: 2019-03-20 + # support: + # chrome: "51" + # chrome_android: "51" + # edge: "13" + # firefox: "49" + # firefox_android: "49" + # safari: "10" + # safari_ios: "10" + - javascript.builtins.RegExp.@@species + + # baseline: high + # baseline_low_date: 2019-03-12 + # baseline_high_date: 2021-09-12 + # support: + # chrome: "73" + # chrome_android: "73" + # edge: "12" + # firefox: "38" + # firefox_android: "38" + # safari: "6" + # safari_ios: "6" + - javascript.builtins.RegExp.source.escaping + - javascript.builtins.RegExp.toString.escaping + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "49" + # chrome_android: "49" + # edge: "79" + # firefox: "37" + # firefox_android: "37" + # safari: "9" + # safari_ios: "9" + - javascript.builtins.RegExp.flags + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "50" + # chrome_android: "50" + # edge: "79" + # firefox: "49" + # firefox_android: "49" + # safari: "10" + # safari_ios: "10" + - javascript.builtins.RegExp.@@replace + - javascript.builtins.RegExp.@@split + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "73" + # chrome_android: "73" + # edge: "79" + # firefox: "67" + # firefox_android: "67" + # safari: "13" + # safari_ios: "13" + - javascript.builtins.RegExp.@@matchAll + + # baseline: high + # baseline_low_date: 2020-07-28 + # baseline_high_date: 2023-01-28 + # support: + # chrome: "62" + # chrome_android: "62" + # edge: "79" + # firefox: "78" + # firefox_android: "79" + # safari: "11.1" + # safari_ios: "11.3" + - javascript.builtins.RegExp.dotAll + + # baseline: high + # baseline_low_date: 2020-07-28 + # baseline_high_date: 2023-01-28 + # support: + # chrome: "64" + # chrome_android: "64" + # edge: "79" + # firefox: "78" + # firefox_android: "79" + # safari: "11.1" + # safari_ios: "11.3" + - javascript.regular_expressions.named_backreference + - javascript.regular_expressions.named_capturing_group + - javascript.regular_expressions.unicode_character_class_escape + + # baseline: high + # baseline_low_date: 2021-09-20 + # baseline_high_date: 2024-03-20 + # support: + # chrome: "90" + # chrome_android: "90" + # edge: "90" + # firefox: "88" + # firefox_android: "88" + # safari: "15" + # safari_ios: "15" + - javascript.builtins.RegExp.hasIndices + + # baseline: low + # baseline_low_date: 2023-03-27 + # support: + # chrome: "62" + # chrome_android: "62" + # edge: "79" + # firefox: "78" + # firefox_android: "79" + # safari: "16.4" + # safari_ios: "16.4" + - javascript.regular_expressions.lookbehind_assertion + + # baseline: low + # baseline_low_date: 2023-09-18 + # support: + # chrome: "112" + # chrome_android: "112" + # edge: "112" + # firefox: "116" + # firefox_android: "116" + # safari: "17" + # safari_ios: "17" + - javascript.builtins.RegExp.unicodeSets + + # baseline: false + # support: + # chrome: "125" + # chrome_android: "125" + # edge: "125" + # safari: "17" + # safari_ios: "17" + - javascript.regular_expressions.named_capturing_group.duplicate_named_capturing_groups + + # baseline: false + # support: + # chrome: "125" + # chrome_android: "125" + # edge: "125" + - javascript.regular_expressions.modifier