| Index: src/runtime.cc
 | 
| diff --git a/src/runtime.cc b/src/runtime.cc
 | 
| index 503f367758a7e6eadb3dd98f185465d92966c348..849de3cb1e204befd6ec0fb807cdb8dd7c07be1d 100644
 | 
| --- a/src/runtime.cc
 | 
| +++ b/src/runtime.cc
 | 
| @@ -1132,33 +1132,26 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_TypedArrayInitializeFromArrayLike) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -#define TYPED_ARRAY_GETTER(getter, accessor) \
 | 
| -  RUNTIME_FUNCTION(MaybeObject*, Runtime_TypedArrayGet##getter) {             \
 | 
| +#define BUFFER_VIEW_GETTER(Type, getter, accessor) \
 | 
| +  RUNTIME_FUNCTION(MaybeObject*, Runtime_##Type##Get##getter) {               \
 | 
|      HandleScope scope(isolate);                                               \
 | 
|      ASSERT(args.length() == 1);                                               \
 | 
| -    CONVERT_ARG_HANDLE_CHECKED(Object, holder, 0);                            \
 | 
| -    if (!holder->IsJSTypedArray())                                            \
 | 
| -      return isolate->Throw(*isolate->factory()->NewTypeError(                \
 | 
| -          "not_typed_array", HandleVector<Object>(NULL, 0)));                 \
 | 
| -    Handle<JSTypedArray> typed_array(JSTypedArray::cast(*holder));            \
 | 
| -    return typed_array->accessor();                                           \
 | 
| +    CONVERT_ARG_HANDLE_CHECKED(JS##Type, holder, 0);                          \
 | 
| +    return holder->accessor();                                                \
 | 
|    }
 | 
|  
 | 
| -TYPED_ARRAY_GETTER(ByteLength, byte_length)
 | 
| -TYPED_ARRAY_GETTER(ByteOffset, byte_offset)
 | 
| -TYPED_ARRAY_GETTER(Length, length)
 | 
| +BUFFER_VIEW_GETTER(ArrayBufferView, ByteLength, byte_length)
 | 
| +BUFFER_VIEW_GETTER(ArrayBufferView, ByteOffset, byte_offset)
 | 
| +BUFFER_VIEW_GETTER(TypedArray, Length, length)
 | 
| +BUFFER_VIEW_GETTER(DataView, Buffer, buffer)
 | 
|  
 | 
| -#undef TYPED_ARRAY_GETTER
 | 
| +#undef BUFFER_VIEW_GETTER
 | 
|  
 | 
|  RUNTIME_FUNCTION(MaybeObject*, Runtime_TypedArrayGetBuffer) {
 | 
|    HandleScope scope(isolate);
 | 
|    ASSERT(args.length() == 1);
 | 
| -  CONVERT_ARG_HANDLE_CHECKED(Object, holder, 0);
 | 
| -  if (!holder->IsJSTypedArray())
 | 
| -    return isolate->Throw(*isolate->factory()->NewTypeError(
 | 
| -        "not_typed_array", HandleVector<Object>(NULL, 0)));
 | 
| -  Handle<JSTypedArray> typed_array(JSTypedArray::cast(*holder));
 | 
| -  return *typed_array->GetBuffer();
 | 
| +  CONVERT_ARG_HANDLE_CHECKED(JSTypedArray, holder, 0);
 | 
| +  return *holder->GetBuffer();
 | 
|  }
 | 
|  
 | 
|  
 | 
| @@ -1273,30 +1266,6 @@ RUNTIME_FUNCTION(MaybeObject*, Runtime_DataViewInitialize) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -RUNTIME_FUNCTION(MaybeObject*, Runtime_DataViewGetBuffer) {
 | 
| -  HandleScope scope(isolate);
 | 
| -  ASSERT(args.length() == 1);
 | 
| -  CONVERT_ARG_HANDLE_CHECKED(JSDataView, data_view, 0);
 | 
| -  return data_view->buffer();
 | 
| -}
 | 
| -
 | 
| -
 | 
| -RUNTIME_FUNCTION(MaybeObject*, Runtime_DataViewGetByteOffset) {
 | 
| -  HandleScope scope(isolate);
 | 
| -  ASSERT(args.length() == 1);
 | 
| -  CONVERT_ARG_HANDLE_CHECKED(JSDataView, data_view, 0);
 | 
| -  return data_view->byte_offset();
 | 
| -}
 | 
| -
 | 
| -
 | 
| -RUNTIME_FUNCTION(MaybeObject*, Runtime_DataViewGetByteLength) {
 | 
| -  HandleScope scope(isolate);
 | 
| -  ASSERT(args.length() == 1);
 | 
| -  CONVERT_ARG_HANDLE_CHECKED(JSDataView, data_view, 0);
 | 
| -  return data_view->byte_length();
 | 
| -}
 | 
| -
 | 
| -
 | 
|  inline static bool NeedToFlipBytes(bool is_little_endian) {
 | 
|  #ifdef V8_TARGET_LITTLE_ENDIAN
 | 
|    return !is_little_endian;
 | 
| 
 |