1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 13:37:44 +00:00

LibRegex: Allow missing high bound in {x,y} quantifiers

Fixes #5518.
This commit is contained in:
AnotherTest 2021-02-26 23:23:58 +03:30 committed by Andreas Kling
parent 91bf3dc7fe
commit e0ac85288e
2 changed files with 5 additions and 6 deletions

View file

@ -954,12 +954,10 @@ bool ECMA262Parser::parse_quantifier(ByteCode& stack, size_t& match_length_minim
if (match(TokenType::Comma)) {
consume();
auto high_bound = read_digits();
if (!high_bound.has_value()) {
set_error(Error::InvalidBraceContent);
return false;
}
repeat_max = high_bound.value();
if (high_bound.has_value())
repeat_max = high_bound.value();
} else {
repeat_max = repeat_min;
}
if (!match(TokenType::RightCurly)) {

View file

@ -563,6 +563,7 @@ TEST_CASE(ECMA262_match)
{ "^(?:^^\\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|,|-=|->|\\/|\\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\\^=|\\^\\^|\\^\\^=|{|\\||\\|=|\\|\\||\\|\\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*(\\/(?=[^*/])(?:[^/[\\\\]|\\\\[\\S\\s]|\\[(?:[^\\\\\\]]|\\\\[\\S\\s])*(?:]|$))+\\/)",
"return /xx/", true, ECMAScriptFlags::BrowserExtended
}, // #5517, appears to be matching JS expressions that involve regular expressions...
{ "a{2,}", "aaaa" }, // #5518
};
// clang-format on