| Index: src/x64/ic-x64.cc
|
| diff --git a/src/x64/ic-x64.cc b/src/x64/ic-x64.cc
|
| index 39114387300a643c34191b4b38cf4ae7d6b75f32..02302a9dd32e394f2599e89e51ea65a31b08ab8a 100644
|
| --- a/src/x64/ic-x64.cc
|
| +++ b/src/x64/ic-x64.cc
|
| @@ -101,8 +101,8 @@ static void GenerateStringDictionaryReceiverCheck(MacroAssembler* masm,
|
| // Helper function used to load a property from a dictionary backing storage.
|
| // This function may return false negatives, so miss_label
|
| // must always call a backup property load that is complete.
|
| -// This function is safe to call if name is not a symbol, and will jump to
|
| -// the miss_label in that case.
|
| +// This function is safe to call if name is not an internalized string,
|
| +// and will jump to the miss_label in that case.
|
| // The generated code assumes that the receiver has slow properties,
|
| // is not a global object and does not have interceptors.
|
| static void GenerateDictionaryLoad(MacroAssembler* masm,
|
| @@ -160,8 +160,8 @@ static void GenerateDictionaryLoad(MacroAssembler* masm,
|
| // storage. This function may fail to store a property even though it
|
| // is in the dictionary, so code at miss_label must always call a
|
| // backup property store that is complete. This function is safe to
|
| -// call if name is not a symbol, and will jump to the miss_label in
|
| -// that case. The generated code assumes that the receiver has slow
|
| +// call if name is not an internalized string, and will jump to the miss_label
|
| +// in that case. The generated code assumes that the receiver has slow
|
| // properties, is not a global object and does not have interceptors.
|
| static void GenerateDictionaryStore(MacroAssembler* masm,
|
| Label* miss_label,
|
| @@ -313,31 +313,31 @@ static void GenerateFastArrayLoad(MacroAssembler* masm,
|
| }
|
|
|
|
|
| -// Checks whether a key is an array index string or a symbol string.
|
| -// Falls through if the key is a symbol.
|
| +// Checks whether a key is an array index string or an internalized string.
|
| +// Falls through if the key is an internalized string.
|
| static void GenerateKeyStringCheck(MacroAssembler* masm,
|
| Register key,
|
| Register map,
|
| Register hash,
|
| Label* index_string,
|
| - Label* not_symbol) {
|
| + Label* not_internalized) {
|
| // Register use:
|
| // key - holds the key and is unchanged. Assumed to be non-smi.
|
| // Scratch registers:
|
| // map - used to hold the map of the key.
|
| // hash - used to hold the hash of the key.
|
| __ CmpObjectType(key, FIRST_NONSTRING_TYPE, map);
|
| - __ j(above_equal, not_symbol);
|
| + __ j(above_equal, not_internalized);
|
| // Is the string an array index, with cached numeric value?
|
| __ movl(hash, FieldOperand(key, String::kHashFieldOffset));
|
| __ testl(hash, Immediate(String::kContainsCachedArrayIndexMask));
|
| __ j(zero, index_string); // The value in hash is used at jump target.
|
|
|
| - // Is the string a symbol?
|
| - STATIC_ASSERT(kSymbolTag != 0);
|
| + // Is the string internalized?
|
| + STATIC_ASSERT(kInternalizedTag != 0);
|
| __ testb(FieldOperand(map, Map::kInstanceTypeOffset),
|
| - Immediate(kIsSymbolMask));
|
| - __ j(zero, not_symbol);
|
| + Immediate(kIsInternalizedMask));
|
| + __ j(zero, not_internalized);
|
| }
|
|
|
|
|
| @@ -421,7 +421,7 @@ void KeyedLoadIC::GenerateGeneric(MacroAssembler* masm) {
|
| int mask = (KeyedLookupCache::kCapacityMask & KeyedLookupCache::kHashMask);
|
| __ and_(rcx, Immediate(mask));
|
|
|
| - // Load the key (consisting of map and symbol) from the cache and
|
| + // Load the key (consisting of map and internalized string) from the cache and
|
| // check for match.
|
| Label load_in_object_property;
|
| static const int kEntriesPerBucket = KeyedLookupCache::kEntriesPerBucket;
|
| @@ -1075,7 +1075,7 @@ void KeyedCallIC::GenerateMegamorphic(MacroAssembler* masm, int argc) {
|
| __ bind(&check_string);
|
| GenerateKeyStringCheck(masm, rcx, rax, rbx, &index_string, &slow_call);
|
|
|
| - // The key is known to be a symbol.
|
| + // The key is known to be an internalized string.
|
| // If the receiver is a regular JS object with slow properties then do
|
| // a quick inline probe of the receiver's dictionary.
|
| // Otherwise do the monomorphic cache probe.
|
| @@ -1102,7 +1102,7 @@ void KeyedCallIC::GenerateMegamorphic(MacroAssembler* masm, int argc) {
|
| __ bind(&slow_call);
|
| // This branch is taken if:
|
| // - the receiver requires boxing or access check,
|
| - // - the key is neither smi nor symbol,
|
| + // - the key is neither smi nor internalized string,
|
| // - the value loaded is not a function,
|
| // - there is hope that the runtime will create a monomorphic call stub
|
| // that will get fetched next time.
|
|
|