Make sure syntax errors in regular expressions raise conforming exceptions

Just letting the error from new RegExp through creates an exception missing the
pos/loc/raisedAt properties.

Issue #82
Issue #81
This commit is contained in:
Marijn Haverbeke
2013-11-20 10:56:28 +01:00
parent dd456e3ad5
commit baaa16cee7
2 changed files with 14 additions and 2 deletions

View File

@@ -767,7 +767,13 @@
// here (don't ask).
var mods = readWord1();
if (mods && !/^[gmsiy]*$/.test(mods)) raise(start, "Invalid regexp flag");
return finishToken(_regexp, new RegExp(content, mods));
try {
var value = new RegExp(content, mods);
} catch (e) {
if (e instanceof SyntaxError) raise(start, e.message);
raise(e);
}
return finishToken(_regexp, value);
}
// Read an integer in the given radix. Return null if zero digits