| Index: src/compiler-dispatcher/compiler-dispatcher-job.cc
|
| diff --git a/src/compiler-dispatcher/compiler-dispatcher-job.cc b/src/compiler-dispatcher/compiler-dispatcher-job.cc
|
| index 2ca26011bb5646dbacef9b725ac015d2de52af5c..2f8567f54951a794809b4a67d41f96d30a926748 100644
|
| --- a/src/compiler-dispatcher/compiler-dispatcher-job.cc
|
| +++ b/src/compiler-dispatcher/compiler-dispatcher-job.cc
|
| @@ -26,7 +26,8 @@ CompilerDispatcherJob::CompilerDispatcherJob(Isolate* isolate,
|
| CompilerDispatcherTracer* tracer,
|
| Handle<SharedFunctionInfo> shared,
|
| size_t max_stack_size)
|
| - : isolate_(isolate),
|
| + : status_(CompileJobStatus::kInitial),
|
| + isolate_(isolate),
|
| tracer_(tracer),
|
| shared_(Handle<SharedFunctionInfo>::cast(
|
| isolate_->global_handles()->Create(*shared))),
|
| @@ -34,7 +35,6 @@ CompilerDispatcherJob::CompilerDispatcherJob(Isolate* isolate,
|
| can_compile_on_background_thread_(false),
|
| trace_compiler_dispatcher_jobs_(FLAG_trace_compiler_dispatcher_jobs) {
|
| HandleScope scope(isolate_);
|
| - DCHECK(!shared_->outer_scope_info()->IsTheHole(isolate_));
|
| Handle<Script> script(Script::cast(shared_->script()), isolate_);
|
| Handle<String> source(String::cast(script->source()), isolate_);
|
| can_parse_on_background_thread_ =
|
| @@ -46,6 +46,35 @@ CompilerDispatcherJob::CompilerDispatcherJob(Isolate* isolate,
|
| }
|
| }
|
|
|
| +CompilerDispatcherJob::CompilerDispatcherJob(Isolate* isolate,
|
| + CompilerDispatcherTracer* tracer,
|
| + Zone* zone, ParseInfo* parse_info,
|
| + CompilationInfo* compile_info,
|
| + CompilationJob* job,
|
| + size_t max_stack_size)
|
| + : status_(CompileJobStatus::kReadyToCompile),
|
| + isolate_(isolate),
|
| + tracer_(tracer),
|
| + shared_(Handle<SharedFunctionInfo>::cast(
|
| + isolate_->global_handles()->Create(*compile_info->shared_info()))),
|
| + max_stack_size_(max_stack_size),
|
| + zone_(zone),
|
| + parse_info_(parse_info),
|
| + compile_info_(compile_info),
|
| + compile_job_(job),
|
| + can_parse_on_background_thread_(false),
|
| + can_compile_on_background_thread_(
|
| + job->can_execute_on_background_thread()),
|
| + trace_compiler_dispatcher_jobs_(FLAG_trace_compiler_dispatcher_jobs) {
|
| + DCHECK_EQ(zone, parse_info->zone());
|
| + DCHECK_EQ(parse_info, compile_info->parse_info());
|
| + if (trace_compiler_dispatcher_jobs_) {
|
| + PrintF("CompilerDispatcherJob[%p] created for ", static_cast<void*>(this));
|
| + shared_->ShortPrint();
|
| + PrintF("\n");
|
| + }
|
| +}
|
| +
|
| CompilerDispatcherJob::~CompilerDispatcherJob() {
|
| DCHECK(ThreadId::Current().Equals(isolate_->thread_id()));
|
| DCHECK(status_ == CompileJobStatus::kInitial ||
|
|
|