Commit 26a5f212 authored by verwaest's avatar verwaest Committed by Commit bot

Drop unused end-position from VariableProxy

BUG=

Review-Url: https://codereview.chromium.org/2445993002
Cr-Commit-Position: refs/heads/master@{#40548}
parent 77ddcfb3
......@@ -159,10 +159,8 @@ bool Statement::IsJump() const {
}
}
VariableProxy::VariableProxy(Variable* var, int start_position,
int end_position)
VariableProxy::VariableProxy(Variable* var, int start_position)
: Expression(start_position, kVariableProxy),
end_position_(end_position),
raw_name_(var->raw_name()),
next_unresolved_(nullptr) {
bit_field_ |= IsThisField::encode(var->is_this()) |
......@@ -173,10 +171,8 @@ VariableProxy::VariableProxy(Variable* var, int start_position,
}
VariableProxy::VariableProxy(const AstRawString* name,
VariableKind variable_kind, int start_position,
int end_position)
VariableKind variable_kind, int start_position)
: Expression(start_position, kVariableProxy),
end_position_(end_position),
raw_name_(name),
next_unresolved_(nullptr) {
bit_field_ |= IsThisField::encode(variable_kind == THIS_VARIABLE) |
......@@ -187,7 +183,6 @@ VariableProxy::VariableProxy(const AstRawString* name,
VariableProxy::VariableProxy(const VariableProxy* copy_from)
: Expression(copy_from->position(), kVariableProxy),
end_position_(copy_from->end_position_),
next_unresolved_(nullptr) {
bit_field_ = copy_from->bit_field_;
DCHECK(!copy_from->is_resolved());
......
......@@ -1679,8 +1679,6 @@ class VariableProxy final : public Expression {
HoleCheckModeField::update(bit_field_, HoleCheckMode::kRequired);
}
int end_position() const { return end_position_; }
// Bind this proxy to the variable var.
void BindTo(Variable* var);
......@@ -1701,9 +1699,9 @@ class VariableProxy final : public Expression {
private:
friend class AstNodeFactory;
VariableProxy(Variable* var, int start_position, int end_position);
VariableProxy(Variable* var, int start_position);
VariableProxy(const AstRawString* name, VariableKind variable_kind,
int start_position, int end_position);
int start_position);
explicit VariableProxy(const VariableProxy* copy_from);
static int parent_num_ids() { return Expression::num_ids(); }
......@@ -1717,10 +1715,6 @@ class VariableProxy final : public Expression {
class HoleCheckModeField
: public BitField<HoleCheckMode, IsNewTargetField::kNext, 1> {};
// Position is stored in the AstNode superclass, but VariableProxy needs to
// know its end position too (for error messages). It cannot be inferred from
// the variable name length because it can contain escapes.
int end_position_;
FeedbackVectorSlot variable_feedback_slot_;
union {
const AstRawString* raw_name_; // if !is_resolved_
......@@ -3341,18 +3335,15 @@ class AstNodeFactory final BASE_EMBEDDED {
}
VariableProxy* NewVariableProxy(Variable* var,
int start_position = kNoSourcePosition,
int end_position = kNoSourcePosition) {
return new (zone_) VariableProxy(var, start_position, end_position);
int start_position = kNoSourcePosition) {
return new (zone_) VariableProxy(var, start_position);
}
VariableProxy* NewVariableProxy(const AstRawString* name,
VariableKind variable_kind,
int start_position = kNoSourcePosition,
int end_position = kNoSourcePosition) {
int start_position = kNoSourcePosition) {
DCHECK_NOT_NULL(name);
return new (zone_)
VariableProxy(name, variable_kind, start_position, end_position);
return new (zone_) VariableProxy(name, variable_kind, start_position);
}
// Recreates the VariableProxy in this Zone.
......
......@@ -956,15 +956,13 @@ Variable* Scope::DeclareVariable(
VariableProxy* Scope::NewUnresolved(AstNodeFactory* factory,
const AstRawString* name,
int start_position, int end_position,
VariableKind kind) {
int start_position, VariableKind kind) {
// Note that we must not share the unresolved variables with
// the same name because they may be removed selectively via
// RemoveUnresolved().
DCHECK(!already_resolved_);
DCHECK_EQ(!needs_migration_, factory->zone() == zone());
VariableProxy* proxy =
factory->NewVariableProxy(name, kind, start_position, end_position);
VariableProxy* proxy = factory->NewVariableProxy(name, kind, start_position);
proxy->set_next_unresolved(unresolved_);
unresolved_ = proxy;
return proxy;
......
......@@ -161,7 +161,6 @@ class V8_EXPORT_PRIVATE Scope : public NON_EXPORTED_BASE(ZoneObject) {
VariableProxy* NewUnresolved(AstNodeFactory* factory,
const AstRawString* name,
int start_position = kNoSourcePosition,
int end_position = kNoSourcePosition,
VariableKind kind = NORMAL_VARIABLE);
void AddUnresolved(VariableProxy* proxy);
......
......@@ -673,11 +673,11 @@ class ParserBase {
explicit ForInfo(ParserBase* parser)
: bound_names(1, parser->zone()),
mode(ForEachStatement::ENUMERATE),
each_loc(),
position(kNoSourcePosition),
parsing_result() {}
ZoneList<const AstRawString*> bound_names;
ForEachStatement::VisitMode mode;
Scanner::Location each_loc;
int position;
DeclarationParsingResult parsing_result;
};
......@@ -1770,8 +1770,7 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParsePrimaryExpression(
case Token::FUTURE_STRICT_RESERVED_WORD: {
// Using eval or arguments in this context is OK even in strict mode.
IdentifierT name = ParseAndClassifyIdentifier(CHECK_OK);
return impl()->ExpressionFromIdentifier(name, beg_pos,
scanner()->location().end_pos);
return impl()->ExpressionFromIdentifier(name, beg_pos);
}
case Token::STRING: {
......@@ -2392,8 +2391,7 @@ ParserBase<Impl>::ParseObjectPropertyDefinition(ObjectLiteralChecker* checker,
Scanner::Location(next_beg_pos, next_end_pos),
MessageTemplate::kAwaitBindingIdentifier);
}
ExpressionT lhs =
impl()->ExpressionFromIdentifier(name, next_beg_pos, next_end_pos);
ExpressionT lhs = impl()->ExpressionFromIdentifier(name, next_beg_pos);
CheckDestructuringElement(lhs, next_beg_pos, next_end_pos);
ExpressionT value;
......@@ -2660,8 +2658,8 @@ ParserBase<Impl>::ParseAssignmentExpression(bool accept_IN, bool* ok) {
PeekAhead() == Token::ARROW) {
// async Identifier => AsyncConciseBody
IdentifierT name = ParseAndClassifyIdentifier(CHECK_OK);
expression = impl()->ExpressionFromIdentifier(
name, position(), scanner()->location().end_pos, InferName::kNo);
expression =
impl()->ExpressionFromIdentifier(name, position(), InferName::kNo);
if (fni_) {
// Remove `async` keyword from inferred name stack.
fni_->RemoveAsyncKeywordFromEnd();
......@@ -5178,7 +5176,7 @@ typename ParserBase<Impl>::StatementT ParserBase<Impl>::ParseForStatement(
nullptr, CHECK_OK);
bound_names_are_lexical =
IsLexicalVariableMode(for_info.parsing_result.descriptor.mode);
for_info.each_loc = scanner()->location();
for_info.position = scanner()->location().beg_pos;
if (CheckInOrOf(&for_info.mode)) {
// Just one declaration followed by in/of.
......
......@@ -478,9 +478,7 @@ Expression* Parser::NewSuperCallReference(int pos) {
}
Expression* Parser::NewTargetExpression(int pos) {
static const int kNewTargetStringLength = 10;
auto proxy = NewUnresolved(ast_value_factory()->new_target_string(), pos,
pos + kNewTargetStringLength);
auto proxy = NewUnresolved(ast_value_factory()->new_target_string(), pos);
proxy->set_is_new_target();
return proxy;
}
......@@ -1448,13 +1446,12 @@ Statement* Parser::ParseExportDeclaration(bool* ok) {
}
VariableProxy* Parser::NewUnresolved(const AstRawString* name, int begin_pos,
int end_pos, VariableKind kind) {
return scope()->NewUnresolved(factory(), name, begin_pos, end_pos, kind);
VariableKind kind) {
return scope()->NewUnresolved(factory(), name, begin_pos, kind);
}
VariableProxy* Parser::NewUnresolved(const AstRawString* name) {
return scope()->NewUnresolved(factory(), name, scanner()->location().beg_pos,
scanner()->location().end_pos);
return scope()->NewUnresolved(factory(), name, scanner()->location().beg_pos);
}
Declaration* Parser::DeclareVariable(const AstRawString* name,
......@@ -1468,8 +1465,7 @@ Declaration* Parser::DeclareVariable(const AstRawString* name,
int pos, bool* ok) {
DCHECK_NOT_NULL(name);
VariableProxy* proxy = factory()->NewVariableProxy(
name, NORMAL_VARIABLE, scanner()->location().beg_pos,
scanner()->location().end_pos);
name, NORMAL_VARIABLE, scanner()->location().beg_pos);
Declaration* declaration =
factory()->NewVariableDeclaration(proxy, this->scope(), pos);
Declare(declaration, DeclarationDescriptor::NORMAL, mode, init, CHECK_OK);
......@@ -2012,8 +2008,7 @@ void Parser::DesugarBindingInForEachStatement(ForInfo* for_info,
*body_block = factory()->NewBlock(nullptr, 3, false, kNoSourcePosition);
(*body_block)->statements()->Add(each_initialization_block, zone());
*each_variable = factory()->NewVariableProxy(temp, for_info->each_loc.beg_pos,
for_info->each_loc.end_pos);
*each_variable = factory()->NewVariableProxy(temp, for_info->position);
}
// Create a TDZ for any lexically-bound names in for in/of statements.
......@@ -3415,7 +3410,7 @@ FunctionLiteral* Parser::InsertClassFieldInitializer(
constructor->scope(),
constructor->scope()->NewUnresolved(
factory(), ast_value_factory()->this_string(), kNoSourcePosition,
kNoSourcePosition + 4, THIS_VARIABLE)),
THIS_VARIABLE)),
kNoSourcePosition);
constructor->body()->InsertAt(0, call_initializer, zone());
return constructor;
......@@ -4302,8 +4297,7 @@ Expression* Parser::RewriteAssignExponentiation(Expression* left,
Expression* result;
DCHECK_NOT_NULL(lhs->raw_name());
result = ExpressionFromIdentifier(lhs->raw_name(), lhs->position(),
lhs->end_position());
result = ExpressionFromIdentifier(lhs->raw_name(), lhs->position());
args->Add(left, zone());
args->Add(right, zone());
Expression* call =
......
......@@ -463,7 +463,6 @@ class V8_EXPORT_PRIVATE Parser : public NON_EXPORTED_BASE(ParserBase<Parser>) {
void InsertSloppyBlockFunctionVarBindings(DeclarationScope* scope);
VariableProxy* NewUnresolved(const AstRawString* name, int begin_pos,
int end_pos = kNoSourcePosition,
VariableKind kind = NORMAL_VARIABLE);
VariableProxy* NewUnresolved(const AstRawString* name);
Variable* Declare(Declaration* declaration,
......@@ -932,7 +931,7 @@ class V8_EXPORT_PRIVATE Parser : public NON_EXPORTED_BASE(ParserBase<Parser>) {
}
V8_INLINE Expression* ThisExpression(int pos = kNoSourcePosition) {
return NewUnresolved(ast_value_factory()->this_string(), pos, pos + 4,
return NewUnresolved(ast_value_factory()->this_string(), pos,
THIS_VARIABLE);
}
......@@ -944,12 +943,12 @@ class V8_EXPORT_PRIVATE Parser : public NON_EXPORTED_BASE(ParserBase<Parser>) {
Literal* ExpressionFromLiteral(Token::Value token, int pos);
V8_INLINE Expression* ExpressionFromIdentifier(
const AstRawString* name, int start_position, int end_position,
const AstRawString* name, int start_position,
InferName infer = InferName::kYes) {
if (infer == InferName::kYes) {
fni_->PushVariableName(name);
}
return NewUnresolved(name, start_position, end_position);
return NewUnresolved(name, start_position);
}
V8_INLINE Expression* ExpressionFromString(int pos) {
......
......@@ -132,8 +132,7 @@ void Parser::PatternRewriter::VisitVariableProxy(VariableProxy* pattern) {
// entering the function).
const AstRawString* name = pattern->raw_name();
VariableProxy* proxy = factory()->NewVariableProxy(
name, NORMAL_VARIABLE, parser_->scanner()->location().beg_pos,
parser_->scanner()->location().end_pos);
name, NORMAL_VARIABLE, parser_->scanner()->location().beg_pos);
Declaration* declaration = factory()->NewVariableDeclaration(
proxy, descriptor_->scope, descriptor_->declaration_pos);
Variable* var = parser_->Declare(
......
......@@ -215,15 +215,14 @@ PreParser::LazyParsingResult PreParser::ParseStatementListAndLogFunction(
}
PreParserExpression PreParser::ExpressionFromIdentifier(
PreParserIdentifier name, int start_position, int end_position,
InferName infer) {
PreParserIdentifier name, int start_position, InferName infer) {
if (track_unresolved_variables_) {
AstNodeFactory factory(ast_value_factory());
// Setting the Zone is necessary because zone_ might be the temp Zone, and
// AstValueFactory doesn't know about it.
factory.set_zone(zone());
DCHECK_NOT_NULL(name.string_);
scope()->NewUnresolved(&factory, name.string_, start_position, end_position,
scope()->NewUnresolved(&factory, name.string_, start_position,
NORMAL_VARIABLE);
}
return PreParserExpression::FromIdentifier(name, zone());
......
......@@ -1383,7 +1383,7 @@ class PreParser : public ParserBase<PreParser> {
}
PreParserExpression ExpressionFromIdentifier(
PreParserIdentifier name, int start_position, int end_position,
PreParserIdentifier name, int start_position,
InferName infer = InferName::kYes);
V8_INLINE PreParserExpression ExpressionFromString(int pos) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment