| Index: src/objects-visiting-inl.h
|
| diff --git a/src/objects-visiting-inl.h b/src/objects-visiting-inl.h
|
| index 6c3c9d44fe318d77c141a68dc6d562d86563aceb..46ca0b10ca6219d9b49e8fe08d20241cad400087 100644
|
| --- a/src/objects-visiting-inl.h
|
| +++ b/src/objects-visiting-inl.h
|
| @@ -83,6 +83,8 @@ void StaticNewSpaceVisitor<StaticVisitor>::Initialize() {
|
|
|
| table_.Register(kVisitJSTypedArray, &VisitJSTypedArray);
|
|
|
| + table_.Register(kVisitJSDataView, &VisitJSDataView);
|
| +
|
| table_.Register(kVisitFreeSpace, &VisitFreeSpace);
|
|
|
| table_.Register(kVisitJSWeakMap, &JSObjectVisitor::Visit);
|
| @@ -108,7 +110,7 @@ int StaticNewSpaceVisitor<StaticVisitor>::VisitJSArrayBuffer(
|
| Heap* heap = map->GetHeap();
|
|
|
| STATIC_ASSERT(
|
| - JSArrayBuffer::kWeakFirstArrayOffset ==
|
| + JSArrayBuffer::kWeakFirstViewOffset ==
|
| JSArrayBuffer::kWeakNextOffset + kPointerSize);
|
| VisitPointers(
|
| heap,
|
| @@ -140,6 +142,22 @@ int StaticNewSpaceVisitor<StaticVisitor>::VisitJSTypedArray(
|
|
|
|
|
| template<typename StaticVisitor>
|
| +int StaticNewSpaceVisitor<StaticVisitor>::VisitJSDataView(
|
| + Map* map, HeapObject* object) {
|
| + VisitPointers(
|
| + map->GetHeap(),
|
| + HeapObject::RawField(object, JSDataView::BodyDescriptor::kStartOffset),
|
| + HeapObject::RawField(object, JSDataView::kWeakNextOffset));
|
| + VisitPointers(
|
| + map->GetHeap(),
|
| + HeapObject::RawField(object,
|
| + JSDataView::kWeakNextOffset + kPointerSize),
|
| + HeapObject::RawField(object, JSDataView::kSize));
|
| + return JSDataView::kSize;
|
| +}
|
| +
|
| +
|
| +template<typename StaticVisitor>
|
| void StaticMarkingVisitor<StaticVisitor>::Initialize() {
|
| table_.Register(kVisitShortcutCandidate,
|
| &FixedBodyVisitor<StaticVisitor,
|
| @@ -194,6 +212,8 @@ void StaticMarkingVisitor<StaticVisitor>::Initialize() {
|
|
|
| table_.Register(kVisitJSTypedArray, &VisitJSTypedArray);
|
|
|
| + table_.Register(kVisitJSDataView, &VisitJSDataView);
|
| +
|
| // Registration for kVisitJSRegExp is done by StaticVisitor.
|
|
|
| table_.Register(kVisitCell,
|
| @@ -456,7 +476,7 @@ void StaticMarkingVisitor<StaticVisitor>::VisitJSArrayBuffer(
|
| Heap* heap = map->GetHeap();
|
|
|
| STATIC_ASSERT(
|
| - JSArrayBuffer::kWeakFirstArrayOffset ==
|
| + JSArrayBuffer::kWeakFirstViewOffset ==
|
| JSArrayBuffer::kWeakNextOffset + kPointerSize);
|
| StaticVisitor::VisitPointers(
|
| heap,
|
| @@ -486,6 +506,21 @@ void StaticMarkingVisitor<StaticVisitor>::VisitJSTypedArray(
|
|
|
|
|
| template<typename StaticVisitor>
|
| +void StaticMarkingVisitor<StaticVisitor>::VisitJSDataView(
|
| + Map* map, HeapObject* object) {
|
| + StaticVisitor::VisitPointers(
|
| + map->GetHeap(),
|
| + HeapObject::RawField(object, JSDataView::BodyDescriptor::kStartOffset),
|
| + HeapObject::RawField(object, JSDataView::kWeakNextOffset));
|
| + StaticVisitor::VisitPointers(
|
| + map->GetHeap(),
|
| + HeapObject::RawField(object,
|
| + JSDataView::kWeakNextOffset + kPointerSize),
|
| + HeapObject::RawField(object, JSDataView::kSize));
|
| +}
|
| +
|
| +
|
| +template<typename StaticVisitor>
|
| void StaticMarkingVisitor<StaticVisitor>::MarkMapContents(
|
| Heap* heap, Map* map) {
|
| // Make sure that the back pointer stored either in the map itself or
|
|
|