Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 80d1fd47d02ab60dd015704d7836b20bf9b9189a..3ec9428ab255d48da40b5537a8961cc559186906 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -5461,6 +5461,13 @@ class SharedFunctionInfo: public HeapObject { |
inline int opt_count(); |
inline void set_opt_count(int opt_count); |
+ // Number of times we tried to reenable optimization. |
+ inline int opt_reenable_tries(); |
+ inline void set_opt_reenable_tries(int opt_reenable_tries); |
+ |
+ inline void TryReenableOptimization(); |
+ |
+ |
// Source size of this function. |
int SourceSize(); |
@@ -5517,13 +5524,10 @@ class SharedFunctionInfo: public HeapObject { |
kInferredNameOffset + kPointerSize; |
static const int kThisPropertyAssignmentsOffset = |
kInitialMapOffset + kPointerSize; |
- // ic_age is a Smi field. It could be grouped with another Smi field into a |
- // PSEUDO_SMI_ACCESSORS pair (on x64), if one becomes available. |
- static const int kICAgeOffset = kThisPropertyAssignmentsOffset + kPointerSize; |
#if V8_HOST_ARCH_32_BIT |
// Smi fields. |
static const int kLengthOffset = |
- kICAgeOffset + kPointerSize; |
+ kThisPropertyAssignmentsOffset + kPointerSize; |
static const int kFormalParameterCountOffset = kLengthOffset + kPointerSize; |
static const int kExpectedNofPropertiesOffset = |
kFormalParameterCountOffset + kPointerSize; |
@@ -5543,10 +5547,10 @@ class SharedFunctionInfo: public HeapObject { |
kThisPropertyAssignmentsCountOffset + kPointerSize; |
static const int kAstNodeCountOffset = kOptCountOffset + kPointerSize; |
static const int kDeoptCounterOffset = kAstNodeCountOffset + kPointerSize; |
- |
- |
+ static const int kICAgeOffset = kDeoptCounterOffset + kPointerSize; |
+ static const int kOptReenableTriesOffset = kICAgeOffset + kPointerSize; |
// Total size. |
- static const int kSize = kDeoptCounterOffset + kPointerSize; |
+ static const int kSize = kOptReenableTriesOffset + kPointerSize; |
#else |
// The only reason to use smi fields instead of int fields |
// is to allow iteration without maps decoding during |
@@ -5558,7 +5562,7 @@ class SharedFunctionInfo: public HeapObject { |
// word is not set and thus this word cannot be treated as pointer |
// to HeapObject during old space traversal. |
static const int kLengthOffset = |
- kICAgeOffset + kPointerSize; |
+ kThisPropertyAssignmentsOffset + kPointerSize; |
static const int kFormalParameterCountOffset = |
kLengthOffset + kIntSize; |
@@ -5585,8 +5589,11 @@ class SharedFunctionInfo: public HeapObject { |
static const int kAstNodeCountOffset = kOptCountOffset + kIntSize; |
static const int kDeoptCounterOffset = kAstNodeCountOffset + kIntSize; |
+ static const int kICAgeOffset = kDeoptCounterOffset + kIntSize; |
+ static const int kOptReenableTriesOffset = kICAgeOffset + kIntSize; |
+ |
// Total size. |
- static const int kSize = kDeoptCounterOffset + kIntSize; |
+ static const int kSize = kOptReenableTriesOffset + kIntSize; |
#endif |