Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 96b4011664bef5255601b653a0a664e1a7367551..2f3affa593be4140743043820b17771a9518b092 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -232,6 +232,13 @@ static inline bool IsGrowStoreMode(KeyedAccessStoreMode store_mode) { |
enum WriteBarrierMode { SKIP_WRITE_BARRIER, UPDATE_WRITE_BARRIER }; |
+// Indicates whether a value can be loaded as a constant. |
+enum StoreMode { |
+ ALLOW_AS_CONSTANT, |
+ FORCE_FIELD |
+}; |
+ |
+ |
// PropertyNormalizationMode is used to specify whether to keep |
// inobject properties when normalizing properties of a JSObject. |
enum PropertyNormalizationMode { |
@@ -258,7 +265,6 @@ enum CreationFlag { |
// Indicates whether transitions can be added to a source map or not. |
enum TransitionFlag { |
INSERT_TRANSITION, |
- OMIT_TRANSITION_KEEP_REPRESENTATIONS, |
OMIT_TRANSITION |
}; |
@@ -1926,12 +1932,6 @@ class JSReceiver: public HeapObject { |
CERTAINLY_NOT_STORE_FROM_KEYED |
}; |
- // Indicates whether a value can be loaded as a constant. |
- enum StoreMode { |
- ALLOW_AS_CONSTANT, |
- FORCE_FIELD |
- }; |
- |
// Internal properties (e.g. the hidden properties dictionary) might |
// be added even though the receiver is non-extensible. |
enum ExtensibilityCheck { |
@@ -2522,13 +2522,6 @@ class JSObject: public JSReceiver { |
MUST_USE_RESULT MaybeObject* TransitionElementsKind(ElementsKind to_kind); |
MUST_USE_RESULT MaybeObject* UpdateAllocationSite(ElementsKind to_kind); |
- // Replaces an existing transition with a transition to a map with a FIELD. |
- MUST_USE_RESULT MaybeObject* ConvertTransitionToMapTransition( |
- int transition_index, |
- Name* name, |
- Object* new_value, |
- PropertyAttributes attributes); |
- |
// Converts a descriptor of any other type to a real field, backed by the |
// properties array. |
MUST_USE_RESULT MaybeObject* ConvertDescriptorToField( |
@@ -2540,7 +2533,8 @@ class JSObject: public JSReceiver { |
MUST_USE_RESULT MaybeObject* MigrateToMap(Map* new_map); |
MUST_USE_RESULT MaybeObject* GeneralizeFieldRepresentation( |
int modify_index, |
- Representation new_representation); |
+ Representation new_representation, |
+ StoreMode store_mode); |
// Add a property to a fast-case object. |
MUST_USE_RESULT MaybeObject* AddFastProperty( |
@@ -3190,6 +3184,8 @@ class DescriptorArray: public FixedArray { |
MUST_USE_RESULT MaybeObject* Merge(int verbatim, |
int valid, |
int new_size, |
+ int modify_index, |
+ StoreMode store_mode, |
DescriptorArray* other); |
bool IsMoreGeneralThan(int verbatim, |
@@ -5619,16 +5615,23 @@ class Map: public HeapObject { |
static Handle<Map> GeneralizeRepresentation( |
Handle<Map> map, |
int modify_index, |
- Representation new_representation); |
+ Representation new_representation, |
+ StoreMode store_mode); |
MUST_USE_RESULT MaybeObject* GeneralizeRepresentation( |
int modify_index, |
- Representation representation); |
- MUST_USE_RESULT MaybeObject* CopyGeneralizeAllRepresentations(); |
+ Representation representation, |
+ StoreMode store_mode); |
+ MUST_USE_RESULT MaybeObject* CopyGeneralizeAllRepresentations( |
+ int modify_index, |
+ StoreMode store_mode, |
+ 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); |