Index: src/factory.cc |
diff --git a/src/factory.cc b/src/factory.cc |
index f36cf21eff54cebd43545925e140064f746c44df..aa213fd99f6dd10412fb5845af42a10bf6ba9272 100644 |
--- a/src/factory.cc |
+++ b/src/factory.cc |
@@ -1790,8 +1790,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); |