Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 68711769444ccd9bf9a095283815a572f5919cf3..d86518cb455d0967c09729c706c0da3012c90ac4 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -5194,8 +5194,11 @@ class SharedFunctionInfo: public HeapObject { |
// A counter used to determine when to stress the deoptimizer with a |
// deopt. |
- inline Smi* deopt_counter(); |
- inline void set_deopt_counter(Smi* counter); |
+ inline int deopt_counter(); |
+ inline void set_deopt_counter(int counter); |
+ |
+ inline int ast_node_count(); |
+ inline void set_ast_node_count(int count); |
// Add information on assignments of the form this.x = ...; |
void SetThisPropertyAssignmentsInfo( |
@@ -5269,6 +5272,12 @@ class SharedFunctionInfo: public HeapObject { |
// through the API, which does not change this flag). |
DECL_BOOLEAN_ACCESSORS(is_anonymous) |
+ // Indicates that the function cannot be crankshafted. |
+ DECL_BOOLEAN_ACCESSORS(dont_crankshaft) |
+ |
+ // Indicates that the function cannot be inlined. |
+ DECL_BOOLEAN_ACCESSORS(dont_inline) |
+ |
// Indicates whether or not the code in the shared function support |
// deoptimization. |
inline bool has_deoptimization_support(); |
@@ -5363,12 +5372,10 @@ class SharedFunctionInfo: public HeapObject { |
kInferredNameOffset + kPointerSize; |
static const int kThisPropertyAssignmentsOffset = |
kInitialMapOffset + kPointerSize; |
- static const int kDeoptCounterOffset = |
- kThisPropertyAssignmentsOffset + kPointerSize; |
#if V8_HOST_ARCH_32_BIT |
// Smi fields. |
static const int kLengthOffset = |
- kDeoptCounterOffset + kPointerSize; |
+ kThisPropertyAssignmentsOffset + kPointerSize; |
static const int kFormalParameterCountOffset = kLengthOffset + kPointerSize; |
static const int kExpectedNofPropertiesOffset = |
kFormalParameterCountOffset + kPointerSize; |
@@ -5386,8 +5393,11 @@ class SharedFunctionInfo: public HeapObject { |
kCompilerHintsOffset + kPointerSize; |
static const int kOptCountOffset = |
kThisPropertyAssignmentsCountOffset + kPointerSize; |
+ static const int kAstNodeCountOffset = kOptCountOffset + kPointerSize; |
+ static const int kDeoptCounterOffset = |
+ kAstNodeCountOffset + kPointerSize; |
// Total size. |
- static const int kSize = kOptCountOffset + kPointerSize; |
+ static const int kSize = kDeoptCounterOffset + kPointerSize; |
#else |
// The only reason to use smi fields instead of int fields |
// is to allow iteration without maps decoding during |
@@ -5399,7 +5409,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 = |
- kDeoptCounterOffset + kPointerSize; |
+ kThisPropertyAssignmentsOffset + kPointerSize; |
static const int kFormalParameterCountOffset = |
kLengthOffset + kIntSize; |
@@ -5423,8 +5433,11 @@ class SharedFunctionInfo: public HeapObject { |
static const int kOptCountOffset = |
kThisPropertyAssignmentsCountOffset + kIntSize; |
+ static const int kAstNodeCountOffset = kOptCountOffset + kIntSize; |
+ static const int kDeoptCounterOffset = kAstNodeCountOffset + kIntSize; |
+ |
// Total size. |
- static const int kSize = kOptCountOffset + kIntSize; |
+ static const int kSize = kDeoptCounterOffset + kIntSize; |
#endif |
@@ -5471,6 +5484,8 @@ class SharedFunctionInfo: public HeapObject { |
kBoundFunction, |
kIsAnonymous, |
kNameShouldPrintAsAnonymous, |
+ kDontCrankshaft, |
+ kDontInline, |
kCompilerHintsCount // Pseudo entry |
}; |