#ifndef V8_OBJECTS_FIXED_ARRAY_H_
#define V8_OBJECTS_FIXED_ARRAY_H_
#include <optional>
#include "src/common/globals.h"
#include "src/handles/maybe-handles.h"
#include "src/objects/heap-object.h"
#include "src/objects/instance-type.h"
#include "src/objects/maybe-object.h"
#include "src/objects/objects.h"
#include "src/objects/smi.h"
#include "src/objects/tagged.h"
#include "src/objects/trusted-object.h"
#include "src/roots/roots.h"
#include "src/utils/memcopy.h"
#include "src/objects/object-macros.h"
namespace v8::internal {
#include "torque-generated/src/objects/fixed-array-tq.inc"
template <class Derived, class ShapeT, class Super = HeapObject>
class TaggedArrayBase : public Super { … };
class TaggedArrayShape final : public AllStatic { … };
class FixedArray : public TaggedArrayBase<FixedArray, TaggedArrayShape> { … };
class TrustedArrayShape final : public AllStatic { … };
class TrustedFixedArray
: public TaggedArrayBase<TrustedFixedArray, TrustedArrayShape,
TrustedObject> { … };
class ProtectedArrayShape final : public AllStatic { … };
class ProtectedFixedArray
: public TaggedArrayBase<ProtectedFixedArray, ProtectedArrayShape,
TrustedObject> { … };
class FixedArrayExact final : public FixedArray { … };
class FixedArrayBase : public HeapObject { … };
template <class Derived, class ShapeT, class Super = HeapObject>
class PrimitiveArrayBase : public Super { … };
class FixedDoubleArrayShape final : public AllStatic { … };
class FixedDoubleArray
: public PrimitiveArrayBase<FixedDoubleArray, FixedDoubleArrayShape> { … };
class WeakFixedArrayShape final : public AllStatic { … };
class WeakFixedArray
: public TaggedArrayBase<WeakFixedArray, WeakFixedArrayShape> { … };
class TrustedWeakFixedArrayShape final : public AllStatic { … };
class TrustedWeakFixedArray
: public TaggedArrayBase<TrustedWeakFixedArray,
TrustedWeakFixedArrayShape> { … };
class WeakArrayList
: public TorqueGeneratedWeakArrayList<WeakArrayList, HeapObject> { … };
class WeakArrayList::Iterator { … };
class ArrayListShape final : public AllStatic { … };
class ArrayList : public TaggedArrayBase<ArrayList, ArrayListShape> { … };
enum SearchMode { … };
template <SearchMode search_mode, typename T>
inline int Search(T* array, Tagged<Name> name, int valid_entries = 0,
int* out_insertion_index = nullptr,
bool concurrent_search = false);
class ByteArrayShape final : public AllStatic { … };
class ByteArray : public PrimitiveArrayBase<ByteArray, ByteArrayShape> { … };
class TrustedByteArrayShape final : public AllStatic { … };
class TrustedByteArray
: public PrimitiveArrayBase<TrustedByteArray, TrustedByteArrayShape,
TrustedObject> { … };
template <typename T, typename Base>
class FixedIntegerArrayBase : public Base { … };
FixedInt8Array;
FixedUInt8Array;
FixedInt16Array;
FixedUInt16Array;
FixedInt32Array;
FixedUInt32Array;
FixedInt64Array;
FixedUInt64Array;
template <typename Base>
class FixedAddressArrayBase : public FixedIntegerArrayBase<Address, Base> { … };
FixedAddressArray;
TrustedFixedAddressArray;
template <class T, class Super>
class PodArrayBase : public Super { … };
template <class T>
class PodArray : public PodArrayBase<T, ByteArray> { … };
template <class T>
class TrustedPodArray : public PodArrayBase<T, TrustedByteArray> { … };
}
#include "src/objects/object-macros-undef.h"
#endif