// Copyright 2016 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef V8_COMPILER_DISPATCHER_COMPILER_DISPATCHER_JOB_H_ #define V8_COMPILER_DISPATCHER_COMPILER_DISPATCHER_JOB_H_ #include #include "include/v8.h" #include "src/base/macros.h" #include "src/globals.h" #include "src/handles.h" #include "testing/gtest/include/gtest/gtest_prod.h" namespace v8 { namespace internal { class AstValueFactory; class CompilerDispatcherTracer; class CompilationInfo; class CompilationJob; class DeferredHandles; class FunctionLiteral; class Isolate; class ParseInfo; class Parser; class SharedFunctionInfo; class String; class UnicodeCache; class Utf16CharacterStream; enum class CompileJobStatus { kInitial, kReadyToParse, kParsed, kReadyToAnalyze, kAnalyzed, kReadyToCompile, kCompiled, kFailed, kDone, }; class V8_EXPORT_PRIVATE CompilerDispatcherJob { public: // Creates a CompilerDispatcherJob in the initial state. CompilerDispatcherJob(Isolate* isolate, CompilerDispatcherTracer* tracer, Handle shared, size_t max_stack_size); // Creates a CompilerDispatcherJob in the analyzed state. CompilerDispatcherJob(Isolate* isolate, CompilerDispatcherTracer* tracer, Handle