v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
isolate.cc File Reference
#include "src/execution/isolate.h"
#include <stdlib.h>
#include <atomic>
#include <cinttypes>
#include <cstdint>
#include <fstream>
#include <memory>
#include <optional>
#include <sstream>
#include <string>
#include <unordered_map>
#include <utility>
#include "include/v8-template.h"
#include "src/api/api-arguments-inl.h"
#include "src/api/api-inl.h"
#include "src/ast/ast-value-factory.h"
#include "src/ast/scopes.h"
#include "src/base/fpu.h"
#include "src/base/hashmap.h"
#include "src/base/logging.h"
#include "src/base/platform/mutex.h"
#include "src/base/platform/platform.h"
#include "src/base/platform/wrappers.h"
#include "src/base/sys-info.h"
#include "src/base/utils/random-number-generator.h"
#include "src/baseline/baseline-batch-compiler.h"
#include "src/bigint/bigint.h"
#include "src/builtins/builtins-promise.h"
#include "src/builtins/builtins.h"
#include "src/builtins/constants-table-builder.h"
#include "src/codegen/assembler-inl.h"
#include "src/codegen/compilation-cache.h"
#include "src/codegen/flush-instruction-cache.h"
#include "src/common/assert-scope.h"
#include "src/common/globals.h"
#include "src/common/ptr-compr-inl.h"
#include "src/common/thread-local-storage.h"
#include "src/compiler-dispatcher/lazy-compile-dispatcher.h"
#include "src/compiler-dispatcher/optimizing-compile-dispatcher.h"
#include "src/date/date.h"
#include "src/debug/debug-frames.h"
#include "src/debug/debug.h"
#include "src/deoptimizer/deoptimizer.h"
#include "src/deoptimizer/materialized-object-store.h"
#include "src/diagnostics/basic-block-profiler.h"
#include "src/diagnostics/compilation-statistics.h"
#include "src/execution/frames-inl.h"
#include "src/execution/frames.h"
#include "src/execution/isolate-inl.h"
#include "src/execution/local-isolate.h"
#include "src/execution/messages.h"
#include "src/execution/microtask-queue.h"
#include "src/execution/protectors-inl.h"
#include "src/execution/simulator.h"
#include "src/execution/tiering-manager.h"
#include "src/execution/v8threads.h"
#include "src/execution/vm-state-inl.h"
#include "src/flags/flags.h"
#include "src/handles/global-handles-inl.h"
#include "src/handles/persistent-handles.h"
#include "src/heap/heap-inl.h"
#include "src/heap/heap-verifier.h"
#include "src/heap/local-heap-inl.h"
#include "src/heap/parked-scope.h"
#include "src/heap/read-only-heap.h"
#include "src/heap/safepoint.h"
#include "src/ic/stub-cache.h"
#include "src/init/bootstrapper.h"
#include "src/init/setup-isolate.h"
#include "src/init/v8.h"
#include "src/interpreter/bytecode-array-iterator.h"
#include "src/interpreter/bytecodes.h"
#include "src/interpreter/interpreter.h"
#include "src/libsampler/sampler.h"
#include "src/logging/counters.h"
#include "src/logging/log.h"
#include "src/logging/metrics.h"
#include "src/logging/runtime-call-stats-scope.h"
#include "src/numbers/hash-seed-inl.h"
#include "src/objects/backing-store.h"
#include "src/objects/call-site-info-inl.h"
#include "src/objects/call-site-info.h"
#include "src/objects/elements.h"
#include "src/objects/feedback-vector.h"
#include "src/objects/hash-table-inl.h"
#include "src/objects/instance-type-inl.h"
#include "src/objects/js-array-buffer-inl.h"
#include "src/objects/js-array-inl.h"
#include "src/objects/js-atomics-synchronization-inl.h"
#include "src/objects/js-function.h"
#include "src/objects/js-generator-inl.h"
#include "src/objects/js-struct-inl.h"
#include "src/objects/js-weak-refs-inl.h"
#include "src/objects/managed-inl.h"
#include "src/objects/module-inl.h"
#include "src/objects/promise-inl.h"
#include "src/objects/property-descriptor.h"
#include "src/objects/prototype.h"
#include "src/objects/slots.h"
#include "src/objects/smi.h"
#include "src/objects/source-text-module-inl.h"
#include "src/objects/string-set-inl.h"
#include "src/objects/visitors.h"
#include "src/objects/waiter-queue-node.h"
#include "src/profiler/heap-profiler.h"
#include "src/profiler/tracing-cpu-profiler.h"
#include "src/regexp/regexp-stack.h"
#include "src/roots/roots.h"
#include "src/roots/static-roots.h"
#include "src/sandbox/js-dispatch-table-inl.h"
#include "src/snapshot/embedded/embedded-data-inl.h"
#include "src/snapshot/embedded/embedded-file-writer-interface.h"
#include "src/snapshot/read-only-deserializer.h"
#include "src/snapshot/shared-heap-deserializer.h"
#include "src/snapshot/snapshot.h"
#include "src/snapshot/startup-deserializer.h"
#include "src/strings/string-builder-inl.h"
#include "src/strings/string-stream.h"
#include "src/tasks/cancelable-task.h"
#include "src/tracing/tracing-category-observer.h"
#include "src/utils/address-map.h"
#include "src/utils/ostreams.h"
#include "src/utils/version.h"
#include "src/zone/accounting-allocator.h"
#include "src/zone/type-stats.h"

