| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index dc928a6184ffd688f941250c3683c36aa054697e..e25334c81ea8c7cd908390c6b33b4651610b338c 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -4617,18 +4617,27 @@ class ScopeInfo : public FixedArray {
|
| // needs very limited number of distinct normalized maps.
|
| class NormalizedMapCache: public FixedArray {
|
| public:
|
| - static const int kEntries = 64;
|
| + static Handle<NormalizedMapCache> New(Isolate* isolate);
|
|
|
| - static Handle<Map> Get(Handle<NormalizedMapCache> cache,
|
| - Handle<Map> fast_map,
|
| - PropertyNormalizationMode mode);
|
| + MUST_USE_RESULT MaybeHandle<Map> Get(Handle<Map> fast_map,
|
| + PropertyNormalizationMode mode);
|
| + void Set(Handle<Map> fast_map, Handle<Map> normalized_map);
|
|
|
| void Clear();
|
|
|
| // Casting
|
| static inline NormalizedMapCache* cast(Object* obj);
|
| + static inline bool IsNormalizedMapCache(Object* obj);
|
|
|
| DECLARE_VERIFIER(NormalizedMapCache)
|
| + private:
|
| + static const int kEntries = 64;
|
| +
|
| + static inline int GetIndex(Handle<Map> map);
|
| +
|
| + // The following declarations hide base class methods.
|
| + Object* get(int index);
|
| + void set(int index, Object* value);
|
| };
|
|
|
|
|
| @@ -6121,6 +6130,8 @@ class Map: public HeapObject {
|
| PropertyAttributes attributes,
|
| const char* reason);
|
|
|
| + static Handle<Map> Normalize(Handle<Map> map, PropertyNormalizationMode mode);
|
| +
|
| // Returns the constructor name (the name (possibly, inferred name) of the
|
| // function that was used to instantiate the object).
|
| String* constructor_name();
|
| @@ -6314,10 +6325,6 @@ class Map: public HeapObject {
|
|
|
| static Handle<Map> CopyForFreeze(Handle<Map> map);
|
|
|
| - static Handle<Map> CopyNormalized(Handle<Map> map,
|
| - PropertyNormalizationMode mode,
|
| - NormalizedMapSharingMode sharing);
|
| -
|
| inline void AppendDescriptor(Descriptor* desc);
|
|
|
| // Returns a copy of the map, with all transitions dropped from the
|
| @@ -6411,11 +6418,6 @@ class Map: public HeapObject {
|
| return type == JS_GLOBAL_OBJECT_TYPE || type == JS_BUILTINS_OBJECT_TYPE;
|
| }
|
|
|
| - // Fires when the layout of an object with a leaf map changes.
|
| - // This includes adding transitions to the leaf map or changing
|
| - // the descriptor array.
|
| - inline void NotifyLeafMapLayoutChange();
|
| -
|
| inline bool CanOmitMapChecks();
|
|
|
| static void AddDependentCompilationInfo(Handle<Map> map,
|
| @@ -6565,6 +6567,15 @@ class Map: public HeapObject {
|
| MaybeHandle<Name> maybe_name,
|
| SimpleTransitionFlag simple_flag = FULL_TRANSITION);
|
|
|
| + static Handle<Map> CopyNormalized(Handle<Map> map,
|
| + PropertyNormalizationMode mode,
|
| + NormalizedMapSharingMode sharing);
|
| +
|
| + // Fires when the layout of an object with a leaf map changes.
|
| + // This includes adding transitions to the leaf map or changing
|
| + // the descriptor array.
|
| + inline void NotifyLeafMapLayoutChange();
|
| +
|
| // Zaps the contents of backing data structures. Note that the
|
| // heap verifier (i.e. VerifyMarkingVisitor) relies on zapping of objects
|
| // holding weak references when incremental marking is used, because it also
|
|
|