#ifndef V8_OBJECTS_OBJECTS_DEFINITIONS_H_
#define V8_OBJECTS_OBJECTS_DEFINITIONS_H_
#include "src/init/heap-symbols.h"
#include "torque-generated/instance-types.h"
namespace v8 {
namespace internal {
#define INSTANCE_TYPE_LIST_BASE(V) \
V(INTERNALIZED_TWO_BYTE_STRING_TYPE) \
V(EXTERNAL_INTERNALIZED_TWO_BYTE_STRING_TYPE) \
V(INTERNALIZED_ONE_BYTE_STRING_TYPE) \
V(EXTERNAL_INTERNALIZED_ONE_BYTE_STRING_TYPE) \
V(UNCACHED_EXTERNAL_INTERNALIZED_TWO_BYTE_STRING_TYPE) \
V(UNCACHED_EXTERNAL_INTERNALIZED_ONE_BYTE_STRING_TYPE) \
V(SEQ_TWO_BYTE_STRING_TYPE) \
V(CONS_TWO_BYTE_STRING_TYPE) \
V(EXTERNAL_TWO_BYTE_STRING_TYPE) \
V(SLICED_TWO_BYTE_STRING_TYPE) \
V(THIN_TWO_BYTE_STRING_TYPE) \
V(SEQ_ONE_BYTE_STRING_TYPE) \
V(CONS_ONE_BYTE_STRING_TYPE) \
V(EXTERNAL_ONE_BYTE_STRING_TYPE) \
V(SLICED_ONE_BYTE_STRING_TYPE) \
V(THIN_ONE_BYTE_STRING_TYPE) \
V(UNCACHED_EXTERNAL_TWO_BYTE_STRING_TYPE) \
V(UNCACHED_EXTERNAL_ONE_BYTE_STRING_TYPE) \
V(SHARED_SEQ_TWO_BYTE_STRING_TYPE) \
V(SHARED_EXTERNAL_TWO_BYTE_STRING_TYPE) \
V(SHARED_SEQ_ONE_BYTE_STRING_TYPE) \
V(SHARED_EXTERNAL_ONE_BYTE_STRING_TYPE) \
V(SHARED_UNCACHED_EXTERNAL_TWO_BYTE_STRING_TYPE) \
V(SHARED_UNCACHED_EXTERNAL_ONE_BYTE_STRING_TYPE)
#define INSTANCE_TYPE_LIST(V) \
INSTANCE_TYPE_LIST_BASE(V) \
TORQUE_ASSIGNED_INSTANCE_TYPE_LIST(V)
#define STRING_TYPE_LIST(V) \
\
\
V(SHARED_SEQ_TWO_BYTE_STRING_TYPE, kVariableSizeSentinel, \
shared_seq_two_byte_string, SharedSeqTwoByteString) \
V(SHARED_SEQ_ONE_BYTE_STRING_TYPE, kVariableSizeSentinel, \
shared_seq_one_byte_string, SharedSeqOneByteString) \
\
V(SEQ_TWO_BYTE_STRING_TYPE, kVariableSizeSentinel, seq_two_byte_string, \
SeqTwoByteString) \
V(SEQ_ONE_BYTE_STRING_TYPE, kVariableSizeSentinel, seq_one_byte_string, \
SeqOneByteString) \
\
V(INTERNALIZED_TWO_BYTE_STRING_TYPE, kVariableSizeSentinel, \
internalized_two_byte_string, InternalizedTwoByteString) \
V(INTERNALIZED_ONE_BYTE_STRING_TYPE, kVariableSizeSentinel, \
internalized_one_byte_string, InternalizedOneByteString) \
\
\
V(EXTERNAL_INTERNALIZED_TWO_BYTE_STRING_TYPE, sizeof(ExternalTwoByteString), \
external_internalized_two_byte_string, ExternalInternalizedTwoByteString) \
V(EXTERNAL_INTERNALIZED_ONE_BYTE_STRING_TYPE, sizeof(ExternalOneByteString), \
external_internalized_one_byte_string, ExternalInternalizedOneByteString) \
\
V(UNCACHED_EXTERNAL_INTERNALIZED_TWO_BYTE_STRING_TYPE, \
sizeof(UncachedExternalString), \
uncached_external_internalized_two_byte_string, \
UncachedExternalInternalizedTwoByteString) \
V(UNCACHED_EXTERNAL_INTERNALIZED_ONE_BYTE_STRING_TYPE, \
sizeof(UncachedExternalString), \
uncached_external_internalized_one_byte_string, \
UncachedExternalInternalizedOneByteString) \
\
V(UNCACHED_EXTERNAL_TWO_BYTE_STRING_TYPE, sizeof(UncachedExternalString), \
uncached_external_two_byte_string, UncachedExternalTwoByteString) \
V(UNCACHED_EXTERNAL_ONE_BYTE_STRING_TYPE, sizeof(UncachedExternalString), \
uncached_external_one_byte_string, UncachedExternalOneByteString) \
\
V(SHARED_UNCACHED_EXTERNAL_TWO_BYTE_STRING_TYPE, \
sizeof(UncachedExternalString), shared_uncached_external_two_byte_string, \
SharedUncachedExternalTwoByteString) \
V(SHARED_UNCACHED_EXTERNAL_ONE_BYTE_STRING_TYPE, \
sizeof(UncachedExternalString), shared_uncached_external_one_byte_string, \
SharedUncachedExternalOneByteString) \
\
V(SHARED_EXTERNAL_TWO_BYTE_STRING_TYPE, sizeof(ExternalTwoByteString), \
shared_external_two_byte_string, SharedExternalTwoByteString) \
V(SHARED_EXTERNAL_ONE_BYTE_STRING_TYPE, sizeof(ExternalOneByteString), \
shared_external_one_byte_string, SharedExternalOneByteString) \
\
V(EXTERNAL_TWO_BYTE_STRING_TYPE, sizeof(ExternalTwoByteString), \
external_two_byte_string, ExternalTwoByteString) \
V(EXTERNAL_ONE_BYTE_STRING_TYPE, sizeof(ExternalOneByteString), \
external_one_byte_string, ExternalOneByteString) \
\
\
V(CONS_TWO_BYTE_STRING_TYPE, sizeof(ConsString), cons_two_byte_string, \
ConsTwoByteString) \
V(CONS_ONE_BYTE_STRING_TYPE, sizeof(ConsString), cons_one_byte_string, \
ConsOneByteString) \
V(SLICED_TWO_BYTE_STRING_TYPE, sizeof(SlicedString), sliced_two_byte_string, \
SlicedTwoByteString) \
V(SLICED_ONE_BYTE_STRING_TYPE, sizeof(SlicedString), sliced_one_byte_string, \
SlicedOneByteString) \
V(THIN_TWO_BYTE_STRING_TYPE, sizeof(ThinString), thin_two_byte_string, \
ThinTwoByteString) \
V(THIN_ONE_BYTE_STRING_TYPE, sizeof(ThinString), thin_one_byte_string, \
ThinOneByteString)
#define STRUCT_LIST_GENERATOR(V, _) \
V(_, PROMISE_FULFILL_REACTION_JOB_TASK_TYPE, PromiseFulfillReactionJobTask, \
promise_fulfill_reaction_job_task) \
V(_, PROMISE_REJECT_REACTION_JOB_TASK_TYPE, PromiseRejectReactionJobTask, \
promise_reject_reaction_job_task) \
V(_, CALLABLE_TASK_TYPE, CallableTask, callable_task) \
V(_, CALLBACK_TASK_TYPE, CallbackTask, callback_task) \
V(_, PROMISE_RESOLVE_THENABLE_JOB_TASK_TYPE, PromiseResolveThenableJobTask, \
promise_resolve_thenable_job_task) \
V(_, ACCESS_CHECK_INFO_TYPE, AccessCheckInfo, access_check_info) \
V(_, ACCESSOR_PAIR_TYPE, AccessorPair, accessor_pair) \
V(_, ALIASED_ARGUMENTS_ENTRY_TYPE, AliasedArgumentsEntry, \
aliased_arguments_entry) \
V(_, ALLOCATION_MEMENTO_TYPE, AllocationMemento, allocation_memento) \
V(_, ARRAY_BOILERPLATE_DESCRIPTION_TYPE, ArrayBoilerplateDescription, \
array_boilerplate_description) \
IF_WASM(V, _, ASM_WASM_DATA_TYPE, AsmWasmData, asm_wasm_data) \
V(_, ASYNC_GENERATOR_REQUEST_TYPE, AsyncGeneratorRequest, \
async_generator_request) \
V(_, BREAK_POINT_TYPE, BreakPoint, break_point) \
V(_, BREAK_POINT_INFO_TYPE, BreakPointInfo, break_point_info) \
V(_, BYTECODE_WRAPPER_TYPE, BytecodeWrapper, bytecode_wrapper) \
V(_, CALL_SITE_INFO_TYPE, CallSiteInfo, call_site_info) \
V(_, CLASS_BOILERPLATE_TYPE, ClassBoilerplate, class_boilerplate) \
V(_, CLASS_POSITIONS_TYPE, ClassPositions, class_positions) \
V(_, CODE_WRAPPER_TYPE, CodeWrapper, code_wrapper) \
V(_, DEBUG_INFO_TYPE, DebugInfo, debug_info) \
V(_, ENUM_CACHE_TYPE, EnumCache, enum_cache) \
V(_, ERROR_STACK_DATA_TYPE, ErrorStackData, error_stack_data) \
V(_, FUNCTION_TEMPLATE_RARE_DATA_TYPE, FunctionTemplateRareData, \
function_template_rare_data) \
V(_, MODULE_REQUEST_TYPE, ModuleRequest, module_request) \
V(_, PROMISE_CAPABILITY_TYPE, PromiseCapability, promise_capability) \
V(_, PROMISE_REACTION_TYPE, PromiseReaction, promise_reaction) \
V(_, PROPERTY_DESCRIPTOR_OBJECT_TYPE, PropertyDescriptorObject, \
property_descriptor_object) \
V(_, PROTOTYPE_INFO_TYPE, PrototypeInfo, prototype_info) \
V(_, REG_EXP_BOILERPLATE_DESCRIPTION_TYPE, RegExpBoilerplateDescription, \
regexp_boilerplate_description) \
V(_, REG_EXP_DATA_WRAPPER_TYPE, RegExpDataWrapper, regexp_data_wrapper) \
V(_, SCRIPT_TYPE, Script, script) \
V(_, SCRIPT_OR_MODULE_TYPE, ScriptOrModule, script_or_module) \
V(_, SOURCE_TEXT_MODULE_INFO_ENTRY_TYPE, SourceTextModuleInfoEntry, \
module_info_entry) \
V(_, STACK_FRAME_INFO_TYPE, StackFrameInfo, stack_frame_info) \
V(_, STACK_TRACE_INFO_TYPE, StackTraceInfo, stack_trace_info) \
V(_, TEMPLATE_OBJECT_DESCRIPTION_TYPE, TemplateObjectDescription, \
template_object_description) \
V(_, TUPLE2_TYPE, Tuple2, tuple2) \
IF_WASM(V, _, WASM_EXCEPTION_TAG_TYPE, WasmExceptionTag, wasm_exception_tag)
#define STRUCT_LIST_ADAPTER(V, NAME, Name, name) V(NAME, Name, name)
#define STRUCT_LIST(V) STRUCT_LIST_GENERATOR(STRUCT_LIST_ADAPTER, V)
#define STRUCT_MAPS_LIST_ADAPTER(V, NAME, Name, name) \
V(Map, name##_map, Name##Map)
#define STRUCT_MAPS_LIST(V) STRUCT_LIST_GENERATOR(STRUCT_MAPS_LIST_ADAPTER, V)
#define ALLOCATION_SITE_LIST(V, _) \
V(_, ALLOCATION_SITE_TYPE, AllocationSite, WithWeakNext, allocation_site) \
V(_, ALLOCATION_SITE_TYPE, AllocationSite, WithoutWeakNext, \
allocation_site_without_weaknext)
#define ALLOCATION_SITE_MAPS_LIST_ADAPTER(V, TYPE, Name, Size, name_size) \
V(Map, name_size##_map, Name##Size##Map)
#define ALLOCATION_SITE_MAPS_LIST(V) \
ALLOCATION_SITE_LIST(ALLOCATION_SITE_MAPS_LIST_ADAPTER, V)
#define DATA_HANDLER_LIST(V, _) \
V(_, LOAD_HANDLER_TYPE, LoadHandler, 1, load_handler1) \
V(_, LOAD_HANDLER_TYPE, LoadHandler, 2, load_handler2) \
V(_, LOAD_HANDLER_TYPE, LoadHandler, 3, load_handler3) \
V(_, STORE_HANDLER_TYPE, StoreHandler, 0, store_handler0) \
V(_, STORE_HANDLER_TYPE, StoreHandler, 1, store_handler1) \
V(_, STORE_HANDLER_TYPE, StoreHandler, 2, store_handler2) \
V(_, STORE_HANDLER_TYPE, StoreHandler, 3, store_handler3)
#define DATA_HANDLER_MAPS_LIST_ADAPTER(V, TYPE, Name, Size, name_size) \
V(Map, name_size##_map, Name##Size##Map)
#define DATA_HANDLER_MAPS_LIST(V) \
DATA_HANDLER_LIST(DATA_HANDLER_MAPS_LIST_ADAPTER, V)
}
}
#endif