| Index: src/compiler.h
 | 
| diff --git a/src/compiler.h b/src/compiler.h
 | 
| index bdb168fe0d107a397a724bded304902be20a8774..0e42fd643ff761ba96e24a9a5b740613e8883265 100644
 | 
| --- a/src/compiler.h
 | 
| +++ b/src/compiler.h
 | 
| @@ -308,6 +308,14 @@ class CompilationInfo {
 | 
|      return abort_due_to_dependency_;
 | 
|    }
 | 
|  
 | 
| +  void set_osr_pc_offset(uint32_t pc_offset) {
 | 
| +    osr_pc_offset_ = pc_offset;
 | 
| +  }
 | 
| +
 | 
| +  bool HasSameOsrEntry(Handle<JSFunction> function, uint32_t pc_offset) {
 | 
| +    return osr_pc_offset_ == pc_offset && function.is_identical_to(closure_);
 | 
| +  }
 | 
| +
 | 
|   protected:
 | 
|    CompilationInfo(Handle<Script> script,
 | 
|                    Zone* zone);
 | 
| @@ -402,6 +410,9 @@ class CompilationInfo {
 | 
|    // Compilation mode flag and whether deoptimization is allowed.
 | 
|    Mode mode_;
 | 
|    BailoutId osr_ast_id_;
 | 
| +  // The pc_offset corresponding to osr_ast_id_ in unoptimized code.
 | 
| +  // We can look this up in the back edge table, but cache it for quick access.
 | 
| +  uint32_t osr_pc_offset_;
 | 
|  
 | 
|    // Flag whether compilation needs to be aborted due to dependency change.
 | 
|    bool abort_due_to_dependency_;
 | 
| @@ -600,7 +611,8 @@ class Compiler : public AllStatic {
 | 
|    // success and false if the compilation resulted in a stack overflow.
 | 
|    static bool CompileLazy(CompilationInfo* info);
 | 
|  
 | 
| -  static void RecompileConcurrent(Handle<JSFunction> function);
 | 
| +  static void RecompileConcurrent(Handle<JSFunction> function,
 | 
| +                                  uint32_t osr_pc_offset = 0);
 | 
|  
 | 
|    // Compile a shared function info object (the function is possibly lazily
 | 
|    // compiled).
 | 
| @@ -615,6 +627,12 @@ class Compiler : public AllStatic {
 | 
|  
 | 
|    static void InstallOptimizedCode(OptimizingCompiler* info);
 | 
|  
 | 
| +  static bool CompileForOnStackReplacement(Handle<JSFunction> function,
 | 
| +                                           BailoutId* ast_id_out);
 | 
| +
 | 
| +  static bool CompileForConcurrentOSR(Handle<JSFunction> function,
 | 
| +                                      BailoutId* ast_id_out);
 | 
| +
 | 
|  #ifdef ENABLE_DEBUGGER_SUPPORT
 | 
|    static bool MakeCodeForLiveEdit(CompilationInfo* info);
 | 
|  #endif
 | 
| 
 |