Introduce Parser::warningAt

This reduces reporting an warning at a particular offset to its bare
essentials, simplifying calls.
This commit is contained in:
wolfbeast 2019-04-06 10:33:24 +02:00 committed by Roy Tam
commit 218c8ce05c
2 changed files with 19 additions and 12 deletions

View file

@ -633,6 +633,17 @@ Parser<ParseHandler>::warning(unsigned errorNumber, ...)
return result;
}
template <typename ParseHandler>
bool
Parser<ParseHandler>::warningAt(uint32_t offset, unsigned errorNumber, ...)
{
va_list args;
va_start(args, errorNumber);
bool result = reportHelper(ParseWarning, false, offset, errorNumber, args);
va_end(args);
return result;
}
template <typename ParseHandler>
bool
Parser<ParseHandler>::extraWarning(unsigned errorNumber, ...)
@ -3858,8 +3869,7 @@ Parser<ParseHandler>::maybeParseDirective(Node list, Node possibleDirective, boo
} else if (directive == context->names().useAsm) {
if (pc->isFunctionBox())
return asmJS(list);
return reportWithOffset(ParseWarning, false, directivePos.begin,
JSMSG_USE_ASM_DIRECTIVE_FAIL);
return warningAt(directivePos.begin, JSMSG_USE_ASM_DIRECTIVE_FAIL);
}
}
return true;
@ -3903,11 +3913,9 @@ Parser<ParseHandler>::statementList(YieldHandling yieldHandling)
if (!warnedAboutStatementsAfterReturn) {
if (afterReturn) {
if (!handler.isStatementPermittedAfterReturnStatement(next)) {
if (!reportWithOffset(ParseWarning, false, statementBegin,
JSMSG_STMT_AFTER_RETURN))
{
if (!warningAt(statementBegin, JSMSG_STMT_AFTER_RETURN))
return null();
}
warnedAboutStatementsAfterReturn = true;
}
} else if (handler.isReturnStatement(next)) {
@ -5836,11 +5844,9 @@ Parser<ParseHandler>::switchStatement(YieldHandling yieldHandling)
if (!warnedAboutStatementsAfterReturn) {
if (afterReturn) {
if (!handler.isStatementPermittedAfterReturnStatement(stmt)) {
if (!reportWithOffset(ParseWarning, false, statementBegin,
JSMSG_STMT_AFTER_RETURN))
{
if (!warningAt(statementBegin, JSMSG_STMT_AFTER_RETURN))
return null();
}
warnedAboutStatementsAfterReturn = true;
}
} else if (handler.isReturnStatement(stmt)) {