Index: src/ast.h |
diff --git a/src/ast.h b/src/ast.h |
index 56bda6b1a4f8d512fc17b45c3c83b8198599df47..0deb11e79cbab8bc1c042b9456098505d5157b34 100644 |
--- a/src/ast.h |
+++ b/src/ast.h |
@@ -210,7 +210,7 @@ class Expression: public AstNode { |
kTest |
}; |
- Expression() : id_(GetNextId()), test_id_(GetNextId()) {} |
+ Expression() : id_(GetNextId()) {} |
virtual int position() const { |
UNREACHABLE(); |
@@ -262,11 +262,9 @@ class Expression: public AstNode { |
} |
unsigned id() const { return id_; } |
- unsigned test_id() const { return test_id_; } |
private: |
unsigned id_; |
- unsigned test_id_; |
}; |
@@ -1032,16 +1030,7 @@ class VariableProxy: public Expression { |
DECLARE_NODE_TYPE(VariableProxy) |
// Type testing & conversion |
- virtual Property* AsProperty() { |
- return var_ == NULL ? NULL : var_->AsProperty(); |
- } |
- |
- Variable* AsVariable() { |
- if (this == NULL || var_ == NULL) return NULL; |
- Expression* rewrite = var_->rewrite(); |
- if (rewrite == NULL || rewrite->AsSlot() != NULL) return var_; |
- return NULL; |
- } |
+ Variable* AsVariable() { return (this == NULL) ? NULL : var_; } |
virtual bool IsValidLeftHandSide() { |
return var_ == NULL ? true : var_->IsValidLeftHandSide(); |
@@ -1170,8 +1159,7 @@ class Property: public Expression { |
is_array_length_(false), |
is_string_length_(false), |
is_string_access_(false), |
- is_function_prototype_(false), |
- is_arguments_access_(false) { } |
+ is_function_prototype_(false) { } |
DECLARE_NODE_TYPE(Property) |
@@ -1187,13 +1175,6 @@ class Property: public Expression { |
bool IsStringAccess() const { return is_string_access_; } |
bool IsFunctionPrototype() const { return is_function_prototype_; } |
- // Marks that this is actually an argument rewritten to a keyed property |
- // accessing the argument through the arguments shadow object. |
- void set_is_arguments_access(bool is_arguments_access) { |
- is_arguments_access_ = is_arguments_access; |
- } |
- bool is_arguments_access() const { return is_arguments_access_; } |
- |
// Type feedback information. |
void RecordTypeFeedback(TypeFeedbackOracle* oracle); |
virtual bool IsMonomorphic() { return is_monomorphic_; } |
@@ -1215,7 +1196,6 @@ class Property: public Expression { |
bool is_string_length_ : 1; |
bool is_string_access_ : 1; |
bool is_function_prototype_ : 1; |
- bool is_arguments_access_ : 1; |
Handle<Map> monomorphic_receiver_type_; |
}; |
@@ -1648,7 +1628,8 @@ class FunctionLiteral: public Expression { |
int num_parameters, |
int start_position, |
int end_position, |
- bool is_expression) |
+ bool is_expression, |
+ bool has_duplicate_parameters) |
: name_(name), |
scope_(scope), |
body_(body), |
@@ -1660,10 +1641,12 @@ class FunctionLiteral: public Expression { |
num_parameters_(num_parameters), |
start_position_(start_position), |
end_position_(end_position), |
- is_expression_(is_expression), |
function_token_position_(RelocInfo::kNoPosition), |
inferred_name_(HEAP->empty_string()), |
- pretenure_(false) { } |
+ is_expression_(is_expression), |
+ pretenure_(false), |
+ has_duplicate_parameters_(has_duplicate_parameters) { |
+ } |
DECLARE_NODE_TYPE(FunctionLiteral) |
@@ -1703,6 +1686,8 @@ class FunctionLiteral: public Expression { |
void set_pretenure(bool value) { pretenure_ = value; } |
virtual bool IsInlineable() const; |
+ bool has_duplicate_parameters() { return has_duplicate_parameters_; } |
+ |
private: |
Handle<String> name_; |
Scope* scope_; |
@@ -1714,10 +1699,11 @@ class FunctionLiteral: public Expression { |
int num_parameters_; |
int start_position_; |
int end_position_; |
- bool is_expression_; |
int function_token_position_; |
Handle<String> inferred_name_; |
+ bool is_expression_; |
bool pretenure_; |
+ bool has_duplicate_parameters_; |
}; |