Index: src/ast.h |
diff --git a/src/ast.h b/src/ast.h |
index 3c07471a3055d305d942fc4ef900293ead012870..af06be70da1fa888f2ca14596c8d57390ad04d65 100644 |
--- a/src/ast.h |
+++ b/src/ast.h |
@@ -188,7 +188,7 @@ class AstProperties FINAL BASE_EMBEDDED { |
public: |
class Flags : public EnumSet<AstPropertiesFlag, int> {}; |
- AstProperties() : node_count_(0) {} |
+ explicit AstProperties(Zone* zone) : node_count_(0), spec_(zone) {} |
Flags* flags() { return &flags_; } |
int node_count() { return node_count_; } |
@@ -200,12 +200,12 @@ class AstProperties FINAL BASE_EMBEDDED { |
int ic_slots() const { return spec_.ic_slots(); } |
void increase_ic_slots(int count) { spec_.increase_ic_slots(count); } |
void SetKind(int ic_slot, Code::Kind kind) { spec_.SetKind(ic_slot, kind); } |
- const FeedbackVectorSpec& get_spec() const { return spec_; } |
+ const ZoneFeedbackVectorSpec* get_spec() const { return &spec_; } |
private: |
Flags flags_; |
int node_count_; |
- FeedbackVectorSpec spec_; |
+ ZoneFeedbackVectorSpec spec_; |
}; |
@@ -2555,7 +2555,7 @@ class FunctionLiteral FINAL : public Expression { |
void set_ast_properties(AstProperties* ast_properties) { |
ast_properties_ = *ast_properties; |
} |
- const FeedbackVectorSpec& feedback_vector_spec() const { |
+ const ZoneFeedbackVectorSpec* feedback_vector_spec() const { |
return ast_properties_.get_spec(); |
} |
bool dont_optimize() { return dont_optimize_reason_ != kNoReason; } |
@@ -2579,6 +2579,7 @@ class FunctionLiteral FINAL : public Expression { |
scope_(scope), |
body_(body), |
raw_inferred_name_(ast_value_factory->empty_string()), |
+ ast_properties_(zone), |
dont_optimize_reason_(kNoReason), |
materialized_literal_count_(materialized_literal_count), |
expected_property_count_(expected_property_count), |