| Index: src/runtime/runtime-typedarray.cc
 | 
| diff --git a/src/runtime/runtime-typedarray.cc b/src/runtime/runtime-typedarray.cc
 | 
| index 510ceb1ac9631e4ebb9fc97f2f958fb0d3fccf2d..a1aacd7aa8a744236c311f8698e8b0f8b810016b 100644
 | 
| --- a/src/runtime/runtime-typedarray.cc
 | 
| +++ b/src/runtime/runtime-typedarray.cc
 | 
| @@ -51,9 +51,18 @@ void Runtime::SetupArrayBuffer(Isolate* isolate,
 | 
|    CHECK(byte_length->IsSmi() || byte_length->IsHeapNumber());
 | 
|    array_buffer->set_byte_length(*byte_length);
 | 
|  
 | 
| -  array_buffer->set_weak_next(isolate->heap()->array_buffers_list());
 | 
| -  CHECK(isolate->heap()->InNewSpace(*array_buffer));
 | 
| -  isolate->heap()->set_array_buffers_list(*array_buffer);
 | 
| +  if (isolate->heap()->InNewSpace(*array_buffer) ||
 | 
| +      isolate->heap()->array_buffers_list()->IsUndefined()) {
 | 
| +    array_buffer->set_weak_next(isolate->heap()->array_buffers_list());
 | 
| +    isolate->heap()->set_array_buffers_list(*array_buffer);
 | 
| +    if (isolate->heap()->last_array_buffer_in_list()->IsUndefined()) {
 | 
| +      isolate->heap()->set_last_array_buffer_in_list(*array_buffer);
 | 
| +    }
 | 
| +  } else {
 | 
| +    JSArrayBuffer::cast(isolate->heap()->last_array_buffer_in_list())
 | 
| +        ->set_weak_next(*array_buffer);
 | 
| +    isolate->heap()->set_last_array_buffer_in_list(*array_buffer);
 | 
| +  }
 | 
|    array_buffer->set_weak_first_view(isolate->heap()->undefined_value());
 | 
|  }
 | 
|  
 | 
| 
 |