| Index: src/objects-body-descriptors-inl.h
|
| diff --git a/src/objects-body-descriptors-inl.h b/src/objects-body-descriptors-inl.h
|
| index e7f9736000e60f032ee9c3d1babf968adc2f9be8..841997d773321d480475886bccdb9892bba317af 100644
|
| --- a/src/objects-body-descriptors-inl.h
|
| +++ b/src/objects-body-descriptors-inl.h
|
| @@ -239,6 +239,22 @@ class JSArrayBuffer::BodyDescriptor final : public BodyDescriptorBase {
|
| }
|
| };
|
|
|
| +class ByteArray::BodyDescriptor final : public BodyDescriptorBase {
|
| + public:
|
| + static bool IsValidSlot(HeapObject* obj, int offset) { return false; }
|
| +
|
| + template <typename ObjectVisitor>
|
| + static inline void IterateBody(HeapObject* obj, int object_size,
|
| + ObjectVisitor* v) {}
|
| +
|
| + template <typename StaticVisitor>
|
| + static inline void IterateBody(HeapObject* obj, int object_size) {}
|
| +
|
| + static inline int SizeOf(Map* map, HeapObject* obj) {
|
| + return reinterpret_cast<ByteArray*>(obj)->ByteArraySize();
|
| + }
|
| +};
|
| +
|
| class BytecodeArray::BodyDescriptor final : public BodyDescriptorBase {
|
| public:
|
| static bool IsValidSlot(HeapObject* obj, int offset) {
|
| @@ -267,6 +283,23 @@ class BytecodeArray::BodyDescriptor final : public BodyDescriptorBase {
|
| }
|
| };
|
|
|
| +class FixedDoubleArray::BodyDescriptor final : public BodyDescriptorBase {
|
| + public:
|
| + static bool IsValidSlot(HeapObject* obj, int offset) { return false; }
|
| +
|
| + template <typename ObjectVisitor>
|
| + static inline void IterateBody(HeapObject* obj, int object_size,
|
| + ObjectVisitor* v) {}
|
| +
|
| + template <typename StaticVisitor>
|
| + static inline void IterateBody(HeapObject* obj, int object_size) {}
|
| +
|
| + static inline int SizeOf(Map* map, HeapObject* obj) {
|
| + return FixedDoubleArray::SizeFor(
|
| + reinterpret_cast<FixedDoubleArray*>(obj)->length());
|
| + }
|
| +};
|
| +
|
| class FixedTypedArrayBase::BodyDescriptor final : public BodyDescriptorBase {
|
| public:
|
| static bool IsValidSlot(HeapObject* obj, int offset) {
|
| @@ -459,6 +492,39 @@ class Code::BodyDescriptor final : public BodyDescriptorBase {
|
| }
|
| };
|
|
|
| +class SeqOneByteString::BodyDescriptor final : public BodyDescriptorBase {
|
| + public:
|
| + static bool IsValidSlot(HeapObject* obj, int offset) { return false; }
|
| +
|
| + template <typename ObjectVisitor>
|
| + static inline void IterateBody(HeapObject* obj, int object_size,
|
| + ObjectVisitor* v) {}
|
| +
|
| + template <typename StaticVisitor>
|
| + static inline void IterateBody(HeapObject* obj, int object_size) {}
|
| +
|
| + static inline int SizeOf(Map* map, HeapObject* obj) {
|
| + SeqOneByteString* string = SeqOneByteString::cast(obj);
|
| + return string->SizeFor(string->length());
|
| + }
|
| +};
|
| +
|
| +class SeqTwoByteString::BodyDescriptor final : public BodyDescriptorBase {
|
| + public:
|
| + static bool IsValidSlot(HeapObject* obj, int offset) { return false; }
|
| +
|
| + template <typename ObjectVisitor>
|
| + static inline void IterateBody(HeapObject* obj, int object_size,
|
| + ObjectVisitor* v) {}
|
| +
|
| + template <typename StaticVisitor>
|
| + static inline void IterateBody(HeapObject* obj, int object_size) {}
|
| +
|
| + static inline int SizeOf(Map* map, HeapObject* obj) {
|
| + SeqTwoByteString* string = SeqTwoByteString::cast(obj);
|
| + return string->SizeFor(string->length());
|
| + }
|
| +};
|
|
|
| template <typename Op, typename ReturnType, typename T1, typename T2,
|
| typename T3>
|
|
|