| Index: src/runtime.cc
|
| diff --git a/src/runtime.cc b/src/runtime.cc
|
| index 2873474b6dd86f060bf9fc4175eee30ce9555f4d..75b9f2ffdba65109984bf3cf05c040fc5e3e560e 100644
|
| --- a/src/runtime.cc
|
| +++ b/src/runtime.cc
|
| @@ -791,24 +791,6 @@ bool Runtime::SetupArrayBufferAllocatingData(
|
| }
|
|
|
|
|
| -void Runtime::NeuterArrayBuffer(Handle<JSArrayBuffer> array_buffer) {
|
| - Isolate* isolate = array_buffer->GetIsolate();
|
| - for (Handle<Object> view_obj(array_buffer->weak_first_view(), isolate);
|
| - !view_obj->IsUndefined();) {
|
| - Handle<JSArrayBufferView> view(JSArrayBufferView::cast(*view_obj));
|
| - if (view->IsJSTypedArray()) {
|
| - JSTypedArray::cast(*view)->Neuter();
|
| - } else if (view->IsJSDataView()) {
|
| - JSDataView::cast(*view)->Neuter();
|
| - } else {
|
| - UNREACHABLE();
|
| - }
|
| - view_obj = handle(view->weak_next(), isolate);
|
| - }
|
| - array_buffer->Neuter();
|
| -}
|
| -
|
| -
|
| RUNTIME_FUNCTION(MaybeObject*, Runtime_ArrayBufferInitialize) {
|
| HandleScope scope(isolate);
|
| ASSERT(args.length() == 2);
|
| @@ -862,9 +844,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_ArrayBufferSliceImpl) {
|
|
|
| if (target_length == 0) return isolate->heap()->undefined_value();
|
|
|
| - size_t source_byte_length = NumberToSize(isolate, source->byte_length());
|
| - CHECK(start <= source_byte_length);
|
| - CHECK(source_byte_length - start >= target_length);
|
| + ASSERT(NumberToSize(isolate, source->byte_length()) - target_length >= start);
|
| uint8_t* source_data = reinterpret_cast<uint8_t*>(source->backing_store());
|
| uint8_t* target_data = reinterpret_cast<uint8_t*>(target->backing_store());
|
| CopyBytes(target_data, source_data + start, target_length);
|
| @@ -882,19 +862,6 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_ArrayBufferIsView) {
|
| }
|
|
|
|
|
| -RUNTIME_FUNCTION(MaybeObject*, Runtime_ArrayBufferNeuter) {
|
| - HandleScope scope(isolate);
|
| - CONVERT_ARG_HANDLE_CHECKED(JSArrayBuffer, array_buffer, 0);
|
| - ASSERT(!array_buffer->is_external());
|
| - void* backing_store = array_buffer->backing_store();
|
| - size_t byte_length = NumberToSize(isolate, array_buffer->byte_length());
|
| - array_buffer->set_is_external(true);
|
| - Runtime::NeuterArrayBuffer(array_buffer);
|
| - V8::ArrayBufferAllocator()->Free(backing_store, byte_length);
|
| - return isolate->heap()->undefined_value();
|
| -}
|
| -
|
| -
|
| void Runtime::ArrayIdToTypeAndSize(
|
| int arrayId, ExternalArrayType* array_type, size_t* element_size) {
|
| switch (arrayId) {
|
| @@ -938,12 +905,7 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_TypedArrayInitialize) {
|
|
|
| size_t byte_offset = NumberToSize(isolate, *byte_offset_object);
|
| size_t byte_length = NumberToSize(isolate, *byte_length_object);
|
| - size_t array_buffer_byte_length =
|
| - NumberToSize(isolate, buffer->byte_length());
|
| - CHECK(byte_offset <= array_buffer_byte_length);
|
| - CHECK(array_buffer_byte_length - byte_offset >= byte_length);
|
| -
|
| - CHECK_EQ(0, byte_length % element_size);
|
| + ASSERT(byte_length % element_size == 0);
|
| size_t length = byte_length / element_size;
|
|
|
| if (length > static_cast<unsigned>(Smi::kMaxValue)) {
|
|
|