blob: 356375d97598312ea3f47cdba6a17c75d361475e [file] [log] [blame]
// Regression test for 159954. This test should not crash or throw an exception.
function testRegExp(regexpExpression)
{
try {
let result = eval(regexpExpression);
throw "Expected \"" + regexpExpression + "\" to throw and it didn't";
} catch (e) {
if (e != "SyntaxError: Invalid regular expression: pattern exceeds string length limits")
throw e;
return true;
}
}
testRegExp("/a{2147483649,2147483650}a{2147483649,2147483650}/.exec('aaaa')");
testRegExp("/a{2147483649,2147483650}a{2147483649,2147483650}/.exec('aa')");
testRegExp("/(?:\1{2147483649,2147483650})+/.exec('123')");
testRegExp("/([^]{2147483648,2147483651}(?:.){2})+?/.exec('xxx')");
testRegExp("/(\u0004\W\u0f0b+?$[\xa7\t\t-\ue118\f]{2147483648,2147483648})+.+?/u.exec('testing')");
testRegExp("/(.{2147483649,2147483652})+?/g.exec('xxx')");
testRegExp("/(?:(?:[\D]{2147483649})+?.)*?/igmy.exec('123\\n123')");
testRegExp("/(?:\1{2147483648,})+?/m.exec('xxx')");