Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: src/objects.h

Issue 2655853010: [TypeFeedbackVector] Combine the literals array and the feedback vector. (Closed)
Patch Set: more comments. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/mips64/macro-assembler-mips64.cc ('k') | src/objects.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 #include <memory> 9 #include <memory>
10 10
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 // - JSDate 74 // - JSDate
75 // - JSMessageObject 75 // - JSMessageObject
76 // - JSModuleNamespace 76 // - JSModuleNamespace
77 // - JSProxy 77 // - JSProxy
78 // - FixedArrayBase 78 // - FixedArrayBase
79 // - ByteArray 79 // - ByteArray
80 // - BytecodeArray 80 // - BytecodeArray
81 // - FixedArray 81 // - FixedArray
82 // - DescriptorArray 82 // - DescriptorArray
83 // - FrameArray 83 // - FrameArray
84 // - LiteralsArray
85 // - HashTable 84 // - HashTable
86 // - Dictionary 85 // - Dictionary
87 // - StringTable 86 // - StringTable
88 // - StringSet 87 // - StringSet
89 // - CompilationCacheTable 88 // - CompilationCacheTable
90 // - CodeCacheHashTable 89 // - CodeCacheHashTable
91 // - MapCache 90 // - MapCache
92 // - OrderedHashTable 91 // - OrderedHashTable
93 // - OrderedHashSet 92 // - OrderedHashSet
94 // - OrderedHashMap 93 // - OrderedHashMap
(...skipping 795 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 V(DEPENDENT_CODE_SUB_TYPE) \ 889 V(DEPENDENT_CODE_SUB_TYPE) \
891 V(DICTIONARY_ELEMENTS_SUB_TYPE) \ 890 V(DICTIONARY_ELEMENTS_SUB_TYPE) \
892 V(DICTIONARY_PROPERTIES_SUB_TYPE) \ 891 V(DICTIONARY_PROPERTIES_SUB_TYPE) \
893 V(EMPTY_PROPERTIES_DICTIONARY_SUB_TYPE) \ 892 V(EMPTY_PROPERTIES_DICTIONARY_SUB_TYPE) \
894 V(FAST_ELEMENTS_SUB_TYPE) \ 893 V(FAST_ELEMENTS_SUB_TYPE) \
895 V(FAST_PROPERTIES_SUB_TYPE) \ 894 V(FAST_PROPERTIES_SUB_TYPE) \
896 V(FAST_TEMPLATE_INSTANTIATIONS_CACHE_SUB_TYPE) \ 895 V(FAST_TEMPLATE_INSTANTIATIONS_CACHE_SUB_TYPE) \
897 V(HANDLER_TABLE_SUB_TYPE) \ 896 V(HANDLER_TABLE_SUB_TYPE) \
898 V(JS_COLLECTION_SUB_TYPE) \ 897 V(JS_COLLECTION_SUB_TYPE) \
899 V(JS_WEAK_COLLECTION_SUB_TYPE) \ 898 V(JS_WEAK_COLLECTION_SUB_TYPE) \
900 V(LITERALS_ARRAY_SUB_TYPE) \
901 V(MAP_CODE_CACHE_SUB_TYPE) \ 899 V(MAP_CODE_CACHE_SUB_TYPE) \
902 V(NOSCRIPT_SHARED_FUNCTION_INFOS_SUB_TYPE) \ 900 V(NOSCRIPT_SHARED_FUNCTION_INFOS_SUB_TYPE) \
903 V(NUMBER_STRING_CACHE_SUB_TYPE) \ 901 V(NUMBER_STRING_CACHE_SUB_TYPE) \
904 V(OBJECT_TO_CODE_SUB_TYPE) \ 902 V(OBJECT_TO_CODE_SUB_TYPE) \
905 V(OPTIMIZED_CODE_LITERALS_SUB_TYPE) \ 903 V(OPTIMIZED_CODE_LITERALS_SUB_TYPE) \
906 V(OPTIMIZED_CODE_MAP_SUB_TYPE) \ 904 V(OPTIMIZED_CODE_MAP_SUB_TYPE) \
907 V(PROTOTYPE_USERS_SUB_TYPE) \ 905 V(PROTOTYPE_USERS_SUB_TYPE) \
908 V(REGEXP_MULTIPLE_CACHE_SUB_TYPE) \ 906 V(REGEXP_MULTIPLE_CACHE_SUB_TYPE) \
909 V(RETAINED_MAPS_SUB_TYPE) \ 907 V(RETAINED_MAPS_SUB_TYPE) \
910 V(SCOPE_INFO_SUB_TYPE) \ 908 V(SCOPE_INFO_SUB_TYPE) \
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 class AllocationSiteCreationContext; 952 class AllocationSiteCreationContext;
955 class AllocationSiteUsageContext; 953 class AllocationSiteUsageContext;
956 class Cell; 954 class Cell;
957 class ConsString; 955 class ConsString;
958 class ElementsAccessor; 956 class ElementsAccessor;
959 class FixedArrayBase; 957 class FixedArrayBase;
960 class FunctionLiteral; 958 class FunctionLiteral;
961 class JSGlobalObject; 959 class JSGlobalObject;
962 class KeyAccumulator; 960 class KeyAccumulator;
963 class LayoutDescriptor; 961 class LayoutDescriptor;
964 class LiteralsArray;
965 class LookupIterator; 962 class LookupIterator;
966 class FieldType; 963 class FieldType;
967 class Module; 964 class Module;
968 class ModuleDescriptor; 965 class ModuleDescriptor;
969 class ModuleInfoEntry; 966 class ModuleInfoEntry;
970 class ModuleInfo; 967 class ModuleInfo;
971 class ObjectHashTable; 968 class ObjectHashTable;
972 class ObjectVisitor; 969 class ObjectVisitor;
973 class PropertyCell; 970 class PropertyCell;
974 class PropertyDescriptor; 971 class PropertyDescriptor;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1043 V(JSReceiver) \ 1040 V(JSReceiver) \
1044 V(JSObject) \ 1041 V(JSObject) \
1045 V(JSArgumentsObject) \ 1042 V(JSArgumentsObject) \
1046 V(JSContextExtensionObject) \ 1043 V(JSContextExtensionObject) \
1047 V(JSGeneratorObject) \ 1044 V(JSGeneratorObject) \
1048 V(JSModuleNamespace) \ 1045 V(JSModuleNamespace) \
1049 V(Map) \ 1046 V(Map) \
1050 V(DescriptorArray) \ 1047 V(DescriptorArray) \
1051 V(FrameArray) \ 1048 V(FrameArray) \
1052 V(TransitionArray) \ 1049 V(TransitionArray) \
1053 V(LiteralsArray) \
1054 V(TypeFeedbackMetadata) \ 1050 V(TypeFeedbackMetadata) \
1055 V(TypeFeedbackVector) \ 1051 V(TypeFeedbackVector) \
1056 V(DeoptimizationInputData) \ 1052 V(DeoptimizationInputData) \
1057 V(DeoptimizationOutputData) \ 1053 V(DeoptimizationOutputData) \
1058 V(DependentCode) \ 1054 V(DependentCode) \
1059 V(HandlerTable) \ 1055 V(HandlerTable) \
1060 V(FixedArray) \ 1056 V(FixedArray) \
1061 V(BoilerplateDescription) \ 1057 V(BoilerplateDescription) \
1062 V(FixedDoubleArray) \ 1058 V(FixedDoubleArray) \
1063 V(WeakFixedArray) \ 1059 V(WeakFixedArray) \
(...skipping 3864 matching lines...) Expand 10 before | Expand all | Expand 10 after
4928 int number_of_deopt_points, 4924 int number_of_deopt_points,
4929 PretenureFlag pretenure); 4925 PretenureFlag pretenure);
4930 4926
4931 DECLARE_CAST(DeoptimizationOutputData) 4927 DECLARE_CAST(DeoptimizationOutputData)
4932 4928
4933 #ifdef ENABLE_DISASSEMBLER 4929 #ifdef ENABLE_DISASSEMBLER
4934 void DeoptimizationOutputDataPrint(std::ostream& os); // NOLINT 4930 void DeoptimizationOutputDataPrint(std::ostream& os); // NOLINT
4935 #endif 4931 #endif
4936 }; 4932 };
4937 4933
4938
4939 // A literals array contains the literals for a JSFunction. It also holds
4940 // the type feedback vector.
4941 class LiteralsArray : public FixedArray {
4942 public:
4943 static const int kVectorIndex = 0;
4944 static const int kFirstLiteralIndex = 1;
4945 V8_EXPORT_PRIVATE static const int kFeedbackVectorOffset;
4946 static const int kOffsetToFirstLiteral;
4947
4948 static int OffsetOfLiteralAt(int index) {
4949 return OffsetOfElementAt(index + kFirstLiteralIndex);
4950 }
4951
4952 inline TypeFeedbackVector* feedback_vector() const;
4953 inline void set_feedback_vector(TypeFeedbackVector* vector);
4954 inline Object* literal(int literal_index) const;
4955 inline void set_literal(int literal_index, Object* literal);
4956 inline void set_literal_undefined(int literal_index);
4957 inline int literals_count() const;
4958
4959 static Handle<LiteralsArray> New(Isolate* isolate,
4960 Handle<TypeFeedbackVector> vector,
4961 int number_of_literals,
4962 PretenureFlag pretenure = TENURED);
4963
4964 DECLARE_CAST(LiteralsArray)
4965
4966 private:
4967 inline Object* get(int index) const;
4968 inline void set(int index, Object* value);
4969 inline void set(int index, Smi* value);
4970 inline void set(int index, Object* value, WriteBarrierMode mode);
4971 };
4972
4973
4974 class TemplateList : public FixedArray { 4934 class TemplateList : public FixedArray {
4975 public: 4935 public:
4976 static Handle<TemplateList> New(Isolate* isolate, int size); 4936 static Handle<TemplateList> New(Isolate* isolate, int size);
4977 inline int length() const; 4937 inline int length() const;
4978 inline Object* get(int index) const; 4938 inline Object* get(int index) const;
4979 inline void set(int index, Object* value); 4939 inline void set(int index, Object* value);
4980 static Handle<TemplateList> Add(Isolate* isolate, Handle<TemplateList> list, 4940 static Handle<TemplateList> Add(Isolate* isolate, Handle<TemplateList> list,
4981 Handle<Object> value); 4941 Handle<Object> value);
4982 DECLARE_CAST(TemplateList) 4942 DECLARE_CAST(TemplateList)
4983 private: 4943 private:
(...skipping 2095 matching lines...) Expand 10 before | Expand all | Expand 10 after
7079 kTypedArrayEntries, 7039 kTypedArrayEntries,
7080 kTypedArrayKeys, 7040 kTypedArrayKeys,
7081 kTypedArrayLength, 7041 kTypedArrayLength,
7082 kTypedArrayValues, 7042 kTypedArrayValues,
7083 kSharedArrayBufferByteLength, 7043 kSharedArrayBufferByteLength,
7084 kStringIterator, 7044 kStringIterator,
7085 kStringIteratorNext, 7045 kStringIteratorNext,
7086 }; 7046 };
7087 7047
7088 // Result of searching in an optimized code map of a SharedFunctionInfo. Note 7048 // Result of searching in an optimized code map of a SharedFunctionInfo. Note
7089 // that both {code} and {literals} can be NULL to pass search result status. 7049 // that both {code} and {vector} can be NULL to pass search result status.
7090 struct CodeAndLiterals { 7050 struct CodeAndVector {
7091 Code* code; // Cached optimized code. 7051 Code* code; // Cached optimized code.
7092 LiteralsArray* literals; // Cached literals array. 7052 TypeFeedbackVector* vector; // Cached feedback vector.
7093 }; 7053 };
7094 7054
7095 // SharedFunctionInfo describes the JSFunction information that can be 7055 // SharedFunctionInfo describes the JSFunction information that can be
7096 // shared by multiple instances of the function. 7056 // shared by multiple instances of the function.
7097 class SharedFunctionInfo: public HeapObject { 7057 class SharedFunctionInfo: public HeapObject {
7098 public: 7058 public:
7099 // [name]: Function name. 7059 // [name]: Function name.
7100 DECL_ACCESSORS(name, Object) 7060 DECL_ACCESSORS(name, Object)
7101 7061
7102 // [code]: Function code. 7062 // [code]: Function code.
(...skipping 15 matching lines...) Expand all
7118 inline bool HasBaselineCode() const; 7078 inline bool HasBaselineCode() const;
7119 7079
7120 // [optimized_code_map]: Map from native context to optimized code 7080 // [optimized_code_map]: Map from native context to optimized code
7121 // and a shared literals array. 7081 // and a shared literals array.
7122 DECL_ACCESSORS(optimized_code_map, FixedArray) 7082 DECL_ACCESSORS(optimized_code_map, FixedArray)
7123 7083
7124 // Returns entry from optimized code map for specified context and OSR entry. 7084 // Returns entry from optimized code map for specified context and OSR entry.
7125 // Note that {code == nullptr, literals == nullptr} indicates no matching 7085 // Note that {code == nullptr, literals == nullptr} indicates no matching
7126 // entry has been found, whereas {code, literals == nullptr} indicates that 7086 // entry has been found, whereas {code, literals == nullptr} indicates that
7127 // code is context-independent. 7087 // code is context-independent.
7128 CodeAndLiterals SearchOptimizedCodeMap(Context* native_context, 7088 CodeAndVector SearchOptimizedCodeMap(Context* native_context,
7129 BailoutId osr_ast_id); 7089 BailoutId osr_ast_id);
7130 7090
7131 // Clear optimized code map. 7091 // Clear optimized code map.
7132 void ClearOptimizedCodeMap(); 7092 void ClearOptimizedCodeMap();
7133 7093
7134 // Like ClearOptimizedCodeMap, but preserves literals. 7094 // Like ClearOptimizedCodeMap, but preserves literals.
7135 void ClearCodeFromOptimizedCodeMap(); 7095 void ClearCodeFromOptimizedCodeMap();
7136 7096
7137 // We have a special root FixedArray with the right shape and values 7097 // We have a special root FixedArray with the right shape and values
7138 // to represent the cleared optimized code map. This predicate checks 7098 // to represent the cleared optimized code map. This predicate checks
7139 // if that root is installed. 7099 // if that root is installed.
7140 inline bool OptimizedCodeMapIsCleared() const; 7100 inline bool OptimizedCodeMapIsCleared() const;
7141 7101
7142 // Removes a specific optimized code object from the optimized code map. 7102 // Removes a specific optimized code object from the optimized code map.
7143 // In case of non-OSR the code reference is cleared from the cache entry but 7103 // In case of non-OSR the code reference is cleared from the cache entry but
7144 // the entry itself is left in the map in order to proceed sharing literals. 7104 // the entry itself is left in the map in order to proceed sharing literals.
7145 void EvictFromOptimizedCodeMap(Code* optimized_code, const char* reason); 7105 void EvictFromOptimizedCodeMap(Code* optimized_code, const char* reason);
7146 7106
7147 static Handle<LiteralsArray> FindOrCreateLiterals( 7107 static Handle<TypeFeedbackVector> FindOrCreateVector(
7148 Handle<SharedFunctionInfo> shared, Handle<Context> native_context); 7108 Handle<SharedFunctionInfo> shared, Handle<Context> native_context);
7149 7109
7150 // Add or update entry in the optimized code map for context-dependent code. 7110 // Add or update entry in the optimized code map for context-dependent code.
7151 // If {code} is not given, then an existing entry's code won't be overwritten. 7111 // If {code} is not given, then an existing entry's code won't be overwritten.
7152 static void AddToOptimizedCodeMap(Handle<SharedFunctionInfo> shared, 7112 static void AddToOptimizedCodeMap(Handle<SharedFunctionInfo> shared,
7153 Handle<Context> native_context, 7113 Handle<Context> native_context,
7154 MaybeHandle<Code> code, 7114 MaybeHandle<Code> code,
7155 Handle<LiteralsArray> literals, 7115 Handle<TypeFeedbackVector> vector,
7156 BailoutId osr_ast_id); 7116 BailoutId osr_ast_id);
7157 7117
7158 // Set up the link between shared function info and the script. The shared 7118 // Set up the link between shared function info and the script. The shared
7159 // function info is added to the list on the script. 7119 // function info is added to the list on the script.
7160 V8_EXPORT_PRIVATE static void SetScript(Handle<SharedFunctionInfo> shared, 7120 V8_EXPORT_PRIVATE static void SetScript(Handle<SharedFunctionInfo> shared,
7161 Handle<Object> script_object); 7121 Handle<Object> script_object);
7162 7122
7163 // Layout description of the optimized code map. 7123 // Layout description of the optimized code map.
7164 static const int kEntriesStart = 0; 7124 static const int kEntriesStart = 0;
7165 static const int kContextOffset = 0; 7125 static const int kContextOffset = 0;
7166 static const int kCachedCodeOffset = 1; 7126 static const int kCachedCodeOffset = 1;
7167 static const int kLiteralsOffset = 2; 7127 static const int kFeedbackVectorOffset = 2;
7168 static const int kEntryLength = 3; 7128 static const int kEntryLength = 3;
7169 static const int kInitialLength = kEntriesStart + kEntryLength; 7129 static const int kInitialLength = kEntriesStart + kEntryLength;
7170 7130
7171 static const int kNotFound = -1; 7131 static const int kNotFound = -1;
7172 7132
7173 // Helpers for assembly code that does a backwards walk of the optimized code 7133 // Helpers for assembly code that does a backwards walk of the optimized code
7174 // map. 7134 // map.
7175 static const int kOffsetToPreviousContext = 7135 static const int kOffsetToPreviousContext =
7176 FixedArray::kHeaderSize + kPointerSize * (kContextOffset - kEntryLength); 7136 FixedArray::kHeaderSize + kPointerSize * (kContextOffset - kEntryLength);
7177 static const int kOffsetToPreviousCachedCode = 7137 static const int kOffsetToPreviousCachedCode =
7178 FixedArray::kHeaderSize + 7138 FixedArray::kHeaderSize +
7179 kPointerSize * (kCachedCodeOffset - kEntryLength); 7139 kPointerSize * (kCachedCodeOffset - kEntryLength);
7180 static const int kOffsetToPreviousLiterals = 7140 static const int kOffsetToPreviousLiterals =
7181 FixedArray::kHeaderSize + kPointerSize * (kLiteralsOffset - kEntryLength); 7141 FixedArray::kHeaderSize +
7142 kPointerSize * (kFeedbackVectorOffset - kEntryLength);
7182 7143
7183 // [scope_info]: Scope info. 7144 // [scope_info]: Scope info.
7184 DECL_ACCESSORS(scope_info, ScopeInfo) 7145 DECL_ACCESSORS(scope_info, ScopeInfo)
7185 7146
7186 // The outer scope info for the purpose of parsing this function, or the hole 7147 // The outer scope info for the purpose of parsing this function, or the hole
7187 // value if it isn't yet known. 7148 // value if it isn't yet known.
7188 DECL_ACCESSORS(outer_scope_info, HeapObject) 7149 DECL_ACCESSORS(outer_scope_info, HeapObject)
7189 7150
7190 // [construct stub]: Code stub for constructing instances of this function. 7151 // [construct stub]: Code stub for constructing instances of this function.
7191 DECL_ACCESSORS(construct_stub, Code) 7152 DECL_ACCESSORS(construct_stub, Code)
(...skipping 939 matching lines...) Expand 10 before | Expand all | Expand 10 after
8131 inline bool IsMarkedForBaseline(); 8092 inline bool IsMarkedForBaseline();
8132 inline bool IsMarkedForOptimization(); 8093 inline bool IsMarkedForOptimization();
8133 inline bool IsMarkedForConcurrentOptimization(); 8094 inline bool IsMarkedForConcurrentOptimization();
8134 8095
8135 // Tells whether or not the function is on the concurrent recompilation queue. 8096 // Tells whether or not the function is on the concurrent recompilation queue.
8136 inline bool IsInOptimizationQueue(); 8097 inline bool IsInOptimizationQueue();
8137 8098
8138 // Completes inobject slack tracking on initial map if it is active. 8099 // Completes inobject slack tracking on initial map if it is active.
8139 inline void CompleteInobjectSlackTrackingIfActive(); 8100 inline void CompleteInobjectSlackTrackingIfActive();
8140 8101
8141 // [literals]: Fixed array holding the materialized literals. 8102 // [feedback_vector]: Fixed array holding the feedback vector.
8142 // 8103 DECL_ACCESSORS(feedback_vector, TypeFeedbackVector)
8143 // If the function contains object, regexp or array literals, the
8144 // literals array prefix contains the object, regexp, and array
8145 // function to be used when creating these literals. This is
8146 // necessary so that we do not dynamically lookup the object, regexp
8147 // or array functions. Performing a dynamic lookup, we might end up
8148 // using the functions from a new context that we should not have
8149 // access to. For API objects we store the boilerplate in the literal array.
8150 DECL_ACCESSORS(literals, LiteralsArray)
8151 8104
8152 static void EnsureLiterals(Handle<JSFunction> function); 8105 static void EnsureLiterals(Handle<JSFunction> function);
8153 inline TypeFeedbackVector* feedback_vector();
8154 8106
8155 // Unconditionally clear the type feedback vector (including vector ICs). 8107 // Unconditionally clear the type feedback vector (including vector ICs).
8156 void ClearTypeFeedbackInfo(); 8108 void ClearTypeFeedbackInfo();
8157 8109
8158 // Clear the type feedback vector with a more subtle policy at GC time. 8110 // Clear the type feedback vector with a more subtle policy at GC time.
8159 void ClearTypeFeedbackInfoAtGCTime(); 8111 void ClearTypeFeedbackInfoAtGCTime();
8160 8112
8161 // The initial map for an object created by this constructor. 8113 // The initial map for an object created by this constructor.
8162 inline Map* initial_map(); 8114 inline Map* initial_map();
8163 static void SetInitialMap(Handle<JSFunction> function, Handle<Map> map, 8115 static void SetInitialMap(Handle<JSFunction> function, Handle<Map> map,
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
8259 // The function's string representation implemented according to 8211 // The function's string representation implemented according to
8260 // ES6 section 19.2.3.5 Function.prototype.toString ( ). 8212 // ES6 section 19.2.3.5 Function.prototype.toString ( ).
8261 static Handle<String> ToString(Handle<JSFunction> function); 8213 static Handle<String> ToString(Handle<JSFunction> function);
8262 8214
8263 // Layout descriptors. The last property (from kNonWeakFieldsEndOffset to 8215 // Layout descriptors. The last property (from kNonWeakFieldsEndOffset to
8264 // kSize) is weak and has special handling during garbage collection. 8216 // kSize) is weak and has special handling during garbage collection.
8265 static const int kPrototypeOrInitialMapOffset = JSObject::kHeaderSize; 8217 static const int kPrototypeOrInitialMapOffset = JSObject::kHeaderSize;
8266 static const int kSharedFunctionInfoOffset = 8218 static const int kSharedFunctionInfoOffset =
8267 kPrototypeOrInitialMapOffset + kPointerSize; 8219 kPrototypeOrInitialMapOffset + kPointerSize;
8268 static const int kContextOffset = kSharedFunctionInfoOffset + kPointerSize; 8220 static const int kContextOffset = kSharedFunctionInfoOffset + kPointerSize;
8269 static const int kLiteralsOffset = kContextOffset + kPointerSize; 8221 static const int kFeedbackVectorOffset = kContextOffset + kPointerSize;
8270 static const int kNonWeakFieldsEndOffset = kLiteralsOffset + kPointerSize; 8222 static const int kNonWeakFieldsEndOffset =
8223 kFeedbackVectorOffset + kPointerSize;
8271 static const int kCodeEntryOffset = kNonWeakFieldsEndOffset; 8224 static const int kCodeEntryOffset = kNonWeakFieldsEndOffset;
8272 static const int kNextFunctionLinkOffset = kCodeEntryOffset + kPointerSize; 8225 static const int kNextFunctionLinkOffset = kCodeEntryOffset + kPointerSize;
8273 static const int kSize = kNextFunctionLinkOffset + kPointerSize; 8226 static const int kSize = kNextFunctionLinkOffset + kPointerSize;
8274 8227
8275 private: 8228 private:
8276 DISALLOW_IMPLICIT_CONSTRUCTORS(JSFunction); 8229 DISALLOW_IMPLICIT_CONSTRUCTORS(JSFunction);
8277 }; 8230 };
8278 8231
8279 8232
8280 // JSGlobalProxy's prototype must be a JSGlobalObject or null, 8233 // JSGlobalProxy's prototype must be a JSGlobalObject or null,
(...skipping 3395 matching lines...) Expand 10 before | Expand all | Expand 10 after
11676 } 11629 }
11677 }; 11630 };
11678 11631
11679 11632
11680 } // NOLINT, false-positive due to second-order macros. 11633 } // NOLINT, false-positive due to second-order macros.
11681 } // NOLINT, false-positive due to second-order macros. 11634 } // NOLINT, false-positive due to second-order macros.
11682 11635
11683 #include "src/objects/object-macros-undef.h" 11636 #include "src/objects/object-macros-undef.h"
11684 11637
11685 #endif // V8_OBJECTS_H_ 11638 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/mips64/macro-assembler-mips64.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698