1337143 - Tweak ExportClause parsing to eliminate a peekToken where a simpler consuming getToken could be performed.

This commit is contained in:
Gaming4JC 2019-06-09 01:35:28 -04:00 committed by Roy Tam
commit bba9b43fca

View file

@ -4990,12 +4990,17 @@ Parser<FullParseHandler>::exportDeclaration()
// Handle the forms |export {}| and |export { ..., }| (where ...
// is non empty), by escaping the loop early if the next token
// is }.
if (!tokenStream.peekToken(&tt))
if (!tokenStream.getToken(&tt))
return null();
if (tt == TOK_RC)
break;
MUST_MATCH_TOKEN(TOK_NAME, JSMSG_NO_BINDING_NAME);
if (tt != TOK_NAME) {
error(JSMSG_NO_BINDING_NAME);
return null();
}
Node bindingName = newName(tokenStream.currentName());
if (!bindingName)
return null();
@ -5019,14 +5024,18 @@ Parser<FullParseHandler>::exportDeclaration()
handler.addList(kid, exportSpec);
bool matched;
if (!tokenStream.matchToken(&matched, TOK_COMMA))
TokenKind next;
if (!tokenStream.getToken(&next))
return null();
if (!matched)
break;
}
MUST_MATCH_TOKEN(TOK_RC, JSMSG_RC_AFTER_EXPORT_SPEC_LIST);
if (next == TOK_RC)
break;
if (next != TOK_COMMA) {
error(JSMSG_RC_AFTER_EXPORT_SPEC_LIST);
return null();
}
}
// Careful! If |from| follows, even on a new line, it must start a
// FromClause: