Index: src/x64/macro-assembler-x64.cc |
diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc |
index b3e15905aad4654d41ed8041bac60424694959fb..ddd0f978c05d7fd6fa6a6f0f7507de1ce21655fa 100644 |
--- a/src/x64/macro-assembler-x64.cc |
+++ b/src/x64/macro-assembler-x64.cc |
@@ -2253,7 +2253,11 @@ void MacroAssembler::JumpIfNotBothSequentialAsciiStrings( |
ASSERT(kNotStringTag != 0); |
const int kFlatAsciiStringMask = |
kIsNotStringMask | kStringRepresentationMask | kStringEncodingMask; |
- const int kFlatAsciiStringTag = ASCII_STRING_TYPE; |
+ // Use ASCII_INTERNALIZED_STRING_TYPE because it's internalized bit is zero. |
+ // Since we don't include that bit in the mask above, the test below will |
+ // succeed for ASCII_STRING_TYPE and ASCII_INTERNALIZED_STRING_TYPE. |
+ STATIC_ASSERT(kInternalizedTag == 0); |
+ const int kFlatAsciiStringTag = ASCII_INTERNALIZED_STRING_TYPE; |
andl(scratch1, Immediate(kFlatAsciiStringMask)); |
andl(scratch2, Immediate(kFlatAsciiStringMask)); |