Go to the source code of this file.

Classes

class  v8::internal::TracingAccountingAllocator
 

Namespaces

namespace  v8
 
namespace  v8::internal
 

Macros

#define TRACE_ISOLATE(tag)
 
#define CASE(Name)
 
#define ISOLATE_INIT_EXECUTE(type, name, initial_value)
 
#define ISOLATE_INIT_ARRAY_EXECUTE(type, name, length)
 
#define ASSIGN_ELEMENT(CamelName, hacker_name)
 

Functions

const uint8_t * v8::internal::DefaultEmbeddedBlobCode ()
 
uint32_t v8::internal::DefaultEmbeddedBlobCodeSize ()
 
const uint8_t * v8::internal::DefaultEmbeddedBlobData ()
 
uint32_t v8::internal::DefaultEmbeddedBlobDataSize ()
 
void v8::internal::DisableEmbeddedBlobRefcounting ()
 
void v8::internal::FreeCurrentEmbeddedBlob ()
 
bool v8::internal::NoExtension (const v8::FunctionCallbackInfo< v8::Value > &)
 
static void v8::internal::PrintFrames (Isolate *isolate, StringStream *accumulator, StackFrame::PrintMode mode)
 
static base::RandomNumberGeneratorv8::internal::ensure_rng_exists (base::RandomNumberGenerator **rng, int seed)
 
void v8::internal::DefaultWasmAsyncResolvePromiseCallback (v8::Isolate *isolate, v8::Local< v8::Context > context, v8::Local< v8::Promise::Resolver > resolver, v8::Local< v8::Value > result, WasmAsyncSuccess success)
 

Variables

const uint8_t v8_Default_embedded_blob_code_ [] = {0}
 
uint32_t v8_Default_embedded_blob_code_size_ = 0
 
const uint8_t v8_Default_embedded_blob_data_ [] = {0}
 
uint32_t v8_Default_embedded_blob_data_size_ = 0
 
thread_local Isolate::PerIsolateThreadData *g_current_per_isolate_thread_data_ v8::internal::V8_CONSTINIT = nullptr
 
base::LazyMutex v8::internal::read_only_dispatch_entries_mutex_ = LAZY_MUTEX_INITIALIZER
 

Macro Definition Documentation

◆ ASSIGN_ELEMENT

#define ASSIGN_ELEMENT ( CamelName,
hacker_name )
Value:
isolate_addresses_[IsolateAddressId::k##CamelName##Address] = \
reinterpret_cast<Address>(hacker_name##_address());

◆ CASE

#define CASE ( Name)
Value:
case Builtin::k##Name: \
return HandlerTable::PROMISE;

◆ ISOLATE_INIT_ARRAY_EXECUTE

#define ISOLATE_INIT_ARRAY_EXECUTE ( type,
name,
length )
Value:
memset(name##_, 0, sizeof(type) * length);
#define _

◆ ISOLATE_INIT_EXECUTE

#define ISOLATE_INIT_EXECUTE ( type,
name,
initial_value )
Value:
name##_ = (initial_value);

◆ TRACE_ISOLATE

#define TRACE_ISOLATE ( tag)

Definition at line 193 of file isolate.cc.

Variable Documentation

◆ caller_

const Handle<Object> caller_
private

Definition at line 1115 of file isolate.cc.

◆ current_script_

MaybeHandle<Script> current_script_
private

Definition at line 1683 of file isolate.cc.

◆ elements_

Handle<FixedArray> elements_
private

Definition at line 1119 of file isolate.cc.

◆ encountered_strict_function_

bool encountered_strict_function_ = false
private

Definition at line 1118 of file isolate.cc.

◆ frames_

Handle<FixedArray> frames_
private

Definition at line 1606 of file isolate.cc.

◆ index_

int index_ = 0
private

Definition at line 1113 of file isolate.cc.

◆ isolate_

Isolate* isolate_
private

Definition at line 1111 of file isolate.cc.

◆ limit_

int limit_
private

Definition at line 1114 of file isolate.cc.

◆ mode_

const FrameSkipMode mode_
private

Definition at line 1112 of file isolate.cc.

◆ name_or_url_

Handle<String> name_or_url_
private

Definition at line 1661 of file isolate.cc.

◆ skip_next_frame_

bool skip_next_frame_
private

Definition at line 1116 of file isolate.cc.

◆ skipped_prev_frame_

bool skipped_prev_frame_ = false
private

Definition at line 1117 of file isolate.cc.

◆ stack_iterator_

StackFrameIterator stack_iterator_
private

Definition at line 2717 of file isolate.cc.

◆ summaries_

FrameSummaries summaries_
private

Definition at line 2718 of file isolate.cc.

◆ v8_Default_embedded_blob_code_

const uint8_t v8_Default_embedded_blob_code_ = {0}

Definition at line 176 of file isolate.cc.

◆ v8_Default_embedded_blob_code_size_

uint32_t v8_Default_embedded_blob_code_size_ = 0

Definition at line 177 of file isolate.cc.

◆ v8_Default_embedded_blob_data_

const uint8_t v8_Default_embedded_blob_data_ = {0}

Definition at line 178 of file isolate.cc.

◆ v8_Default_embedded_blob_data_size_

uint32_t v8_Default_embedded_blob_data_size_ = 0

Definition at line 179 of file isolate.cc.