#ifndef V8_OBJECTS_PROPERTY_DETAILS_H_
#define V8_OBJECTS_PROPERTY_DETAILS_H_
#include "include/v8-object.h"
#include "src/base/bit-field.h"
#include "src/common/globals.h"
#include "src/flags/flags.h"
#include "src/utils/allocation.h"
namespace v8 {
namespace internal {
enum PropertyAttributes { … };
V8_INLINE PropertyAttributes PropertyAttributesFromInt(int value) { … }
static const int kPropertyAttributesBitsCount = …;
static const int kPropertyAttributesCombinationsCount = …;
enum PropertyFilter { … };
static_assert …;
static_assert …;
static_assert …;
static_assert …;
static_assert …;
static_assert …;
static_assert …;
static_assert …;
static_assert …;
static_assert …;
static_assert …;
static_assert …;
class Smi;
class TypeInfo;
enum class PropertyKind { … };
enum class PropertyLocation { … };
enum class PropertyConstness { … };
class Representation { … };
static const int kDescriptorIndexBitCount = …;
static const int kFirstInobjectPropertyOffsetBitCount = …;
static const int kMaxNumberOfDescriptors = …;
static const int kInvalidEnumCacheSentinel = …;
enum class PropertyCellType { … };
class PropertyDetails { … };
inline bool IsGeneralizableTo(PropertyLocation a, PropertyLocation b) { … }
inline bool IsGeneralizableTo(PropertyConstness a, PropertyConstness b) { … }
inline PropertyConstness GeneralizeConstness(PropertyConstness a,
PropertyConstness b) { … }
V8_EXPORT_PRIVATE std::ostream& operator<<(
std::ostream& os, const Representation& representation);
V8_EXPORT_PRIVATE std::ostream& operator<<(
std::ostream& os, const PropertyAttributes& attributes);
V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os,
PropertyConstness constness);
V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream& os,
PropertyCellType type);
}
}
#endif