Index: src/isolate.cc |
diff --git a/src/isolate.cc b/src/isolate.cc |
index e8e1d66602b90606e3728f3590af7af3aecc9511..0b7f8a5a2c301bd2611c0f4dd832b79ac07f0c3a 100644 |
--- a/src/isolate.cc |
+++ b/src/isolate.cc |
@@ -1931,6 +1931,10 @@ bool Isolate::Init(Deserializer* des) { |
optimizing_compiler_thread_->Start(); |
} |
+ // Initialize runtime profiler before deserialization, because collections may |
+ // occur, clearing/updating ICs. |
+ runtime_profiler_ = new RuntimeProfiler(this); |
+ |
// If we are deserializing, read the state into the now-empty heap. |
if (!create_heap_objects) { |
des->Deserialize(this); |
@@ -1949,8 +1953,6 @@ bool Isolate::Init(Deserializer* des) { |
// Quiet the heap NaN if needed on target platform. |
if (!create_heap_objects) Assembler::QuietNaN(heap_.nan_value()); |
- runtime_profiler_ = new RuntimeProfiler(this); |
- |
// If we are deserializing, log non-function code objects and compiled |
// functions found in the snapshot. |
if (!create_heap_objects && |