Index: src/isolate.cc |
diff --git a/src/isolate.cc b/src/isolate.cc |
index 04155195a601e98ea8c9a88722197549fb99e51e..c5f498ad1f7b441c40766a06c7fc0b2a8b4169c0 100644 |
--- a/src/isolate.cc |
+++ b/src/isolate.cc |
@@ -2177,9 +2177,16 @@ bool Isolate::Init(Deserializer* des) { |
// Ensure that all stubs which need to be generated ahead of time, but |
// cannot be serialized into the snapshot have been generated. |
HandleScope scope(this); |
- StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(this); |
CodeStub::GenerateFPStubs(this); |
+ StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(this); |
StubFailureTrampolineStub::GenerateAheadOfTime(this); |
+ // TODO(mstarzinger): The following is an ugly hack to make sure the |
+ // interface descriptor is initialized even when stubs have been |
+ // deserialized out of the snapshot without the graph builder. |
+ FastCloneShallowArrayStub stub(FastCloneShallowArrayStub::CLONE_ELEMENTS, |
+ DONT_TRACK_ALLOCATION_SITE, 0); |
+ stub.InitializeInterfaceDescriptor( |
+ this, code_stub_interface_descriptor(CodeStub::FastCloneShallowArray)); |
} |
if (FLAG_parallel_recompilation) optimizing_compiler_thread_.Start(); |