| Index: src/mark-compact.cc | 
| diff --git a/src/mark-compact.cc b/src/mark-compact.cc | 
| index 7eeb244df0d8d64bc72b37c1efe4030ad32b455d..e9bd15afb9733eecaff0517180fc92e335b8c448 100644 | 
| --- a/src/mark-compact.cc | 
| +++ b/src/mark-compact.cc | 
| @@ -2146,7 +2146,10 @@ void MarkCompactCollector::MarkStringTable(RootMarkingVisitor* visitor) { | 
| StringTable* string_table = heap()->string_table(); | 
| // Mark the string table itself. | 
| MarkBit string_table_mark = Marking::MarkBitFrom(string_table); | 
| -  SetMark(string_table, string_table_mark); | 
| +  if (!string_table_mark.Get()) { | 
| +    // String table could have already been marked by visiting the handles list. | 
| +    SetMark(string_table, string_table_mark); | 
| +  } | 
| // Explicitly mark the prefix. | 
| string_table->IteratePrefix(visitor); | 
| ProcessMarkingDeque(); | 
|  |