| Index: src/ast.h | 
| diff --git a/src/ast.h b/src/ast.h | 
| index 661b5f962d86723482c0f08b2c574413787b4f21..184f3365026c7b8ad1604e565799e0f7d362bcc1 100644 | 
| --- a/src/ast.h | 
| +++ b/src/ast.h | 
| @@ -1623,9 +1623,7 @@ class VariableProxy FINAL : public Expression { | 
| public: | 
| DECLARE_NODE_TYPE(VariableProxy) | 
|  | 
| -  bool IsValidReferenceExpression() const OVERRIDE { | 
| -    return !is_resolved() || var()->IsValidReference(); | 
| -  } | 
| +  bool IsValidReferenceExpression() const OVERRIDE { return !is_this(); } | 
|  | 
| bool IsArguments() const { return is_resolved() && var()->is_arguments(); } | 
|  | 
| @@ -1680,8 +1678,9 @@ class VariableProxy FINAL : public Expression { | 
| VariableProxy(Zone* zone, Variable* var, int start_position, | 
| int end_position); | 
|  | 
| -  VariableProxy(Zone* zone, const AstRawString* name, bool is_this, | 
| -                int start_position, int end_position); | 
| +  VariableProxy(Zone* zone, const AstRawString* name, | 
| +                Variable::Kind variable_kind, int start_position, | 
| +                int end_position); | 
|  | 
| class IsThisField : public BitField8<bool, 0, 1> {}; | 
| class IsAssignedField : public BitField8<bool, 1, 1> {}; | 
| @@ -3395,11 +3394,12 @@ class AstNodeFactory FINAL BASE_EMBEDDED { | 
| return new (zone_) VariableProxy(zone_, var, start_position, end_position); | 
| } | 
|  | 
| -  VariableProxy* NewVariableProxy(const AstRawString* name, bool is_this, | 
| +  VariableProxy* NewVariableProxy(const AstRawString* name, | 
| +                                  Variable::Kind variable_kind, | 
| int start_position = RelocInfo::kNoPosition, | 
| int end_position = RelocInfo::kNoPosition) { | 
| return new (zone_) | 
| -        VariableProxy(zone_, name, is_this, start_position, end_position); | 
| +        VariableProxy(zone_, name, variable_kind, start_position, end_position); | 
| } | 
|  | 
| Property* NewProperty(Expression* obj, Expression* key, int pos) { | 
|  |