OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 6210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6221 #if TRACE_MAPS | 6221 #if TRACE_MAPS |
6222 static void TraceTransition(const char* what, Map* from, Map* to, Name* name); | 6222 static void TraceTransition(const char* what, Map* from, Map* to, Name* name); |
6223 static void TraceAllTransitions(Map* map); | 6223 static void TraceAllTransitions(Map* map); |
6224 #endif | 6224 #endif |
6225 | 6225 |
6226 static inline Handle<Map> CopyInstallDescriptorsForTesting( | 6226 static inline Handle<Map> CopyInstallDescriptorsForTesting( |
6227 Handle<Map> map, int new_descriptor, Handle<DescriptorArray> descriptors, | 6227 Handle<Map> map, int new_descriptor, Handle<DescriptorArray> descriptors, |
6228 Handle<LayoutDescriptor> layout_descriptor); | 6228 Handle<LayoutDescriptor> layout_descriptor); |
6229 | 6229 |
6230 private: | 6230 private: |
6231 static void ConnectElementsTransition(Handle<Map> parent, Handle<Map> child); | |
6232 static void ConnectTransition(Handle<Map> parent, Handle<Map> child, | 6231 static void ConnectTransition(Handle<Map> parent, Handle<Map> child, |
6233 Handle<Name> name, SimpleTransitionFlag flag); | 6232 Handle<Name> name, SimpleTransitionFlag flag); |
6234 | 6233 |
6235 bool EquivalentToForTransition(Map* other); | 6234 bool EquivalentToForTransition(Map* other); |
6236 static Handle<Map> RawCopy(Handle<Map> map, int instance_size); | 6235 static Handle<Map> RawCopy(Handle<Map> map, int instance_size); |
6237 static Handle<Map> ShareDescriptor(Handle<Map> map, | 6236 static Handle<Map> ShareDescriptor(Handle<Map> map, |
6238 Handle<DescriptorArray> descriptors, | 6237 Handle<DescriptorArray> descriptors, |
6239 Descriptor* descriptor); | 6238 Descriptor* descriptor); |
6240 static Handle<Map> CopyInstallDescriptors( | 6239 static Handle<Map> CopyInstallDescriptors( |
6241 Handle<Map> map, int new_descriptor, Handle<DescriptorArray> descriptors, | 6240 Handle<Map> map, int new_descriptor, Handle<DescriptorArray> descriptors, |
(...skipping 17 matching lines...) Expand all Loading... |
6259 PropertyAttributes attributes, const char** reason); | 6258 PropertyAttributes attributes, const char** reason); |
6260 | 6259 |
6261 static Handle<Map> CopyNormalized(Handle<Map> map, | 6260 static Handle<Map> CopyNormalized(Handle<Map> map, |
6262 PropertyNormalizationMode mode); | 6261 PropertyNormalizationMode mode); |
6263 | 6262 |
6264 // Fires when the layout of an object with a leaf map changes. | 6263 // Fires when the layout of an object with a leaf map changes. |
6265 // This includes adding transitions to the leaf map or changing | 6264 // This includes adding transitions to the leaf map or changing |
6266 // the descriptor array. | 6265 // the descriptor array. |
6267 inline void NotifyLeafMapLayoutChange(); | 6266 inline void NotifyLeafMapLayoutChange(); |
6268 | 6267 |
6269 static Handle<Map> TransitionElementsToSlow(Handle<Map> object, | |
6270 ElementsKind to_kind); | |
6271 | |
6272 void DeprecateTransitionTree(); | 6268 void DeprecateTransitionTree(); |
6273 bool DeprecateTarget(PropertyKind kind, Name* key, | 6269 bool DeprecateTarget(PropertyKind kind, Name* key, |
6274 PropertyAttributes attributes, | 6270 PropertyAttributes attributes, |
6275 DescriptorArray* new_descriptors, | 6271 DescriptorArray* new_descriptors, |
6276 LayoutDescriptor* new_layout_descriptor); | 6272 LayoutDescriptor* new_layout_descriptor); |
6277 | 6273 |
6278 Map* FindLastMatchMap(int verbatim, int length, DescriptorArray* descriptors); | 6274 Map* FindLastMatchMap(int verbatim, int length, DescriptorArray* descriptors); |
6279 | 6275 |
6280 // Update field type of the given descriptor to new representation and new | 6276 // Update field type of the given descriptor to new representation and new |
6281 // type. The type must be prepared for storing in descriptor array: | 6277 // type. The type must be prepared for storing in descriptor array: |
(...skipping 4540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10822 } else { | 10818 } else { |
10823 value &= ~(1 << bit_position); | 10819 value &= ~(1 << bit_position); |
10824 } | 10820 } |
10825 return value; | 10821 return value; |
10826 } | 10822 } |
10827 }; | 10823 }; |
10828 | 10824 |
10829 } } // namespace v8::internal | 10825 } } // namespace v8::internal |
10830 | 10826 |
10831 #endif // V8_OBJECTS_H_ | 10827 #endif // V8_OBJECTS_H_ |
OLD | NEW |