| Index: src/compiler-dispatcher/compiler-dispatcher.h
 | 
| diff --git a/src/compiler-dispatcher/compiler-dispatcher.h b/src/compiler-dispatcher/compiler-dispatcher.h
 | 
| index e6737a002945175bcaaefd3bcf6d25bec2232edc..220fcd0596c2e0035b6b267681ed7ec5dbf09f43 100644
 | 
| --- a/src/compiler-dispatcher/compiler-dispatcher.h
 | 
| +++ b/src/compiler-dispatcher/compiler-dispatcher.h
 | 
| @@ -11,8 +11,12 @@
 | 
|  
 | 
|  #include "src/base/macros.h"
 | 
|  #include "src/globals.h"
 | 
| +#include "testing/gtest/include/gtest/gtest_prod.h"
 | 
|  
 | 
|  namespace v8 {
 | 
| +
 | 
| +class Platform;
 | 
| +
 | 
|  namespace internal {
 | 
|  
 | 
|  class CompilerDispatcherJob;
 | 
| @@ -23,11 +27,14 @@ class SharedFunctionInfo;
 | 
|  template <typename T>
 | 
|  class Handle;
 | 
|  
 | 
| +// The CompilerDispatcher uses a combination of idle tasks and background tasks
 | 
| +// to parse and compile lazily parsed functions.
 | 
|  class V8_EXPORT_PRIVATE CompilerDispatcher {
 | 
|   public:
 | 
|    enum class BlockingBehavior { kBlock, kDontBlock };
 | 
|  
 | 
| -  CompilerDispatcher(Isolate* isolate, size_t max_stack_size);
 | 
| +  CompilerDispatcher(Isolate* isolate, Platform* platform,
 | 
| +                     size_t max_stack_size);
 | 
|    ~CompilerDispatcher();
 | 
|  
 | 
|    // Returns true if a job was enqueued.
 | 
| @@ -47,15 +54,24 @@ class V8_EXPORT_PRIVATE CompilerDispatcher {
 | 
|    void AbortAll(BlockingBehavior blocking);
 | 
|  
 | 
|   private:
 | 
| +  FRIEND_TEST(CompilerDispatcherTest, IdleTaskSmallIdleTime);
 | 
| +
 | 
|    typedef std::multimap<std::pair<int, int>,
 | 
|                          std::unique_ptr<CompilerDispatcherJob>>
 | 
|        JobMap;
 | 
| +  class IdleTask;
 | 
| +
 | 
|    JobMap::const_iterator GetJobFor(Handle<SharedFunctionInfo> shared) const;
 | 
| +  void ScheduleIdleTaskIfNeeded();
 | 
| +  void DoIdleWork(double deadline_in_seconds);
 | 
|  
 | 
|    Isolate* isolate_;
 | 
| +  Platform* platform_;
 | 
|    size_t max_stack_size_;
 | 
|    std::unique_ptr<CompilerDispatcherTracer> tracer_;
 | 
|  
 | 
| +  bool idle_task_scheduled_;
 | 
| +
 | 
|    // Mapping from (script id, function literal id) to job. We use a multimap,
 | 
|    // as script id is not necessarily unique.
 | 
|    JobMap jobs_;
 | 
| 
 |