| Index: src/parser.cc
|
| diff --git a/src/parser.cc b/src/parser.cc
|
| index 211f737d6d89c9fd202f9b1cd0af233c50a04627..b0fdbee0c326fa502c8829c36a77d451ec9d119d 100644
|
| --- a/src/parser.cc
|
| +++ b/src/parser.cc
|
| @@ -3469,41 +3469,6 @@ DebuggerStatement* Parser::ParseDebuggerStatement(bool* ok) {
|
| }
|
|
|
|
|
| -void Parser::ReportUnexpectedToken(Token::Value token) {
|
| - // We don't report stack overflows here, to avoid increasing the
|
| - // stack depth even further. Instead we report it after parsing is
|
| - // over, in ParseProgram/ParseJson.
|
| - if (token == Token::ILLEGAL && stack_overflow()) return;
|
| - // Four of the tokens are treated specially
|
| - switch (token) {
|
| - case Token::EOS:
|
| - return ReportMessage("unexpected_eos", Vector<const char*>::empty());
|
| - case Token::NUMBER:
|
| - return ReportMessage("unexpected_token_number",
|
| - Vector<const char*>::empty());
|
| - case Token::STRING:
|
| - return ReportMessage("unexpected_token_string",
|
| - Vector<const char*>::empty());
|
| - case Token::IDENTIFIER:
|
| - return ReportMessage("unexpected_token_identifier",
|
| - Vector<const char*>::empty());
|
| - case Token::FUTURE_RESERVED_WORD:
|
| - return ReportMessage("unexpected_reserved",
|
| - Vector<const char*>::empty());
|
| - case Token::YIELD:
|
| - case Token::FUTURE_STRICT_RESERVED_WORD:
|
| - return ReportMessage(top_scope_->is_classic_mode() ?
|
| - "unexpected_token_identifier" :
|
| - "unexpected_strict_reserved",
|
| - Vector<const char*>::empty());
|
| - default:
|
| - const char* name = Token::String(token);
|
| - ASSERT(name != NULL);
|
| - ReportMessage("unexpected_token", Vector<const char*>(&name, 1));
|
| - }
|
| -}
|
| -
|
| -
|
| void Parser::ReportInvalidPreparseData(Handle<String> name, bool* ok) {
|
| SmartArrayPointer<char> name_string = name->ToCString(DISALLOW_NULLS);
|
| const char* element[1] = { name_string.get() };
|
| @@ -4485,6 +4450,42 @@ void ParserBase::ExpectContextualKeyword(Vector<const char> keyword, bool* ok) {
|
| }
|
|
|
|
|
| +void ParserBase::ReportUnexpectedToken(Token::Value token) {
|
| + // We don't report stack overflows here, to avoid increasing the
|
| + // stack depth even further. Instead we report it after parsing is
|
| + // over, in ParseProgram.
|
| + if (token == Token::ILLEGAL && stack_overflow()) {
|
| + return;
|
| + }
|
| + Scanner::Location source_location = scanner()->location();
|
| +
|
| + // Four of the tokens are treated specially
|
| + switch (token) {
|
| + case Token::EOS:
|
| + return ReportMessageAt(source_location, "unexpected_eos");
|
| + case Token::NUMBER:
|
| + return ReportMessageAt(source_location, "unexpected_token_number");
|
| + case Token::STRING:
|
| + return ReportMessageAt(source_location, "unexpected_token_string");
|
| + case Token::IDENTIFIER:
|
| + return ReportMessageAt(source_location,
|
| + "unexpected_token_identifier");
|
| + case Token::FUTURE_RESERVED_WORD:
|
| + return ReportMessageAt(source_location, "unexpected_reserved");
|
| + case Token::YIELD:
|
| + case Token::FUTURE_STRICT_RESERVED_WORD:
|
| + return ReportMessageAt(source_location,
|
| + is_classic_mode() ? "unexpected_token_identifier"
|
| + : "unexpected_strict_reserved");
|
| + default:
|
| + const char* name = Token::String(token);
|
| + ASSERT(name != NULL);
|
| + ReportMessageAt(
|
| + source_location, "unexpected_token", Vector<const char*>(&name, 1));
|
| + }
|
| +}
|
| +
|
| +
|
| Literal* Parser::GetLiteralUndefined(int position) {
|
| return factory()->NewLiteral(
|
| isolate()->factory()->undefined_value(), position);
|
|
|