Index: src/ast/ast.cc |
diff --git a/src/ast/ast.cc b/src/ast/ast.cc |
index a2fc8997a4a07be151afd82ac4c6de0016c762e7..3c4d300a478d513faccccd90613b7e52a1dad558 100644 |
--- a/src/ast/ast.cc |
+++ b/src/ast/ast.cc |
@@ -204,6 +204,18 @@ VariableProxy::VariableProxy(Zone* zone, const AstRawString* name, |
raw_name_(name), |
next_unresolved_(nullptr) {} |
+VariableProxy::VariableProxy(Zone* zone, const VariableProxy* clone_from) |
+ : Expression(zone, clone_from->position(), kVariableProxy), |
+ bit_field_(clone_from->bit_field_), |
+ end_position_(clone_from->end_position_), |
+ next_unresolved_(nullptr) { |
+ if (clone_from->is_resolved()) { |
+ var_ = clone_from->var_; |
+ } else { |
+ raw_name_ = clone_from->raw_name_; |
+ } |
+} |
+ |
void VariableProxy::BindTo(Variable* var) { |
DCHECK((is_this() && var->is_this()) || raw_name() == var->raw_name()); |
set_var(var); |