5#ifndef V8_EXECUTION_ISOLATE_INL_H_
6#define V8_EXECUTION_ISOLATE_INL_H_
31 return g_current_per_isolate_thread_data_;
36 Isolate* isolate = TryGetCurrent();
44 DCHECK(context.is_null() || IsContext(context));
55 return context()->native_context();
59 DCHECK(context.is_null() || IsContext(context));
77 current_vm_state() == JS);
80 maybe_topmost_script_having_context->native_context();
88 DCHECK(IsTheHole(message_obj,
this) || IsJSMessageObject(message_obj));
111 DCHECK(!IsException(exception_obj,
this));
127 DCHECK(!IsException(top->exception_,
this));
128 return !IsTheHole(top->exception_,
this);
151#ifdef V8_COMPRESS_POINTERS
166#ifdef V8_HOST_ARCH_64_BIT
173#ifdef V8_COMPRESS_POINTERS
200 if (!IsJSObject(exception))
return true;
225 isolate_->set_exception(*exception_);
233#define NATIVE_CONTEXT_FIELD_ACCESSOR(index, type, name) \
234 Handle<UNPAREN(type)> Isolate::name() { \
235 return Handle<UNPAREN(type)>(raw_native_context()->name(), this); \
237 bool Isolate::is_##name(Tagged<UNPAREN(type)> value) { \
238 return raw_native_context()->is_##name(value); \
241#undef NATIVE_CONTEXT_FIELD_ACCESSOR
244 : ptr_compr_cage_access_scope_(isolate),
245 previous_isolate_(
Isolate::TryGetCurrent()) {
static const int kNoContext
Isolate * isolate() const
ExceptionScope(Isolate *isolate)
void set_topmost_script_having_context(Tagged< Context > context)
Isolate(const Isolate &)=delete
Handle< JSGlobalObject > global_object()
v8::TryCatch * try_catch_handler()
void FireBeforeCallEnteredCallback()
static void SetCurrent(Isolate *isolate)
bool has_pending_message()
static V8_INLINE Isolate * Current()
const IsolateData * isolate_data() const
void clear_pending_message()
bool IsInCreationContext(Tagged< JSObject > object, uint32_t index)
void set_pending_message(Tagged< Object > message_obj)
Tagged< Context > context() const
void set_context(Tagged< Context > context)
bool is_execution_terminating()
Tagged< NativeContext > raw_native_context()
Tagged< Object > exception()
bool is_catchable_by_javascript(Tagged< Object > exception)
Handle< NativeContext > native_context()
bool is_catchable_by_wasm(Tagged< Object > exception)
DirectHandle< NativeContext > GetIncumbentContextSlow()
Tagged< Object > pending_message()
v8::internal::Factory * factory()
void set_exception(Tagged< Object > exception_obj)
DirectHandle< NativeContext > GetIncumbentContext()
Tagged< Context > topmost_script_having_context() const
Handle< JSGlobalProxy > global_proxy()
static V8_INLINE PerIsolateThreadData * CurrentPerIsolateThreadData()
bool IsInitialArrayPrototype(Tagged< JSArray > array)
Isolate * shared_space_isolate() const
std::vector< BeforeCallEnteredCallback > before_call_entered_callbacks_
void clear_topmost_script_having_context()
ThreadLocalTop * thread_local_top()
void clear_internal_exception()
static bool HasInternalMarkerProperty(Isolate *isolate, Tagged< JSReceiver > object, DirectHandle< Symbol > marker)
SetCurrentIsolateScope(Isolate *isolate)
~SetCurrentIsolateScope()
Isolate *const previous_isolate_
V8_INLINE constexpr bool is_null() const
Tagged< Object > exception_
Tagged< Object > pending_message_
Tagged< Context > context_
Tagged< Context > topmost_script_having_context_
#define NATIVE_CONTEXT_FIELDS(V)
#define NATIVE_CONTEXT_FIELD_ACCESSOR(index, type, name)
ZoneVector< RpoNumber > & result
V8_INLINE IndirectHandle< T > handle(Tagged< T > object, Isolate *isolate)
V8_INLINE bool GetIsolateFromHeapObject(Tagged< HeapObject > object, Isolate **isolate)
V8_INLINE constexpr bool IsSmi(TaggedImpl< kRefType, StorageType > obj)
V8_INLINE DirectHandle< T > direct_handle(Tagged< T > object, Isolate *isolate)
V8_EXPORT_PRIVATE FlagValues v8_flags
static constexpr Address kNullAddress
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
#define DCHECK_NOT_NULL(val)
#define DCHECK(condition)
#define DCHECK_EQ(v1, v2)
#define V8_LIKELY(condition)