| Index: src/hydrogen-instructions.h | 
| diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h | 
| index 367d2b32fb037369b1ae58db8d41e22c8cee2b66..aa513e707b235c8a20a63a55acacfa78b6189e82 100644 | 
| --- a/src/hydrogen-instructions.h | 
| +++ b/src/hydrogen-instructions.h | 
| @@ -770,6 +770,14 @@ class HValue: public ZoneObject { | 
|  | 
| const char* Mnemonic() const; | 
|  | 
| +  // Type information helpers. | 
| +  bool HasMonomorphicJSObjectType(); | 
| + | 
| +  // TODO(mstarzinger): For now instructions can override this function to | 
| +  // specify statically known types, once HType can convey more information | 
| +  // it should be based on the HType. | 
| +  virtual Handle<Map> GetMonomorphicJSObjectMap() { return Handle<Map>(); } | 
| + | 
| // Updated the inferred type of this instruction and returns true if | 
| // it has changed. | 
| bool UpdateInferredType(); | 
| @@ -5019,6 +5027,10 @@ class HAllocateObject: public HTemplateInstruction<1> { | 
| virtual Representation RequiredInputRepresentation(int index) { | 
| return Representation::Tagged(); | 
| } | 
| +  virtual Handle<Map> GetMonomorphicJSObjectMap() { | 
| +    ASSERT(constructor()->has_initial_map()); | 
| +    return Handle<Map>(constructor()->initial_map()); | 
| +  } | 
| virtual HType CalculateInferredType(); | 
|  | 
| DECLARE_CONCRETE_INSTRUCTION(AllocateObject) | 
| @@ -5086,6 +5098,9 @@ class HFastLiteral: public HMaterializedLiteral<1> { | 
| virtual Representation RequiredInputRepresentation(int index) { | 
| return Representation::Tagged(); | 
| } | 
| +  virtual Handle<Map> GetMonomorphicJSObjectMap() { | 
| +    return Handle<Map>(boilerplate()->map()); | 
| +  } | 
| virtual HType CalculateInferredType(); | 
|  | 
| DECLARE_CONCRETE_INSTRUCTION(FastLiteral) | 
|  |