Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 283fc69838229cb190c167c2a926fc5b9d387071..02dbe9fe4e53b2af3685fc7592ec6338cd6d26e2 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -925,8 +925,6 @@ class MaybeObject BASE_EMBEDDED { |
V(ObjectHashTable) \ |
-class JSReceiver; |
- |
// Object is the abstract superclass for all classes in the |
// object hierarchy. |
// Object does not use any virtual functions to avoid the |
@@ -991,28 +989,28 @@ class Object : public MaybeObject { |
// Failure is returned otherwise. |
MUST_USE_RESULT inline MaybeObject* ToSmi(); |
- void Lookup(String* name, LookupResult* result); |
+ void Lookup(Name* name, LookupResult* result); |
// Property access. |
- MUST_USE_RESULT inline MaybeObject* GetProperty(String* key); |
+ MUST_USE_RESULT inline MaybeObject* GetProperty(Name* key); |
MUST_USE_RESULT inline MaybeObject* GetProperty( |
- String* key, |
+ Name* key, |
PropertyAttributes* attributes); |
MUST_USE_RESULT MaybeObject* GetPropertyWithReceiver( |
Object* receiver, |
- String* key, |
+ Name* key, |
PropertyAttributes* attributes); |
- static Handle<Object> GetProperty(Handle<Object> object, Handle<String> key); |
+ static Handle<Object> GetProperty(Handle<Object> object, Handle<Name> key); |
static Handle<Object> GetProperty(Handle<Object> object, |
Handle<Object> receiver, |
LookupResult* result, |
- Handle<String> key, |
+ Handle<Name> key, |
PropertyAttributes* attributes); |
MUST_USE_RESULT MaybeObject* GetProperty(Object* receiver, |
LookupResult* result, |
- String* key, |
+ Name* key, |
PropertyAttributes* attributes); |
MUST_USE_RESULT MaybeObject* GetPropertyWithDefinedGetter(Object* receiver, |
@@ -1479,20 +1477,20 @@ class JSReceiver: public HeapObject { |
static inline JSReceiver* cast(Object* obj); |
static Handle<Object> SetProperty(Handle<JSReceiver> object, |
- Handle<String> key, |
+ Handle<Name> key, |
Handle<Object> value, |
PropertyAttributes attributes, |
StrictModeFlag strict_mode); |
// Can cause GC. |
MUST_USE_RESULT MaybeObject* SetProperty( |
- String* key, |
+ Name* key, |
Object* value, |
PropertyAttributes attributes, |
StrictModeFlag strict_mode, |
StoreFromKeyed store_from_keyed = MAY_BE_STORE_FROM_KEYED); |
MUST_USE_RESULT MaybeObject* SetProperty( |
LookupResult* result, |
- String* key, |
+ Name* key, |
Object* value, |
PropertyAttributes attributes, |
StrictModeFlag strict_mode, |
@@ -1500,7 +1498,7 @@ class JSReceiver: public HeapObject { |
MUST_USE_RESULT MaybeObject* SetPropertyWithDefinedSetter(JSReceiver* setter, |
Object* value); |
- MUST_USE_RESULT MaybeObject* DeleteProperty(String* name, DeleteMode mode); |
+ MUST_USE_RESULT MaybeObject* DeleteProperty(Name* name, DeleteMode mode); |
MUST_USE_RESULT MaybeObject* DeleteElement(uint32_t index, DeleteMode mode); |
// Set the index'th array element. |
@@ -1521,17 +1519,17 @@ class JSReceiver: public HeapObject { |
// function that was used to instantiate the object). |
String* constructor_name(); |
- inline PropertyAttributes GetPropertyAttribute(String* name); |
+ inline PropertyAttributes GetPropertyAttribute(Name* name); |
PropertyAttributes GetPropertyAttributeWithReceiver(JSReceiver* receiver, |
- String* name); |
- PropertyAttributes GetLocalPropertyAttribute(String* name); |
+ Name* name); |
+ PropertyAttributes GetLocalPropertyAttribute(Name* name); |
inline PropertyAttributes GetElementAttribute(uint32_t index); |
inline PropertyAttributes GetLocalElementAttribute(uint32_t index); |
// Can cause a GC. |
- inline bool HasProperty(String* name); |
- inline bool HasLocalProperty(String* name); |
+ inline bool HasProperty(Name* name); |
+ inline bool HasLocalProperty(Name* name); |
inline bool HasElement(uint32_t index); |
inline bool HasLocalElement(uint32_t index); |
@@ -1551,9 +1549,9 @@ class JSReceiver: public HeapObject { |
// Lookup a property. If found, the result is valid and has |
// detailed information. |
- void LocalLookup(String* name, LookupResult* result, |
+ void LocalLookup(Name* name, LookupResult* result, |
bool search_hidden_prototypes = false); |
- void Lookup(String* name, LookupResult* result); |
+ void Lookup(Name* name, LookupResult* result); |
protected: |
Smi* GenerateIdentityHash(); |
@@ -1561,7 +1559,7 @@ class JSReceiver: public HeapObject { |
private: |
PropertyAttributes GetPropertyAttributeForResult(JSReceiver* receiver, |
LookupResult* result, |
- String* name, |
+ Name* name, |
bool continue_search); |
DISALLOW_IMPLICIT_CONSTRUCTORS(JSReceiver); |
@@ -1579,7 +1577,7 @@ class JSObject: public JSReceiver { |
DECL_ACCESSORS(properties, FixedArray) // Get and set fast properties. |
inline void initialize_properties(); |
inline bool HasFastProperties(); |
- inline StringDictionary* property_dictionary(); // Gets slow properties. |
+ inline NameDictionary* property_dictionary(); // Gets slow properties. |
// [elements]: The elements (properties with names that are integers). |
// |
@@ -1653,34 +1651,34 @@ class JSObject: public JSReceiver { |
MUST_USE_RESULT MaybeObject* GetPropertyWithCallback(Object* receiver, |
Object* structure, |
- String* name); |
+ Name* name); |
// Can cause GC. |
MUST_USE_RESULT MaybeObject* SetPropertyForResult(LookupResult* result, |
- String* key, |
+ Name* key, |
Object* value, |
PropertyAttributes attributes, |
StrictModeFlag strict_mode, |
StoreFromKeyed store_mode); |
MUST_USE_RESULT MaybeObject* SetPropertyWithFailedAccessCheck( |
LookupResult* result, |
- String* name, |
+ Name* name, |
Object* value, |
bool check_prototype, |
StrictModeFlag strict_mode); |
MUST_USE_RESULT MaybeObject* SetPropertyWithCallback( |
Object* structure, |
- String* name, |
+ Name* name, |
Object* value, |
JSObject* holder, |
StrictModeFlag strict_mode); |
MUST_USE_RESULT MaybeObject* SetPropertyWithInterceptor( |
- String* name, |
+ Name* name, |
Object* value, |
PropertyAttributes attributes, |
StrictModeFlag strict_mode); |
MUST_USE_RESULT MaybeObject* SetPropertyPostInterceptor( |
- String* name, |
+ Name* name, |
Object* value, |
PropertyAttributes attributes, |
StrictModeFlag strict_mode, |
@@ -1688,14 +1686,14 @@ class JSObject: public JSReceiver { |
static Handle<Object> SetLocalPropertyIgnoreAttributes( |
Handle<JSObject> object, |
- Handle<String> key, |
+ Handle<Name> key, |
Handle<Object> value, |
PropertyAttributes attributes); |
// Try to follow an existing transition to a field with attributes NONE. The |
// return value indicates whether the transition was successful. |
static inline bool TryTransitionToField(Handle<JSObject> object, |
- Handle<String> key); |
+ Handle<Name> key); |
inline int LastAddedFieldIndex(); |
@@ -1706,7 +1704,7 @@ class JSObject: public JSReceiver { |
// Can cause GC. |
MUST_USE_RESULT MaybeObject* SetLocalPropertyIgnoreAttributes( |
- String* key, |
+ Name* key, |
Object* value, |
PropertyAttributes attributes); |
@@ -1721,16 +1719,16 @@ class JSObject: public JSReceiver { |
// Sets the property value in a normalized object given (key, value, details). |
// Handles the special representation of JS global objects. |
static Handle<Object> SetNormalizedProperty(Handle<JSObject> object, |
- Handle<String> key, |
+ Handle<Name> key, |
Handle<Object> value, |
PropertyDetails details); |
- MUST_USE_RESULT MaybeObject* SetNormalizedProperty(String* name, |
+ MUST_USE_RESULT MaybeObject* SetNormalizedProperty(Name* name, |
Object* value, |
PropertyDetails details); |
// Deletes the named property in a normalized object. |
- MUST_USE_RESULT MaybeObject* DeleteNormalizedProperty(String* name, |
+ MUST_USE_RESULT MaybeObject* DeleteNormalizedProperty(Name* name, |
DeleteMode mode); |
MUST_USE_RESULT MaybeObject* OptimizeAsPrototype(); |
@@ -1741,27 +1739,27 @@ class JSObject: public JSReceiver { |
// Used from JSReceiver. |
PropertyAttributes GetPropertyAttributePostInterceptor(JSObject* receiver, |
- String* name, |
+ Name* name, |
bool continue_search); |
PropertyAttributes GetPropertyAttributeWithInterceptor(JSObject* receiver, |
- String* name, |
+ Name* name, |
bool continue_search); |
PropertyAttributes GetPropertyAttributeWithFailedAccessCheck( |
Object* receiver, |
LookupResult* result, |
- String* name, |
+ Name* name, |
bool continue_search); |
PropertyAttributes GetElementAttributeWithReceiver(JSReceiver* receiver, |
uint32_t index, |
bool continue_search); |
static void DefineAccessor(Handle<JSObject> object, |
- Handle<String> name, |
+ Handle<Name> name, |
Handle<Object> getter, |
Handle<Object> setter, |
PropertyAttributes attributes); |
// Can cause GC. |
- MUST_USE_RESULT MaybeObject* DefineAccessor(String* name, |
+ MUST_USE_RESULT MaybeObject* DefineAccessor(Name* name, |
Object* getter, |
Object* setter, |
PropertyAttributes attributes); |
@@ -1769,11 +1767,11 @@ class JSObject: public JSReceiver { |
// Returns a JavaScript null if this was not possible and we have to use the |
// slow case. Note that we can fail due to allocations, too. |
MUST_USE_RESULT MaybeObject* DefineFastAccessor( |
- String* name, |
+ Name* name, |
AccessorComponent component, |
Object* accessor, |
PropertyAttributes attributes); |
- Object* LookupAccessor(String* name, AccessorComponent component); |
+ Object* LookupAccessor(Name* name, AccessorComponent component); |
MUST_USE_RESULT MaybeObject* DefineAccessor(AccessorInfo* info); |
@@ -1781,19 +1779,19 @@ class JSObject: public JSReceiver { |
MUST_USE_RESULT MaybeObject* GetPropertyWithFailedAccessCheck( |
Object* receiver, |
LookupResult* result, |
- String* name, |
+ Name* name, |
PropertyAttributes* attributes); |
MUST_USE_RESULT MaybeObject* GetPropertyWithInterceptor( |
Object* receiver, |
- String* name, |
+ Name* name, |
PropertyAttributes* attributes); |
MUST_USE_RESULT MaybeObject* GetPropertyPostInterceptor( |
Object* receiver, |
- String* name, |
+ Name* name, |
PropertyAttributes* attributes); |
MUST_USE_RESULT MaybeObject* GetLocalPropertyPostInterceptor( |
Object* receiver, |
- String* name, |
+ Name* name, |
PropertyAttributes* attributes); |
// Returns true if this is an instance of an api function and has |
@@ -1816,17 +1814,17 @@ class JSObject: public JSReceiver { |
// Sets a hidden property on this object. Returns this object if successful, |
// undefined if called on a detached proxy. |
static Handle<Object> SetHiddenProperty(Handle<JSObject> obj, |
- Handle<String> key, |
+ Handle<Name> key, |
Handle<Object> value); |
// Returns a failure if a GC is required. |
- MUST_USE_RESULT MaybeObject* SetHiddenProperty(String* key, Object* value); |
+ MUST_USE_RESULT MaybeObject* SetHiddenProperty(Name* key, Object* value); |
// Gets the value of a hidden property with the given key. Returns undefined |
// if the property doesn't exist (or if called on a detached proxy), |
// otherwise returns the value set for the key. |
- Object* GetHiddenProperty(String* key); |
+ Object* GetHiddenProperty(Name* key); |
// Deletes a hidden property. Deleting a non-existing property is |
// considered successful. |
- void DeleteHiddenProperty(String* key); |
+ void DeleteHiddenProperty(Name* key); |
// Returns true if the object has a property with the hidden string as name. |
bool HasHiddenProperties(); |
@@ -1835,9 +1833,9 @@ class JSObject: public JSReceiver { |
MUST_USE_RESULT MaybeObject* SetIdentityHash(Smi* hash, CreationFlag flag); |
static Handle<Object> DeleteProperty(Handle<JSObject> obj, |
- Handle<String> name); |
+ Handle<Name> name); |
// Can cause GC. |
- MUST_USE_RESULT MaybeObject* DeleteProperty(String* name, DeleteMode mode); |
+ MUST_USE_RESULT MaybeObject* DeleteProperty(Name* name, DeleteMode mode); |
static Handle<Object> DeleteElement(Handle<JSObject> obj, uint32_t index); |
MUST_USE_RESULT MaybeObject* DeleteElement(uint32_t index, DeleteMode mode); |
@@ -1881,11 +1879,11 @@ class JSObject: public JSReceiver { |
return old_capacity + (old_capacity >> 1) + 16; |
} |
- PropertyType GetLocalPropertyType(String* name); |
+ PropertyType GetLocalPropertyType(Name* name); |
PropertyType GetLocalElementType(uint32_t index); |
// These methods do not perform access checks! |
- AccessorPair* GetLocalPropertyAccessorPair(String* name); |
+ AccessorPair* GetLocalPropertyAccessorPair(Name* name); |
AccessorPair* GetLocalElementAccessorPair(uint32_t index); |
MUST_USE_RESULT MaybeObject* SetFastElement(uint32_t index, |
@@ -1958,9 +1956,9 @@ class JSObject: public JSReceiver { |
inline bool HasIndexedInterceptor(); |
// Support functions for v8 api (needed for correct interceptor behavior). |
- bool HasRealNamedProperty(String* key); |
+ bool HasRealNamedProperty(Name* key); |
bool HasRealElementProperty(uint32_t index); |
- bool HasRealNamedCallbackProperty(String* key); |
+ bool HasRealNamedCallbackProperty(Name* key); |
// Get the header size for a JSObject. Used to compute the index of |
// internal fields as well as the number of internal fields. |
@@ -1973,12 +1971,12 @@ class JSObject: public JSReceiver { |
inline void SetInternalField(int index, Smi* value); |
// The following lookup functions skip interceptors. |
- void LocalLookupRealNamedProperty(String* name, LookupResult* result); |
- void LookupRealNamedProperty(String* name, LookupResult* result); |
- void LookupRealNamedPropertyInPrototypes(String* name, LookupResult* result); |
+ void LocalLookupRealNamedProperty(Name* name, LookupResult* result); |
+ void LookupRealNamedProperty(Name* name, LookupResult* result); |
+ void LookupRealNamedPropertyInPrototypes(Name* name, LookupResult* result); |
MUST_USE_RESULT MaybeObject* SetElementWithCallbackSetterInPrototypes( |
uint32_t index, Object* value, bool* found, StrictModeFlag strict_mode); |
- void LookupCallbackProperty(String* name, LookupResult* result); |
+ void LookupCallbackProperty(Name* name, LookupResult* result); |
// Returns the number of properties on this object filtering out properties |
// with the specified attributes (ignoring interceptors). |
@@ -2005,7 +2003,7 @@ class JSObject: public JSReceiver { |
// Add a property to a fast-case object using a map transition to |
// new_map. |
MUST_USE_RESULT MaybeObject* AddFastPropertyUsingMap(Map* new_map, |
- String* name, |
+ Name* name, |
Object* value, |
int field_index); |
@@ -2016,12 +2014,12 @@ class JSObject: public JSReceiver { |
// This avoids the creation of many maps with the same constant |
// function, all orphaned. |
MUST_USE_RESULT MaybeObject* AddConstantFunctionProperty( |
- String* name, |
+ Name* name, |
JSFunction* function, |
PropertyAttributes attributes); |
MUST_USE_RESULT MaybeObject* ReplaceSlowProperty( |
- String* name, |
+ Name* name, |
Object* value, |
PropertyAttributes attributes); |
@@ -2045,32 +2043,32 @@ class JSObject: public JSReceiver { |
// Replaces an existing transition with a transition to a map with a FIELD. |
MUST_USE_RESULT MaybeObject* ConvertTransitionToMapTransition( |
int transition_index, |
- String* name, |
+ 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( |
- String* name, |
+ Name* name, |
Object* new_value, |
PropertyAttributes attributes); |
// Add a property to a fast-case object. |
MUST_USE_RESULT MaybeObject* AddFastProperty( |
- String* name, |
+ Name* name, |
Object* value, |
PropertyAttributes attributes, |
StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED); |
// Add a property to a slow-case object. |
- MUST_USE_RESULT MaybeObject* AddSlowProperty(String* name, |
+ MUST_USE_RESULT MaybeObject* AddSlowProperty(Name* name, |
Object* value, |
PropertyAttributes attributes); |
// Add a property to an object. May cause GC. |
MUST_USE_RESULT MaybeObject* AddProperty( |
- String* name, |
+ Name* name, |
Object* value, |
PropertyAttributes attributes, |
StrictModeFlag strict_mode, |
@@ -2097,10 +2095,10 @@ class JSObject: public JSReceiver { |
MUST_USE_RESULT MaybeObject* NormalizeElements(); |
static void UpdateMapCodeCache(Handle<JSObject> object, |
- Handle<String> name, |
+ Handle<Name> name, |
Handle<Code> code); |
- MUST_USE_RESULT MaybeObject* UpdateMapCodeCache(String* name, Code* code); |
+ MUST_USE_RESULT MaybeObject* UpdateMapCodeCache(Name* name, Code* code); |
// Transform slow named properties to fast variants. |
// Returns failure if allocation failed. |
@@ -2237,7 +2235,7 @@ class JSObject: public JSReceiver { |
// Enqueue change record for Object.observe. May cause GC. |
static void EnqueueChangeRecord(Handle<JSObject> object, |
const char* type, |
- Handle<String> name, |
+ Handle<Name> name, |
Handle<Object> old_value); |
// Deliver change records to observers. May cause GC. |
@@ -2284,15 +2282,15 @@ class JSObject: public JSReceiver { |
// read-only, reject and set '*done' to true. Otherwise, set '*done' to |
// false. Can cause GC and can return a failure result with '*done==true'. |
MUST_USE_RESULT MaybeObject* SetPropertyViaPrototypes( |
- String* name, |
+ Name* name, |
Object* value, |
PropertyAttributes attributes, |
StrictModeFlag strict_mode, |
bool* done); |
- MUST_USE_RESULT MaybeObject* DeletePropertyPostInterceptor(String* name, |
+ MUST_USE_RESULT MaybeObject* DeletePropertyPostInterceptor(Name* name, |
DeleteMode mode); |
- MUST_USE_RESULT MaybeObject* DeletePropertyWithInterceptor(String* name); |
+ MUST_USE_RESULT MaybeObject* DeletePropertyWithInterceptor(Name* name); |
MUST_USE_RESULT MaybeObject* DeleteElementWithInterceptor(uint32_t index); |
@@ -2310,13 +2308,13 @@ class JSObject: public JSReceiver { |
// Gets the current elements capacity and the number of used elements. |
void GetElementsCapacityAndUsage(int* capacity, int* used); |
- bool CanSetCallback(String* name); |
+ bool CanSetCallback(Name* name); |
MUST_USE_RESULT MaybeObject* SetElementCallback( |
uint32_t index, |
Object* structure, |
PropertyAttributes attributes); |
MUST_USE_RESULT MaybeObject* SetPropertyCallback( |
- String* name, |
+ Name* name, |
Object* structure, |
PropertyAttributes attributes); |
MUST_USE_RESULT MaybeObject* DefineElementAccessor( |
@@ -2324,9 +2322,9 @@ class JSObject: public JSReceiver { |
Object* getter, |
Object* setter, |
PropertyAttributes attributes); |
- MUST_USE_RESULT MaybeObject* CreateAccessorPairFor(String* name); |
+ MUST_USE_RESULT MaybeObject* CreateAccessorPairFor(Name* name); |
MUST_USE_RESULT MaybeObject* DefinePropertyAccessor( |
- String* name, |
+ Name* name, |
Object* getter, |
Object* setter, |
PropertyAttributes attributes); |
@@ -2627,7 +2625,7 @@ class DescriptorArray: public FixedArray { |
Object* new_index_cache); |
// Accessors for fetching instance descriptor at descriptor number. |
- inline String* GetKey(int descriptor_number); |
+ inline Name* GetKey(int descriptor_number); |
inline Object** GetKeySlot(int descriptor_number); |
inline Object* GetValue(int descriptor_number); |
inline Object** GetValueSlot(int descriptor_number); |
@@ -2640,7 +2638,7 @@ class DescriptorArray: public FixedArray { |
inline Object* GetCallbacksObject(int descriptor_number); |
inline AccessorDescriptor* GetCallbacks(int descriptor_number); |
- inline String* GetSortedKey(int descriptor_number); |
+ inline Name* GetSortedKey(int descriptor_number); |
inline int GetSortedKeyIndex(int descriptor_number); |
inline void SetSortedKey(int pointer, int descriptor_number); |
@@ -2670,11 +2668,11 @@ class DescriptorArray: public FixedArray { |
void Sort(); |
// Search the instance descriptors for given name. |
- INLINE(int Search(String* name, int number_of_own_descriptors)); |
+ INLINE(int Search(Name* name, int number_of_own_descriptors)); |
// As the above, but uses DescriptorLookupCache and updates it when |
// necessary. |
- INLINE(int SearchWithCache(String* name, Map* map)); |
+ INLINE(int SearchWithCache(Name* name, Map* map)); |
// Allocates a DescriptorArray, but returns the singleton |
// empty descriptor array object if number_of_descriptors is 0. |
@@ -2783,11 +2781,11 @@ class DescriptorArray: public FixedArray { |
enum SearchMode { ALL_ENTRIES, VALID_ENTRIES }; |
template<SearchMode search_mode, typename T> |
-inline int LinearSearch(T* array, String* name, int len, int valid_entries); |
+inline int LinearSearch(T* array, Name* name, int len, int valid_entries); |
template<SearchMode search_mode, typename T> |
-inline int Search(T* array, String* name, int valid_entries = 0); |
+inline int Search(T* array, Name* name, int valid_entries = 0); |
// HashTable is a subclass of FixedArray that implements a hash table |
@@ -3115,11 +3113,11 @@ class MapCacheShape : public BaseShape<HashTableKey*> { |
// MapCache. |
// |
-// Maps keys that are a fixed array of internalized strings to a map. |
+// Maps keys that are a fixed array of unique names to a map. |
// Used for canonicalize maps for object literals. |
class MapCache: public HashTable<MapCacheShape, HashTableKey*> { |
public: |
- // Find cached value for a string key, otherwise return null. |
+ // Find cached value for a name key, otherwise return null. |
Object* Lookup(FixedArray* key); |
MUST_USE_RESULT MaybeObject* Put(FixedArray* key, Map* value); |
static inline MapCache* cast(Object* obj); |
@@ -3238,29 +3236,29 @@ class Dictionary: public HashTable<Shape, Key> { |
}; |
-class StringDictionaryShape : public BaseShape<String*> { |
+class NameDictionaryShape : public BaseShape<Name*> { |
public: |
- static inline bool IsMatch(String* key, Object* other); |
- static inline uint32_t Hash(String* key); |
- static inline uint32_t HashForObject(String* key, Object* object); |
- MUST_USE_RESULT static inline MaybeObject* AsObject(String* key); |
+ static inline bool IsMatch(Name* key, Object* other); |
+ static inline uint32_t Hash(Name* key); |
+ static inline uint32_t HashForObject(Name* key, Object* object); |
+ MUST_USE_RESULT static inline MaybeObject* AsObject(Name* key); |
static const int kPrefixSize = 2; |
static const int kEntrySize = 3; |
static const bool kIsEnumerable = true; |
}; |
-class StringDictionary: public Dictionary<StringDictionaryShape, String*> { |
+class NameDictionary: public Dictionary<NameDictionaryShape, Name*> { |
public: |
- static inline StringDictionary* cast(Object* obj) { |
+ static inline NameDictionary* cast(Object* obj) { |
ASSERT(obj->IsDictionary()); |
- return reinterpret_cast<StringDictionary*>(obj); |
+ return reinterpret_cast<NameDictionary*>(obj); |
} |
// Copies enumerable keys to preallocated fixed array. |
FixedArray* CopyEnumKeysTo(FixedArray* storage); |
static void DoGenerateNewEnumerationIndices( |
- Handle<StringDictionary> dictionary); |
+ Handle<NameDictionary> dictionary); |
// For transforming properties of a JSObject. |
MUST_USE_RESULT MaybeObject* TransformPropertiesToFastFor( |
@@ -3269,7 +3267,7 @@ class StringDictionary: public Dictionary<StringDictionaryShape, String*> { |
// Find entry for key, otherwise return kNotFound. Optimized version of |
// HashTable::FindEntry. |
- int FindEntry(String* key); |
+ int FindEntry(Name* key); |
}; |
@@ -4912,7 +4910,7 @@ class Map: public HeapObject { |
Map* transitioned_map); |
inline void SetTransition(int transition_index, Map* target); |
inline Map* GetTransition(int transition_index); |
- MUST_USE_RESULT inline MaybeObject* AddTransition(String* key, |
+ MUST_USE_RESULT inline MaybeObject* AddTransition(Name* key, |
Map* target, |
SimpleTransitionFlag flag); |
DECL_ACCESSORS(transitions, TransitionArray) |
@@ -5010,11 +5008,11 @@ class Map: public HeapObject { |
// with the given holder if the name is found. The holder may be |
// NULL when this function is used from the compiler. |
inline void LookupDescriptor(JSObject* holder, |
- String* name, |
+ Name* name, |
LookupResult* result); |
inline void LookupTransition(JSObject* holder, |
- String* name, |
+ Name* name, |
LookupResult* result); |
// The size of transition arrays are limited so they do not end up in large |
@@ -5063,7 +5061,7 @@ class Map: public HeapObject { |
MUST_USE_RESULT MaybeObject* CopyDropDescriptors(); |
MUST_USE_RESULT MaybeObject* CopyReplaceDescriptors( |
DescriptorArray* descriptors, |
- String* name, |
+ Name* name, |
TransitionFlag flag, |
int descriptor_index); |
MUST_USE_RESULT MaybeObject* ShareDescriptor(DescriptorArray* descriptors, |
@@ -5091,7 +5089,7 @@ class Map: public HeapObject { |
MUST_USE_RESULT MaybeObject* Copy(); |
// Returns the property index for name (only valid for FAST MODE). |
- int PropertyIndexFor(String* name); |
+ int PropertyIndexFor(Name* name); |
// Returns the next free property index (only valid for FAST MODE). |
int NextFreePropertyIndex(); |
@@ -5105,7 +5103,7 @@ class Map: public HeapObject { |
static inline Map* cast(Object* obj); |
// Locate an accessor in the instance descriptor. |
- AccessorDescriptor* FindAccessor(String* name); |
+ AccessorDescriptor* FindAccessor(Name* name); |
// Code cache operations. |
@@ -5114,9 +5112,9 @@ class Map: public HeapObject { |
// Update code cache. |
static void UpdateCodeCache(Handle<Map> map, |
- Handle<String> name, |
+ Handle<Name> name, |
Handle<Code> code); |
- MUST_USE_RESULT MaybeObject* UpdateCodeCache(String* name, Code* code); |
+ MUST_USE_RESULT MaybeObject* UpdateCodeCache(Name* name, Code* code); |
// Extend the descriptor array of the map with the list of descriptors. |
// In case of duplicates, the latest descriptor is used. |
@@ -5126,14 +5124,14 @@ class Map: public HeapObject { |
static void EnsureDescriptorSlack(Handle<Map> map, int slack); |
// Returns the found code or undefined if absent. |
- Object* FindInCodeCache(String* name, Code::Flags flags); |
+ Object* FindInCodeCache(Name* name, Code::Flags flags); |
// Returns the non-negative index of the code object if it is in the |
// cache and -1 otherwise. |
int IndexInCodeCache(Object* name, Code* code); |
// Removes a code object from the code cache at the given index. |
- void RemoveFromCodeCache(String* name, Code* code, int index); |
+ void RemoveFromCodeCache(Name* name, Code* code, int index); |
// Set all map transitions from this map to dead maps to null. Also clear |
// back pointers in transition targets so that we do not process this map |
@@ -6344,7 +6342,7 @@ class GlobalObject: public JSObject { |
// by throwing an exception. This is for the debug and builtins global |
// objects, where it is known which properties can be expected to be present |
// on the object. |
- Object* GetPropertyNoExceptionThrown(String* key) { |
+ Object* GetPropertyNoExceptionThrown(Name* key) { |
Object* answer = GetProperty(key)->ToObjectUnchecked(); |
return answer; |
} |
@@ -6352,10 +6350,10 @@ class GlobalObject: public JSObject { |
// Ensure that the global object has a cell for the given property name. |
static Handle<JSGlobalPropertyCell> EnsurePropertyCell( |
Handle<GlobalObject> global, |
- Handle<String> name); |
+ Handle<Name> name); |
// TODO(kmillikin): This function can be eliminated once the stub cache is |
// fully handlified (and the static helper can be written directly). |
- MUST_USE_RESULT MaybeObject* EnsurePropertyCell(String* name); |
+ MUST_USE_RESULT MaybeObject* EnsurePropertyCell(Name* name); |
// Casting. |
static inline GlobalObject* cast(Object* obj); |
@@ -6806,11 +6804,11 @@ class CodeCache: public Struct { |
DECL_ACCESSORS(normal_type_cache, Object) |
// Add the code object to the cache. |
- MUST_USE_RESULT MaybeObject* Update(String* name, Code* code); |
+ MUST_USE_RESULT MaybeObject* Update(Name* name, Code* code); |
// Lookup code object in the cache. Returns code object if found and undefined |
// if not. |
- Object* Lookup(String* name, Code::Flags flags); |
+ Object* Lookup(Name* name, Code::Flags flags); |
// Get the internal index of a code object in the cache. Returns -1 if the |
// code object is not in that cache. This index can be used to later call |
@@ -6833,10 +6831,10 @@ class CodeCache: public Struct { |
static const int kSize = kNormalTypeCacheOffset + kPointerSize; |
private: |
- MUST_USE_RESULT MaybeObject* UpdateDefaultCache(String* name, Code* code); |
- MUST_USE_RESULT MaybeObject* UpdateNormalTypeCache(String* name, Code* code); |
- Object* LookupDefaultCache(String* name, Code::Flags flags); |
- Object* LookupNormalTypeCache(String* name, Code::Flags flags); |
+ MUST_USE_RESULT MaybeObject* UpdateDefaultCache(Name* name, Code* code); |
+ MUST_USE_RESULT MaybeObject* UpdateNormalTypeCache(Name* name, Code* code); |
+ Object* LookupDefaultCache(Name* name, Code::Flags flags); |
+ Object* LookupNormalTypeCache(Name* name, Code::Flags flags); |
// Code cache layout of the default cache. Elements are alternating name and |
// code objects for non normal load/store/call IC's. |
@@ -6874,10 +6872,10 @@ class CodeCacheHashTableShape : public BaseShape<HashTableKey*> { |
class CodeCacheHashTable: public HashTable<CodeCacheHashTableShape, |
HashTableKey*> { |
public: |
- Object* Lookup(String* name, Code::Flags flags); |
- MUST_USE_RESULT MaybeObject* Put(String* name, Code* code); |
+ Object* Lookup(Name* name, Code::Flags flags); |
+ MUST_USE_RESULT MaybeObject* Put(Name* name, Code* code); |
- int GetIndex(String* name, Code::Flags flags); |
+ int GetIndex(Name* name, Code::Flags flags); |
void RemoveByIndex(int index); |
static inline CodeCacheHashTable* cast(Object* obj); |
@@ -7162,9 +7160,17 @@ class Name: public HeapObject { |
// Returns a hash value used for the property table |
inline uint32_t Hash(); |
+ // Equality operations. |
+ inline bool Equals(Name* other); |
+ |
+ // Conversion. |
+ inline bool AsArrayIndex(uint32_t* index); |
+ |
// Casting. |
static inline Name* cast(Object* obj); |
+ DECLARE_PRINTER(Name) |
+ |
// Layout description. |
static const int kHashFieldOffset = HeapObject::kHeaderSize; |
static const int kSize = kHashFieldOffset + kPointerSize; |
@@ -8085,19 +8091,19 @@ class JSProxy: public JSReceiver { |
// Casting. |
static inline JSProxy* cast(Object* obj); |
- bool HasPropertyWithHandler(String* name); |
+ bool HasPropertyWithHandler(Name* name); |
bool HasElementWithHandler(uint32_t index); |
MUST_USE_RESULT MaybeObject* GetPropertyWithHandler( |
Object* receiver, |
- String* name); |
+ Name* name); |
MUST_USE_RESULT MaybeObject* GetElementWithHandler( |
Object* receiver, |
uint32_t index); |
MUST_USE_RESULT MaybeObject* SetPropertyWithHandler( |
JSReceiver* receiver, |
- String* name, |
+ Name* name, |
Object* value, |
PropertyAttributes attributes, |
StrictModeFlag strict_mode); |
@@ -8113,14 +8119,14 @@ class JSProxy: public JSReceiver { |
// otherwise set it to false. |
MUST_USE_RESULT MaybeObject* SetPropertyViaPrototypesWithHandler( |
JSReceiver* receiver, |
- String* name, |
+ Name* name, |
Object* value, |
PropertyAttributes attributes, |
StrictModeFlag strict_mode, |
bool* done); |
MUST_USE_RESULT MaybeObject* DeletePropertyWithHandler( |
- String* name, |
+ Name* name, |
DeleteMode mode); |
MUST_USE_RESULT MaybeObject* DeleteElementWithHandler( |
uint32_t index, |
@@ -8128,7 +8134,7 @@ class JSProxy: public JSReceiver { |
MUST_USE_RESULT PropertyAttributes GetPropertyAttributeWithHandler( |
JSReceiver* receiver, |
- String* name); |
+ Name* name); |
MUST_USE_RESULT PropertyAttributes GetElementAttributeWithHandler( |
JSReceiver* receiver, |
uint32_t index); |