| 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)
 | 
| 
 |