| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index 9ddaa81af44ba1df971ae679a90d5c3a50d60f89..a5c21340759327e100da1da9528bb306aa5c7b67 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -1505,6 +1505,8 @@ HeapObjectContents HeapObject::ContentType() {
|
| } else if (type >= FIRST_FIXED_TYPED_ARRAY_TYPE &&
|
| type <= LAST_FIXED_TYPED_ARRAY_TYPE) {
|
| return HeapObjectContents::kMixedValues;
|
| + } else if (type == JS_ARRAY_BUFFER_TYPE) {
|
| + return HeapObjectContents::kMixedValues;
|
| } else if (type <= LAST_DATA_TYPE) {
|
| // TODO(jochen): Why do we claim that Code and Map contain only raw values?
|
| return HeapObjectContents::kRawValues;
|
| @@ -6586,6 +6588,32 @@ void JSArrayBuffer::set_is_shared(bool value) {
|
| }
|
|
|
|
|
| +// static
|
| +template <typename StaticVisitor>
|
| +void JSArrayBuffer::JSArrayBufferIterateBody(Heap* heap, HeapObject* obj) {
|
| + StaticVisitor::VisitPointers(
|
| + heap, obj,
|
| + HeapObject::RawField(obj, JSArrayBuffer::BodyDescriptor::kStartOffset),
|
| + HeapObject::RawField(obj,
|
| + JSArrayBuffer::kByteLengthOffset + kPointerSize));
|
| + StaticVisitor::VisitPointers(
|
| + heap, obj, HeapObject::RawField(obj, JSArrayBuffer::kSize),
|
| + HeapObject::RawField(obj, JSArrayBuffer::kSizeWithInternalFields));
|
| +}
|
| +
|
| +
|
| +void JSArrayBuffer::JSArrayBufferIterateBody(HeapObject* obj,
|
| + ObjectVisitor* v) {
|
| + v->VisitPointers(
|
| + HeapObject::RawField(obj, JSArrayBuffer::BodyDescriptor::kStartOffset),
|
| + HeapObject::RawField(obj,
|
| + JSArrayBuffer::kByteLengthOffset + kPointerSize));
|
| + v->VisitPointers(
|
| + HeapObject::RawField(obj, JSArrayBuffer::kSize),
|
| + HeapObject::RawField(obj, JSArrayBuffer::kSizeWithInternalFields));
|
| +}
|
| +
|
| +
|
| Object* JSArrayBufferView::byte_offset() const {
|
| if (WasNeutered()) return Smi::FromInt(0);
|
| return Object::cast(READ_FIELD(this, kByteOffsetOffset));
|
|
|