Index: src/ast.h |
diff --git a/src/ast.h b/src/ast.h |
index 4b2010f07773f148a4f416bb5f71031a1e5b20d7..b4f7348eee314eaac011db31d3b238b877d7ef82 100644 |
--- a/src/ast.h |
+++ b/src/ast.h |
@@ -1669,6 +1669,10 @@ class Property V8_FINAL : public Expression { |
return STANDARD_STORE; |
} |
bool IsUninitialized() { return is_uninitialized_; } |
+ bool IsPreMonomorphic() { return is_pre_monomorphic_; } |
+ bool HasNoTypeInformation() { |
+ return is_uninitialized_ || is_pre_monomorphic_; |
+ } |
TypeFeedbackId PropertyFeedbackId() { return reuse(id()); } |
protected: |
@@ -1681,6 +1685,7 @@ class Property V8_FINAL : public Expression { |
key_(key), |
load_id_(GetNextId(isolate)), |
is_monomorphic_(false), |
+ is_pre_monomorphic_(false), |
is_uninitialized_(false), |
is_string_access_(false), |
is_function_prototype_(false) { } |
@@ -1692,6 +1697,7 @@ class Property V8_FINAL : public Expression { |
SmallMapList receiver_types_; |
bool is_monomorphic_ : 1; |
+ bool is_pre_monomorphic_ : 1; |
bool is_uninitialized_ : 1; |
bool is_string_access_ : 1; |
bool is_function_prototype_ : 1; |
@@ -2098,6 +2104,10 @@ class Assignment V8_FINAL : public Expression { |
void RecordTypeFeedback(TypeFeedbackOracle* oracle, Zone* zone); |
virtual bool IsMonomorphic() V8_OVERRIDE { return is_monomorphic_; } |
bool IsUninitialized() { return is_uninitialized_; } |
+ bool IsPreMonomorphic() { return is_pre_monomorphic_; } |
+ bool HasNoTypeInformation() { |
+ return is_uninitialized_ || is_pre_monomorphic_; |
+ } |
virtual SmallMapList* GetReceiverTypes() V8_OVERRIDE { |
return &receiver_types_; |
} |
@@ -2130,6 +2140,7 @@ class Assignment V8_FINAL : public Expression { |
bool is_monomorphic_ : 1; |
bool is_uninitialized_ : 1; |
+ bool is_pre_monomorphic_ : 1; |
KeyedAccessStoreMode store_mode_ : 5; // Windows treats as signed, |
// must have extra bit. |
SmallMapList receiver_types_; |