| 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);
|
|
|
|
|