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 || |