Skip to content

Commit f7a3c25

Browse files
committed
Bug 1831446 - Update irregexp to d94dfc2b01f988566aa410ce871588cf23b1285d r=iain
Differential Revision: https://phabricator.services.mozilla.com/D177209
1 parent fc48743 commit f7a3c25

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

js/src/irregexp/imported/regexp-parser.cc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2524,6 +2524,7 @@ RegExpTree* RegExpParserImpl<CharT>::ParseClassStringDisjunction(
25242524
}
25252525

25262526
AddClassString(string, string_builder.ToRegExp(), ranges, strings, zone());
2527+
CharacterRange::Canonicalize(ranges);
25272528

25282529
// We don't need to handle missing closing '}' here.
25292530
// If the character class is correctly closed, ParseClassSetCharacter will
@@ -2766,6 +2767,14 @@ RegExpTree* RegExpParserImpl<CharT>::ParseClassUnion(
27662767
return ReportError(RegExpError::kNegatedCharacterClassWithStrings);
27672768
}
27682769

2770+
if (operands->is_empty()) {
2771+
// Return empty expression if no operands were added (e.g. [\P{Any}]
2772+
// produces an empty range).
2773+
DCHECK(ranges->is_empty());
2774+
DCHECK(strings->empty());
2775+
return RegExpClassSetExpression::Empty(zone(), is_negated);
2776+
}
2777+
27692778
return zone()->template New<RegExpClassSetExpression>(
27702779
RegExpClassSetExpression::OperationType::kUnion, is_negated,
27712780
may_contain_strings, operands);

js/src/irregexp/moz.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ origin:
99
description: A fast regular expression engine from V8
1010
url: https://v8.dev
1111

12-
release: 5a3db5caabd2c247a567576d68de0493ff70f3f2 (Wed Apr 05 17:54:29 2023).
13-
revision: 5a3db5caabd2c247a567576d68de0493ff70f3f2
12+
release: d94dfc2b01f988566aa410ce871588cf23b1285d (Thu May 04 20:02:50 2023).
13+
revision: d94dfc2b01f988566aa410ce871588cf23b1285d
1414

1515
license: BSD-3-Clause
1616
license-file: LICENSE.v8

0 commit comments

Comments
 (0)