5#ifndef V8_OBJECTS_DEPENDENT_CODE_H_
6#define V8_OBJECTS_DEPENDENT_CODE_H_
84 template <
typename ObjectT>
88 template <
typename ObjectT>
93 template <
typename ObjectT>
101 RootIndex::kEmptyWeakArrayList;
127 template <
typename Function>
#define DEFINE_OPERATORS_FOR_FLAGS(Type)
static LazyDeoptimizeReason DependencyGroupToLazyDeoptReason(DependencyGroup group)
static constexpr int kCodeSlotOffset
static void SetDependentCode(DirectHandle< HeapObject > object, DirectHandle< DependentCode > dep)
static constexpr int LengthFor(int number_of_entries)
int FillEntryFromBack(int index, int length)
static V8_EXPORT_PRIVATE Tagged< DependentCode > empty_dependent_code(const ReadOnlyRoots &roots)
OBJECT_CONSTRUCTORS(DependentCode, WeakArrayList)
static DirectHandle< DependentCode > InsertWeakCode(Isolate *isolate, Handle< DependentCode > entries, DependencyGroups groups, DirectHandle< Code > code)
@ kFieldRepresentationGroup
@ kScriptContextSlotPropertyChangedGroup
@ kEmptyContextExtensionGroup
@ kInitialMapChangedGroup
@ kPropertyCellChangedGroup
@ kAllocationSiteTenuringChangedGroup
@ kAllocationSiteTransitionChangedGroup
static constexpr RootIndex kEmptyDependentCode
static constexpr int kSlotsPerEntry
static const char * DependencyGroupName(DependencyGroup group)
static V8_EXPORT_PRIVATE void InstallDependency(Isolate *isolate, Handle< Code > code, Handle< HeapObject > object, DependencyGroups groups)
static constexpr int kGroupsSlotOffset
static void DeoptimizeDependencyGroups(Isolate *isolate, ObjectT object, DependencyGroups groups)
void IterateAndCompact(IsolateForSandbox isolate, const Function &fn)
static bool MarkCodeForDeoptimization(Isolate *isolate, Tagged< ObjectT > object, DependencyGroups groups)
static Tagged< DependentCode > GetDependentCode(Tagged< HeapObject > object)
ZoneVector< Entry > entries
#define V8_EXPORT_PRIVATE