| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 12413123c09c2a922da3f76a7fbe3679a3dd0609..c56e8782627e86a86f41cc48a2d0117fc870223c 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -77,7 +77,7 @@
|
| // - DescriptorArray
|
| // - HashTable
|
| // - Dictionary
|
| -// - SymbolTable
|
| +// - StringTable
|
| // - CompilationCacheTable
|
| // - CodeCacheHashTable
|
| // - MapCache
|
| @@ -231,8 +231,8 @@ const int kStubMinorKeyBits = kBitsPerInt - kSmiTagSize - kStubMajorKeyBits;
|
| // encoding is mentioned explicitly in the name. Likewise, the default
|
| // representation is considered sequential. It is not mentioned in the
|
| // name. The other representations (e.g. CONS, EXTERNAL) are explicitly
|
| -// mentioned. Finally, the string is either a SYMBOL_TYPE (if it is a
|
| -// symbol) or a STRING_TYPE (if it is not a symbol).
|
| +// mentioned. Finally, the string is either a STRING_TYPE (if it is a normal
|
| +// string) or a INTERNALIZED_STRING_TYPE (if it is a internalized string).
|
| //
|
| // NOTE: The following things are some that depend on the string types having
|
| // instance_types that are less than those of all other types:
|
| @@ -243,28 +243,28 @@ const int kStubMinorKeyBits = kBitsPerInt - kSmiTagSize - kStubMajorKeyBits;
|
| // JSObject for GC purposes. The first four entries here have typeof
|
| // 'object', whereas JS_FUNCTION_TYPE has typeof 'function'.
|
| #define INSTANCE_TYPE_LIST_ALL(V) \
|
| - V(SYMBOL_TYPE) \
|
| - V(ASCII_SYMBOL_TYPE) \
|
| - V(CONS_SYMBOL_TYPE) \
|
| - V(CONS_ASCII_SYMBOL_TYPE) \
|
| - V(EXTERNAL_SYMBOL_TYPE) \
|
| - V(EXTERNAL_SYMBOL_WITH_ASCII_DATA_TYPE) \
|
| - V(EXTERNAL_ASCII_SYMBOL_TYPE) \
|
| - V(SHORT_EXTERNAL_SYMBOL_TYPE) \
|
| - V(SHORT_EXTERNAL_SYMBOL_WITH_ASCII_DATA_TYPE) \
|
| - V(SHORT_EXTERNAL_ASCII_SYMBOL_TYPE) \
|
| V(STRING_TYPE) \
|
| V(ASCII_STRING_TYPE) \
|
| V(CONS_STRING_TYPE) \
|
| V(CONS_ASCII_STRING_TYPE) \
|
| V(SLICED_STRING_TYPE) \
|
| V(EXTERNAL_STRING_TYPE) \
|
| - V(EXTERNAL_STRING_WITH_ASCII_DATA_TYPE) \
|
| V(EXTERNAL_ASCII_STRING_TYPE) \
|
| + V(EXTERNAL_STRING_WITH_ASCII_DATA_TYPE) \
|
| V(SHORT_EXTERNAL_STRING_TYPE) \
|
| - V(SHORT_EXTERNAL_STRING_WITH_ASCII_DATA_TYPE) \
|
| V(SHORT_EXTERNAL_ASCII_STRING_TYPE) \
|
| - V(PRIVATE_EXTERNAL_ASCII_STRING_TYPE) \
|
| + V(SHORT_EXTERNAL_STRING_WITH_ASCII_DATA_TYPE) \
|
| + \
|
| + V(INTERNALIZED_STRING_TYPE) \
|
| + V(ASCII_INTERNALIZED_STRING_TYPE) \
|
| + V(CONS_INTERNALIZED_STRING_TYPE) \
|
| + V(CONS_ASCII_INTERNALIZED_STRING_TYPE) \
|
| + V(EXTERNAL_INTERNALIZED_STRING_TYPE) \
|
| + V(EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE) \
|
| + V(EXTERNAL_INTERNALIZED_STRING_WITH_ASCII_DATA_TYPE) \
|
| + V(SHORT_EXTERNAL_INTERNALIZED_STRING_TYPE) \
|
| + V(SHORT_EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE) \
|
| + V(SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ASCII_DATA_TYPE) \
|
| \
|
| V(MAP_TYPE) \
|
| V(CODE_TYPE) \
|
| @@ -342,46 +342,6 @@ const int kStubMinorKeyBits = kBitsPerInt - kSmiTagSize - kStubMajorKeyBits;
|
| // Since string types are not consecutive, this macro is used to
|
| // iterate over them.
|
| #define STRING_TYPE_LIST(V) \
|
| - V(SYMBOL_TYPE, \
|
| - kVariableSizeSentinel, \
|
| - symbol, \
|
| - Symbol) \
|
| - V(ASCII_SYMBOL_TYPE, \
|
| - kVariableSizeSentinel, \
|
| - ascii_symbol, \
|
| - AsciiSymbol) \
|
| - V(CONS_SYMBOL_TYPE, \
|
| - ConsString::kSize, \
|
| - cons_symbol, \
|
| - ConsSymbol) \
|
| - V(CONS_ASCII_SYMBOL_TYPE, \
|
| - ConsString::kSize, \
|
| - cons_ascii_symbol, \
|
| - ConsAsciiSymbol) \
|
| - V(EXTERNAL_SYMBOL_TYPE, \
|
| - ExternalTwoByteString::kSize, \
|
| - external_symbol, \
|
| - ExternalSymbol) \
|
| - V(EXTERNAL_SYMBOL_WITH_ASCII_DATA_TYPE, \
|
| - ExternalTwoByteString::kSize, \
|
| - external_symbol_with_ascii_data, \
|
| - ExternalSymbolWithAsciiData) \
|
| - V(EXTERNAL_ASCII_SYMBOL_TYPE, \
|
| - ExternalAsciiString::kSize, \
|
| - external_ascii_symbol, \
|
| - ExternalAsciiSymbol) \
|
| - V(SHORT_EXTERNAL_SYMBOL_TYPE, \
|
| - ExternalTwoByteString::kShortSize, \
|
| - short_external_symbol, \
|
| - ShortExternalSymbol) \
|
| - V(SHORT_EXTERNAL_SYMBOL_WITH_ASCII_DATA_TYPE, \
|
| - ExternalTwoByteString::kShortSize, \
|
| - short_external_symbol_with_ascii_data, \
|
| - ShortExternalSymbolWithAsciiData) \
|
| - V(SHORT_EXTERNAL_ASCII_SYMBOL_TYPE, \
|
| - ExternalAsciiString::kShortSize, \
|
| - short_external_ascii_symbol, \
|
| - ShortExternalAsciiSymbol) \
|
| V(STRING_TYPE, \
|
| kVariableSizeSentinel, \
|
| string, \
|
| @@ -410,26 +370,67 @@ const int kStubMinorKeyBits = kBitsPerInt - kSmiTagSize - kStubMajorKeyBits;
|
| ExternalTwoByteString::kSize, \
|
| external_string, \
|
| ExternalString) \
|
| - V(EXTERNAL_STRING_WITH_ASCII_DATA_TYPE, \
|
| - ExternalTwoByteString::kSize, \
|
| - external_string_with_ascii_data, \
|
| - ExternalStringWithAsciiData) \
|
| V(EXTERNAL_ASCII_STRING_TYPE, \
|
| ExternalAsciiString::kSize, \
|
| external_ascii_string, \
|
| ExternalAsciiString) \
|
| + V(EXTERNAL_STRING_WITH_ASCII_DATA_TYPE, \
|
| + ExternalTwoByteString::kSize, \
|
| + external_string_with_ascii_data, \
|
| + ExternalStringWithAsciiData) \
|
| V(SHORT_EXTERNAL_STRING_TYPE, \
|
| ExternalTwoByteString::kShortSize, \
|
| short_external_string, \
|
| ShortExternalString) \
|
| + V(SHORT_EXTERNAL_ASCII_STRING_TYPE, \
|
| + ExternalAsciiString::kShortSize, \
|
| + short_external_ascii_string, \
|
| + ShortExternalAsciiString) \
|
| V(SHORT_EXTERNAL_STRING_WITH_ASCII_DATA_TYPE, \
|
| ExternalTwoByteString::kShortSize, \
|
| short_external_string_with_ascii_data, \
|
| ShortExternalStringWithAsciiData) \
|
| - V(SHORT_EXTERNAL_ASCII_STRING_TYPE, \
|
| + \
|
| + V(INTERNALIZED_STRING_TYPE, \
|
| + kVariableSizeSentinel, \
|
| + internalized_string, \
|
| + InternalizedString) \
|
| + V(ASCII_INTERNALIZED_STRING_TYPE, \
|
| + kVariableSizeSentinel, \
|
| + ascii_internalized_string, \
|
| + AsciiInternalizedString) \
|
| + V(CONS_INTERNALIZED_STRING_TYPE, \
|
| + ConsString::kSize, \
|
| + cons_internalized_string, \
|
| + ConsInternalizedString) \
|
| + V(CONS_ASCII_INTERNALIZED_STRING_TYPE, \
|
| + ConsString::kSize, \
|
| + cons_ascii_internalized_string, \
|
| + ConsAsciiInternalizedString) \
|
| + V(EXTERNAL_INTERNALIZED_STRING_TYPE, \
|
| + ExternalTwoByteString::kSize, \
|
| + external_internalized_string, \
|
| + ExternalInternalizedString) \
|
| + V(EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE, \
|
| + ExternalAsciiString::kSize, \
|
| + external_ascii_internalized_string, \
|
| + ExternalAsciiInternalizedString) \
|
| + V(EXTERNAL_INTERNALIZED_STRING_WITH_ASCII_DATA_TYPE, \
|
| + ExternalTwoByteString::kSize, \
|
| + external_internalized_string_with_ascii_data, \
|
| + ExternalInternalizedStringWithAsciiData) \
|
| + V(SHORT_EXTERNAL_INTERNALIZED_STRING_TYPE, \
|
| + ExternalTwoByteString::kShortSize, \
|
| + short_external_internalized_string, \
|
| + ShortExternalInternalizedString) \
|
| + V(SHORT_EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE, \
|
| ExternalAsciiString::kShortSize, \
|
| - short_external_ascii_string, \
|
| - ShortExternalAsciiString)
|
| + short_external_ascii_internalized_string, \
|
| + ShortExternalAsciiInternalizedString) \
|
| + V(SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ASCII_DATA_TYPE, \
|
| + ExternalTwoByteString::kShortSize, \
|
| + short_external_internalized_string_with_ascii_data, \
|
| + ShortExternalInternalizedStringWithAsciiData) \
|
|
|
| // A struct is a simple object a set of object-valued fields. Including an
|
| // object type in this causes the compiler to generate most of the boilerplate
|
| @@ -476,12 +477,12 @@ const uint32_t kIsNotStringMask = 0x80;
|
| const uint32_t kStringTag = 0x0;
|
| const uint32_t kNotStringTag = 0x80;
|
|
|
| -// Bit 6 indicates that the object is a symbol (if set) or not (if cleared).
|
| +// Bit 6 indicates that the object is an internalized string (if set) or not.
|
| // There are not enough types that the non-string types (with bit 7 set) can
|
| // have bit 6 set too.
|
| -const uint32_t kIsSymbolMask = 0x40;
|
| -const uint32_t kNotSymbolTag = 0x0;
|
| -const uint32_t kSymbolTag = 0x40;
|
| +const uint32_t kIsInternalizedMask = 0x40;
|
| +const uint32_t kNotInternalizedTag = 0x0;
|
| +const uint32_t kInternalizedTag = 0x40;
|
|
|
| // If bit 7 is clear then bit 2 indicates whether the string consists of
|
| // two-byte characters or one-byte characters.
|
| @@ -524,54 +525,51 @@ const uint32_t kShortExternalStringTag = 0x10;
|
|
|
|
|
| // A ConsString with an empty string as the right side is a candidate
|
| -// for being shortcut by the garbage collector unless it is a
|
| -// symbol. It's not common to have non-flat symbols, so we do not
|
| -// shortcut them thereby avoiding turning symbols into strings. See
|
| -// heap.cc and mark-compact.cc.
|
| +// for being shortcut by the garbage collector unless it is internalized.
|
| +// It's not common to have non-flat internalized strings, so we do not
|
| +// shortcut them thereby avoiding turning internalized strings into strings.
|
| +// See heap.cc and mark-compact.cc.
|
| const uint32_t kShortcutTypeMask =
|
| kIsNotStringMask |
|
| - kIsSymbolMask |
|
| + kIsInternalizedMask |
|
| kStringRepresentationMask;
|
| const uint32_t kShortcutTypeTag = kConsStringTag;
|
|
|
|
|
| enum InstanceType {
|
| // String types.
|
| - SYMBOL_TYPE = kTwoByteStringTag | kSymbolTag | kSeqStringTag,
|
| - ASCII_SYMBOL_TYPE = kOneByteStringTag | kSymbolTag | kSeqStringTag,
|
| - CONS_SYMBOL_TYPE = kTwoByteStringTag | kSymbolTag | kConsStringTag,
|
| - CONS_ASCII_SYMBOL_TYPE = kOneByteStringTag | kSymbolTag | kConsStringTag,
|
| - SHORT_EXTERNAL_SYMBOL_TYPE = kTwoByteStringTag | kSymbolTag |
|
| - kExternalStringTag | kShortExternalStringTag,
|
| - SHORT_EXTERNAL_SYMBOL_WITH_ASCII_DATA_TYPE =
|
| - kTwoByteStringTag | kSymbolTag | kExternalStringTag |
|
| - kAsciiDataHintTag | kShortExternalStringTag,
|
| - SHORT_EXTERNAL_ASCII_SYMBOL_TYPE = kOneByteStringTag | kExternalStringTag |
|
| - kSymbolTag | kShortExternalStringTag,
|
| - EXTERNAL_SYMBOL_TYPE = kTwoByteStringTag | kSymbolTag | kExternalStringTag,
|
| - EXTERNAL_SYMBOL_WITH_ASCII_DATA_TYPE =
|
| - kTwoByteStringTag | kSymbolTag | kExternalStringTag | kAsciiDataHintTag,
|
| - EXTERNAL_ASCII_SYMBOL_TYPE =
|
| - kOneByteStringTag | kSymbolTag | kExternalStringTag,
|
| STRING_TYPE = kTwoByteStringTag | kSeqStringTag,
|
| ASCII_STRING_TYPE = kOneByteStringTag | kSeqStringTag,
|
| CONS_STRING_TYPE = kTwoByteStringTag | kConsStringTag,
|
| CONS_ASCII_STRING_TYPE = kOneByteStringTag | kConsStringTag,
|
| SLICED_STRING_TYPE = kTwoByteStringTag | kSlicedStringTag,
|
| SLICED_ASCII_STRING_TYPE = kOneByteStringTag | kSlicedStringTag,
|
| - SHORT_EXTERNAL_STRING_TYPE =
|
| - kTwoByteStringTag | kExternalStringTag | kShortExternalStringTag,
|
| - SHORT_EXTERNAL_STRING_WITH_ASCII_DATA_TYPE =
|
| - kTwoByteStringTag | kExternalStringTag |
|
| - kAsciiDataHintTag | kShortExternalStringTag,
|
| - SHORT_EXTERNAL_ASCII_STRING_TYPE =
|
| - kOneByteStringTag | kExternalStringTag | kShortExternalStringTag,
|
| EXTERNAL_STRING_TYPE = kTwoByteStringTag | kExternalStringTag,
|
| - EXTERNAL_STRING_WITH_ASCII_DATA_TYPE =
|
| - kTwoByteStringTag | kExternalStringTag | kAsciiDataHintTag,
|
| - // LAST_STRING_TYPE
|
| EXTERNAL_ASCII_STRING_TYPE = kOneByteStringTag | kExternalStringTag,
|
| - PRIVATE_EXTERNAL_ASCII_STRING_TYPE = EXTERNAL_ASCII_STRING_TYPE,
|
| + EXTERNAL_STRING_WITH_ASCII_DATA_TYPE =
|
| + EXTERNAL_STRING_TYPE | kAsciiDataHintTag,
|
| + SHORT_EXTERNAL_STRING_TYPE = EXTERNAL_STRING_TYPE | kShortExternalStringTag,
|
| + SHORT_EXTERNAL_ASCII_STRING_TYPE =
|
| + EXTERNAL_ASCII_STRING_TYPE | kShortExternalStringTag,
|
| + SHORT_EXTERNAL_STRING_WITH_ASCII_DATA_TYPE =
|
| + EXTERNAL_STRING_WITH_ASCII_DATA_TYPE | kShortExternalStringTag,
|
| +
|
| + INTERNALIZED_STRING_TYPE = STRING_TYPE | kInternalizedTag,
|
| + ASCII_INTERNALIZED_STRING_TYPE = ASCII_STRING_TYPE | kInternalizedTag,
|
| + CONS_INTERNALIZED_STRING_TYPE = CONS_STRING_TYPE | kInternalizedTag,
|
| + CONS_ASCII_INTERNALIZED_STRING_TYPE =
|
| + CONS_ASCII_STRING_TYPE | kInternalizedTag,
|
| + EXTERNAL_INTERNALIZED_STRING_TYPE = EXTERNAL_STRING_TYPE | kInternalizedTag,
|
| + EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE =
|
| + EXTERNAL_ASCII_STRING_TYPE | kInternalizedTag,
|
| + EXTERNAL_INTERNALIZED_STRING_WITH_ASCII_DATA_TYPE =
|
| + EXTERNAL_STRING_WITH_ASCII_DATA_TYPE | kInternalizedTag,
|
| + SHORT_EXTERNAL_INTERNALIZED_STRING_TYPE =
|
| + SHORT_EXTERNAL_STRING_TYPE | kInternalizedTag,
|
| + SHORT_EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE =
|
| + SHORT_EXTERNAL_ASCII_STRING_TYPE | kInternalizedTag,
|
| + SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ASCII_DATA_TYPE =
|
| + SHORT_EXTERNAL_STRING_WITH_ASCII_DATA_TYPE | kInternalizedTag,
|
|
|
| // Objects allocated in their own spaces (never in new space).
|
| MAP_TYPE = kNotStringTag, // FIRST_NONSTRING_TYPE
|
| @@ -700,7 +698,7 @@ STATIC_CHECK(FOREIGN_TYPE == Internals::kForeignType);
|
| V(DICTIONARY_PROPERTIES_SUB_TYPE) \
|
| V(MAP_CODE_CACHE_SUB_TYPE) \
|
| V(SCOPE_INFO_SUB_TYPE) \
|
| - V(SYMBOL_TABLE_SUB_TYPE) \
|
| + V(STRING_TABLE_SUB_TYPE) \
|
| V(DESCRIPTOR_ARRAY_SUB_TYPE) \
|
| V(TRANSITION_ARRAY_SUB_TYPE)
|
|
|
| @@ -831,7 +829,6 @@ class MaybeObject BASE_EMBEDDED {
|
| #define HEAP_OBJECT_TYPE_LIST(V) \
|
| V(HeapNumber) \
|
| V(String) \
|
| - V(Symbol) \
|
| V(SeqString) \
|
| V(ExternalString) \
|
| V(ConsString) \
|
| @@ -839,7 +836,8 @@ class MaybeObject BASE_EMBEDDED {
|
| V(ExternalTwoByteString) \
|
| V(ExternalAsciiString) \
|
| V(SeqTwoByteString) \
|
| - V(SeqOneByteString) \
|
| + V(SeqOneByteString) \
|
| + V(InternalizedString) \
|
| \
|
| V(ExternalArray) \
|
| V(ExternalByteArray) \
|
| @@ -888,7 +886,7 @@ class MaybeObject BASE_EMBEDDED {
|
| V(JSRegExp) \
|
| V(HashTable) \
|
| V(Dictionary) \
|
| - V(SymbolTable) \
|
| + V(StringTable) \
|
| V(JSFunctionResultCache) \
|
| V(NormalizedMapCache) \
|
| V(CompilationCacheTable) \
|
| @@ -1786,7 +1784,7 @@ class JSObject: public JSReceiver {
|
| //
|
| // Hidden properties are not local properties of the object itself.
|
| // Instead they are stored in an auxiliary structure kept as a local
|
| - // property with a special name Heap::hidden_symbol(). But if the
|
| + // property with a special name Heap::hidden_string(). But if the
|
| // receiver is a JSGlobalProxy then the auxiliary object is a property
|
| // of its prototype, and if it's a detached proxy, then you can't have
|
| // hidden properties.
|
| @@ -1805,7 +1803,7 @@ class JSObject: public JSReceiver {
|
| // Deletes a hidden property. Deleting a non-existing property is
|
| // considered successful.
|
| void DeleteHiddenProperty(String* key);
|
| - // Returns true if the object has a property with the hidden symbol as name.
|
| + // Returns true if the object has a property with the hidden string as name.
|
| bool HasHiddenProperties();
|
|
|
| static int GetIdentityHash(Handle<JSObject> obj);
|
| @@ -3004,7 +3002,7 @@ class HashTableKey {
|
| };
|
|
|
|
|
| -class SymbolTableShape : public BaseShape<HashTableKey*> {
|
| +class StringTableShape : public BaseShape<HashTableKey*> {
|
| public:
|
| static inline bool IsMatch(HashTableKey* key, Object* value) {
|
| return key->IsMatch(value);
|
| @@ -3025,44 +3023,47 @@ class SymbolTableShape : public BaseShape<HashTableKey*> {
|
|
|
| class SeqOneByteString;
|
|
|
| -// SymbolTable.
|
| +// StringTable.
|
| //
|
| // No special elements in the prefix and the element size is 1
|
| -// because only the symbol itself (the key) needs to be stored.
|
| -class SymbolTable: public HashTable<SymbolTableShape, HashTableKey*> {
|
| +// because only the string itself (the key) needs to be stored.
|
| +class StringTable: public HashTable<StringTableShape, HashTableKey*> {
|
| public:
|
| - // Find symbol in the symbol table. If it is not there yet, it is
|
| - // added. The return value is the symbol table which might have
|
| - // been enlarged. If the return value is not a failure, the symbol
|
| - // pointer *s is set to the symbol found.
|
| - MUST_USE_RESULT MaybeObject* LookupUtf8Symbol(Vector<const char> str,
|
| - Object** s);
|
| - MUST_USE_RESULT MaybeObject* LookupOneByteSymbol(Vector<const uint8_t> str,
|
| - Object** s);
|
| - MUST_USE_RESULT MaybeObject* LookupSubStringOneByteSymbol(
|
| + // Find string in the string table. If it is not there yet, it is
|
| + // added. The return value is the string table which might have
|
| + // been enlarged. If the return value is not a failure, the string
|
| + // pointer *s is set to the string found.
|
| + MUST_USE_RESULT MaybeObject* LookupUtf8String(
|
| + Vector<const char> str,
|
| + Object** s);
|
| + MUST_USE_RESULT MaybeObject* LookupOneByteString(
|
| + Vector<const uint8_t> str,
|
| + Object** s);
|
| + MUST_USE_RESULT MaybeObject* LookupSubStringOneByteString(
|
| Handle<SeqOneByteString> str,
|
| int from,
|
| int length,
|
| Object** s);
|
| - MUST_USE_RESULT MaybeObject* LookupTwoByteSymbol(Vector<const uc16> str,
|
| - Object** s);
|
| + MUST_USE_RESULT MaybeObject* LookupTwoByteString(
|
| + Vector<const uc16> str,
|
| + Object** s);
|
| MUST_USE_RESULT MaybeObject* LookupString(String* key, Object** s);
|
|
|
| - // Looks up a symbol that is equal to the given string and returns
|
| - // true if it is found, assigning the symbol to the given output
|
| + // Looks up a string that is equal to the given string and returns
|
| + // true if it is found, assigning the string to the given output
|
| // parameter.
|
| - bool LookupSymbolIfExists(String* str, String** symbol);
|
| - bool LookupTwoCharsSymbolIfExists(uint16_t c1, uint16_t c2, String** symbol);
|
| + bool LookupStringIfExists(String* str, String** result);
|
| + bool LookupTwoCharsStringIfExists(uint16_t c1, uint16_t c2, String** result);
|
|
|
| // Casting.
|
| - static inline SymbolTable* cast(Object* obj);
|
| + static inline StringTable* cast(Object* obj);
|
|
|
| private:
|
| MUST_USE_RESULT MaybeObject* LookupKey(HashTableKey* key, Object** s);
|
|
|
| template <bool seq_ascii> friend class JsonParser;
|
|
|
| - DISALLOW_IMPLICIT_CONSTRUCTORS(SymbolTable);
|
| + DISALLOW_IMPLICIT_CONSTRUCTORS(StringTable);
|
| };
|
|
|
|
|
| @@ -3090,7 +3091,7 @@ class MapCacheShape : public BaseShape<HashTableKey*> {
|
|
|
| // MapCache.
|
| //
|
| -// Maps keys that are a fixed array of symbols to a map.
|
| +// Maps keys that are a fixed array of internalized strings to a map.
|
| // Used for canonicalize maps for object literals.
|
| class MapCache: public HashTable<MapCacheShape, HashTableKey*> {
|
| public:
|
| @@ -3523,13 +3524,13 @@ class ScopeInfo : public FixedArray {
|
|
|
| // Lookup support for serialized scope info. Returns the
|
| // the stack slot index for a given slot name if the slot is
|
| - // present; otherwise returns a value < 0. The name must be a symbol
|
| - // (canonicalized).
|
| + // present; otherwise returns a value < 0. The name must be an internalized
|
| + // string.
|
| int StackSlotIndex(String* name);
|
|
|
| // Lookup support for serialized scope info. Returns the
|
| // context slot index for a given slot name if the slot is present; otherwise
|
| - // returns a value < 0. The name must be a symbol (canonicalized).
|
| + // returns a value < 0. The name must be an internalized string.
|
| // If the slot is present and mode != NULL, sets *mode to the corresponding
|
| // mode for that variable.
|
| int ContextSlotIndex(String* name,
|
| @@ -3538,13 +3539,13 @@ class ScopeInfo : public FixedArray {
|
|
|
| // Lookup support for serialized scope info. Returns the
|
| // parameter index for a given parameter name if the parameter is present;
|
| - // otherwise returns a value < 0. The name must be a symbol (canonicalized).
|
| + // otherwise returns a value < 0. The name must be an internalized string.
|
| int ParameterIndex(String* name);
|
|
|
| // Lookup support for serialized scope info. Returns the function context
|
| // slot index if the function name is present and context-allocated (named
|
| // function expressions, only), otherwise returns a value < 0. The name
|
| - // must be a symbol (canonicalized).
|
| + // must be an internalized string.
|
| int FunctionContextSlotIndex(String* name, VariableMode* mode);
|
|
|
| static Handle<ScopeInfo> Create(Scope* scope, Zone* zone);
|
| @@ -7099,7 +7100,7 @@ class StringShape BASE_EMBEDDED {
|
| inline bool IsExternalTwoByte();
|
| inline bool IsSequentialAscii();
|
| inline bool IsSequentialTwoByte();
|
| - inline bool IsSymbol();
|
| + inline bool IsInternalized();
|
| inline StringRepresentationTag representation_tag();
|
| inline uint32_t encoding_tag();
|
| inline uint32_t full_representation_tag();
|
| @@ -8761,10 +8762,10 @@ class BreakPointInfo: public Struct {
|
| #undef DECLARE_VERIFIER
|
|
|
| #define VISITOR_SYNCHRONIZATION_TAGS_LIST(V) \
|
| - V(kSymbolTable, "symbol_table", "(Symbols)") \
|
| + V(kStringTable, "string_table", "(Internalized strings)") \
|
| V(kExternalStringsTable, "external_strings_table", "(External strings)") \
|
| V(kStrongRootList, "strong_root_list", "(Strong roots)") \
|
| - V(kSymbol, "symbol", "(Symbol)") \
|
| + V(kInternalizedString, "internalized_string", "(Internal string)") \
|
| V(kBootstrapper, "bootstrapper", "(Bootstrapper)") \
|
| V(kTop, "top", "(Isolate)") \
|
| V(kRelocatable, "relocatable", "(Relocatable)") \
|
|
|