5#ifndef V8_EXECUTION_VM_STATE_INL_H_
6#define V8_EXECUTION_VM_STATE_INL_H_
31 return "BYTECODE_COMPILER";
39 return "ATOMICS_WAIT";
47template <StateTag Tag>
49 :
isolate_(isolate), previous_tag_(isolate->current_vm_state()) {
53template <StateTag Tag>
55 isolate_->set_current_vm_state(previous_tag_);
60 const void* callback_info)
62 callback_info_(callback_info),
63 previous_scope_(isolate->external_callback_scope()),
65 exception_context_(exception_context),
66 pause_timed_histogram_scope_(isolate->counters()->execute()) {
67#if USE_SIMULATOR || V8_USE_ADDRESS_SANITIZER || V8_USE_SAFE_STACK
68 js_stack_comparable_address_ =
69 i::SimulatorStack::RegisterJSStackComparableAddress(isolate);
72#ifdef V8_RUNTIME_CALL_STATS
74 "V8.ExternalCallback");
91#ifdef V8_RUNTIME_CALL_STATS
93 "V8.ExternalCallback");
95#if USE_SIMULATOR || V8_USE_ADDRESS_SANITIZER || V8_USE_SAFE_STACK
101#if USE_SIMULATOR || V8_USE_ADDRESS_SANITIZER || V8_USE_SAFE_STACK
102 return js_stack_comparable_address_;
104 return reinterpret_cast<Address>(
this);
ExternalCallbackScope(Isolate *isolate, Address callback, v8::ExceptionContext exception_context=v8::ExceptionContext::kUnknown, const void *callback_info=nullptr)
ExternalCallbackScope *const previous_scope_
Address JSStackComparableAddress()
VMState< EXTERNAL > const vm_state_
void clear_topmost_script_having_context()
VMState(Isolate *isolate)
const char * StateToString(StateTag state)
const AsyncStreamingDecoder::MoreFunctionsCanBeSerializedCallback callback_
#define TRACE_EVENT_END0(category_group, name)
#define TRACE_DISABLED_BY_DEFAULT(name)
#define TRACE_EVENT_BEGIN0(category_group, name)