| // Copyright 2019 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef V8_OBJECTS_OBJECT_LIST_MACROS_H_ |
| #define V8_OBJECTS_OBJECT_LIST_MACROS_H_ |
| |
| #include "torque-generated/instance-types.h" |
| |
| namespace v8 { |
| namespace internal { |
| |
| class AbstractCode; |
| class AccessorPair; |
| class AccessCheckInfo; |
| class AllocationSite; |
| class ByteArray; |
| class CachedTemplateObject; |
| class Cell; |
| class ClosureFeedbackCellArray; |
| class ConsString; |
| class DependentCode; |
| class ElementsAccessor; |
| class EnumCache; |
| class FixedArrayBase; |
| class FixedDoubleArray; |
| class FreeSpace; |
| class FunctionLiteral; |
| class FunctionTemplateInfo; |
| class JSAsyncGeneratorObject; |
| class JSGlobalProxy; |
| class SourceTextModule; |
| class JSPromise; |
| class JSProxy; |
| class JSProxyRevocableResult; |
| class KeyAccumulator; |
| class LayoutDescriptor; |
| class LookupIterator; |
| class FieldType; |
| class Module; |
| class SourceTextModuleInfoEntry; |
| class HeapNumber; |
| class ObjectHashTable; |
| class ObjectTemplateInfo; |
| class ObjectVisitor; |
| class OSROptimizedCodeCache; |
| class PreparseData; |
| class PropertyArray; |
| class PropertyCell; |
| class PropertyDescriptor; |
| class PrototypeInfo; |
| class ReadOnlyRoots; |
| class RegExpMatchInfo; |
| class RootVisitor; |
| class SafepointEntry; |
| class ScriptContextTable; |
| class SharedFunctionInfo; |
| class StringStream; |
| class Symbol; |
| class SyntheticModule; |
| class FeedbackCell; |
| class FeedbackMetadata; |
| class FeedbackVector; |
| class UncompiledData; |
| class TemplateInfo; |
| class TransitionArray; |
| class TemplateList; |
| class WasmInstanceObject; |
| class WasmMemoryObject; |
| template <typename T> |
| class ZoneForwardList; |
| |
| #define OBJECT_TYPE_LIST(V) \ |
| V(LayoutDescriptor) \ |
| V(Primitive) \ |
| V(Number) \ |
| V(Numeric) |
| |
| #define HEAP_OBJECT_ORDINARY_TYPE_LIST_BASE(V) \ |
| V(AbstractCode) \ |
| V(AccessCheckNeeded) \ |
| V(AllocationSite) \ |
| V(ArrayList) \ |
| V(BigInt) \ |
| V(BigIntBase) \ |
| V(BigIntWrapper) \ |
| V(ObjectBoilerplateDescription) \ |
| V(Boolean) \ |
| V(BooleanWrapper) \ |
| V(ByteArray) \ |
| V(BytecodeArray) \ |
| V(CallHandlerInfo) \ |
| V(Callable) \ |
| V(Cell) \ |
| V(ClassBoilerplate) \ |
| V(Code) \ |
| V(CodeDataContainer) \ |
| V(CompilationCacheTable) \ |
| V(ConsString) \ |
| V(Constructor) \ |
| V(Context) \ |
| V(CoverageInfo) \ |
| V(ClosureFeedbackCellArray) \ |
| V(DataHandler) \ |
| V(DeoptimizationData) \ |
| V(DependentCode) \ |
| V(EmbedderDataArray) \ |
| V(EphemeronHashTable) \ |
| V(ExternalOneByteString) \ |
| V(ExternalString) \ |
| V(ExternalTwoByteString) \ |
| V(FeedbackCell) \ |
| V(FeedbackMetadata) \ |
| V(FeedbackVector) \ |
| V(Filler) \ |
| V(FixedArray) \ |
| V(FixedArrayBase) \ |
| V(FixedArrayExact) \ |
| V(FixedDoubleArray) \ |
| V(Foreign) \ |
| V(FrameArray) \ |
| V(FreeSpace) \ |
| V(Function) \ |
| V(GlobalDictionary) \ |
| V(HandlerTable) \ |
| V(HeapNumber) \ |
| V(InternalizedString) \ |
| V(JSArgumentsObject) \ |
| V(JSArray) \ |
| V(JSArrayBuffer) \ |
| V(JSArrayBufferView) \ |
| V(JSArrayIterator) \ |
| V(JSAsyncFromSyncIterator) \ |
| V(JSAsyncFunctionObject) \ |
| V(JSAsyncGeneratorObject) \ |
| V(JSBoundFunction) \ |
| V(JSCollection) \ |
| V(JSCollectionIterator) \ |
| V(JSContextExtensionObject) \ |
| V(JSCustomElementsObject) \ |
| V(JSDataView) \ |
| V(JSDate) \ |
| V(JSError) \ |
| V(JSFinalizationRegistry) \ |
| V(JSFunction) \ |
| V(JSFunctionOrBoundFunction) \ |
| V(JSGeneratorObject) \ |
| V(JSGlobalObject) \ |
| V(JSGlobalProxy) \ |
| V(JSMap) \ |
| V(JSMapIterator) \ |
| V(JSMessageObject) \ |
| V(JSModuleNamespace) \ |
| V(JSObject) \ |
| V(JSPrimitiveWrapper) \ |
| V(JSPromise) \ |
| V(JSProxy) \ |
| V(JSReceiver) \ |
| V(JSRegExp) \ |
| V(JSRegExpStringIterator) \ |
| V(JSSet) \ |
| V(JSSetIterator) \ |
| V(JSSpecialObject) \ |
| V(JSStringIterator) \ |
| V(JSTypedArray) \ |
| V(JSWeakCollection) \ |
| V(JSWeakRef) \ |
| V(JSWeakMap) \ |
| V(JSWeakSet) \ |
| V(LoadHandler) \ |
| V(Map) \ |
| V(MapCache) \ |
| V(Module) \ |
| V(Microtask) \ |
| V(Name) \ |
| V(NameDictionary) \ |
| V(NativeContext) \ |
| V(NormalizedMapCache) \ |
| V(NumberDictionary) \ |
| V(NumberWrapper) \ |
| V(ObjectHashSet) \ |
| V(ObjectHashTable) \ |
| V(OrderedHashMap) \ |
| V(OrderedHashSet) \ |
| V(OrderedNameDictionary) \ |
| V(OSROptimizedCodeCache) \ |
| V(PreparseData) \ |
| V(PrimitiveHeapObject) \ |
| V(PromiseReactionJobTask) \ |
| V(PropertyArray) \ |
| V(PropertyCell) \ |
| V(RegExpMatchInfo) \ |
| V(ScopeInfo) \ |
| V(ScriptContextTable) \ |
| V(ScriptWrapper) \ |
| V(SeqOneByteString) \ |
| V(SeqString) \ |
| V(SeqTwoByteString) \ |
| V(SharedFunctionInfo) \ |
| V(SimpleNumberDictionary) \ |
| V(SlicedString) \ |
| V(SmallOrderedHashMap) \ |
| V(SmallOrderedHashSet) \ |
| V(SmallOrderedNameDictionary) \ |
| V(SourceTextModule) \ |
| V(SourceTextModuleInfo) \ |
| V(StoreHandler) \ |
| V(String) \ |
| V(StringSet) \ |
| V(StringWrapper) \ |
| V(Struct) \ |
| V(Symbol) \ |
| V(SymbolWrapper) \ |
| V(SyntheticModule) \ |
| V(TemplateInfo) \ |
| V(TemplateList) \ |
| V(ThinString) \ |
| V(TransitionArray) \ |
| V(UncompiledData) \ |
| V(UncompiledDataWithPreparseData) \ |
| V(UncompiledDataWithoutPreparseData) \ |
| V(Undetectable) \ |
| V(UniqueName) \ |
| V(WasmArray) \ |
| V(WasmExceptionObject) \ |
| V(WasmExceptionPackage) \ |
| V(WasmGlobalObject) \ |
| V(WasmInstanceObject) \ |
| V(WasmMemoryObject) \ |
| V(WasmModuleObject) \ |
| V(WasmStruct) \ |
| V(WasmTypeInfo) \ |
| V(WasmTableObject) \ |
| V(WeakFixedArray) \ |
| V(WeakArrayList) \ |
| V(WeakCell) \ |
| TORQUE_DEFINED_CLASS_LIST(V) |
| |
| #ifdef V8_INTL_SUPPORT |
| #define HEAP_OBJECT_ORDINARY_TYPE_LIST(V) \ |
| HEAP_OBJECT_ORDINARY_TYPE_LIST_BASE(V) \ |
| V(JSV8BreakIterator) \ |
| V(JSCollator) \ |
| V(JSDateTimeFormat) \ |
| V(JSDisplayNames) \ |
| V(JSListFormat) \ |
| V(JSLocale) \ |
| V(JSNumberFormat) \ |
| V(JSPluralRules) \ |
| V(JSRelativeTimeFormat) \ |
| V(JSSegmentIterator) \ |
| V(JSSegmenter) \ |
| V(JSSegments) |
| #else |
| #define HEAP_OBJECT_ORDINARY_TYPE_LIST(V) HEAP_OBJECT_ORDINARY_TYPE_LIST_BASE(V) |
| #endif // V8_INTL_SUPPORT |
| |
| #define HEAP_OBJECT_TEMPLATE_TYPE_LIST(V) V(HashTable) |
| |
| // Logical sub-types of heap objects that don't correspond to a C++ class but |
| // represent some specialization in terms of additional constraints. |
| #define HEAP_OBJECT_SPECIALIZED_TYPE_LIST(V) \ |
| V(AwaitContext) \ |
| V(BlockContext) \ |
| V(CallableApiObject) \ |
| V(CallableJSProxy) \ |
| V(CatchContext) \ |
| V(DebugEvaluateContext) \ |
| V(EvalContext) \ |
| V(FreeSpaceOrFiller) \ |
| V(FunctionContext) \ |
| V(JSApiObject) \ |
| V(JSMapKeyIterator) \ |
| V(JSMapKeyValueIterator) \ |
| V(JSMapValueIterator) \ |
| V(JSSetKeyValueIterator) \ |
| V(JSSetValueIterator) \ |
| V(JSSpecialApiObject) \ |
| V(ModuleContext) \ |
| V(NonNullForeign) \ |
| V(ScriptContext) \ |
| V(WithContext) |
| |
| #define HEAP_OBJECT_TYPE_LIST(V) \ |
| HEAP_OBJECT_ORDINARY_TYPE_LIST(V) \ |
| HEAP_OBJECT_TEMPLATE_TYPE_LIST(V) \ |
| HEAP_OBJECT_SPECIALIZED_TYPE_LIST(V) |
| |
| #define ODDBALL_LIST(V) \ |
| V(Undefined, undefined_value) \ |
| V(Null, null_value) \ |
| V(TheHole, the_hole_value) \ |
| V(Exception, exception) \ |
| V(Uninitialized, uninitialized_value) \ |
| V(True, true_value) \ |
| V(False, false_value) \ |
| V(ArgumentsMarker, arguments_marker) \ |
| V(OptimizedOut, optimized_out) \ |
| V(StaleRegister, stale_register) |
| |
| } // namespace internal |
| } // namespace v8 |
| |
| #endif // V8_OBJECTS_OBJECT_LIST_MACROS_H_ |