| Index: src/isolate.cc
|
| diff --git a/src/isolate.cc b/src/isolate.cc
|
| index 859d91381b1c290b2b14a9523656739a82bef2e7..7474a55e432f7e2239d10fa1da59855c39db6b12 100644
|
| --- a/src/isolate.cc
|
| +++ b/src/isolate.cc
|
| @@ -2438,13 +2438,19 @@ bool Isolate::Init(Deserializer* des) {
|
| runtime_profiler_ = new RuntimeProfiler(this);
|
|
|
| // If we are deserializing, read the state into the now-empty heap.
|
| - if (!create_heap_objects) {
|
| - des->Deserialize(this);
|
| - }
|
| - load_stub_cache_->Initialize();
|
| - store_stub_cache_->Initialize();
|
| - if (FLAG_ignition || serializer_enabled()) {
|
| - interpreter_->Initialize();
|
| + {
|
| + AlwaysAllocateScope always_allocate(this);
|
| +
|
| + if (!create_heap_objects) {
|
| + des->Deserialize(this);
|
| + }
|
| + load_stub_cache_->Initialize();
|
| + store_stub_cache_->Initialize();
|
| + if (FLAG_ignition || serializer_enabled()) {
|
| + interpreter_->Initialize();
|
| + }
|
| +
|
| + heap_.NotifyDeserializationComplete();
|
| }
|
|
|
| // Finish initialization of ThreadLocal after deserialization is done.
|
| @@ -2475,8 +2481,6 @@ bool Isolate::Init(Deserializer* des) {
|
|
|
| time_millis_at_init_ = heap_.MonotonicallyIncreasingTimeInMs();
|
|
|
| - heap_.NotifyDeserializationComplete();
|
| -
|
| if (!create_heap_objects) {
|
| // Now that the heap is consistent, it's OK to generate the code for the
|
| // deopt entry table that might have been referred to by optimized code in
|
|
|