14#include <unordered_map>
15#include <unordered_set>
32class CompiledWasmModule;
40class CancelableTaskManager;
43struct DynamicImportData;
49 void Bind(
const char* name,
bool histogram);
52 static_assert(
sizeof(int) ==
sizeof(
count_));
53 return reinterpret_cast<int*
>(&
count_);
55 int count()
const {
return count_.load(std::memory_order_relaxed); }
86using CounterMap = std::unordered_map<std::string, Counter*>;
101 argv_ =
const_cast<const char**
>(argv);
164 std::unique_ptr<uint8_t, DataDeleter>
data_;
177 void Enqueue(std::unique_ptr<SerializationData> data);
178 bool Dequeue(std::unique_ptr<SerializationData>* data);
184 std::vector<std::unique_ptr<SerializationData>>
data_;
187class Worker :
public std::enable_shared_from_this<Worker> {
192 bool flush_denormals);
198 void PostMessage(std::unique_ptr<SerializationData> data);
220 std::shared_ptr<Worker> worker,
353 const std::shared_ptr<Worker>& worker)
const;
369#if defined(LEAK_SANITIZER)
370 std::unordered_set<DynamicImportData*> import_data_;
379 std::map<std::shared_ptr<Worker>,
405 bool kAllowIdenticalAssignment = std::is_same<T, bool>::value>
415 if (kAllowIdenticalAssignment) {
417 FATAL(
"Contradictory values for d8 flag --%s",
name_);
421 FATAL(
"Repeated specification of d8 flag --%s",
name_);
439 "fuzzilli-coverage-statistics",
false};
441 "fuzzilli-enable-builtins-coverage",
false};
448 "wait-for-background-tasks",
true};
458 "dump-system-memory-stats",
false};
460 "ignore-unhandled-promises",
false};
462 "mock-arraybuffer-allocator",
false};
464 "mock-arraybuffer-allocator-limit", 0};
466 "multi-mapped-mock-allocator",
false};
486 DisallowReassignment<bool> scope_linux_perf_to_mark_measure = {
487 "scope-linux-perf-to-mark-measure",
false};
488 DisallowReassignment<int> perf_ctl_fd = {
"perf-ctl-fd", -1};
489 DisallowReassignment<int> perf_ack_fd = {
"perf-ack-fd", -1};
492 "disable-in-process-stack-traces",
false};
504 "fuzzy-module-file-extensions",
true};
506 "enable-system-instrumentation",
false};
508 "enable-etw-stack-walking",
false};
513#if V8_ENABLE_WEBASSEMBLY
514 DisallowReassignment<bool> wasm_trap_handler = {
"wasm-trap-handler",
true};
548 bool should_throw =
true);
549 static std::unique_ptr<base::OS::MemoryMappedFile>
ReadFileData(
550 Isolate* isolate,
const char* name,
bool should_throw =
true);
555 static int Main(
int argc,
char* argv[]);
556 static void Exit(
int exit_code);
568 Isolate* isolate, std::unique_ptr<SerializationData> data);
577 double performance_timestamp);
638 std::string profile);
657 static char*
ReadChars(
const char* name,
int* size_out);
663 static void WriteChars(
const char* name, uint8_t* buffer,
size_t buffer_size);
721#ifdef V8_ENABLE_CONTINUATION_PRESERVED_EMBEDDER_DATA
722 static void GetContinuationPreservedEmbedderData(
783 bool isOnMainThread =
true);
789 return options.stress_deserialize ? 1000 : 1;
797 static std::map<Isolate*, std::pair<Global<Function>,
Global<Context>>>
826 static bool SetOptions(
int argc,
char* argv[]);
853 const std::string& file_name,
ModuleType module_type);
856 const std::string& file_name,
878 static std::map<std::string, std::unique_ptr<ScriptCompiler::CachedData>>
Counter counters_[kMaxCounters]
Counter * GetNextCounter()
uint32_t counters_in_use_
static const unsigned kMaxCounters
bool is_histogram() const
static const int kMaxNameSize
std::atomic< int > sample_total_
void Bind(const char *name, bool histogram)
std::atomic< int > count_
void AddSample(int32_t sample)
static void ControlFlowViolation()
static void ObservableDifference()
static void UseAfterFree()
static void UseOfUninitializedValue()
static void UndefinedBehavior()
static void SimulateErrors()
std::pair< Local< Context >, Local< Function > > GetWorkerOnMessage(const std::shared_ptr< Worker > &worker) const
Local< FunctionTemplate > GetDomNodeCtor() const
void UnregisterWorker(const std::shared_ptr< Worker > &worker)
void AddDynamicImportData(DynamicImportData *)
AsyncHooks * GetAsyncHooks()
static PerIsolateData * Get(Isolate *isolate)
void SubscribeWorkerOnMessage(const std::shared_ptr< Worker > &worker, Local< Context > context, Local< Function > callback)
Global< Context > * realms_
std::set< std::shared_ptr< Worker > > registered_workers_
void SetDomNodeCtor(Local< FunctionTemplate > ctor)
Global< Value > realm_shared_
Global< FunctionTemplate > test_api_object_ctor_
void RemoveUnhandledPromise(Local< Promise > promise)
AsyncHooks * async_hooks_wrapper_
bool HasRunningSubscribedWorkers()
bool ignore_unhandled_promises_
void RegisterWorker(std::shared_ptr< Worker > worker)
Global< FunctionTemplate > dom_node_ctor_
int RealmFind(Local< Context > context)
PerIsolateData(Isolate *isolate)
void DeleteDynamicImportData(DynamicImportData *)
void AddUnhandledPromise(Local< Promise > promise, Local< Message > message, Local< Value > exception)
Local< FunctionTemplate > GetTestApiObjectCtor() const
int RealmIndexOrThrow(const v8::FunctionCallbackInfo< v8::Value > &info, int arg_offset)
std::map< std::shared_ptr< Worker >, std::pair< Global< Context >, Global< Function > > > worker_message_callbacks_
std::vector< std::tuple< Global< Promise >, Global< Message >, Global< Value > > > unhandled_promises_
void SetTestApiObjectCtor(Local< FunctionTemplate > ctor)
int HandleUnhandledPromiseRejections()
std::vector< std::unique_ptr< SerializationData > > data_
void Enqueue(std::unique_ptr< SerializationData > data)
bool Dequeue(std::unique_ptr< SerializationData > *data)
const std::vector< std::shared_ptr< v8::BackingStore > > & backing_stores()
const std::optional< v8::SharedValueConveyor > & shared_value_conveyor()
const std::vector< std::shared_ptr< v8::BackingStore > > & sab_backing_stores()
SerializationData(const SerializationData &)=delete
std::vector< std::shared_ptr< v8::BackingStore > > backing_stores_
std::unique_ptr< uint8_t, DataDeleter > data_
const std::vector< CompiledWasmModule > & compiled_wasm_modules()
std::vector< CompiledWasmModule > compiled_wasm_modules_
SerializationData & operator=(const SerializationData &)=delete
std::optional< v8::SharedValueConveyor > shared_value_conveyor_
std::vector< std::shared_ptr< v8::BackingStore > > sab_backing_stores_
SerializationData()=default
DisallowReassignment & operator=(T value)
DisallowReassignment(const char *name, T value)
DisallowReassignment< bool > dump_system_memory_stats
DisallowReassignment< bool > quiet_load
DisallowReassignment< const char * > trace_config
DisallowReassignment< int > thread_pool_size
DisallowReassignment< bool > enable_inspector
DisallowReassignment< bool > fuzzilli_coverage_statistics
DisallowReassignment< const char * > d8_path
DisallowReassignment< bool > flush_denormals
DisallowReassignment< bool > disable_in_process_stack_traces
DisallowReassignment< CodeCacheOptions, true > code_cache_options
DisallowReassignment< bool > trace_enabled
DisallowReassignment< bool > cpu_profiler_print
@ kProduceCacheAfterExecute
DisallowReassignment< bool > omit_quit
DisallowReassignment< bool > fuzzilli_enable_builtins_coverage
DisallowReassignment< bool > wait_for_background_tasks
DisallowReassignment< bool > invoke_weak_callbacks
DisallowReassignment< size_t > max_serializer_memory
DisallowReassignment< const char * > icu_data_file
DisallowReassignment< bool > no_fail
DisallowReassignment< bool > streaming_compile
DisallowReassignment< bool > stress_deserialize
DisallowReassignment< int > read_from_tcp_port
DisallowReassignment< bool > multi_mapped_mock_allocator
DisallowReassignment< const char * > trace_path
DisallowReassignment< bool > dump_counters_nvp
DisallowReassignment< bool > enable_os_system
DisallowReassignment< const char * > lcov_file
DisallowReassignment< bool > compile_only
DisallowReassignment< bool > expose_fast_api
DisallowReassignment< bool > expected_to_throw
DisallowReassignment< SourceGroup * > isolate_sources
DisallowReassignment< int > repeat_compile
DisallowReassignment< bool > send_idle_notification
DisallowReassignment< bool > include_arguments
DisallowReassignment< bool > apply_priority
DisallowReassignment< bool > enable_system_instrumentation
DisallowReassignment< v8::ScriptCompiler::CompileOptions, true > compile_options
DisallowReassignment< bool > fuzzy_module_file_extensions
DisallowReassignment< bool > simulate_errors
DisallowReassignment< int > stress_runs
DisallowReassignment< bool > stress_delay_tasks
std::vector< const char * > arguments
DisallowReassignment< bool > ignore_unhandled_promises
DisallowReassignment< bool > dump_counters
DisallowReassignment< const char * > icu_locale
DisallowReassignment< bool > cpu_profiler
DisallowReassignment< bool > interactive_shell
DisallowReassignment< const char * > snapshot_blob
static void RealmCurrent(const v8::FunctionCallbackInfo< v8::Value > &info)
static void InstallConditionalFeatures(const v8::FunctionCallbackInfo< v8::Value > &info)
static void WriteChars(const char *name, uint8_t *buffer, size_t buffer_size)
static void WriteStdout(const v8::FunctionCallbackInfo< v8::Value > &info)
static int Main(int argc, char *argv[])
static CounterCollection * counters_
static void WorkerTerminateAndWait(const v8::FunctionCallbackInfo< v8::Value > &info)
static MaybeLocal< Promise > HostImportModuleDynamically(Local< Context > context, Local< Data > host_defined_options, Local< Value > resource_name, Local< String > specifier, Local< FixedArray > import_attributes)
static MaybeLocal< Context > CreateEvaluationContext(Isolate *isolate)
static void AddHistogramSample(void *histogram, int sample)
static base::OS::MemoryMappedFile * counters_file_
static void AddOSMethods(v8::Isolate *isolate, Local< ObjectTemplate > os_template)
static bool is_valid_fuzz_script()
static void update_script_size(int size)
static std::map< Isolate *, std::pair< Global< Function >, Global< Context > > > profiler_end_callback_
static void RealmGlobal(const v8::FunctionCallbackInfo< v8::Value > &info)
static Local< ObjectTemplate > CreatePerformanceTemplate(Isolate *isolate)
static std::map< Isolate *, bool > isolate_status_
static void RealmCreate(const v8::FunctionCallbackInfo< v8::Value > &info)
static void PerformanceMark(const v8::FunctionCallbackInfo< v8::Value > &info)
static Global< Function > stringify_function_
static void ScheduleTermination(const v8::FunctionCallbackInfo< v8::Value > &info)
static bool ExecuteModule(Isolate *isolate, const char *file_name)
static std::unique_ptr< base::OS::MemoryMappedFile > ReadFileData(Isolate *isolate, const char *name, bool should_throw=true)
static std::map< std::string, std::unique_ptr< ScriptCompiler::CachedData > > cached_code_map_
static Local< FunctionTemplate > CreateLeafInterfaceTypeTemplate(Isolate *isolate)
static MaybeLocal< Value > DeserializeValue(Isolate *isolate, std::unique_ptr< SerializationData > data)
static Local< FunctionTemplate > CreateEventTargetTemplate(Isolate *isolate)
static void PerformanceMeasure(const v8::FunctionCallbackInfo< v8::Value > &info)
static Local< ObjectTemplate > CreateD8Template(Isolate *isolate)
static void WorkerOnMessageGetter(const v8::FunctionCallbackInfo< v8::Value > &info)
static void ProfilerTriggerSample(const v8::FunctionCallbackInfo< v8::Value > &info)
static base::LazyMutex cached_code_mutex_
static char * ReadChars(const char *name, int *size_out)
static void ReadCodeTypeAndArguments(const v8::FunctionCallbackInfo< v8::Value > &info, int index, CodeType *code_type, Local< Value > *arguments=nullptr)
static void CreateWasmMemoryMapDescriptor(const v8::FunctionCallbackInfo< v8::Value > &info)
static void WriteLcovData(v8::Isolate *isolate, const char *file)
static std::map< Isolate *, int > isolate_running_streaming_tasks_
static void RealmDetachGlobal(const v8::FunctionCallbackInfo< v8::Value > &info)
static void AsyncHooksExecutionAsyncId(const v8::FunctionCallbackInfo< v8::Value > &info)
static std::unordered_set< std::shared_ptr< Worker > > running_workers_
static bool RunMainIsolate(Isolate *isolate, bool keep_context_alive)
static void ResetOnProfileEndListener(Isolate *isolate)
static void SetFlushDenormals(const v8::FunctionCallbackInfo< v8::Value > &info)
static Local< ObjectTemplate > CreateRealmTemplate(Isolate *isolate)
static base::OnceType quit_once_
static void WorkerPostMessage(const v8::FunctionCallbackInfo< v8::Value > &info)
static void PerformanceMeasureMemory(const v8::FunctionCallbackInfo< v8::Value > &info)
static void RealmSharedGet(Local< Name > property, const PropertyCallbackInfo< Value > &info)
static void EnableDebugger(const v8::FunctionCallbackInfo< v8::Value > &info)
static void System(const v8::FunctionCallbackInfo< v8::Value > &info)
static void WaitForRunningWorkers(const i::ParkedScope &parked)
static void MakeDirectory(const v8::FunctionCallbackInfo< v8::Value > &info)
static void * CreateHistogram(const char *name, int min, int max, size_t buckets)
static void NodeTypeCallback(const v8::FunctionCallbackInfo< v8::Value > &info)
static void WorkerTerminate(const v8::FunctionCallbackInfo< v8::Value > &info)
static void SerializerSerialize(const v8::FunctionCallbackInfo< v8::Value > &info)
static void NotifyDone(const v8::FunctionCallbackInfo< v8::Value > &info)
static bool ExecuteString(Isolate *isolate, Local< String > source, Local< String > name, ReportExceptions report_exceptions, Global< Value > *out_result=nullptr)
static int RunMain(Isolate *isolate, bool last_run)
static MaybeLocal< PrimitiveArray > ReadLines(Isolate *isolate, const char *name)
static void RealmSharedSet(Local< Name > property, Local< Value > value, const PropertyCallbackInfo< void > &info)
static void AsyncHooksTriggerAsyncId(const v8::FunctionCallbackInfo< v8::Value > &info)
static void ReadBuffer(const v8::FunctionCallbackInfo< v8::Value > &info)
static void RealmSwitch(const v8::FunctionCallbackInfo< v8::Value > &info)
static void HostInitializeImportMetaObject(Local< Context > context, Local< Module > module, Local< Object > meta)
static Local< ObjectTemplate > CreateTestRunnerTemplate(Isolate *isolate)
static void ModuleResolutionSuccessCallback(const v8::FunctionCallbackInfo< v8::Value > &info)
static bool allow_new_workers_
static int DeserializationRunCount()
static void UnsetEnvironment(const v8::FunctionCallbackInfo< v8::Value > &info)
static void Quit(const v8::FunctionCallbackInfo< v8::Value > &info)
static void AsyncHooksCreateHook(const v8::FunctionCallbackInfo< v8::Value > &info)
static void WriteFile(const v8::FunctionCallbackInfo< v8::Value > &info)
static bool use_interactive_shell()
static MaybeLocal< Context > HostCreateShadowRealmContext(Local< Context > initiator_context)
static void Version(const v8::FunctionCallbackInfo< v8::Value > &info)
static void SetWaitUntilDone(Isolate *isolate, bool value)
static void RunShell(Isolate *isolate)
static void TestVerifySourcePositions(const v8::FunctionCallbackInfo< v8::Value > &info)
static base::LazyMutex workers_mutex_
static void SetPromiseHooks(const v8::FunctionCallbackInfo< v8::Value > &info)
static MaybeLocal< Object > FetchModuleSource(v8::Local< v8::Module > origin_module, v8::Local< v8::Context > context, const std::string &file_name, ModuleType module_type)
static std::atomic< bool > valid_fuzz_script_
static base::Mutex counter_mutex_
static Local< ObjectTemplate > CreateOSTemplate(Isolate *isolate)
static const base::TimeTicks kInitialTicks
static void DoHostImportModuleDynamically(void *data)
static base::Mutex profiler_end_callback_lock_
static Counter * GetCounter(const char *name, bool is_histogram)
static void TriggerOnProfileEndListener(Isolate *isolate, std::string profile)
static void SetEnvironment(const v8::FunctionCallbackInfo< v8::Value > &info)
static Local< FunctionTemplate > CreateNodeTemplates(Isolate *isolate, Local< FunctionTemplate > event_target)
static bool FunctionAndArgumentsToString(Local< Function > function, Local< Value > arguments, Local< String > *source, Isolate *isolate)
static void OnExit(Isolate *isolate, bool dispose)
static void RemoveRunningWorker(const std::shared_ptr< Worker > &worker)
static bool SetOptions(int argc, char *argv[])
static void RealmDispose(const v8::FunctionCallbackInfo< v8::Value > &info)
static MaybeLocal< Context > CreateRealm(const v8::FunctionCallbackInfo< v8::Value > &info, int index, v8::MaybeLocal< Value > global_object)
static Local< FunctionTemplate > CreateWorkerTemplate(Isolate *isolate)
static void ReadLine(const v8::FunctionCallbackInfo< v8::Value > &info)
static void SetUMask(const v8::FunctionCallbackInfo< v8::Value > &info)
static void SerializerDeserialize(const v8::FunctionCallbackInfo< v8::Value > &info)
static bool LoadJSON(Isolate *isolate, const char *file_name)
static Local< ObjectTemplate > CreateAsyncHookTemplate(Isolate *isolate)
static void WorkerOnMessageSetter(const v8::FunctionCallbackInfo< v8::Value > &info)
static int * LookupCounter(const char *name)
static void PerformanceNow(const v8::FunctionCallbackInfo< v8::Value > &info)
static MaybeLocal< String > ReadFile(Isolate *isolate, const char *name, bool should_throw=true)
static CounterCollection local_counters_
static void WriteIgnitionDispatchCountersFile(v8::Isolate *isolate)
static CounterMap * counter_map_
static void LogGetAndStop(const v8::FunctionCallbackInfo< v8::Value > &info)
static uint64_t GetTracingTimestampFromPerformanceTimestamp(double performance_timestamp)
static base::LazyMutex isolate_status_lock_
static bool HandleUnhandledPromiseRejections(Isolate *isolate)
static void QuitOnce(v8::FunctionCallbackInfo< v8::Value > *info)
static double GetTimestamp()
static void RemoveDirectory(const v8::FunctionCallbackInfo< v8::Value > &info)
static char * ReadCharsFromTcpPort(const char *name, int *size_out)
static void Exit(int exit_code)
static bool HasOnProfileEndListener(Isolate *isolate)
static void EnableJSPI(const v8::FunctionCallbackInfo< v8::Value > &info)
static void SetTimeout(const v8::FunctionCallbackInfo< v8::Value > &info)
static void set_script_executed()
static MaybeLocal< Module > FetchModuleTree(v8::Local< v8::Module > origin_module, v8::Local< v8::Context > context, const std::string &file_name, ModuleType module_type)
static std::atomic< bool > script_executed_
static Global< Context > evaluation_context_
static bool CompleteMessageLoop(Isolate *isolate)
static void Initialize(Isolate *isolate, D8Console *console, bool isOnMainThread=true)
static const char * kPrompt
static void ExecuteFile(const v8::FunctionCallbackInfo< v8::Value > &info)
static void ChangeDirectory(const v8::FunctionCallbackInfo< v8::Value > &info)
static Local< String > Stringify(Isolate *isolate, Local< Value > value)
static std::unique_ptr< SerializationData > SerializeValue(Isolate *isolate, Local< Value > value, Local< Value > transfer)
static void CollectGarbage(Isolate *isolate)
static std::atomic< int > unhandled_promise_rejections_
static ArrayBuffer::Allocator * array_buffer_allocator
static void TerminateNow(const v8::FunctionCallbackInfo< v8::Value > &info)
static void RealmCreateAllowCrossRealmAccess(const v8::FunctionCallbackInfo< v8::Value > &info)
static Local< FunctionTemplate > CreateTestFastCApiTemplate(Isolate *isolate)
static void StoreInCodeCache(Isolate *isolate, Local< Value > name, const ScriptCompiler::CachedData *data)
static void RealmEval(const v8::FunctionCallbackInfo< v8::Value > &info)
static void RealmOwner(const v8::FunctionCallbackInfo< v8::Value > &info)
static MaybeLocal< String > ReadSource(const v8::FunctionCallbackInfo< v8::Value > &info, int index, CodeType default_type)
static void DisableDebugger(const v8::FunctionCallbackInfo< v8::Value > &info)
static void RealmNavigate(const v8::FunctionCallbackInfo< v8::Value > &info)
static void AddRunningWorker(std::shared_ptr< Worker > worker)
static void ProfilerSetOnProfileEndListener(const v8::FunctionCallbackInfo< v8::Value > &info)
static MaybeLocal< Promise > HostImportModuleWithPhaseDynamically(Local< Context > context, Local< Data > host_defined_options, Local< Value > resource_name, Local< String > specifier, ModuleImportPhase phase, Local< FixedArray > import_attributes)
static base::LazyMutex context_mutex_
static Local< ObjectTemplate > CreateGlobalTemplate(Isolate *isolate)
static ScriptCompiler::CachedData * LookupCodeCache(Isolate *isolate, Local< Value > name)
static void DisposeRealm(const v8::FunctionCallbackInfo< v8::Value > &info, int index)
static MaybeLocal< Value > JSONModuleEvaluationSteps(Local< Context > context, Local< Module > module)
static const char * stringify_source_
static ShellOptions options
static void ModuleResolutionFailureCallback(const v8::FunctionCallbackInfo< v8::Value > &info)
static void ReportException(Isolate *isolate, Local< Message > message, Local< Value > exception)
static void Print(const v8::FunctionCallbackInfo< v8::Value > &info)
static void WaitUntilDone(const v8::FunctionCallbackInfo< v8::Value > &info)
static void PrintErr(const v8::FunctionCallbackInfo< v8::Value > &info)
static void WorkerGetMessage(const v8::FunctionCallbackInfo< v8::Value > &info)
static void MapCounters(v8::Isolate *isolate, const char *name)
static bool EmptyMessageQueues(Isolate *isolate)
static void GetExtrasBindingObject(const v8::FunctionCallbackInfo< v8::Value > &info)
static void WorkerNew(const v8::FunctionCallbackInfo< v8::Value > &info)
static Local< String > ReadFromStdin(Isolate *isolate)
static bool FinishExecuting(Isolate *isolate, const Global< Context > &context)
static MaybeLocal< T > CompileString(Isolate *isolate, Local< Context > context, Local< String > source, const ScriptOrigin &origin)
IsolateThread(SourceGroup *group)
void JoinThread(const i::ParkedScope &parked)
void Begin(char **argv, int offset)
void ExitShell(int exit_code)
i::ParkingSemaphore next_semaphore_
void StartExecuteInThread()
i::ParkingSemaphore done_semaphore_
bool Execute(Isolate *isolate)
void WaitForThread(const i::ParkedScope &parked)
WorkerThread(std::shared_ptr< Worker > worker, base::Thread::Priority priority)
std::shared_ptr< Worker > worker_
i::CancelableTaskManager * task_manager_
std::shared_ptr< TaskRunner > task_runner_
std::unique_ptr< SerializationData > TryGetMessage()
void ProcessMessage(std::unique_ptr< SerializationData > data)
i::ParkingSemaphore started_semaphore_
bool IsTerminated() const
base::Mutex worker_mutex_
static void Close(const v8::FunctionCallbackInfo< v8::Value > &info)
Worker(Isolate *parent_isolate, const char *script, bool flush_denormals)
Global< Context > context_
static void PostMessageOut(const v8::FunctionCallbackInfo< v8::Value > &info)
void PostMessage(std::unique_ptr< SerializationData > data)
void EnterTerminatedState()
std::atomic< State > state_
i::ParkingSemaphore out_semaphore_
static bool StartWorkerThread(Isolate *requester, std::shared_ptr< Worker > worker, base::Thread::Priority priority)
std::unique_ptr< SerializationData > GetMessage(Isolate *requester)
static constexpr i::ExternalPointerTag kManagedTag
static void SetCurrentWorker(Worker *worker)
void TerminateAndWaitForThread(const i::ParkedScope &parked)
SerializationDataQueue out_queue_
static void ImportScripts(const v8::FunctionCallbackInfo< v8::Value > &info)
Isolate * parent_isolate_
static Worker * GetCurrentWorker()
Thread(const Options &options)
Priority priority() const
std::atomic< uint8_t > OnceType
std::unordered_map< std::string, Counter * > CounterMap
void(*)(PromiseRejectMessage message) PromiseRejectCallback
bool check_d8_flag_contradictions
Local< String >(*)(Isolate *isolate, const char *name) WasmLoadSourceMapCallback
void operator()(uint8_t *p) const
std::unique_ptr< ValueMirror > value