browser.js |
|
0 |
duplicate-names-exec.js |
---
description: Matching behavior with duplicate named capture groups
esid: prod-GroupSpecifier
features: [regexp-duplicate-named-groups]
includes: [compareArray.js]
--- |
1795 |
duplicate-names-group-property-enumeration-order.js |
---
description: Enumeration order of the groups object with duplicate named capture groups
esid: prod-GroupSpecifier
features: [regexp-duplicate-named-groups]
includes: [compareArray.js]
--- |
859 |
duplicate-names-match-indices.js |
---
description: match indices with duplicate named capture groups
esid: sec-makematchindicesindexpairarray
features: [regexp-duplicate-named-groups, regexp-match-indices]
includes: [compareArray.js]
--- |
679 |
duplicate-names-match.js |
---
description: Matching behavior with duplicate named capture groups
esid: prod-GroupSpecifier
features: [regexp-duplicate-named-groups]
includes: [compareArray.js]
--- |
1814 |
duplicate-names-matchall.js |
---
description: String.prototype.search behavior with duplicate named capture groups
esid: prod-GroupSpecifier
includes: [compareArray.js,compareIterator.js]
features: [regexp-duplicate-named-groups]
--- |
915 |
duplicate-names-replace.js |
---
description: String.prototype.replace behavior with duplicate named capture groups
esid: prod-GroupSpecifier
features: [regexp-duplicate-named-groups]
--- |
879 |
duplicate-names-replaceall.js |
---
description: String.prototype.replaceAll behavior with duplicate named capture groups
esid: prod-GroupSpecifier
features: [regexp-duplicate-named-groups]
--- |
829 |
duplicate-names-search.js |
---
description: String.prototype.search behavior with duplicate named capture groups
esid: prod-GroupSpecifier
features: [regexp-duplicate-named-groups]
--- |
535 |
duplicate-names-split.js |
---
description: String.prototype.search behavior with duplicate named capture groups
esid: prod-GroupSpecifier
includes: [compareArray.js]
features: [regexp-duplicate-named-groups]
--- |
655 |
duplicate-names-test.js |
---
description: Matching behavior with duplicate named capture groups
esid: prod-GroupSpecifier
features: [regexp-duplicate-named-groups]
--- |
776 |
functional-replace-global.js |
---
description: >
Function argument to String.prototype.replace gets groups as the last argument
esid: sec-regexp.prototype-@@replace
features: [regexp-named-groups]
info: |
RegExp.prototype [ @@replace ] ( string, replaceValue )
14. Repeat, for each result in results,
j. Let namedCaptures be ? Get(result, "groups").
k. If functionalReplace is true, then
iv. If namedCaptures is not undefined,
1. Append namedCaptures as the last element of replacerArgs.
--- |
1841 |
functional-replace-non-global.js |
---
description: >
Function argument to String.prototype.replace gets groups as the last argument
esid: sec-regexp.prototype-@@replace
features: [regexp-named-groups]
info: |
RegExp.prototype [ @@replace ] ( string, replaceValue )
14. Repeat, for each result in results,
j. Let namedCaptures be ? Get(result, "groups").
k. If functionalReplace is true, then
iv. If namedCaptures is not undefined,
1. Append namedCaptures as the last element of replacerArgs.
--- |
1473 |
groups-object-subclass-sans.js |
---
description: >
Test the groups object on RegExp subclass results that do not have their own.
esid: sec-regexpbuiltinexec
features: [regexp-named-groups]
info: |
Runtime Semantics: RegExpBuiltinExec ( R, S )
24. If _R_ contains any |GroupName|, then
a. Let _groups_ be ObjectCreate(*null*).
25. Else,
a. Let _groups_ be *undefined*.
26. Perform ! CreateDataProperty(_A_, `"groups"`, _groups_).
--- |
1203 |
groups-object-subclass.js |
---
description: >
Test the groups object on RegExp subclass results that have their own.
esid: sec-regexpbuiltinexec
features: [regexp-named-groups]
info: |
Runtime Semantics: RegExpBuiltinExec ( R, S )
24. If _R_ contains any |GroupName|, then
a. Let _groups_ be ObjectCreate(*null*).
25. Else,
a. Let _groups_ be *undefined*.
26. Perform ! CreateDataProperty(_A_, `"groups"`, _groups_).
--- |
1123 |
groups-object-undefined.js |
---
description: The groups object is created unconditionally.
includes: [propertyHelper.js]
esid: sec-regexpbuiltinexec
features: [regexp-named-groups]
info: |
Runtime Semantics: RegExpBuiltinExec ( R, S )
24. If _R_ contains any |GroupName|, then
a. Let _groups_ be ObjectCreate(*null*).
25. Else,
a. Let _groups_ be *undefined*.
26. Perform ! CreateDataProperty(_A_, `"groups"`, _groups_).
--- |
1074 |
groups-object-unmatched.js |
---
description: >
Test the groups object with matched and unmatched named captures.
esid: sec-regexpbuiltinexec
features: [regexp-named-groups]
info: |
Runtime Semantics: RegExpBuiltinExec ( R, S )
24. If _R_ contains any |GroupName|, then
a. Let _groups_ be ObjectCreate(*null*).
25. Else,
a. Let _groups_ be *undefined*.
26. Perform ! CreateDataProperty(_A_, `"groups"`, _groups_).
--- |
1317 |
groups-object.js |
---
description: Properties of the groups object are created with CreateDataProperty
includes: [propertyHelper.js]
esid: sec-regexpbuiltinexec
features: [regexp-named-groups]
info: |
Runtime Semantics: RegExpBuiltinExec ( R, S )
24. If _R_ contains any |GroupName|, then
a. Let _groups_ be ObjectCreate(*null*).
25. Else,
a. Let _groups_ be *undefined*.
26. Perform ! CreateDataProperty(_A_, `"groups"`, _groups_).
--- |
1265 |
groups-properties.js |
---
description: Properties of the groups object are created with CreateDataProperty
includes: [compareArray.js, propertyHelper.js]
esid: sec-regexpbuiltinexec
features: [regexp-named-groups]
info: |
Runtime Semantics: RegExpBuiltinExec ( R, S )
25. For each integer i such that i > 0 and i ≤ n
f. If the ith capture of R was defined with a GroupName,
i. Let s be the StringValue of the corresponding RegExpIdentifierName.
ii. Perform ! CreateDataProperty(groups, s, capturedValue).
--- |
1255 |
lookbehind.js |
---
description: Named groups can be used in conjunction with lookbehind
esid: prod-GroupSpecifier
features: [regexp-named-groups, regexp-lookbehind]
includes: [compareArray.js]
--- |
2119 |
non-unicode-match.js |
---
description: Basic matching cases with non-Unicode groups
esid: prod-GroupSpecifier
features: [regexp-named-groups]
includes: [compareArray.js]
--- |
2166 |
non-unicode-property-names-invalid.js |
---
author: Michael Saboff
description: Invalid exotic named group names in non-Unicode RegExps
esid: prod-GroupSpecifier
features: [regexp-named-groups]
--- |
1359 |
non-unicode-property-names-valid.js |
---
author: Michael Saboff
description: Exotic named group names in non-Unicode RegExps
esid: prod-GroupSpecifier
features: [regexp-named-groups]
--- |
4241 |
non-unicode-property-names.js |
---
description: Exotic named group names in non-Unicode RegExps
esid: prod-GroupSpecifier
features: [regexp-named-groups]
--- |
970 |
non-unicode-references.js |
---
description: Named backreferences in non-Unicode RegExps
esid: prod-GroupSpecifier
features: [regexp-named-groups]
includes: [compareArray.js]
--- |
1440 |
shell.js |
---
description: Compare the values of an iterator with an array of expected values
defines: [assert.compareIterator]
--- |
1166 |
string-replace-escaped.js |
---
description: Do not replace $<> preceded with $
esid: sec-getsubstitution
features: [regexp-named-groups]
info: |
Runtime Semantics: GetSubstitution( matched, str, position, captures, namedCaptures, replacement )
12. These $ replacements are done left-to-right, and, once such a replacement is performed,
the new replacement text is not subject to further replacements.
Table: Replacement Text Symbol Substitutions
Unicode Characters: $$
Replacement text: $
--- |
795 |
string-replace-get.js |
---
description: Named substitutions are found by getting the property from the groups object
esid: sec-getsubstitution
features: [regexp-named-groups]
info: |
Runtime Semantics: GetSubstitution( matched, str, position, captures, namedCaptures, replacement )
Table: Replacement Text Symbol Substitutions
Unicode Characters: $<
Replacement text:
2. Otherwise,
c. Let capture be ? Get(namedCaptures, groupName).
d. If capture is undefined, replace the text through > with the empty string.
e. Otherwise, replace the text through this following > with ? ToString(capture).
--- |
1085 |
string-replace-missing.js |
---
description: If the group doesn't exist, replace with the empty string
esid: sec-getsubstitution
features: [regexp-named-groups]
--- |
922 |
string-replace-nocaptures.js |
---
description: If there are no named captures, don't replace $<>
esid: sec-getsubstitution
features: [regexp-named-groups]
info: |
Runtime Semantics: GetSubstitution( matched, str, position, captures, namedCaptures, replacement )
Table: Replacement Text Symbol Substitutions
Unicode Characters: $<
Replacement text:
1. If namedCaptures is undefined, the replacement text is the literal string $<.
--- |
1237 |
string-replace-numbered.js |
---
description: Named groups may be accessed in their replacement string by number
esid: sec-getsubstitution
features: [regexp-named-groups]
info: |
Runtime Semantics: GetSubstitution( matched, str, position, captures, namedCaptures, replacement )
Table: Replacement Text Symbol Substitutions
Unicode Characters: $n
Replacement text:
The nth element of captures, where n is a single digit in the range 1 to 9. If
n≤m and the nth element of captures is undefined, use the empty String instead.
If n>m, the result is implementation-defined.
--- |
1032 |
string-replace-unclosed.js |
---
description: >
A missing > following $< means that the $< is taken literally
in a replacement string in the context of named capture substitution.
esid: sec-getsubstitution
features: [regexp-named-groups]
--- |
691 |
string-replace-undefined.js |
---
description: If a named group was not reached, it is replaced by the empty string
esid: sec-getsubstitution
features: [regexp-named-groups]
info: |
Runtime Semantics: GetSubstitution( matched, str, position, captures, namedCaptures, replacement )
Table: Replacement Text Symbol Substitutions
Unicode Characters: $<
Replacement text:
2. Otherwise,
c. Let capture be ? Get(namedCaptures, groupName).
d. If capture is undefined, replace the text through > with the empty string.
--- |
971 |
unicode-match.js |
---
description: Basic matching cases with Unicode groups
esid: prod-GroupSpecifier
features: [regexp-named-groups]
includes: [compareArray.js]
--- |
2400 |
unicode-property-names-invalid.js |
---
author: Michael Saboff
description: Invalid exotic named group names in Unicode RegExps
esid: prod-GroupSpecifier
features: [regexp-named-groups]
--- |
1400 |
unicode-property-names-valid.js |
---
author: Michael Saboff
description: Exotic named group names in Unicode RegExps
esid: prod-GroupSpecifier
features: [regexp-named-groups]
--- |
4456 |
unicode-property-names.js |
---
description: Exotic named group names in Unicode RegExps
esid: prod-GroupSpecifier
features: [regexp-named-groups]
--- |
1535 |
unicode-references.js |
---
description: Named backreferences in Unicode RegExps
esid: sec-atomescape
info: |
The production AtomEscape :: [+N] k GroupName evaluates as follows:
1. Search the enclosing RegExp for an instance of a GroupSpecifier for an
RegExpIdentifierName which has a StringValue equal to the StringValue
of the RegExpIdentifierName contained in GroupName.
2. Assert: A unique such GroupSpecifier is found.
3. Let parenIndex be the number of left capturing parentheses in the entire
regular expression that occur to the left of the located GroupSpecifier.
This is the total number of times the Atom::(GroupSpecifierDisjunction)
production is expanded prior to that production's Term plus the total
number of Atom :: (GroupSpecifierDisjunction) productions enclosing this Term.
4. Call BackreferenceMatcher(parenIndex) and return its Matcher result.
features: [regexp-named-groups]
includes: [compareArray.js]
--- |
2268 |