5#ifndef V8_OBJECTS_JS_STRUCT_H_
6#define V8_OBJECTS_JS_STRUCT_H_
17#include "torque-generated/src/objects/js-struct-tq.inc"
20 :
public TorqueGeneratedAlwaysSharedSpaceJSObject<AlwaysSharedSpaceJSObject,
43 static_assert(kHeaderSize == JSObject::kHeaderSize);
48 :
public TorqueGeneratedJSSharedStruct<JSSharedStruct,
49 AlwaysSharedSpaceJSObject> {
54 const std::set<uint32_t>& element_names,
89 const std::set<uint32_t>& element_names);
100 const std::set<uint32_t>& element_names);
105 const std::set<uint32_t>& element_names);
static void PrepareMapNoEnumerableProperties(Tagged< Map > map)
static void PrepareMapWithEnumerableProperties(Isolate *isolate, DirectHandle< Map > map, DirectHandle< DescriptorArray > descriptors, int enum_length)
static V8_WARN_UNUSED_RESULT Maybe< bool > DefineOwnProperty(Isolate *isolate, DirectHandle< AlwaysSharedSpaceJSObject > shared_obj, DirectHandle< Object > key, PropertyDescriptor *desc, Maybe< ShouldThrow > should_throw)
static Maybe< bool > HasInstance(Isolate *isolate, DirectHandle< JSFunction > constructor, DirectHandle< Object > object)
static bool IsRegistryKeyDescriptor(Isolate *isolate, Tagged< Map > instance_map, InternalIndex i)
static MaybeHandle< String > GetRegistryKey(Isolate *isolate, Tagged< Map > instance_map)
static MaybeDirectHandle< NumberDictionary > GetElementsTemplate(Isolate *isolate, Tagged< Map > instance_map)
static DirectHandle< Map > CreateInstanceMap(Isolate *isolate, const base::Vector< const DirectHandle< Name > > field_names, const std::set< uint32_t > &element_names, MaybeDirectHandle< String > maybe_registry_key)
static bool IsElementsTemplateDescriptor(Isolate *isolate, Tagged< Map > instance_map, InternalIndex i)
SharedStructTypeRegistry()
~SharedStructTypeRegistry()
MaybeDirectHandle< Map > RegisterNoThrow(Isolate *isolate, Handle< String > key, const base::Vector< const DirectHandle< Name > > field_names, const std::set< uint32_t > &element_names)
std::unique_ptr< Data > data_
void IterateElements(Isolate *isolate, RootVisitor *visitor)
MaybeDirectHandle< Map > Register(Isolate *isolate, Handle< String > key, const base::Vector< const DirectHandle< Name > > field_names, const std::set< uint32_t > &element_names)
void EnsureCapacity(PtrComprCageBase cage_base, int additional_elements)
MaybeDirectHandle< Map > CheckIfEntryMatches(Isolate *isolate, InternalIndex entry, DirectHandle< String > key, const base::Vector< const DirectHandle< Name > > field_names, const std::set< uint32_t > &element_names)
static constexpr Tagged< Smi > deleted_element()
void NotifyElementsRemoved(int count)
static constexpr Tagged< Smi > FromInt(int value)
#define DECL_PRINTER(Name)
#define TQ_OBJECT_CONSTRUCTORS(Type)
#define EXPORT_DECL_VERIFIER(Name)
#define V8_WARN_UNUSED_RESULT