-
Notifications
You must be signed in to change notification settings - Fork 85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: ecma ranges with set terminator #55
base: master
Are you sure you want to change the base?
Conversation
Fix ECMAScript un-escaped literal '-' when followed by predefined character sets. Also: * Fixed missing error check on parseProperty() call. * Use addChar(ch) helper instead of addRange(ch, ch). Fixes dlclark#54
00a2f4c
to
7c81fa4
Compare
Hey, thanks for this. I have a few notes:
|
Nice catches, working on fixing these. Can you confirmed the desired compatibility is it PCRE or PCRE2? I ask as
I'm guessing PCRE2 as that's what .NET seems to match as per https://regex101.com/ |
Desired base compatibility is the .NET engine. |
Ignore the files created by VSCode.
Handle Unicode code points in ECMA mode with both the flag enabled and disabled. This removes four tests which were incorrectly passing due to missing detection of invalid ranges, aligning with the behaviour of .NET and PCRE2 as opposed to PCRE.
I think I've covered most the bases with this update, but definitely needs a second pair of eyes. |
@dlclark in case you missed the notification. |
Thanks for the reminder @stevenh! In reviewing the commit I see several regex's that used to work but now return errors. I know the new behavior matches C#, but I don't want to break regex's that may be out in the wild already working. It's fine if new regex patterns suddenly stop throwing errors during compile, but the corpus of existing unit tests should still pass as-is. I'm more willing to make breaking changes behind the ECMAScript flag since people use that option for compatibility with a standard. Thoughts? |
That's what I thought, but testing some more it seems that regexp101 C# implementation actually has a bug and reports this as failure incorrectly as confirmed by this fiddler share So I need to update so these patterns are once again valid anyway. |
Fix ECMAScript un-escaped literal '-' when followed by predefined character sets.
Also:
Fixes #54