Index: src/serialize.cc |
diff --git a/src/serialize.cc b/src/serialize.cc |
index e3a84c8c9d3b42e3c18fd87e07a62ed41464af18..d0a1a639f355d88797e3f796a9d424767d2754aa 100644 |
--- a/src/serialize.cc |
+++ b/src/serialize.cc |
@@ -669,6 +669,14 @@ void Deserializer::Deserialize() { |
isolate_->heap()->set_global_contexts_list( |
isolate_->heap()->undefined_value()); |
+ |
+ // Update data pointers to the external strings containing natives sources. |
+ for (int i = 0; i < Natives::GetBuiltinsCount(); i++) { |
+ Object* source = isolate_->heap()->natives_source_cache()->get(i); |
+ if (!source->IsUndefined()) { |
+ ExternalAsciiString::cast(source)->update_data_cache(); |
+ } |
+ } |
} |
@@ -1564,7 +1572,6 @@ void Serializer::ObjectSerializer::VisitExternalAsciiString( |
sink_->Put(kNativesStringResource, "NativesStringResource"); |
sink_->PutSection(i, "NativesStringResourceEnd"); |
bytes_processed_so_far_ += sizeof(resource); |
- string->clear_data_cache(); |
return; |
} |
} |