Navigation Menu

Skip to content

Commit

Permalink
Fix: no-misleading-character-class crash on invalid regex (fixes #12169
Browse files Browse the repository at this point in the history
…) (#12347)
  • Loading branch information
mdjermanovic authored and platinumazure committed Oct 25, 2019
1 parent c6a9a3b commit 0bffe95
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 7 deletions.
20 changes: 14 additions & 6 deletions lib/rules/no-misleading-character-class.js
Expand Up @@ -130,12 +130,6 @@ module.exports = {
* @returns {void}
*/
function verify(node, pattern, flags) {
const patternNode = parser.parsePattern(
pattern,
0,
pattern.length,
flags.includes("u")
);
const has = {
surrogatePairWithoutUFlag: false,
combiningClass: false,
Expand All @@ -144,6 +138,20 @@ module.exports = {
regionalIndicatorSymbol: false,
zwj: false
};
let patternNode;

try {
patternNode = parser.parsePattern(
pattern,
0,
pattern.length,
flags.includes("u")
);
} catch (e) {

// Ignore regular expressions with syntax errors
return;
}

visitRegExpAST(patternNode, {
onCharacterClassEnter(ccNode) {
Expand Down
6 changes: 5 additions & 1 deletion tests/lib/rules/no-misleading-character-class.js
Expand Up @@ -63,7 +63,11 @@ ruleTester.run("no-misleading-character-class", rule, {

// Ignore solo ZWJ.
"var r = /[\\u200D]/",
"var r = /[\\u200D]/u"
"var r = /[\\u200D]/u",

// don't report and don't crash on invalid regex
"var r = new RegExp('[Á] [ ');",
"var r = RegExp('{ [Á]', 'u');"
],
invalid: [

Expand Down

0 comments on commit 0bffe95

Please sign in to comment.