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); |