| Index: src/compiler/code-generator.cc
 | 
| diff --git a/src/compiler/code-generator.cc b/src/compiler/code-generator.cc
 | 
| index cb2e4c8e42f49e04da1577761b642d13c17ffe55..49441e8f748277403ad9beddb3feaa65fa8d7d31 100644
 | 
| --- a/src/compiler/code-generator.cc
 | 
| +++ b/src/compiler/code-generator.cc
 | 
| @@ -184,6 +184,36 @@ void CodeGenerator::RecordSafepoint(ReferenceMap* references,
 | 
|  }
 | 
|  
 | 
|  
 | 
| +bool CodeGenerator::IsMaterializableFromFrame(Handle<HeapObject> object,
 | 
| +                                              int* offset_return) {
 | 
| +  if (linkage()->GetIncomingDescriptor()->IsJSFunctionCall()) {
 | 
| +    if (object.is_identical_to(info()->context())) {
 | 
| +      *offset_return = StandardFrameConstants::kContextOffset;
 | 
| +      return true;
 | 
| +    } else if (object.is_identical_to(info()->closure())) {
 | 
| +      *offset_return = JavaScriptFrameConstants::kFunctionOffset;
 | 
| +      return true;
 | 
| +    }
 | 
| +  }
 | 
| +  return false;
 | 
| +}
 | 
| +
 | 
| +
 | 
| +bool CodeGenerator::IsMaterializableFromRoot(
 | 
| +    Handle<HeapObject> object, Heap::RootListIndex* index_return) {
 | 
| +  if (linkage()->GetIncomingDescriptor()->IsJSFunctionCall()) {
 | 
| +#define IMMORTAL_IMMOVABLE_ROOT(Name)                                 \
 | 
| +  if (*object == isolate()->heap()->root(Heap::k##Name##RootIndex)) { \
 | 
| +    *index_return = Heap::k##Name##RootIndex;                         \
 | 
| +    return true;                                                      \
 | 
| +  }
 | 
| +    IMMORTAL_IMMOVABLE_ROOT_LIST(IMMORTAL_IMMOVABLE_ROOT)
 | 
| +#undef IMMORTAL_IMMOVABLE_ROOT
 | 
| +  }
 | 
| +  return false;
 | 
| +}
 | 
| +
 | 
| +
 | 
|  void CodeGenerator::AssembleInstruction(Instruction* instr) {
 | 
|    AssembleGaps(instr);
 | 
|    AssembleSourcePosition(instr);
 | 
| 
 |