| Index: src/ic/ic.h
|
| diff --git a/src/ic/ic.h b/src/ic/ic.h
|
| index 9223e7dce8e6e16d396c6bf006813fe8bf7f6e41..6002d9291383819645f1b97f46549c3e5a402372 100644
|
| --- a/src/ic/ic.h
|
| +++ b/src/ic/ic.h
|
| @@ -122,6 +122,11 @@ class IC {
|
| // Configure the vector for POLYMORPHIC.
|
| void ConfigureVectorState(Handle<Name> name, MapHandleList* maps,
|
| CodeHandleList* handlers);
|
| + // Configure the vector for POLYMORPHIC with transitions (only for element
|
| + // keyed stores).
|
| + void ConfigureVectorState(MapHandleList* maps,
|
| + MapHandleList* transitioned_maps,
|
| + CodeHandleList* handlers);
|
|
|
| char TransitionMarkFromState(IC::State state);
|
| void TraceIC(const char* type, Handle<Object> name);
|
| @@ -538,10 +543,17 @@ class KeyedStoreIC : public StoreIC {
|
|
|
| static KeyedAccessStoreMode GetKeyedAccessStoreMode(
|
| ExtraICState extra_state) {
|
| + DCHECK(!FLAG_vector_stores);
|
| return ExtraICStateKeyedAccessStoreMode::decode(extra_state);
|
| }
|
|
|
| + KeyedAccessStoreMode GetKeyedAccessStoreMode() {
|
| + DCHECK(FLAG_vector_stores);
|
| + return casted_nexus<KeyedStoreICNexus>()->GetKeyedAccessStoreMode();
|
| + }
|
| +
|
| static IcCheckType GetKeyType(ExtraICState extra_state) {
|
| + DCHECK(!FLAG_vector_stores);
|
| return IcCheckTypeField::decode(extra_state);
|
| }
|
|
|
| @@ -571,6 +583,8 @@ class KeyedStoreIC : public StoreIC {
|
|
|
| static Handle<Code> initialize_stub_in_optimized_code(
|
| Isolate* isolate, LanguageMode language_mode, State initialization_state);
|
| + static Handle<Code> ChooseMegamorphicStub(Isolate* isolate,
|
| + ExtraICState extra_state);
|
|
|
| static void Clear(Isolate* isolate, Code* host, KeyedStoreICNexus* nexus);
|
|
|
|
|