| Index: src/factory.cc
|
| diff --git a/src/factory.cc b/src/factory.cc
|
| index b3779f291af96bf7cefd769c838fc1534aa9a665..4d3cb49f2ca05cb4f1d0c6760c1e75a7fdbd2dad 100644
|
| --- a/src/factory.cc
|
| +++ b/src/factory.cc
|
| @@ -1795,8 +1795,14 @@ void SetupArrayBufferView(i::Isolate* isolate,
|
|
|
| obj->set_buffer(*buffer);
|
|
|
| - obj->set_weak_next(buffer->weak_first_view());
|
| - buffer->set_weak_first_view(*obj);
|
| + Heap* heap = isolate->heap();
|
| + if (heap->InNewSpace(*obj)) {
|
| + obj->set_weak_next(heap->new_array_buffer_views_list());
|
| + heap->set_new_array_buffer_views_list(*obj);
|
| + } else {
|
| + obj->set_weak_next(buffer->weak_first_view());
|
| + buffer->set_weak_first_view(*obj);
|
| + }
|
|
|
| i::Handle<i::Object> byte_offset_object =
|
| isolate->factory()->NewNumberFromSize(byte_offset);
|
|
|