| Index: src/ast.h
|
| diff --git a/src/ast.h b/src/ast.h
|
| index 59ed61790cfb9320c5b97ae5e8dbe78de0a5468c..5823f9241a5fa474cafe890dd871998b31cb5713 100644
|
| --- a/src/ast.h
|
| +++ b/src/ast.h
|
| @@ -1032,16 +1032,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 +1161,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 +1177,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 +1198,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 +1630,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 +1643,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 +1688,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 +1701,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_;
|
| };
|
|
|
|
|
|
|