Index: src/ast.h |
diff --git a/src/ast.h b/src/ast.h |
index 628391c5bedcd4844ea4c59d7fb8cd376d4763ac..a65993379678df670ae2a1cad7b00d4248a67a47 100644 |
--- a/src/ast.h |
+++ b/src/ast.h |
@@ -1154,12 +1154,17 @@ class VariableProxy: public Expression { |
bool IsArguments() { return var_ != NULL && var_->is_arguments(); } |
+ bool IsLValue() { |
+ return is_lvalue_; |
+ } |
+ |
Handle<String> name() const { return name_; } |
Variable* var() const { return var_; } |
bool is_this() const { return is_this_; } |
int position() const { return position_; } |
void MarkAsTrivial() { is_trivial_ = true; } |
+ void MarkAsLValue() { is_lvalue_ = true; } |
// Bind this proxy to the variable var. |
void BindTo(Variable* var); |
@@ -1169,6 +1174,9 @@ class VariableProxy: public Expression { |
Variable* var_; // resolved variable, or NULL |
bool is_this_; |
bool is_trivial_; |
+ // True if this variable proxy is being used in an assignment |
+ // or with a increment/decrement operator. |
+ bool is_lvalue_; |
int position_; |
VariableProxy(Isolate* isolate, |