| Index: src/ast.cc
|
| diff --git a/src/ast.cc b/src/ast.cc
|
| index 5038716003e80125c1ff1fd1b3709443a0a3ea63..fbf6c775d4bd722d54fcee523687ec8dbd67fde7 100644
|
| --- a/src/ast.cc
|
| +++ b/src/ast.cc
|
| @@ -63,6 +63,7 @@ VariableProxy::VariableProxy(Zone* zone, Variable* var, int start_position,
|
| int end_position)
|
| : Expression(zone, start_position),
|
| bit_field_(IsThisField::encode(var->is_this()) |
|
| + IsNewTargetField::encode(var->is_new_target()) |
|
| IsAssignedField::encode(false) |
|
| IsResolvedField::encode(false)),
|
| variable_feedback_slot_(FeedbackVectorICSlot::Invalid()),
|
| @@ -76,16 +77,18 @@ VariableProxy::VariableProxy(Zone* zone, const AstRawString* name,
|
| Variable::Kind variable_kind, int start_position,
|
| int end_position)
|
| : Expression(zone, start_position),
|
| - bit_field_(IsThisField::encode(variable_kind == Variable::THIS) |
|
| - IsAssignedField::encode(false) |
|
| - IsResolvedField::encode(false)),
|
| + bit_field_(
|
| + IsThisField::encode(variable_kind == Variable::THIS) |
|
| + IsNewTargetField::encode(variable_kind == Variable::NEW_TARGET) |
|
| + IsAssignedField::encode(false) | IsResolvedField::encode(false)),
|
| variable_feedback_slot_(FeedbackVectorICSlot::Invalid()),
|
| raw_name_(name),
|
| end_position_(end_position) {}
|
|
|
|
|
| void VariableProxy::BindTo(Variable* var) {
|
| - DCHECK((is_this() && var->is_this()) || raw_name() == var->raw_name());
|
| + DCHECK((is_this() && var->is_this()) || raw_name() == var->raw_name() ||
|
| + is_new_target() && var->is_new_target());
|
| set_var(var);
|
| set_is_resolved();
|
| var->set_is_used();
|
|
|