| Index: src/debug/debug.h
 | 
| diff --git a/src/debug/debug.h b/src/debug/debug.h
 | 
| index b3bb3c46a64cfa2d673f69c4bac9b6dc5809aaeb..8c87325d5c7a12548998ba24bde4ab44a8bce9ce 100644
 | 
| --- a/src/debug/debug.h
 | 
| +++ b/src/debug/debug.h
 | 
| @@ -467,6 +467,8 @@ class Debug {
 | 
|    int NextAsyncTaskId(Handle<JSObject> promise);
 | 
|  
 | 
|    void SetAsyncTaskListener(debug::AsyncTaskListener listener, void* data);
 | 
| +  void SetCompileEventListener(debug::CompileEventListener listener,
 | 
| +                               void* data);
 | 
|  
 | 
|    // Returns whether the operation succeeded. Compilation can only be triggered
 | 
|    // if a valid closure is passed as the second argument, otherwise the shared
 | 
| @@ -595,6 +597,18 @@ class Debug {
 | 
|      return thread_local_.suspended_generator_ != Smi::kZero;
 | 
|    }
 | 
|  
 | 
| +  // There are three types of event listeners: C++ message_handler,
 | 
| +  // JavaScript event listener and C++ event listener.
 | 
| +  // Currently inspector still uses C++ event listener and installs
 | 
| +  // more specific event listeners for part of events. Calling of
 | 
| +  // C++ event listener is redundant when more specific event listener
 | 
| +  // is presented. Other clients can install JavaScript event listener
 | 
| +  // (e.g. some of NodeJS module).
 | 
| +  bool non_inspector_listener_exists() const {
 | 
| +    return message_handler_ != nullptr ||
 | 
| +           (!event_listener_.is_null() && !event_listener_->IsForeign());
 | 
| +  }
 | 
| +
 | 
|    void OnException(Handle<Object> exception, Handle<Object> promise);
 | 
|  
 | 
|    // Constructors for debug event objects.
 | 
| @@ -667,6 +681,8 @@ class Debug {
 | 
|  
 | 
|    debug::AsyncTaskListener async_task_listener_ = nullptr;
 | 
|    void* async_task_listener_data_ = nullptr;
 | 
| +  debug::CompileEventListener compile_event_listener_ = nullptr;
 | 
| +  void* compile_event_listener_data_ = nullptr;
 | 
|  
 | 
|    static const int kQueueInitialSize = 4;
 | 
|    base::Semaphore command_received_;  // Signaled for each command received.
 | 
| 
 |