| Index: src/ic/ic.cc
|
| diff --git a/src/ic/ic.cc b/src/ic/ic.cc
|
| index 537b18324d6868e29b5a494090f0b4cad59e4e26..25142632e6c54c7aa1a23c592933f723785d0916 100644
|
| --- a/src/ic/ic.cc
|
| +++ b/src/ic/ic.cc
|
| @@ -982,10 +982,13 @@ Handle<Code> LoadIC::initialize_stub(Isolate* isolate,
|
|
|
|
|
| Handle<Code> LoadIC::initialize_stub_in_optimized_code(
|
| - Isolate* isolate, ExtraICState extra_state) {
|
| + Isolate* isolate, ExtraICState extra_state, bool initialize_megamorphic) {
|
| if (FLAG_vector_ics) {
|
| return VectorLoadStub(isolate, LoadICState(extra_state)).GetCode();
|
| }
|
| + if (initialize_megamorphic) {
|
| + return PropertyICCompiler::ComputeLoad(isolate, MEGAMORPHIC, extra_state);
|
| + }
|
| return initialize_stub(isolate, extra_state);
|
| }
|
|
|
| @@ -1606,10 +1609,12 @@ Handle<Code> CallIC::initialize_stub_in_optimized_code(
|
|
|
|
|
| Handle<Code> StoreIC::initialize_stub(Isolate* isolate,
|
| - LanguageMode language_mode) {
|
| + LanguageMode language_mode,
|
| + bool initialize_megamorphic) {
|
| ExtraICState extra_state = ComputeExtraICState(language_mode);
|
| + InlineCacheState state = initialize_megamorphic ? MEGAMORPHIC : UNINITIALIZED;
|
| Handle<Code> ic =
|
| - PropertyICCompiler::ComputeStore(isolate, UNINITIALIZED, extra_state);
|
| + PropertyICCompiler::ComputeStore(isolate, state, extra_state);
|
| return ic;
|
| }
|
|
|
|
|