| Index: src/objects.h
 | 
| diff --git a/src/objects.h b/src/objects.h
 | 
| index 6fbba3cd5739877d76f595f15f9ae27cae63ff1e..db92ecba8046504857e6eb8e27d99063bd24e38a 100644
 | 
| --- a/src/objects.h
 | 
| +++ b/src/objects.h
 | 
| @@ -179,6 +179,12 @@ enum KeyedAccessStoreMode {
 | 
|  };
 | 
|  
 | 
|  
 | 
| +enum ContextualMode {
 | 
| +  NOT_CONTEXTUAL,
 | 
| +  CONTEXTUAL
 | 
| +};
 | 
| +
 | 
| +
 | 
|  static const int kGrowICDelta = STORE_AND_GROW_NO_TRANSITION -
 | 
|      STANDARD_STORE;
 | 
|  STATIC_ASSERT(STANDARD_STORE == 0);
 | 
| @@ -297,6 +303,11 @@ enum MarkingParity {
 | 
|    EVEN_MARKING_PARITY
 | 
|  };
 | 
|  
 | 
| +// ICs store extra state in a Code object. The default extra state is
 | 
| +// kNoExtraICState.
 | 
| +typedef int ExtraICState;
 | 
| +static const ExtraICState kNoExtraICState = 0;
 | 
| +
 | 
|  // Instance size sentinel for objects of variable size.
 | 
|  const int kVariableSizeSentinel = 0;
 | 
|  
 | 
| @@ -5036,10 +5047,6 @@ class Code: public HeapObject {
 | 
|      FAST
 | 
|    };
 | 
|  
 | 
| -  typedef int ExtraICState;
 | 
| -
 | 
| -  static const ExtraICState kNoExtraICState = 0;
 | 
| -
 | 
|    static const int kPrologueOffsetNotSet = -1;
 | 
|  
 | 
|  #ifdef ENABLE_DISASSEMBLER
 | 
| @@ -5259,26 +5266,6 @@ class Code: public HeapObject {
 | 
|    // out the to-be-overwritten header data for reproducible snapshots.
 | 
|    inline void WipeOutHeader();
 | 
|  
 | 
| -  class ExtraICStateStrictMode: public BitField<StrictModeFlag, 0, 1> {};
 | 
| -  class ExtraICStateKeyedAccessStoreMode:
 | 
| -      public BitField<KeyedAccessStoreMode, 1, 4> {};  // NOLINT
 | 
| -
 | 
| -  static inline StrictModeFlag GetStrictMode(ExtraICState extra_ic_state) {
 | 
| -    return ExtraICStateStrictMode::decode(extra_ic_state);
 | 
| -  }
 | 
| -
 | 
| -  static inline KeyedAccessStoreMode GetKeyedAccessStoreMode(
 | 
| -      ExtraICState extra_ic_state) {
 | 
| -    return ExtraICStateKeyedAccessStoreMode::decode(extra_ic_state);
 | 
| -  }
 | 
| -
 | 
| -  static inline ExtraICState ComputeExtraICState(
 | 
| -      KeyedAccessStoreMode store_mode,
 | 
| -      StrictModeFlag strict_mode) {
 | 
| -    return ExtraICStateKeyedAccessStoreMode::encode(store_mode) |
 | 
| -        ExtraICStateStrictMode::encode(strict_mode);
 | 
| -  }
 | 
| -
 | 
|    // Flags operations.
 | 
|    static inline Flags ComputeFlags(
 | 
|        Kind kind,
 | 
| @@ -5462,12 +5449,12 @@ class Code: public HeapObject {
 | 
|    // Flags layout.  BitField<type, shift, size>.
 | 
|    class ICStateField: public BitField<InlineCacheState, 0, 3> {};
 | 
|    class TypeField: public BitField<StubType, 3, 1> {};
 | 
| -  class CacheHolderField: public BitField<InlineCacheHolderFlag, 6, 1> {};
 | 
| -  class KindField: public BitField<Kind, 7, 4> {};
 | 
| -  class IsPregeneratedField: public BitField<bool, 11, 1> {};
 | 
| -  class ExtraICStateField: public BitField<ExtraICState, 12, 5> {};
 | 
| -  class ExtendedExtraICStateField: public BitField<ExtraICState, 12,
 | 
| -      PlatformSmiTagging::kSmiValueSize - 12 + 1> {};  // NOLINT
 | 
| +  class CacheHolderField: public BitField<InlineCacheHolderFlag, 5, 1> {};
 | 
| +  class KindField: public BitField<Kind, 6, 4> {};
 | 
| +  class IsPregeneratedField: public BitField<bool, 10, 1> {};
 | 
| +  class ExtraICStateField: public BitField<ExtraICState, 11, 6> {};
 | 
| +  class ExtendedExtraICStateField: public BitField<ExtraICState, 11,
 | 
| +      PlatformSmiTagging::kSmiValueSize - 11 + 1> {};  // NOLINT
 | 
|    STATIC_ASSERT(ExtraICStateField::kShift == ExtendedExtraICStateField::kShift);
 | 
|  
 | 
|    // KindSpecificFlags1 layout (STUB and OPTIMIZED_FUNCTION)
 | 
| 
 |