5 #ifndef V8_MAP_UPDATER_H_ 6 #define V8_MAP_UPDATER_H_ 8 #include "src/elements-kind.h" 9 #include "src/field-type.h" 10 #include "src/globals.h" 11 #include "src/handles.h" 12 #include "src/objects/map.h" 13 #include "src/property-details.h" 53 PropertyAttributes attributes,
54 PropertyConstness constness,
59 Handle<Map> ReconfigureElementsKind(ElementsKind elements_kind);
66 enum State { kInitialized, kAtRootMap, kAtTargetMap, kEnd };
70 State TryRecofigureToDataFieldInplace();
82 State FindTargetMap();
103 State ConstructNewMap();
108 State CopyGeneralizeAllFields(
const char* reason);
111 inline Name GetKey(
int descriptor)
const;
119 inline Object* GetValue(
int descriptor)
const;
123 inline FieldType GetFieldType(
int descriptor)
const;
130 int descriptor, PropertyLocation location,
141 void GeneralizeField(
Handle<Map> map,
int modify_index,
142 PropertyConstness new_constness,
154 State state_ = kInitialized;
155 ElementsKind new_elements_kind_;
156 bool is_transitionable_fast_elements_kind_;
160 int modified_descriptor_ = -1;
161 PropertyKind new_kind_ = kData;
162 PropertyAttributes new_attributes_ = NONE;
163 PropertyConstness new_constness_ = PropertyConstness::kMutable;
164 PropertyLocation new_location_ = kField;
177 #endif // V8_MAP_UPDATER_H_