--- a/js/src/frontend/Parser.cpp
+++ b/js/src/frontend/Parser.cpp
@@ -1033,18 +1033,18 @@ Parser<ParseHandler, CharT>::parse()
if (!FoldConstants(context, &pn, this))
return null();
}
return pn;
}
/*
- * Strict mode forbids introducing new definitions for 'eval', 'arguments', or
- * for any strict mode reserved word.
+ * Strict mode forbids introducing new definitions for 'eval', 'arguments',
+ * 'let', 'static', 'yield', or for any strict mode reserved word.
*/
bool
ParserBase::isValidStrictBinding(PropertyName* name)
{
TokenKind tt = ReservedWordTokenKind(name);
if (tt == TOK_NAME) {
return name != context->names().eval &&
name != context->names().arguments;
@@ -2280,17 +2280,17 @@ Parser<FullParseHandler, char16_t>::modu
if (!varScope.init(pc))
return nullptr;
Node mn = handler.newModule(pos());
if (!mn)
return null();
AutoAwaitIsKeyword<Parser> awaitIsKeyword(this, AwaitIsModuleKeyword);
- ParseNode* pn = statementList(YieldIsKeyword);
+ ParseNode* pn = statementList(YieldIsName);
if (!pn)
return null();
MOZ_ASSERT(pn->isKind(PNK_STATEMENTLIST));
mn->pn_body = pn;
TokenKind tt;
if (!tokenStream.getToken(&tt, TokenStream::Operand))
@@ -5663,17 +5663,17 @@ typename ParseHandler::Node
Parser<ParseHandler, CharT>::exportFunctionDeclaration(uint32_t begin, uint32_t toStringStart,
FunctionAsyncKind asyncKind /* = SyncFunction */)
{
if (!abortIfSyntaxParser())
return null();
MOZ_ASSERT(tokenStream.isCurrentTokenType(TOK_FUNCTION));
- Node kid = functionStmt(toStringStart, YieldIsKeyword, NameRequired, asyncKind);
+ Node kid = functionStmt(toStringStart, YieldIsName, NameRequired, asyncKind);
if (!kid)
return null();
if (!checkExportedNameForFunction(kid))
return null();
Node node = handler.newExportDeclaration(kid, TokenPos(begin, pos().end));
if (!node)
@@ -5689,17 +5689,17 @@ template <class ParseHandler, typename C
typename ParseHandler::Node
Parser<ParseHandler, CharT>::exportClassDeclaration(uint32_t begin)
{
if (!abortIfSyntaxParser())
return null();
MOZ_ASSERT(tokenStream.isCurrentTokenType(TOK_CLASS));
- Node kid = classDefinition(YieldIsKeyword, ClassStatement, NameRequired);
+ Node kid = classDefinition(YieldIsName, ClassStatement, NameRequired);
if (!kid)
return null();
if (!checkExportedNameForClass(kid))
return null();
Node node = handler.newExportDeclaration(kid, TokenPos(begin, pos().end));
if (!node)
@@ -5744,17 +5744,17 @@ Parser<ParseHandler, CharT>::exportDefau
uint32_t toStringStart,
FunctionAsyncKind asyncKind /* = SyncFunction */)
{
if (!abortIfSyntaxParser())
return null();
MOZ_ASSERT(tokenStream.isCurrentTokenType(TOK_FUNCTION));
- Node kid = functionStmt(toStringStart, YieldIsKeyword, AllowDefaultName, asyncKind);
+ Node kid = functionStmt(toStringStart, YieldIsName, AllowDefaultName, asyncKind);
if (!kid)
return null();
Node node = handler.newExportDefaultDeclaration(kid, null(), TokenPos(begin, pos().end));
if (!node)
return null();
if (!processExport(node))
@@ -5767,17 +5767,17 @@ template <class ParseHandler, typename C
typename ParseHandler::Node
Parser<ParseHandler, CharT>::exportDefaultClassDeclaration(uint32_t begin)
{
if (!abortIfSyntaxParser())
return null();
MOZ_ASSERT(tokenStream.isCurrentTokenType(TOK_CLASS));
- Node kid = classDefinition(YieldIsKeyword, ClassStatement, AllowDefaultName);
+ Node kid = classDefinition(YieldIsName, ClassStatement, AllowDefaultName);
if (!kid)
return null();
Node node = handler.newExportDefaultDeclaration(kid, null(), TokenPos(begin, pos().end));
if (!node)
return null();
if (!processExport(node))
@@ -5795,17 +5795,17 @@ Parser<ParseHandler, CharT>::exportDefau
RootedPropertyName name(context, context->names().starDefaultStar);
Node nameNode = newName(name);
if (!nameNode)
return null();
if (!noteDeclaredName(name, DeclarationKind::Const, pos()))
return null();
- Node kid = assignExpr(InAllowed, YieldIsKeyword, TripledotProhibited);
+ Node kid = assignExpr(InAllowed, YieldIsName, TripledotProhibited);
if (!kid)
return null();
if (!matchOrInsertSemicolonAfterExpression())
return null();
Node node = handler.newExportDefaultDeclaration(kid, nameNode, TokenPos(begin, pos().end));
if (!node)
return null();