#include "src/objects/tagged-impl.h"
#include <sstream>
#include "src/objects/objects.h"
#include "src/objects/smi.h"
#include "src/objects/tagged-impl-inl.h"
#include "src/strings/string-stream.h"
#include "src/utils/ostreams.h"
#ifdef V8_EXTERNAL_CODE_SPACE
#include "src/heap/heap-write-barrier-inl.h"
#endif
namespace v8 {
namespace internal {
#if defined(V8_EXTERNAL_CODE_SPACE) || defined(V8_ENABLE_SANDBOX)
bool CheckObjectComparisonAllowed(Address a, Address b) { … }
#endif
template <HeapObjectReferenceType kRefType, typename StorageType>
void ShortPrint(TaggedImpl<kRefType, StorageType> ptr, FILE* out) { … }
template EXPORT_TEMPLATE_DEFINE(…) void ShortPrint(
TaggedImpl<HeapObjectReferenceType::STRONG, Address> ptr, FILE* out);
template EXPORT_TEMPLATE_DEFINE(…) void ShortPrint(
TaggedImpl<HeapObjectReferenceType::WEAK, Address> ptr, FILE* out);
template <HeapObjectReferenceType kRefType, typename StorageType>
void ShortPrint(TaggedImpl<kRefType, StorageType> ptr,
StringStream* accumulator) { … }
template EXPORT_TEMPLATE_DEFINE(…) void ShortPrint(
TaggedImpl<HeapObjectReferenceType::STRONG, Address> ptr,
StringStream* accumulator);
template EXPORT_TEMPLATE_DEFINE(…) void ShortPrint(
TaggedImpl<HeapObjectReferenceType::WEAK, Address> ptr,
StringStream* accumulator);
template <HeapObjectReferenceType kRefType, typename StorageType>
void ShortPrint(TaggedImpl<kRefType, StorageType> ptr, std::ostream& os) { … }
template EXPORT_TEMPLATE_DEFINE(…) void ShortPrint(
TaggedImpl<HeapObjectReferenceType::STRONG, Address> ptr, std::ostream& os);
template EXPORT_TEMPLATE_DEFINE(…) void ShortPrint(
TaggedImpl<HeapObjectReferenceType::WEAK, Address> ptr, std::ostream& os);
#ifdef OBJECT_PRINT
template <HeapObjectReferenceType kRefType, typename StorageType>
void Print(TaggedImpl<kRefType, StorageType> ptr) { … }
template EXPORT_TEMPLATE_DEFINE(…) void Print(
TaggedImpl<HeapObjectReferenceType::STRONG, Address> ptr);
template EXPORT_TEMPLATE_DEFINE(…) void Print(
TaggedImpl<HeapObjectReferenceType::WEAK, Address> ptr);
template <HeapObjectReferenceType kRefType, typename StorageType>
void Print(TaggedImpl<kRefType, StorageType> ptr, std::ostream& os) { … }
template EXPORT_TEMPLATE_DEFINE(…) void Print(
TaggedImpl<HeapObjectReferenceType::STRONG, Address> ptr, std::ostream& os);
template EXPORT_TEMPLATE_DEFINE(…) void Print(
TaggedImpl<HeapObjectReferenceType::WEAK, Address> ptr, std::ostream& os);
#endif
template class TaggedImpl<HeapObjectReferenceType::STRONG, Address>;
template class TaggedImpl<HeapObjectReferenceType::WEAK, Address>;
}
}