| Index: src/isolate.cc | 
| diff --git a/src/isolate.cc b/src/isolate.cc | 
| index 215296d735cc5b8b9698cfc67d9dc0cfa3bd7208..35b494d2246bbbaa3bb7b56ff98a23556713f971 100644 | 
| --- a/src/isolate.cc | 
| +++ b/src/isolate.cc | 
| @@ -7,6 +7,7 @@ | 
| #include "src/v8.h" | 
|  | 
| #include "src/ast.h" | 
| +#include "src/background-parser-thread.h" | 
| #include "src/base/platform/platform.h" | 
| #include "src/base/utils/random-number-generator.h" | 
| #include "src/bootstrapper.h" | 
| @@ -1470,6 +1471,7 @@ Isolate::Isolate() | 
| function_entry_hook_(NULL), | 
| deferred_handles_head_(NULL), | 
| optimizing_compiler_thread_(NULL), | 
| +      background_parser_thread_(NULL), | 
| sweeper_thread_(NULL), | 
| num_sweeper_threads_(0), | 
| stress_deopt_count_(0), | 
| @@ -1558,6 +1560,12 @@ void Isolate::Deinit() { | 
| optimizing_compiler_thread_ = NULL; | 
| } | 
|  | 
| +    if (background_parser_thread_) { | 
| +      background_parser_thread_->Stop(); | 
| +      delete background_parser_thread_; | 
| +      background_parser_thread_ = NULL; | 
| +    } | 
| + | 
| for (int i = 0; i < num_sweeper_threads_; i++) { | 
| sweeper_thread_[i]->Stop(); | 
| delete sweeper_thread_[i]; | 
| @@ -1918,6 +1926,9 @@ bool Isolate::Init(Deserializer* des) { | 
| } | 
| } | 
|  | 
| +  background_parser_thread_ = new BackgroundParserThread(); | 
| +  background_parser_thread_->Start(); | 
| + | 
| // If we are deserializing, read the state into the now-empty heap. | 
| if (!create_heap_objects) { | 
| des->Deserialize(this); | 
|  |