| Index: src/heap.cc | 
| diff --git a/src/heap.cc b/src/heap.cc | 
| index 13c874a0499fd921d7e26d7c092af367c561f51e..b9e1a2b323a36664d1e53e84e7c7e899f2f9817e 100644 | 
| --- a/src/heap.cc | 
| +++ b/src/heap.cc | 
| @@ -1938,12 +1938,7 @@ void Heap::ProcessAllocationSites(WeakObjectRetainer* retainer, | 
|  | 
| void Heap::VisitExternalResources(v8::ExternalResourceVisitor* visitor) { | 
| DisallowHeapAllocation no_allocation; | 
| - | 
| -  // Both the external string table and the string table may contain | 
| -  // external strings, but neither lists them exhaustively, nor is the | 
| -  // intersection set empty.  Therefore we iterate over the external string | 
| -  // table first, ignoring internalized strings, and then over the | 
| -  // internalized string table. | 
| +  // All external strings are listed in the external string table. | 
|  | 
| class ExternalStringTableVisitorAdapter : public ObjectVisitor { | 
| public: | 
| @@ -1951,13 +1946,9 @@ void Heap::VisitExternalResources(v8::ExternalResourceVisitor* visitor) { | 
| v8::ExternalResourceVisitor* visitor) : visitor_(visitor) {} | 
| virtual void VisitPointers(Object** start, Object** end) { | 
| for (Object** p = start; p < end; p++) { | 
| -        // Visit non-internalized external strings, | 
| -        // since internalized strings are listed in the string table. | 
| -        if (!(*p)->IsInternalizedString()) { | 
| -          ASSERT((*p)->IsExternalString()); | 
| -          visitor_->VisitExternalString(Utils::ToLocal( | 
| -              Handle<String>(String::cast(*p)))); | 
| -        } | 
| +        ASSERT((*p)->IsExternalString()); | 
| +        visitor_->VisitExternalString(Utils::ToLocal( | 
| +            Handle<String>(String::cast(*p)))); | 
| } | 
| } | 
| private: | 
| @@ -1965,25 +1956,6 @@ void Heap::VisitExternalResources(v8::ExternalResourceVisitor* visitor) { | 
| } external_string_table_visitor(visitor); | 
|  | 
| external_string_table_.Iterate(&external_string_table_visitor); | 
| - | 
| -  class StringTableVisitorAdapter : public ObjectVisitor { | 
| -   public: | 
| -    explicit StringTableVisitorAdapter( | 
| -        v8::ExternalResourceVisitor* visitor) : visitor_(visitor) {} | 
| -    virtual void VisitPointers(Object** start, Object** end) { | 
| -      for (Object** p = start; p < end; p++) { | 
| -        if ((*p)->IsExternalString()) { | 
| -          ASSERT((*p)->IsInternalizedString()); | 
| -          visitor_->VisitExternalString(Utils::ToLocal( | 
| -              Handle<String>(String::cast(*p)))); | 
| -        } | 
| -      } | 
| -    } | 
| -   private: | 
| -    v8::ExternalResourceVisitor* visitor_; | 
| -  } string_table_visitor(visitor); | 
| - | 
| -  string_table()->IterateElements(&string_table_visitor); | 
| } | 
|  | 
|  | 
|  |