Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 1f656bc0b50bbc0f1ad27a19e6345ced0a244515..b99a483f4822911f617fe3dd73a69fd20a58f86b 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -6205,21 +6205,13 @@ class Map: public HeapObject { |
inline Map* elements_transition_map(); |
static Handle<TransitionArray> SetElementsTransitionMap( |
Handle<Map> map, Handle<Map> transitioned_map); |
- inline void SetTransition(int transition_index, Map* target); |
inline Map* GetTransition(int transition_index); |
inline int SearchTransition(Name* name); |
inline FixedArrayBase* GetInitialElements(); |
DECL_ACCESSORS(transitions, TransitionArray) |
- inline void ClearTransitions(Heap* heap, |
- WriteBarrierMode mode = UPDATE_WRITE_BARRIER); |
- |
- void DeprecateTransitionTree(); |
- void DeprecateTarget(Name* key, DescriptorArray* new_descriptors); |
Map* FindRootMap(); |
- Map* FindUpdatedMap(int verbatim, int length, DescriptorArray* descriptors); |
- Map* FindLastMatchMap(int verbatim, int length, DescriptorArray* descriptors); |
inline int GetInObjectPropertyOffset(int index); |
@@ -6244,15 +6236,6 @@ class Map: public HeapObject { |
PropertyAttributes attributes, |
const char* reason); |
- void PrintGeneralization(FILE* file, |
- const char* reason, |
- int modify_index, |
- int split, |
- int descriptors, |
- bool constant_to_field, |
- Representation old_representation, |
- Representation new_representation); |
- |
// Returns the constructor name (the name (possibly, inferred name) of the |
// function that was used to instantiate the object). |
String* constructor_name(); |
@@ -6318,8 +6301,6 @@ class Map: public HeapObject { |
// 2 + 2 * i: prototype |
// 3 + 2 * i: target map |
inline FixedArray* GetPrototypeTransitions(); |
- static inline void SetPrototypeTransitions( |
- Handle<Map> map, Handle<FixedArray> prototype_transitions); |
inline bool HasPrototypeTransitions(); |
static const int kProtoTransitionHeaderSize = 1; |
@@ -6411,7 +6392,6 @@ class Map: public HeapObject { |
// Same as above, but does not touch the prototype chain. |
static Handle<Map> CurrentMapForDeprecatedInternal(Handle<Map> map); |
- static Handle<Map> RawCopy(Handle<Map> map, int instance_size); |
static Handle<Map> CopyDropDescriptors(Handle<Map> map); |
static Handle<Map> CopyReplaceDescriptors( |
Handle<Map> map, |
@@ -6424,25 +6404,17 @@ class Map: public HeapObject { |
Handle<DescriptorArray> descriptors, |
TransitionFlag flag, |
SimpleTransitionFlag simple_flag = FULL_TRANSITION); |
- static Handle<Map> CopyInstallDescriptors( |
- Handle<Map> map, |
- int new_descriptor, |
- Handle<DescriptorArray> descriptors); |
- static Handle<Map> ShareDescriptor(Handle<Map> map, |
- Handle<DescriptorArray> descriptors, |
- Descriptor* descriptor); |
static Handle<Map> CopyAddDescriptor(Handle<Map> map, |
Descriptor* descriptor, |
TransitionFlag flag); |
static Handle<Map> CopyInsertDescriptor(Handle<Map> map, |
Descriptor* descriptor, |
TransitionFlag flag); |
- static Handle<Map> CopyReplaceDescriptor( |
- Handle<Map> map, |
- Handle<DescriptorArray> descriptors, |
- Descriptor* descriptor, |
- int index, |
- TransitionFlag flag); |
+ static Handle<Map> CopyReplaceDescriptor(Handle<Map> map, |
+ Handle<DescriptorArray> descriptors, |
+ Descriptor* descriptor, |
+ int index, |
+ TransitionFlag flag); |
static Handle<Map> AsElementsKind(Handle<Map> map, ElementsKind kind); |
@@ -6518,14 +6490,6 @@ class Map: public HeapObject { |
// Computes a hash value for this map, to be used in HashTables and such. |
int Hash(); |
- bool EquivalentToForTransition(Map* other); |
- |
- // Compares this map to another to see if they describe equivalent objects. |
- // If |mode| is set to CLEAR_INOBJECT_PROPERTIES, |other| is treated as if |
- // it had exactly zero inobject properties. |
- // The "shared" flags of both this map and |other| are ignored. |
- bool EquivalentToForNormalization(Map* other, PropertyNormalizationMode mode); |
- |
// Returns the map that this map transitions to if its elements_kind |
// is changed to |elements_kind|, or NULL if no such map is cached yet. |
// |safe_to_add_transitions| is set to false if adding transitions is not |
@@ -6538,15 +6502,6 @@ class Map: public HeapObject { |
Handle<Map> FindTransitionedMap(MapHandleList* candidates); |
Map* FindTransitionedMap(MapList* candidates); |
- // Zaps the contents of backing data structures. Note that the |
- // heap verifier (i.e. VerifyMarkingVisitor) relies on zapping of objects |
- // holding weak references when incremental marking is used, because it also |
- // iterates over objects that are otherwise unreachable. |
- // In general we only want to call these functions in release mode when |
- // heap verification is turned on. |
- void ZapPrototypeTransitions(); |
- void ZapTransitions(); |
- |
bool CanTransition() { |
// Only JSObject and subtypes have map transitions and back pointers. |
STATIC_ASSERT(LAST_TYPE == LAST_JS_OBJECT_TYPE); |
@@ -6607,11 +6562,8 @@ class Map: public HeapObject { |
// transitions are in the form of a map where the keys are prototype objects |
// and the values are the maps the are transitioned to. |
static const int kMaxCachedPrototypeTransitions = 256; |
- static Handle<Map> GetPrototypeTransition(Handle<Map> map, |
- Handle<Object> prototype); |
- static Handle<Map> PutPrototypeTransition(Handle<Map> map, |
- Handle<Object> prototype, |
- Handle<Map> target_map); |
+ static Handle<Map> TransitionToPrototype(Handle<Map> map, |
+ Handle<Object> prototype); |
static const int kMaxPreAllocatedPropertyFields = 255; |
@@ -6695,7 +6647,57 @@ class Map: public HeapObject { |
kPointerFieldsEndOffset, |
kSize> BodyDescriptor; |
+ // Compares this map to another to see if they describe equivalent objects. |
+ // If |mode| is set to CLEAR_INOBJECT_PROPERTIES, |other| is treated as if |
+ // it had exactly zero inobject properties. |
+ // The "shared" flags of both this map and |other| are ignored. |
+ bool EquivalentToForNormalization(Map* other, PropertyNormalizationMode mode); |
+ |
private: |
+ bool EquivalentToForTransition(Map* other); |
+ static Handle<Map> RawCopy(Handle<Map> map, int instance_size); |
+ static Handle<Map> ShareDescriptor(Handle<Map> map, |
+ Handle<DescriptorArray> descriptors, |
+ Descriptor* descriptor); |
+ static Handle<Map> CopyInstallDescriptors( |
+ Handle<Map> map, |
+ int new_descriptor, |
+ Handle<DescriptorArray> descriptors); |
+ |
+ // Zaps the contents of backing data structures. Note that the |
+ // heap verifier (i.e. VerifyMarkingVisitor) relies on zapping of objects |
+ // holding weak references when incremental marking is used, because it also |
+ // iterates over objects that are otherwise unreachable. |
+ // In general we only want to call these functions in release mode when |
+ // heap verification is turned on. |
+ void ZapPrototypeTransitions(); |
+ void ZapTransitions(); |
+ |
+ void DeprecateTransitionTree(); |
+ void DeprecateTarget(Name* key, DescriptorArray* new_descriptors); |
+ |
+ Map* FindUpdatedMap(int verbatim, int length, DescriptorArray* descriptors); |
+ Map* FindLastMatchMap(int verbatim, int length, DescriptorArray* descriptors); |
+ |
+ void PrintGeneralization(FILE* file, |
+ const char* reason, |
+ int modify_index, |
+ int split, |
+ int descriptors, |
+ bool constant_to_field, |
+ Representation old_representation, |
+ Representation new_representation); |
+ |
+ static inline void SetPrototypeTransitions( |
+ Handle<Map> map, |
+ Handle<FixedArray> prototype_transitions); |
+ |
+ static Handle<Map> GetPrototypeTransition(Handle<Map> map, |
+ Handle<Object> prototype); |
+ static Handle<Map> PutPrototypeTransition(Handle<Map> map, |
+ Handle<Object> prototype, |
+ Handle<Map> target_map); |
+ |
DISALLOW_IMPLICIT_CONSTRUCTORS(Map); |
}; |