regexp-tree icon indicating copy to clipboard operation
regexp-tree copied to clipboard

Broken optimization `/^[\p{Mc}\p{Me}\p{Mn}]$/` -> `/^[Mcen\p{}]$/`

Open coderaiser opened this issue 3 years ago • 2 comments

invalid Unicode escape \p

Or

SyntaxError: Invalid regular expression: /^[Mcen\p{}]$/: Invalid property name in character class

coderaiser avatar Dec 21 '21 19:12 coderaiser

Also when trying to optimize /^[\p{Mc}\p{Me}\p{Mn}]$/u:

TypeError: Cannot read properties of undefined (reading 'codePoint')
    at getSortValue (/Users/coderaiser/putout/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js:103:26)
    at sortCharClass (/Users/coderaiser/putout/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js:63:16)
    at Array.sort (<anonymous>)
    at Object.CharacterClass (/Users/coderaiser/putout/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js:35:17)
    at pre (/Users/coderaiser/putout/node_modules/regexp-tree/dist/traverse/index.js:218:55)
    at visit (/Users/coderaiser/putout/node_modules/regexp-tree/dist/traverse/index.js:41:13)
    at visit (/Users/coderaiser/putout/node_modules/regexp-tree/dist/traverse/index.js:80:15)
    at visit (/Users/coderaiser/putout/node_modules/regexp-tree/dist/traverse/index.js:88:15)
    at astTraverse (/Users/coderaiser/putout/node_modules/regexp-tree/dist/traverse/index.js:99:3)
    at Object.traverse (/Users/coderaiser/putout/node_modules/regexp-tree/dist/traverse/index.js:172:5)

coderaiser avatar Dec 21 '21 19:12 coderaiser

@coderaiser – thanks for reporting. I'll appreciate a PR on fixing this issue. CC @Golmote

DmitrySoshnikov avatar Dec 24 '21 20:12 DmitrySoshnikov