Chromium Code Reviews| Index: src/ast.h |
| diff --git a/src/ast.h b/src/ast.h |
| index f22c96ccdfc7a2f3972202844c500ab78bfab1ce..edc0dbd004a08b1c20000a93a93254da1f8b8241 100644 |
| --- a/src/ast.h |
| +++ b/src/ast.h |
| @@ -171,7 +171,6 @@ typedef ZoneList<Handle<Object> > ZoneObjectList; |
| enum AstPropertiesFlag { |
| kDontInline, |
| - kDontOptimize, |
| kDontSelfOptimize, |
| kDontSoftInline, |
| kDontCache |
| @@ -2315,6 +2314,12 @@ class FunctionLiteral V8_FINAL : public Expression { |
| ast_properties_ = *ast_properties; |
| } |
| + bool dont_optimize() { return dont_optimize_reason_ != kNoReason; } |
| + BailoutReason dont_optimize_reason() { return dont_optimize_reason_; } |
| + void set_dont_optimize_reason(BailoutReason reason) { |
| + dont_optimize_reason_ = reason; |
| + } |
| + |
| protected: |
| FunctionLiteral(Isolate* isolate, |
| Handle<String> name, |
| @@ -2334,6 +2339,7 @@ class FunctionLiteral V8_FINAL : public Expression { |
| scope_(scope), |
| body_(body), |
| inferred_name_(isolate->factory()->empty_string()), |
| + dont_optimize_reason_(kNoReason), |
| materialized_literal_count_(materialized_literal_count), |
| expected_property_count_(expected_property_count), |
| handler_count_(handler_count), |
| @@ -2355,6 +2361,7 @@ class FunctionLiteral V8_FINAL : public Expression { |
| ZoneList<Statement*>* body_; |
| Handle<String> inferred_name_; |
| AstProperties ast_properties_; |
| + BailoutReason dont_optimize_reason_; |
| int materialized_literal_count_; |
| int expected_property_count_; |
| @@ -2829,9 +2836,11 @@ private: \ |
| class AstConstructionVisitor BASE_EMBEDDED { |
| public: |
| - AstConstructionVisitor() { } |
| + AstConstructionVisitor() : dont_optimize_reason_(kNoReason) { |
| + } |
|
Yang
2013/09/04 15:18:56
you can put that } on the previous line.
loislo
2013/09/05 07:47:58
Done.
|
| AstProperties* ast_properties() { return &properties_; } |
| + BailoutReason dont_optimize_reason() { return dont_optimize_reason_; } |
| private: |
| template<class> friend class AstNodeFactory; |
| @@ -2844,8 +2853,12 @@ class AstConstructionVisitor BASE_EMBEDDED { |
| void increase_node_count() { properties_.add_node_count(1); } |
| void add_flag(AstPropertiesFlag flag) { properties_.flags()->Add(flag); } |
| + void set_dont_optimize_reason(BailoutReason reason) { |
| + dont_optimize_reason_ = reason; |
| + } |
| AstProperties properties_; |
| + BailoutReason dont_optimize_reason_; |
| }; |