| Index: src/preparser.h
|
| diff --git a/src/preparser.h b/src/preparser.h
|
| index 41b3a31f0e1169068eaf2968fe55b67fc3904ee4..fde66bb318936c9b29abe116ee7255af1133b32e 100644
|
| --- a/src/preparser.h
|
| +++ b/src/preparser.h
|
| @@ -1414,8 +1414,8 @@ class PreParserTraits {
|
| }
|
|
|
| static PreParserExpression ExpressionFromIdentifier(
|
| - PreParserIdentifier name, int pos, Scope* scope,
|
| - PreParserFactory* factory) {
|
| + PreParserIdentifier name, int start_position, int end_position,
|
| + Scope* scope, PreParserFactory* factory) {
|
| return PreParserExpression::FromIdentifier(name);
|
| }
|
|
|
| @@ -1865,14 +1865,15 @@ ParserBase<Traits>::ParsePrimaryExpression(bool* ok) {
|
| // '(' Expression ')'
|
| // TemplateLiteral
|
|
|
| - int pos = peek_position();
|
| + int beg_pos = scanner()->peek_location().beg_pos;
|
| + int end_pos = scanner()->peek_location().end_pos;
|
| ExpressionT result = this->EmptyExpression();
|
| Token::Value token = peek();
|
| switch (token) {
|
| case Token::THIS: {
|
| Consume(Token::THIS);
|
| scope_->RecordThisUsage();
|
| - result = this->ThisExpression(scope_, factory(), pos);
|
| + result = this->ThisExpression(scope_, factory(), beg_pos);
|
| break;
|
| }
|
|
|
| @@ -1881,7 +1882,8 @@ ParserBase<Traits>::ParsePrimaryExpression(bool* ok) {
|
| case Token::FALSE_LITERAL:
|
| case Token::NUMBER:
|
| Next();
|
| - result = this->ExpressionFromLiteral(token, pos, scanner(), factory());
|
| + result =
|
| + this->ExpressionFromLiteral(token, beg_pos, scanner(), factory());
|
| break;
|
|
|
| case Token::IDENTIFIER:
|
| @@ -1891,13 +1893,14 @@ ParserBase<Traits>::ParsePrimaryExpression(bool* ok) {
|
| case Token::FUTURE_STRICT_RESERVED_WORD: {
|
| // Using eval or arguments in this context is OK even in strict mode.
|
| IdentifierT name = ParseIdentifier(kAllowEvalOrArguments, CHECK_OK);
|
| - result = this->ExpressionFromIdentifier(name, pos, scope_, factory());
|
| + result = this->ExpressionFromIdentifier(name, beg_pos, end_pos, scope_,
|
| + factory());
|
| break;
|
| }
|
|
|
| case Token::STRING: {
|
| Consume(Token::STRING);
|
| - result = this->ExpressionFromString(pos, scanner(), factory());
|
| + result = this->ExpressionFromString(beg_pos, scanner(), factory());
|
| break;
|
| }
|
|
|
| @@ -1924,7 +1927,7 @@ ParserBase<Traits>::ParsePrimaryExpression(bool* ok) {
|
| // for which an empty parameter list "()" is valid input.
|
| Consume(Token::RPAREN);
|
| result = this->ParseArrowFunctionLiteral(
|
| - pos, this->EmptyArrowParamList(), CHECK_OK);
|
| + beg_pos, this->EmptyArrowParamList(), CHECK_OK);
|
| } else {
|
| // Heuristically try to detect immediately called functions before
|
| // seeing the call parentheses.
|
| @@ -1959,8 +1962,8 @@ ParserBase<Traits>::ParsePrimaryExpression(bool* ok) {
|
|
|
| case Token::TEMPLATE_SPAN:
|
| case Token::TEMPLATE_TAIL:
|
| - result =
|
| - this->ParseTemplateLiteral(Traits::NoTemplateTag(), pos, CHECK_OK);
|
| + result = this->ParseTemplateLiteral(Traits::NoTemplateTag(), beg_pos,
|
| + CHECK_OK);
|
| break;
|
|
|
| case Token::MOD:
|
| @@ -2106,7 +2109,8 @@ ParserBase<Traits>::ParsePropertyDefinition(ObjectLiteralCheckerBase* checker,
|
| bool is_generator = allow_harmony_object_literals_ && Check(Token::MUL);
|
|
|
| Token::Value name_token = peek();
|
| - int next_pos = peek_position();
|
| + int next_beg_pos = scanner()->peek_location().beg_pos;
|
| + int next_end_pos = scanner()->peek_location().end_pos;
|
| ExpressionT name_expression = ParsePropertyName(
|
| &name, &is_get, &is_set, &name_is_static, is_computed_name,
|
| CHECK_OK_CUSTOM(EmptyObjectLiteralProperty));
|
| @@ -2201,7 +2205,8 @@ ParserBase<Traits>::ParsePropertyDefinition(ObjectLiteralCheckerBase* checker,
|
| this->is_generator())) {
|
| DCHECK(!*is_computed_name);
|
| DCHECK(!is_static);
|
| - value = this->ExpressionFromIdentifier(name, next_pos, scope_, factory());
|
| + value = this->ExpressionFromIdentifier(name, next_beg_pos, next_end_pos,
|
| + scope_, factory());
|
| return factory()->NewObjectLiteralProperty(
|
| name_expression, value, ObjectLiteralProperty::COMPUTED, false, false);
|
|
|
|
|