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

Side by Side Diff: src/objects.h

Issue 2655853010: [TypeFeedbackVector] Combine the literals array and the feedback vector. (Closed)
Patch Set: partial serializer todo 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) \ 899 V(LITERALS_ARRAY_SUB_TYPE) \
Michael Starzinger 2017/01/30 11:16:44 nit: I think we can drop this sub-type now.
mvstanton 2017/01/30 11:57:04 Done.
901 V(MAP_CODE_CACHE_SUB_TYPE) \ 900 V(MAP_CODE_CACHE_SUB_TYPE) \
902 V(NOSCRIPT_SHARED_FUNCTION_INFOS_SUB_TYPE) \ 901 V(NOSCRIPT_SHARED_FUNCTION_INFOS_SUB_TYPE) \
903 V(NUMBER_STRING_CACHE_SUB_TYPE) \ 902 V(NUMBER_STRING_CACHE_SUB_TYPE) \
904 V(OBJECT_TO_CODE_SUB_TYPE) \ 903 V(OBJECT_TO_CODE_SUB_TYPE) \
905 V(OPTIMIZED_CODE_LITERALS_SUB_TYPE) \ 904 V(OPTIMIZED_CODE_LITERALS_SUB_TYPE) \
906 V(OPTIMIZED_CODE_MAP_SUB_TYPE) \ 905 V(OPTIMIZED_CODE_MAP_SUB_TYPE) \
907 V(PROTOTYPE_USERS_SUB_TYPE) \ 906 V(PROTOTYPE_USERS_SUB_TYPE) \
908 V(REGEXP_MULTIPLE_CACHE_SUB_TYPE) \ 907 V(REGEXP_MULTIPLE_CACHE_SUB_TYPE) \
909 V(RETAINED_MAPS_SUB_TYPE) \ 908 V(RETAINED_MAPS_SUB_TYPE) \
910 V(SCOPE_INFO_SUB_TYPE) \ 909 V(SCOPE_INFO_SUB_TYPE) \
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 class AllocationSiteCreationContext; 953 class AllocationSiteCreationContext;
955 class AllocationSiteUsageContext; 954 class AllocationSiteUsageContext;
956 class Cell; 955 class Cell;
957 class ConsString; 956 class ConsString;
958 class ElementsAccessor; 957 class ElementsAccessor;
959 class FixedArrayBase; 958 class FixedArrayBase;
960 class FunctionLiteral; 959 class FunctionLiteral;
961 class JSGlobalObject; 960 class JSGlobalObject;
962 class KeyAccumulator; 961 class KeyAccumulator;
963 class LayoutDescriptor; 962 class LayoutDescriptor;
964 class LiteralsArray;
965 class LookupIterator; 963 class LookupIterator;
966 class FieldType; 964 class FieldType;
967 class Module; 965 class Module;
968 class ModuleDescriptor; 966 class ModuleDescriptor;
969 class ModuleInfoEntry; 967 class ModuleInfoEntry;
970 class ModuleInfo; 968 class ModuleInfo;
971 class ObjectHashTable; 969 class ObjectHashTable;
972 class ObjectVisitor; 970 class ObjectVisitor;
973 class PropertyCell; 971 class PropertyCell;
974 class PropertyDescriptor; 972 class PropertyDescriptor;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1043 V(JSReceiver) \ 1041 V(JSReceiver) \
1044 V(JSObject) \ 1042 V(JSObject) \
1045 V(JSArgumentsObject) \ 1043 V(JSArgumentsObject) \
1046 V(JSContextExtensionObject) \ 1044 V(JSContextExtensionObject) \
1047 V(JSGeneratorObject) \ 1045 V(JSGeneratorObject) \
1048 V(JSModuleNamespace) \ 1046 V(JSModuleNamespace) \
1049 V(Map) \ 1047 V(Map) \
1050 V(DescriptorArray) \ 1048 V(DescriptorArray) \
1051 V(FrameArray) \ 1049 V(FrameArray) \
1052 V(TransitionArray) \ 1050 V(TransitionArray) \
1053 V(LiteralsArray) \
1054 V(TypeFeedbackMetadata) \ 1051 V(TypeFeedbackMetadata) \
1055 V(TypeFeedbackVector) \ 1052 V(TypeFeedbackVector) \
1056 V(DeoptimizationInputData) \ 1053 V(DeoptimizationInputData) \
1057 V(DeoptimizationOutputData) \ 1054 V(DeoptimizationOutputData) \
1058 V(DependentCode) \ 1055 V(DependentCode) \
1059 V(HandlerTable) \ 1056 V(HandlerTable) \
1060 V(FixedArray) \ 1057 V(FixedArray) \
1061 V(BoilerplateDescription) \ 1058 V(BoilerplateDescription) \
1062 V(FixedDoubleArray) \ 1059 V(FixedDoubleArray) \
1063 V(WeakFixedArray) \ 1060 V(WeakFixedArray) \
(...skipping 3888 matching lines...) Expand 10 before | Expand all | Expand 10 after
4952 int number_of_deopt_points, 4949 int number_of_deopt_points,
4953 PretenureFlag pretenure); 4950 PretenureFlag pretenure);
4954 4951
4955 DECLARE_CAST(DeoptimizationOutputData) 4952 DECLARE_CAST(DeoptimizationOutputData)
4956 4953
4957 #ifdef ENABLE_DISASSEMBLER 4954 #ifdef ENABLE_DISASSEMBLER
4958 void DeoptimizationOutputDataPrint(std::ostream& os); // NOLINT 4955 void DeoptimizationOutputDataPrint(std::ostream& os); // NOLINT
4959 #endif 4956 #endif
4960 }; 4957 };
4961 4958
4962
4963 // A literals array contains the literals for a JSFunction. It also holds
4964 // the type feedback vector.
4965 class LiteralsArray : public FixedArray {
4966 public:
4967 static const int kVectorIndex = 0;
4968 static const int kFirstLiteralIndex = 1;
4969 V8_EXPORT_PRIVATE static const int kFeedbackVectorOffset;
4970 static const int kOffsetToFirstLiteral;
4971
4972 static int OffsetOfLiteralAt(int index) {
4973 return OffsetOfElementAt(index + kFirstLiteralIndex);
4974 }
4975
4976 inline TypeFeedbackVector* feedback_vector() const;
4977 inline void set_feedback_vector(TypeFeedbackVector* vector);
4978 inline Object* literal(int literal_index) const;
4979 inline void set_literal(int literal_index, Object* literal);
4980 inline void set_literal_undefined(int literal_index);
4981 inline int literals_count() const;
4982
4983 static Handle<LiteralsArray> New(Isolate* isolate,
4984 Handle<TypeFeedbackVector> vector,
4985 int number_of_literals,
4986 PretenureFlag pretenure = TENURED);
4987
4988 DECLARE_CAST(LiteralsArray)
4989
4990 private:
4991 inline Object* get(int index) const;
4992 inline void set(int index, Object* value);
4993 inline void set(int index, Smi* value);
4994 inline void set(int index, Object* value, WriteBarrierMode mode);
4995 };
4996
4997
4998 class TemplateList : public FixedArray { 4959 class TemplateList : public FixedArray {
4999 public: 4960 public:
5000 static Handle<TemplateList> New(Isolate* isolate, int size); 4961 static Handle<TemplateList> New(Isolate* isolate, int size);
5001 inline int length() const; 4962 inline int length() const;
5002 inline Object* get(int index) const; 4963 inline Object* get(int index) const;
5003 inline void set(int index, Object* value); 4964 inline void set(int index, Object* value);
5004 static Handle<TemplateList> Add(Isolate* isolate, Handle<TemplateList> list, 4965 static Handle<TemplateList> Add(Isolate* isolate, Handle<TemplateList> list,
5005 Handle<Object> value); 4966 Handle<Object> value);
5006 DECLARE_CAST(TemplateList) 4967 DECLARE_CAST(TemplateList)
5007 private: 4968 private:
(...skipping 2117 matching lines...) Expand 10 before | Expand all | Expand 10 after
7125 kTypedArrayEntries, 7086 kTypedArrayEntries,
7126 kTypedArrayKeys, 7087 kTypedArrayKeys,
7127 kTypedArrayLength, 7088 kTypedArrayLength,
7128 kTypedArrayValues, 7089 kTypedArrayValues,
7129 kSharedArrayBufferByteLength, 7090 kSharedArrayBufferByteLength,
7130 kStringIterator, 7091 kStringIterator,
7131 kStringIteratorNext, 7092 kStringIteratorNext,
7132 }; 7093 };
7133 7094
7134 // Result of searching in an optimized code map of a SharedFunctionInfo. Note 7095 // Result of searching in an optimized code map of a SharedFunctionInfo. Note
7135 // that both {code} and {literals} can be NULL to pass search result status. 7096 // that both {code} and {vector} can be NULL to pass search result status.
7136 struct CodeAndLiterals { 7097 struct CodeAndVector {
7137 Code* code; // Cached optimized code. 7098 Code* code; // Cached optimized code.
7138 LiteralsArray* literals; // Cached literals array. 7099 TypeFeedbackVector* vector; // Cached feedback vector.
7139 }; 7100 };
7140 7101
7141 // SharedFunctionInfo describes the JSFunction information that can be 7102 // SharedFunctionInfo describes the JSFunction information that can be
7142 // shared by multiple instances of the function. 7103 // shared by multiple instances of the function.
7143 class SharedFunctionInfo: public HeapObject { 7104 class SharedFunctionInfo: public HeapObject {
7144 public: 7105 public:
7145 // [name]: Function name. 7106 // [name]: Function name.
7146 DECL_ACCESSORS(name, Object) 7107 DECL_ACCESSORS(name, Object)
7147 7108
7148 // [code]: Function code. 7109 // [code]: Function code.
(...skipping 15 matching lines...) Expand all
7164 inline bool HasBaselineCode() const; 7125 inline bool HasBaselineCode() const;
7165 7126
7166 // [optimized_code_map]: Map from native context to optimized code 7127 // [optimized_code_map]: Map from native context to optimized code
7167 // and a shared literals array. 7128 // and a shared literals array.
7168 DECL_ACCESSORS(optimized_code_map, FixedArray) 7129 DECL_ACCESSORS(optimized_code_map, FixedArray)
7169 7130
7170 // Returns entry from optimized code map for specified context and OSR entry. 7131 // Returns entry from optimized code map for specified context and OSR entry.
7171 // Note that {code == nullptr, literals == nullptr} indicates no matching 7132 // Note that {code == nullptr, literals == nullptr} indicates no matching
7172 // entry has been found, whereas {code, literals == nullptr} indicates that 7133 // entry has been found, whereas {code, literals == nullptr} indicates that
7173 // code is context-independent. 7134 // code is context-independent.
7174 CodeAndLiterals SearchOptimizedCodeMap(Context* native_context, 7135 CodeAndVector SearchOptimizedCodeMap(Context* native_context,
7175 BailoutId osr_ast_id); 7136 BailoutId osr_ast_id);
7176 7137
7177 // Clear optimized code map. 7138 // Clear optimized code map.
7178 void ClearOptimizedCodeMap(); 7139 void ClearOptimizedCodeMap();
7179 7140
7180 // Like ClearOptimizedCodeMap, but preserves literals. 7141 // Like ClearOptimizedCodeMap, but preserves literals.
7181 void ClearCodeFromOptimizedCodeMap(); 7142 void ClearCodeFromOptimizedCodeMap();
7182 7143
7183 // We have a special root FixedArray with the right shape and values 7144 // We have a special root FixedArray with the right shape and values
7184 // to represent the cleared optimized code map. This predicate checks 7145 // to represent the cleared optimized code map. This predicate checks
7185 // if that root is installed. 7146 // if that root is installed.
7186 inline bool OptimizedCodeMapIsCleared() const; 7147 inline bool OptimizedCodeMapIsCleared() const;
7187 7148
7188 // Removes a specific optimized code object from the optimized code map. 7149 // Removes a specific optimized code object from the optimized code map.
7189 // In case of non-OSR the code reference is cleared from the cache entry but 7150 // In case of non-OSR the code reference is cleared from the cache entry but
7190 // the entry itself is left in the map in order to proceed sharing literals. 7151 // the entry itself is left in the map in order to proceed sharing literals.
7191 void EvictFromOptimizedCodeMap(Code* optimized_code, const char* reason); 7152 void EvictFromOptimizedCodeMap(Code* optimized_code, const char* reason);
7192 7153
7193 static Handle<LiteralsArray> FindOrCreateLiterals( 7154 static Handle<TypeFeedbackVector> FindOrCreateVector(
7194 Handle<SharedFunctionInfo> shared, Handle<Context> native_context); 7155 Handle<SharedFunctionInfo> shared, Handle<Context> native_context);
7195 7156
7196 // Add or update entry in the optimized code map for context-dependent code. 7157 // Add or update entry in the optimized code map for context-dependent code.
7197 // If {code} is not given, then an existing entry's code won't be overwritten. 7158 // If {code} is not given, then an existing entry's code won't be overwritten.
7198 static void AddToOptimizedCodeMap(Handle<SharedFunctionInfo> shared, 7159 static void AddToOptimizedCodeMap(Handle<SharedFunctionInfo> shared,
7199 Handle<Context> native_context, 7160 Handle<Context> native_context,
7200 MaybeHandle<Code> code, 7161 MaybeHandle<Code> code,
7201 Handle<LiteralsArray> literals, 7162 Handle<TypeFeedbackVector> vector,
7202 BailoutId osr_ast_id); 7163 BailoutId osr_ast_id);
7203 7164
7204 // Set up the link between shared function info and the script. The shared 7165 // Set up the link between shared function info and the script. The shared
7205 // function info is added to the list on the script. 7166 // function info is added to the list on the script.
7206 V8_EXPORT_PRIVATE static void SetScript(Handle<SharedFunctionInfo> shared, 7167 V8_EXPORT_PRIVATE static void SetScript(Handle<SharedFunctionInfo> shared,
7207 Handle<Object> script_object); 7168 Handle<Object> script_object);
7208 7169
7209 // Layout description of the optimized code map. 7170 // Layout description of the optimized code map.
7210 static const int kEntriesStart = 0; 7171 static const int kEntriesStart = 0;
7211 static const int kContextOffset = 0; 7172 static const int kContextOffset = 0;
7212 static const int kCachedCodeOffset = 1; 7173 static const int kCachedCodeOffset = 1;
7213 static const int kLiteralsOffset = 2; 7174 static const int kFeedbackVectorOffset = 2;
7214 static const int kEntryLength = 3; 7175 static const int kEntryLength = 3;
7215 static const int kInitialLength = kEntriesStart + kEntryLength; 7176 static const int kInitialLength = kEntriesStart + kEntryLength;
7216 7177
7217 static const int kNotFound = -1; 7178 static const int kNotFound = -1;
7218 7179
7219 // Helpers for assembly code that does a backwards walk of the optimized code 7180 // Helpers for assembly code that does a backwards walk of the optimized code
7220 // map. 7181 // map.
7221 static const int kOffsetToPreviousContext = 7182 static const int kOffsetToPreviousContext =
7222 FixedArray::kHeaderSize + kPointerSize * (kContextOffset - kEntryLength); 7183 FixedArray::kHeaderSize + kPointerSize * (kContextOffset - kEntryLength);
7223 static const int kOffsetToPreviousCachedCode = 7184 static const int kOffsetToPreviousCachedCode =
7224 FixedArray::kHeaderSize + 7185 FixedArray::kHeaderSize +
7225 kPointerSize * (kCachedCodeOffset - kEntryLength); 7186 kPointerSize * (kCachedCodeOffset - kEntryLength);
7226 static const int kOffsetToPreviousLiterals = 7187 static const int kOffsetToPreviousLiterals =
7227 FixedArray::kHeaderSize + kPointerSize * (kLiteralsOffset - kEntryLength); 7188 FixedArray::kHeaderSize +
7189 kPointerSize * (kFeedbackVectorOffset - kEntryLength);
7228 7190
7229 // [scope_info]: Scope info. 7191 // [scope_info]: Scope info.
7230 DECL_ACCESSORS(scope_info, ScopeInfo) 7192 DECL_ACCESSORS(scope_info, ScopeInfo)
7231 7193
7232 // The outer scope info for the purpose of parsing this function, or the hole 7194 // The outer scope info for the purpose of parsing this function, or the hole
7233 // value if it isn't yet known. 7195 // value if it isn't yet known.
7234 DECL_ACCESSORS(outer_scope_info, HeapObject) 7196 DECL_ACCESSORS(outer_scope_info, HeapObject)
7235 7197
7236 // [construct stub]: Code stub for constructing instances of this function. 7198 // [construct stub]: Code stub for constructing instances of this function.
7237 DECL_ACCESSORS(construct_stub, Code) 7199 DECL_ACCESSORS(construct_stub, Code)
(...skipping 939 matching lines...) Expand 10 before | Expand all | Expand 10 after
8177 inline bool IsMarkedForBaseline(); 8139 inline bool IsMarkedForBaseline();
8178 inline bool IsMarkedForOptimization(); 8140 inline bool IsMarkedForOptimization();
8179 inline bool IsMarkedForConcurrentOptimization(); 8141 inline bool IsMarkedForConcurrentOptimization();
8180 8142
8181 // Tells whether or not the function is on the concurrent recompilation queue. 8143 // Tells whether or not the function is on the concurrent recompilation queue.
8182 inline bool IsInOptimizationQueue(); 8144 inline bool IsInOptimizationQueue();
8183 8145
8184 // Completes inobject slack tracking on initial map if it is active. 8146 // Completes inobject slack tracking on initial map if it is active.
8185 inline void CompleteInobjectSlackTrackingIfActive(); 8147 inline void CompleteInobjectSlackTrackingIfActive();
8186 8148
8187 // [literals]: Fixed array holding the materialized literals. 8149 // [feedback_vector]: Fixed array holding the feedback vector.
8188 // 8150 DECL_ACCESSORS(feedback_vector, TypeFeedbackVector)
8189 // If the function contains object, regexp or array literals, the
8190 // literals array prefix contains the object, regexp, and array
8191 // function to be used when creating these literals. This is
8192 // necessary so that we do not dynamically lookup the object, regexp
8193 // or array functions. Performing a dynamic lookup, we might end up
8194 // using the functions from a new context that we should not have
8195 // access to. For API objects we store the boilerplate in the literal array.
8196 DECL_ACCESSORS(literals, LiteralsArray)
8197 8151
8198 static void EnsureLiterals(Handle<JSFunction> function); 8152 static void EnsureLiterals(Handle<JSFunction> function);
8199 inline TypeFeedbackVector* feedback_vector();
8200 8153
8201 // Unconditionally clear the type feedback vector (including vector ICs). 8154 // Unconditionally clear the type feedback vector (including vector ICs).
8202 void ClearTypeFeedbackInfo(); 8155 void ClearTypeFeedbackInfo();
8203 8156
8204 // Clear the type feedback vector with a more subtle policy at GC time. 8157 // Clear the type feedback vector with a more subtle policy at GC time.
8205 void ClearTypeFeedbackInfoAtGCTime(); 8158 void ClearTypeFeedbackInfoAtGCTime();
8206 8159
8207 // The initial map for an object created by this constructor. 8160 // The initial map for an object created by this constructor.
8208 inline Map* initial_map(); 8161 inline Map* initial_map();
8209 static void SetInitialMap(Handle<JSFunction> function, Handle<Map> map, 8162 static void SetInitialMap(Handle<JSFunction> function, Handle<Map> map,
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
8305 // The function's string representation implemented according to 8258 // The function's string representation implemented according to
8306 // ES6 section 19.2.3.5 Function.prototype.toString ( ). 8259 // ES6 section 19.2.3.5 Function.prototype.toString ( ).
8307 static Handle<String> ToString(Handle<JSFunction> function); 8260 static Handle<String> ToString(Handle<JSFunction> function);
8308 8261
8309 // Layout descriptors. The last property (from kNonWeakFieldsEndOffset to 8262 // Layout descriptors. The last property (from kNonWeakFieldsEndOffset to
8310 // kSize) is weak and has special handling during garbage collection. 8263 // kSize) is weak and has special handling during garbage collection.
8311 static const int kPrototypeOrInitialMapOffset = JSObject::kHeaderSize; 8264 static const int kPrototypeOrInitialMapOffset = JSObject::kHeaderSize;
8312 static const int kSharedFunctionInfoOffset = 8265 static const int kSharedFunctionInfoOffset =
8313 kPrototypeOrInitialMapOffset + kPointerSize; 8266 kPrototypeOrInitialMapOffset + kPointerSize;
8314 static const int kContextOffset = kSharedFunctionInfoOffset + kPointerSize; 8267 static const int kContextOffset = kSharedFunctionInfoOffset + kPointerSize;
8315 static const int kLiteralsOffset = kContextOffset + kPointerSize; 8268 static const int kFeedbackVectorOffset = kContextOffset + kPointerSize;
8316 static const int kNonWeakFieldsEndOffset = kLiteralsOffset + kPointerSize; 8269 static const int kNonWeakFieldsEndOffset =
8270 kFeedbackVectorOffset + kPointerSize;
8317 static const int kCodeEntryOffset = kNonWeakFieldsEndOffset; 8271 static const int kCodeEntryOffset = kNonWeakFieldsEndOffset;
8318 static const int kNextFunctionLinkOffset = kCodeEntryOffset + kPointerSize; 8272 static const int kNextFunctionLinkOffset = kCodeEntryOffset + kPointerSize;
8319 static const int kSize = kNextFunctionLinkOffset + kPointerSize; 8273 static const int kSize = kNextFunctionLinkOffset + kPointerSize;
8320 8274
8321 private: 8275 private:
8322 DISALLOW_IMPLICIT_CONSTRUCTORS(JSFunction); 8276 DISALLOW_IMPLICIT_CONSTRUCTORS(JSFunction);
8323 }; 8277 };
8324 8278
8325 8279
8326 // JSGlobalProxy's prototype must be a JSGlobalObject or null, 8280 // JSGlobalProxy's prototype must be a JSGlobalObject or null,
(...skipping 3395 matching lines...) Expand 10 before | Expand all | Expand 10 after
11722 } 11676 }
11723 }; 11677 };
11724 11678
11725 11679
11726 } // NOLINT, false-positive due to second-order macros. 11680 } // NOLINT, false-positive due to second-order macros.
11727 } // NOLINT, false-positive due to second-order macros. 11681 } // NOLINT, false-positive due to second-order macros.
11728 11682
11729 #include "src/objects/object-macros-undef.h" 11683 #include "src/objects/object-macros-undef.h"
11730 11684
11731 #endif // V8_OBJECTS_H_ 11685 #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