| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 75573fce9212db1c82c48df780e3cdea5254586f..3ec5924fde6a9601ddbde9ff27581f723ae0b8f8 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -280,7 +280,11 @@ enum DebugExtraICState {
|
| // 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 };
|
| +enum SimpleTransitionFlag {
|
| + SIMPLE_PROPERTY_TRANSITION,
|
| + PROPERTY_TRANSITION,
|
| + SPECIAL_TRANSITION
|
| +};
|
|
|
|
|
| // Indicates whether we are only interested in the descriptors of a particular
|
| @@ -5824,7 +5828,9 @@ class Map: public HeapObject {
|
| inline Map* elements_transition_map();
|
|
|
| inline Map* GetTransition(int transition_index);
|
| - inline int SearchTransition(Name* name);
|
| + inline int SearchSpecialTransition(Symbol* name);
|
| + inline int SearchTransition(PropertyType type, Name* name,
|
| + PropertyAttributes attributes);
|
| inline FixedArrayBase* GetInitialElements();
|
|
|
| DECL_ACCESSORS(transitions, TransitionArray)
|
| @@ -5979,6 +5985,7 @@ class Map: public HeapObject {
|
| LookupResult* result);
|
|
|
| inline void LookupTransition(JSObject* holder, Name* name,
|
| + PropertyAttributes attributes,
|
| LookupResult* result);
|
|
|
| inline PropertyDetails GetLastDescriptorDetails();
|
| @@ -6369,7 +6376,8 @@ class Map: public HeapObject {
|
| Handle<Map> map, Handle<DescriptorArray> descriptors,
|
| Handle<LayoutDescriptor> layout_descriptor, TransitionFlag flag,
|
| MaybeHandle<Name> maybe_name, const char* reason,
|
| - SimpleTransitionFlag simple_flag = FULL_TRANSITION);
|
| + SimpleTransitionFlag simple_flag);
|
| +
|
| static Handle<Map> CopyReplaceDescriptor(Handle<Map> map,
|
| Handle<DescriptorArray> descriptors,
|
| Descriptor* descriptor,
|
| @@ -6397,7 +6405,9 @@ class Map: public HeapObject {
|
| void ZapTransitions();
|
|
|
| void DeprecateTransitionTree();
|
| - bool DeprecateTarget(Name* key, DescriptorArray* new_descriptors,
|
| + bool DeprecateTarget(PropertyType type, Name* key,
|
| + PropertyAttributes attributes,
|
| + DescriptorArray* new_descriptors,
|
| LayoutDescriptor* new_layout_descriptor);
|
|
|
| Map* FindLastMatchMap(int verbatim, int length, DescriptorArray* descriptors);
|
|
|