5#ifndef V8_OBJECTS_MODULE_INL_H_
6#define V8_OBJECTS_MODULE_INL_H_
23#include "torque-generated/src/objects/module-tq-inl.inc"
35 HasToplevelAwaitBit::kShift)
39 kAsyncParentModulesOffset)
44 DCHECK(PhaseBit::is_valid(phase));
46 hints = PhaseBit::update(hints, phase);
51 return PhaseBit::decode(
flags());
56 return module->hash();
95 return module->hash();
107 :
public std::unordered_set<Handle<Module>, ModuleHandleHash,
109 ZoneAllocator<Handle<Module>>> {
121 DCHECK(!IsTheHole(cycle_root(), isolate));
133 module->set_async_parent_modules(*new_array_list);
144 return async_parent_modules()->length();
152 DCHECK_GE(pending_async_dependencies(), 0);
153 return pending_async_dependencies() > 0;
157 set_pending_async_dependencies(pending_async_dependencies() + 1);
161 set_pending_async_dependencies(pending_async_dependencies() - 1);
static V8_EXPORT_PRIVATE DirectHandle< ArrayList > Add(Isolate *isolate, DirectHandle< ArrayList > array, Tagged< Smi > obj, AllocationType allocation=AllocationType::kYoung)
ModuleImportPhase phase() const
Tagged< FixedArray > regular_imports() const
Tagged< FixedArray > special_exports() const
bool Equals(Tagged< SourceTextModuleInfo > other) const
Tagged< FixedArray > namespace_imports() const
Tagged< FixedArray > module_requests() const
Tagged< FixedArray > regular_exports() const
static void AddAsyncParentModule(Isolate *isolate, DirectHandle< SourceTextModule > module, DirectHandle< SourceTextModule > parent)
void IncrementPendingAsyncDependencies()
Handle< SourceTextModule > GetAsyncParentModule(Isolate *isolate, int index)
bool HasPendingAsyncDependencies()
static constexpr unsigned kFirstAsyncEvaluationOrdinal
Handle< SourceTextModule > GetCycleRoot(Isolate *isolate) const
bool HasAsyncEvaluationOrdinal() const
NEVER_READ_ONLY_SPACE Tagged< SharedFunctionInfo > GetSharedFunctionInfo() const
void DecrementPendingAsyncDependencies()
int AsyncParentModuleCount()
Tagged< SourceTextModuleInfo > info() const
Tagged< ElementT > get(int index) const
UnorderedModuleSet(Zone *zone)
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
#define BOOL_ACCESSORS(holder, field, name, offset)
#define ACCESSORS(holder, name, type, offset)
#define TQ_OBJECT_CONSTRUCTORS_IMPL(Type)
#define BIT_FIELD_ACCESSORS(holder, field, name, BitField)
#define NEVER_READ_ONLY_SPACE_IMPL(Type)
#define CHECK_GE(lhs, rhs)
#define DCHECK_GE(v1, v2)
#define DCHECK(condition)
V8_INLINE bool operator()(DirectHandle< Module > lhs, DirectHandle< Module > rhs) const
V8_INLINE size_t operator()(DirectHandle< Module > module) const
V8_INLINE size_t operator()(Tagged< Module > module) const