Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 5fa275ef25beec5ac6b406c66d1d26240cbd49df..141db175e97706461bf4d5491c4bd45e8656e4e7 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -177,6 +177,16 @@ enum TransitionFlag { |
OMIT_TRANSITION |
}; |
+ |
+// Indicates whether the transition is simple: the target map of the transition |
+// either extends the current map with a new property, or it modifies the |
+// property that was added last to the current map. |
+enum SimpleTransitionFlag { |
+ SIMPLE_TRANSITION, |
+ FULL_TRANSITION |
+}; |
+ |
+ |
// Indicates whether we are only interested in the descriptors of a particular |
// map, or in all descriptors in the descriptor array. |
enum DescriptorFlag { |
@@ -4836,7 +4846,9 @@ class Map: public HeapObject { |
Map* transitioned_map); |
inline void SetTransition(int transition_index, Map* target); |
inline Map* GetTransition(int transition_index); |
- MUST_USE_RESULT inline MaybeObject* AddTransition(String* key, Map* target); |
+ MUST_USE_RESULT inline MaybeObject* AddTransition(String* key, |
+ Map* target, |
+ SimpleTransitionFlag flag); |
DECL_ACCESSORS(transitions, TransitionArray) |
inline void ClearTransitions(Heap* heap, |
WriteBarrierMode mode = UPDATE_WRITE_BARRIER); |
@@ -4987,7 +4999,8 @@ class Map: public HeapObject { |
MUST_USE_RESULT MaybeObject* CopyReplaceDescriptors( |
DescriptorArray* descriptors, |
String* name, |
- TransitionFlag flag); |
+ TransitionFlag flag, |
+ int descriptor_index); |
MUST_USE_RESULT MaybeObject* ShareDescriptor(Descriptor* descriptor); |
MUST_USE_RESULT MaybeObject* CopyAddDescriptor(Descriptor* descriptor, |
TransitionFlag flag); |