5#ifndef V8_OBJECTS_SCOPE_INFO_H_
6#define V8_OBJECTS_SCOPE_INFO_H_
13#include "testing/gtest/include/gtest/gtest_prod.h"
14#include "torque-generated/bit-fields.h"
23class NameToIndexHashTable;
25#include "torque-generated/src/objects/scope-info-tq.inc"
27class SourceTextModuleInfo;
50class ScopeInfo :
public TorqueGeneratedScopeInfo<ScopeInfo, HeapObject> {
52 DEFINE_TORQUE_GENERATED_SCOPE_FLAGS()
157 template <
typename ScopeInfoPtr>
261 int* out_last_checked_field =
nullptr)
const;
263 template <
typename IsolateT>
278 inline uint32_t
Flags()
const;
368 TorqueGeneratedFunctionVariableInfoOffsets::kSize /
kTaggedSize;
370 TorqueGeneratedModuleVariableOffsets::kSize /
kTaggedSize;
373 DEFINE_TORQUE_GENERATED_VARIABLE_PROPERTIES()
386#include "src/objects/object-macros-undef.h"
static constexpr int kHeaderSize
bool HasPositionInfo() const
bool HasContextExtensionSlot() const
uint32_t ContextLocalParameterNumber(int var) const
bool HasContextAllocatedFunctionName() const
V8_EXPORT_PRIVATE uint32_t Hash()
int FunctionContextSlotIndex(Tagged< String > name) const
static DirectHandle< ScopeInfo > CreateForBootstrapping(Isolate *isolate, BootstrappingType type)
void CopyElements(Isolate *isolate, int dst_index, Tagged< ScopeInfo > src, int src_index, int len, WriteBarrierMode mode)
V8_EXPORT_PRIVATE Tagged< Object > get(int index) const
V8_EXPORT_PRIVATE Tagged< Object > InferredFunctionName() const
void mark_some_context_has_extension()
Tagged< SourceTextModuleInfo > ModuleDescriptorInfo() const
int ParametersStartIndex() const
bool HasNewTarget() const
static DirectHandle< ScopeInfo > CreateGlobalThisBinding(Isolate *isolate)
bool HasSimpleParameters() const
V8_EXPORT_PRIVATE bool HasFunctionName() const
int ContextSlotIndex(DirectHandle< String > name)
Tagged< String > ContextInlinedLocalName(int var) const
void SetFunctionName(Tagged< UnionOf< Smi, String > > name)
void SetInferredFunctionName(Tagged< String > name)
bool ClassScopeHasPrivateBrand() const
bool PrivateNameLookupSkipsOuterClass() const
bool SomeContextHasExtension() const
bool Equals(Tagged< ScopeInfo > other, bool is_live_edit_compare=false, int *out_last_checked_field=nullptr) const
bool IsReplModeScope() const
int ContextLocalInfosIndex() const
bool is_declaration_scope() const
int Lookup(Handle< String > name, int start, int end, VariableMode *mode, VariableLocation *location, InitializationFlag *init_flag, MaybeAssignedFlag *maybe_assigned_flag)
bool HasOuterScopeInfo() const
int ModuleIndex(Tagged< String > name, VariableMode *mode, InitializationFlag *init_flag, MaybeAssignedFlag *maybe_assigned_flag)
static DirectHandle< ScopeInfo > CreateForShadowRealmNativeContext(Isolate *isolate)
void set(int index, Tagged< Smi > value)
FunctionKind function_kind() const
LanguageMode language_mode() const
int ContextLocalNamesIndex() const
Tagged< DependentCode > dependent_code() const
int InferredFunctionNameIndex() const
void ModuleVariable(int i, Tagged< String > *name, int *index, VariableMode *mode=nullptr, InitializationFlag *init_flag=nullptr, MaybeAssignedFlag *maybe_assigned_flag=nullptr)
ObjectSlot RawFieldOfElementAt(int index)
ScopeType scope_type() const
int DependentCodeIndex() const
bool HasAllocatedReceiver() const
V8_EXPORT_PRIVATE Tagged< UnionOf< Smi, String > > FunctionName() const
static const int kFunctionNameEntries
int ContextHeaderLength() const
static const int kModuleVariableEntryLength
bool IsWrappedFunctionScope() const
int ParameterCount() const
int UniqueIdInScript() const
static constexpr int OffsetOfElementAt(int index)
static constexpr int SizeFor(int length)
bool SloppyEvalCanExtendVars() const
bool IsDebugEvaluateScope() const
static V8_EXPORT_PRIVATE DirectHandle< ScopeInfo > CreateForEmptyFunction(Isolate *isolate)
int ContextLength() const
bool HasSavedClassVariable() const
int InlinedLocalNamesLookup(Tagged< String > name)
IsStaticFlag ContextLocalIsStaticFlag(int var) const
std::pair< Tagged< String >, int > SavedClassVariable() const
static V8_EXPORT_PRIVATE DirectHandle< ScopeInfo > CreateForWithScope(Isolate *isolate, MaybeDirectHandle< ScopeInfo > outer_scope)
int StartPosition() const
static DirectHandle< ScopeInfo > CreateForNativeContext(Isolate *isolate)
int ModuleVariablesIndex() const
int FunctionVariableInfoIndex() const
int ModuleVariableCountIndex() const
V8_EXPORT_PRIVATE bool HasInferredFunctionName() const
InitializationFlag ContextLocalInitFlag(int var) const
V8_EXPORT_PRIVATE bool HasSharedFunctionName() const
bool is_script_scope() const
void SetIsDebugEvaluateScope()
static constexpr int ConvertOffsetToIndex(int offset)
int ContextLocalCount() const
int SavedClassVariableInfoIndex() const
int ReceiverContextSlotIndex() const
void SetPositionInfo(int start, int end)
bool HasInlinedLocalNames() const
int OuterScopeInfoIndex() const
MaybeAssignedFlag ContextLocalMaybeAssignedFlag(int var) const
Tagged< String > FunctionDebugName() const
static V8_EXPORT_PRIVATE Tagged< ScopeInfo > Empty(Isolate *isolate)
VariableMode ContextLocalMode(int var) const
V8_EXPORT_PRIVATE int length() const
static Handle< ScopeInfo > Create(IsolateT *isolate, Zone *zone, Scope *scope, MaybeDirectHandle< ScopeInfo > outer_scope)
bool ContextLocalIsParameter(int var) const
Tagged< ScopeInfo > OuterScopeInfo() const
int ModuleVariableCount() const
static LocalNamesRange< DirectHandle< ScopeInfo > > IterateLocalNames(DirectHandle< ScopeInfo > scope_info)
static bool VariableIsSynthetic(Tagged< String > name)
int ModuleInfoIndex() const
constexpr int kTaggedSize
typename detail::FlattenUnionHelper< Union<>, Ts... >::type UnionOf
static const size_t LanguageModeSize
#define DECL_PRINTER(Name)
#define TQ_OBJECT_CONSTRUCTORS(Type)
#define DCHECK_EQ(v1, v2)
#define V8_EXPORT_PRIVATE
MaybeAssignedFlag maybe_assigned_flag
InitializationFlag init_flag
IsStaticFlag is_static_flag