| Index: src/ia32/lithium-ia32.h | 
| diff --git a/src/ia32/lithium-ia32.h b/src/ia32/lithium-ia32.h | 
| index fe6f79463e08c74c922e1ea65086fe993f722384..01ffaaf69b35849d762d9ac785f48bc1f8a859e8 100644 | 
| --- a/src/ia32/lithium-ia32.h | 
| +++ b/src/ia32/lithium-ia32.h | 
| @@ -26,6 +26,7 @@ class LCodeGen; | 
| V(ArgumentsLength)                            \ | 
| V(ArithmeticD)                                \ | 
| V(ArithmeticT)                                \ | 
| +  V(ArrayShift)                                 \ | 
| V(BitI)                                       \ | 
| V(BoundsCheck)                                \ | 
| V(Branch)                                     \ | 
| @@ -2304,6 +2305,21 @@ class LTransitionElementsKind V8_FINAL : public LTemplateInstruction<0, 2, 2> { | 
| }; | 
|  | 
|  | 
| +class LArrayShift V8_FINAL : public LTemplateInstruction<1, 2, 0> { | 
| + public: | 
| +  LArrayShift(LOperand* context, LOperand* object) { | 
| +    inputs_[0] = context; | 
| +    inputs_[1] = object; | 
| +  } | 
| + | 
| +  LOperand* context() const { return inputs_[0]; } | 
| +  LOperand* object() const { return inputs_[1]; } | 
| + | 
| +  DECLARE_CONCRETE_INSTRUCTION(ArrayShift, "array-shift") | 
| +  DECLARE_HYDROGEN_ACCESSOR(ArrayShift) | 
| +}; | 
| + | 
| + | 
| class LTrapAllocationMemento V8_FINAL  : public LTemplateInstruction<0, 1, 1> { | 
| public: | 
| LTrapAllocationMemento(LOperand* object, | 
|  |