Index: src/transitions.h |
diff --git a/src/transitions.h b/src/transitions.h |
index 63e52badcdf4a96066e710dbfe20cd848b44b05e..e79d6cae54f7d74c51c5380286b974f904ab1fa1 100644 |
--- a/src/transitions.h |
+++ b/src/transitions.h |
@@ -72,9 +72,9 @@ class TransitionArray: public FixedArray { |
inline void ClearElementsTransition(); |
inline DescriptorArray* descriptors(); |
- inline void set_descriptors(DescriptorArray* descriptors, |
- WriteBarrierMode mode = UPDATE_WRITE_BARRIER); |
- inline Object** GetDescriptorsSlot(); |
+ inline void set_descriptors(DescriptorArray* descriptors); |
+ inline JSGlobalPropertyCell* descriptors_pointer(); |
+ inline void set_descriptors_pointer(JSGlobalPropertyCell* pointer); |
inline Object* back_pointer_storage(); |
inline void set_back_pointer_storage( |
@@ -99,7 +99,11 @@ class TransitionArray: public FixedArray { |
inline int number_of_entries() { return number_of_transitions(); } |
// Allocate a new transition array with a single entry. |
- static MUST_USE_RESULT MaybeObject* NewWith(String* name, Map* target); |
+ static MUST_USE_RESULT MaybeObject* NewWith( |
+ String* name, |
+ Map* target, |
+ JSGlobalPropertyCell* descriptor_pointer, |
+ Object* back_pointer); |
// Copy the transition array, inserting a new transition. |
// TODO(verwaest): This should not cause an existing transition to be |
@@ -116,7 +120,9 @@ class TransitionArray: public FixedArray { |
inline int Search(String* name); |
// Allocates a TransitionArray. |
- MUST_USE_RESULT static MaybeObject* Allocate(int number_of_transitions); |
+ MUST_USE_RESULT static MaybeObject* Allocate( |
+ int number_of_transitions, |
+ JSGlobalPropertyCell* descriptors_cell); |
// Casting. |
static inline TransitionArray* cast(Object* obj); |
@@ -124,15 +130,15 @@ class TransitionArray: public FixedArray { |
// Constant for denoting key was not found. |
static const int kNotFound = -1; |
- static const int kDescriptorsIndex = 0; |
+ static const int kDescriptorsPointerIndex = 0; |
static const int kBackPointerStorageIndex = 1; |
static const int kElementsTransitionIndex = 2; |
static const int kPrototypeTransitionsIndex = 3; |
static const int kFirstIndex = 4; |
// Layout transition array header. |
- static const int kDescriptorsOffset = FixedArray::kHeaderSize; |
- static const int kBackPointerStorageOffset = kDescriptorsOffset + |
+ static const int kDescriptorsPointerOffset = FixedArray::kHeaderSize; |
+ static const int kBackPointerStorageOffset = kDescriptorsPointerOffset + |
kPointerSize; |
static const int kElementsTransitionOffset = kBackPointerStorageOffset + |
kPointerSize; |
@@ -153,7 +159,7 @@ class TransitionArray: public FixedArray { |
#endif |
#ifdef DEBUG |
- bool IsSortedNoDuplicates(); |
+ bool IsSortedNoDuplicates(int valid_entries = -1); |
bool IsConsistentWithBackPointers(Map* current_map); |
bool IsEqualTo(TransitionArray* other); |
#endif |