| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 6bcd412b4322c9b2332463f729d0972c9bef8b17..8101c2f241287c0bf1126672f84cdb0454c367c5 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -579,9 +579,9 @@ const uint32_t kNotStringTag = 0x80;
|
|
|
| // Bit 6 indicates that the object is an internalized string (if set) or not.
|
| // Bit 7 has to be clear as well.
|
| -const uint32_t kIsInternalizedMask = 0x40;
|
| -const uint32_t kNotInternalizedTag = 0x0;
|
| -const uint32_t kInternalizedTag = 0x40;
|
| +const uint32_t kIsNotInternalizedMask = 0x40;
|
| +const uint32_t kNotInternalizedTag = 0x40;
|
| +const uint32_t kInternalizedTag = 0x0;
|
|
|
| // If bit 7 is clear then bit 2 indicates whether the string consists of
|
| // two-byte characters or one-byte characters.
|
| @@ -630,45 +630,62 @@ const uint32_t kShortExternalStringTag = 0x10;
|
| // See heap.cc and mark-compact.cc.
|
| const uint32_t kShortcutTypeMask =
|
| kIsNotStringMask |
|
| - kIsInternalizedMask |
|
| + kIsNotInternalizedMask |
|
| kStringRepresentationMask;
|
| -const uint32_t kShortcutTypeTag = kConsStringTag;
|
| +const uint32_t kShortcutTypeTag = kConsStringTag | kNotInternalizedTag;
|
|
|
|
|
| enum InstanceType {
|
| // String types.
|
| - 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,
|
| - EXTERNAL_STRING_TYPE = kTwoByteStringTag | kExternalStringTag,
|
| - EXTERNAL_ASCII_STRING_TYPE = kOneByteStringTag | kExternalStringTag,
|
| - EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE =
|
| - EXTERNAL_STRING_TYPE | kOneByteDataHintTag,
|
| - SHORT_EXTERNAL_STRING_TYPE = EXTERNAL_STRING_TYPE | kShortExternalStringTag,
|
| - SHORT_EXTERNAL_ASCII_STRING_TYPE =
|
| - EXTERNAL_ASCII_STRING_TYPE | kShortExternalStringTag,
|
| - SHORT_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE =
|
| - EXTERNAL_STRING_WITH_ONE_BYTE_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,
|
| + INTERNALIZED_STRING_TYPE = kTwoByteStringTag | kSeqStringTag
|
| + | kInternalizedTag,
|
| + ASCII_INTERNALIZED_STRING_TYPE = kOneByteStringTag | kSeqStringTag
|
| + | kInternalizedTag,
|
| + CONS_INTERNALIZED_STRING_TYPE = kTwoByteStringTag | kConsStringTag
|
| + | kInternalizedTag,
|
| + CONS_ASCII_INTERNALIZED_STRING_TYPE = kOneByteStringTag | kConsStringTag
|
| + | kInternalizedTag,
|
| + EXTERNAL_INTERNALIZED_STRING_TYPE = kTwoByteStringTag | kExternalStringTag
|
| + | kInternalizedTag,
|
| + EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE = kOneByteStringTag
|
| + | kExternalStringTag | kInternalizedTag,
|
| EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE =
|
| - EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE | kInternalizedTag,
|
| + EXTERNAL_INTERNALIZED_STRING_TYPE | kOneByteDataHintTag
|
| + | kInternalizedTag,
|
| SHORT_EXTERNAL_INTERNALIZED_STRING_TYPE =
|
| - SHORT_EXTERNAL_STRING_TYPE | kInternalizedTag,
|
| + EXTERNAL_INTERNALIZED_STRING_TYPE | kShortExternalStringTag
|
| + | kInternalizedTag,
|
| SHORT_EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE =
|
| - SHORT_EXTERNAL_ASCII_STRING_TYPE | kInternalizedTag,
|
| + EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE | kShortExternalStringTag
|
| + | kInternalizedTag,
|
| SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE =
|
| - SHORT_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE | kInternalizedTag,
|
| + EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE
|
| + | kShortExternalStringTag | kInternalizedTag,
|
| +
|
| + STRING_TYPE = INTERNALIZED_STRING_TYPE | kNotInternalizedTag,
|
| + ASCII_STRING_TYPE = ASCII_INTERNALIZED_STRING_TYPE | kNotInternalizedTag,
|
| + CONS_STRING_TYPE = CONS_INTERNALIZED_STRING_TYPE | kNotInternalizedTag,
|
| + CONS_ASCII_STRING_TYPE =
|
| + CONS_ASCII_INTERNALIZED_STRING_TYPE | kNotInternalizedTag,
|
| +
|
| + SLICED_STRING_TYPE =
|
| + kTwoByteStringTag | kSlicedStringTag | kNotInternalizedTag,
|
| + SLICED_ASCII_STRING_TYPE =
|
| + kOneByteStringTag | kSlicedStringTag | kNotInternalizedTag,
|
| + EXTERNAL_STRING_TYPE =
|
| + EXTERNAL_INTERNALIZED_STRING_TYPE | kNotInternalizedTag,
|
| + EXTERNAL_ASCII_STRING_TYPE =
|
| + EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE | kNotInternalizedTag,
|
| + EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE =
|
| + EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE
|
| + | kNotInternalizedTag,
|
| + SHORT_EXTERNAL_STRING_TYPE =
|
| + SHORT_EXTERNAL_INTERNALIZED_STRING_TYPE | kNotInternalizedTag,
|
| + SHORT_EXTERNAL_ASCII_STRING_TYPE =
|
| + SHORT_EXTERNAL_ASCII_INTERNALIZED_STRING_TYPE | kNotInternalizedTag,
|
| + SHORT_EXTERNAL_STRING_WITH_ONE_BYTE_DATA_TYPE =
|
| + SHORT_EXTERNAL_INTERNALIZED_STRING_WITH_ONE_BYTE_DATA_TYPE
|
| + | kNotInternalizedTag,
|
|
|
| // Non-string names
|
| SYMBOL_TYPE = kNotStringTag, // LAST_NAME_TYPE, FIRST_NONSTRING_TYPE
|
|
|