While exploring the spec for #6039, I noticed they give some quirks in notes. We don't quite match some of them:
22.2.2.3 Disjunction https://tc39.es/ecma262/#sec-disjunction
For Fixed by #6057/a|ab/.exec("abc")
we return "ab"
instead of "a"
For Matches fixed by #6057. Order fixed by #6090/((a)|(ab))((c)|(bc))/.exec("abc")
we return ["abc", "ab", "ab", "c", "c", undefined, undefined]
instead of ["abc", "a", "a", undefined, "bc", undefined, "bc"]
.
22.2.2.5.1 RepeatMatcher https://tc39.es/ecma262/#sec-runtime-semantics-repeatmatcher-abstract-operation
Fixed by #6209/a[a-z]{2,4}?/.exec("abcdefghi")
fails to parse. It should return "abc"
For Fixed by #6057/(aa|aabaac|ba|b|c)*/.exec("aabaac")
we return [ "aabaac", "aabaac" ]
instead of ["aaba", "ba"]
For Fixed at some point/(z)((a+)?(b+)?(c))*/.exec("zaacbbbcac")
we return [ "zaacbbbcac", "z", "ac", "a", "bbb", "c" ]
instead of ["zaacbbbcac", "z", "ac", "a", undefined, "c"]
For /(a*)*/.exec("b")
we return [ "", "" ]
instead of ["", undefined]
For Fixed by #6057/(a*)b\1+/.exec("baaaac")
we return null
instead of ["b", ""]
22.2.2.8.2 Canonicalize ( ch ) https://tc39.es/ecma262/#sec-runtime-semantics-canonicalize-ch
For Fixed at some point./(?=(a+))a*b\1/.exec("baaabac")
we return [ "aa", "aa" ]
[ "b", "" ]
instead of ["aba", "a"]
For Fixed by cd83325/(.*?)a(?!(a+)b\2c)\2(.*)/.exec("baaabaac")
we return crash instead of [ "baaabaac", "b", "aa", "baac" ]
["baaabaac", "ba", undefined, "abaac"]
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too