Index: src/heap/mark-compact.cc |
diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc |
index 42307cd84cf5b2789e136fac80fef789f837d45b..2e26c3f3eb6e14aff42dcf48a9c8f2d74eb834cc 100644 |
--- a/src/heap/mark-compact.cc |
+++ b/src/heap/mark-compact.cc |
@@ -1446,8 +1446,12 @@ class StringTableCleaner : public ObjectVisitor { |
if (o->IsHeapObject()) { |
if (Marking::IsWhite(ObjectMarking::MarkBitFrom(HeapObject::cast(o)))) { |
if (finalize_external_strings) { |
- DCHECK(o->IsExternalString()); |
- heap_->FinalizeExternalString(String::cast(*p)); |
+ if (o->IsExternalString()) { |
+ heap_->FinalizeExternalString(String::cast(*p)); |
+ } else { |
+ // The original external string may have been internalized. |
+ DCHECK(o->IsThinString()); |
+ } |
} else { |
pointers_removed_++; |
} |