Index: src/parser.cc |
diff --git a/src/parser.cc b/src/parser.cc |
index 1f60163c0db97e2881cd08bd03b5868af7df165d..a17883fd456182865a90a1b76225ff02ae826ddb 100644 |
--- a/src/parser.cc |
+++ b/src/parser.cc |
@@ -3025,7 +3025,7 @@ Expression* Parser::ParseConditionalExpression(bool accept_IN, bool* ok) { |
} |
-static int Precedence(Token::Value tok, bool accept_IN) { |
+int ParserBase::Precedence(Token::Value tok, bool accept_IN) { |
if (tok == Token::IN && !accept_IN) |
return 0; // 0 precedence will terminate binary expression parsing |
@@ -3845,11 +3845,6 @@ void Parser::BuildObjectLiteralConstantProperties( |
} |
-// Force instantiation of template instances class. |
-template void ObjectLiteralChecker<Parser>::CheckProperty( |
- Token::Value property, PropertyKind type, bool* ok); |
- |
- |
Expression* Parser::ParseObjectLiteral(bool* ok) { |
// ObjectLiteral :: |
// '{' ( |
@@ -3863,8 +3858,7 @@ Expression* Parser::ParseObjectLiteral(bool* ok) { |
int number_of_boilerplate_properties = 0; |
bool has_function = false; |
- ObjectLiteralChecker<Parser> checker(this, &scanner_, |
- top_scope_->language_mode()); |
+ ObjectLiteralChecker checker(this, top_scope_->language_mode()); |
Expect(Token::LBRACE, CHECK_OK); |
@@ -4618,9 +4612,9 @@ bool ParserBase::peek_any_identifier() { |
} |
-bool Parser::CheckContextualKeyword(Vector<const char> keyword) { |
+bool ParserBase::CheckContextualKeyword(Vector<const char> keyword) { |
if (peek() == Token::IDENTIFIER && |
- scanner().is_next_contextual_keyword(keyword)) { |
+ scanner()->is_next_contextual_keyword(keyword)) { |
Consume(Token::IDENTIFIER); |
return true; |
} |
@@ -4645,12 +4639,12 @@ void ParserBase::ExpectSemicolon(bool* ok) { |
} |
-void Parser::ExpectContextualKeyword(Vector<const char> keyword, bool* ok) { |
+void ParserBase::ExpectContextualKeyword(Vector<const char> keyword, bool* ok) { |
Expect(Token::IDENTIFIER, ok); |
if (!*ok) return; |
- if (!scanner().is_literal_contextual_keyword(keyword)) { |
+ if (!scanner()->is_literal_contextual_keyword(keyword)) { |
+ ReportUnexpectedToken(scanner()->current_token()); |
*ok = false; |
- ReportUnexpectedToken(scanner().current_token()); |
} |
} |
@@ -4745,14 +4739,11 @@ void Parser::CheckStrictModeLValue(Expression* expression, |
// Checks whether an octal literal was last seen between beg_pos and end_pos. |
// If so, reports an error. Only called for strict mode. |
-void Parser::CheckOctalLiteral(int beg_pos, int end_pos, bool* ok) { |
- Scanner::Location octal = scanner().octal_position(); |
- if (octal.IsValid() && |
- beg_pos <= octal.beg_pos && |
- octal.end_pos <= end_pos) { |
- ReportMessageAt(octal, "strict_octal_literal", |
- Vector<const char*>::empty()); |
- scanner().clear_octal_position(); |
+void ParserBase::CheckOctalLiteral(int beg_pos, int end_pos, bool* ok) { |
+ Scanner::Location octal = scanner()->octal_position(); |
+ if (octal.IsValid() && beg_pos <= octal.beg_pos && octal.end_pos <= end_pos) { |
+ ReportMessageAt(octal, "strict_octal_literal"); |
+ scanner()->clear_octal_position(); |
*ok = false; |
} |
} |