| Index: src/api.cc
|
| diff --git a/src/api.cc b/src/api.cc
|
| index 5dd392f8a597684fd742ee909d7f4d314f16280a..c5241ecac5ce72f74214fc9f3209cd7473ffe66e 100644
|
| --- a/src/api.cc
|
| +++ b/src/api.cc
|
| @@ -5936,7 +5936,20 @@ void v8::ArrayBuffer::Neuter() {
|
| "Only externalized ArrayBuffers can be neutered");
|
| LOG_API(obj->GetIsolate(), "v8::ArrayBuffer::Neuter()");
|
| ENTER_V8(isolate);
|
| - i::Runtime::NeuterArrayBuffer(obj);
|
| +
|
| + for (i::Handle<i::Object> view_obj(obj->weak_first_view(), isolate);
|
| + !view_obj->IsUndefined();) {
|
| + i::Handle<i::JSArrayBufferView> view(i::JSArrayBufferView::cast(*view_obj));
|
| + if (view->IsJSTypedArray()) {
|
| + i::JSTypedArray::cast(*view)->Neuter();
|
| + } else if (view->IsJSDataView()) {
|
| + i::JSDataView::cast(*view)->Neuter();
|
| + } else {
|
| + UNREACHABLE();
|
| + }
|
| + view_obj = i::handle(view->weak_next(), isolate);
|
| + }
|
| + obj->Neuter();
|
| }
|
|
|
|
|
|
|