| Index: src/typedarray.js
 | 
| diff --git a/src/typedarray.js b/src/typedarray.js
 | 
| index d435803a5aa603793c5cce5ada2bd884979f0a24..422dc4a03cba36b8a422b5913babaafe1c83bb06 100644
 | 
| --- a/src/typedarray.js
 | 
| +++ b/src/typedarray.js
 | 
| @@ -347,225 +347,52 @@ function DataViewGetByteLength() {
 | 
|    return %DataViewGetByteLength(this);
 | 
|  }
 | 
|  
 | 
| +macro DATA_VIEW_TYPES(FUNCTION)
 | 
| +  FUNCTION(Int8)
 | 
| +  FUNCTION(Uint8)
 | 
| +  FUNCTION(Int16)
 | 
| +  FUNCTION(Uint16)
 | 
| +  FUNCTION(Int32)
 | 
| +  FUNCTION(Uint32)
 | 
| +  FUNCTION(Float32)
 | 
| +  FUNCTION(Float64)
 | 
| +endmacro
 | 
| +
 | 
|  function ToPositiveDataViewOffset(offset) {
 | 
|    return ToPositiveInteger(offset, 'invalid_data_view_accessor_offset');
 | 
|  }
 | 
|  
 | 
| -function DataViewGetInt8(offset, little_endian) {
 | 
| +
 | 
| +macro DATA_VIEW_GETTER_SETTER(TYPENAME)
 | 
| +function DataViewGetTYPENAME(offset, little_endian) {
 | 
|    if (!IS_DATAVIEW(this)) {
 | 
|      throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.getInt8', this]);
 | 
| +                        ['DataView.getTYPENAME', this]);
 | 
|    }
 | 
|    if (%_ArgumentsLength() < 1) {
 | 
|      throw MakeTypeError('invalid_argument');
 | 
|    }
 | 
| -  return %DataViewGetInt8(this,
 | 
| +  return %DataViewGetTYPENAME(this,
 | 
|                            ToPositiveDataViewOffset(offset),
 | 
|                            !!little_endian);
 | 
|  }
 | 
|  
 | 
| -function DataViewSetInt8(offset, value, little_endian) {
 | 
| -  if (!IS_DATAVIEW(this)) {
 | 
| -    throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.setInt8', this]);
 | 
| -  }
 | 
| -  if (%_ArgumentsLength() < 2) {
 | 
| -    throw MakeTypeError('invalid_argument');
 | 
| -  }
 | 
| -  %DataViewSetInt8(this,
 | 
| -                   ToPositiveDataViewOffset(offset),
 | 
| -                   TO_NUMBER_INLINE(value),
 | 
| -                   !!little_endian);
 | 
| -}
 | 
| -
 | 
| -function DataViewGetUint8(offset, little_endian) {
 | 
| -  if (!IS_DATAVIEW(this)) {
 | 
| -    throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.getUint8', this]);
 | 
| -  }
 | 
| -  if (%_ArgumentsLength() < 1) {
 | 
| -    throw MakeTypeError('invalid_argument');
 | 
| -  }
 | 
| -  return %DataViewGetUint8(this,
 | 
| -                           ToPositiveDataViewOffset(offset),
 | 
| -                           !!little_endian);
 | 
| -}
 | 
| -
 | 
| -function DataViewSetUint8(offset, value, little_endian) {
 | 
| +function DataViewSetTYPENAME(offset, value, little_endian) {
 | 
|    if (!IS_DATAVIEW(this)) {
 | 
|      throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.setUint8', this]);
 | 
| +                        ['DataView.setTYPENAME', this]);
 | 
|    }
 | 
|    if (%_ArgumentsLength() < 2) {
 | 
|      throw MakeTypeError('invalid_argument');
 | 
|    }
 | 
| -  %DataViewSetUint8(this,
 | 
| +  %DataViewSetTYPENAME(this,
 | 
|                     ToPositiveDataViewOffset(offset),
 | 
|                     TO_NUMBER_INLINE(value),
 | 
|                     !!little_endian);
 | 
|  }
 | 
| +endmacro
 | 
|  
 | 
| -function DataViewGetInt16(offset, little_endian) {
 | 
| -  if (!IS_DATAVIEW(this)) {
 | 
| -    throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.getInt16', this]);
 | 
| -  }
 | 
| -  if (%_ArgumentsLength() < 1) {
 | 
| -    throw MakeTypeError('invalid_argument');
 | 
| -  }
 | 
| -  return %DataViewGetInt16(this,
 | 
| -                           ToPositiveDataViewOffset(offset),
 | 
| -                           !!little_endian);
 | 
| -}
 | 
| -
 | 
| -function DataViewSetInt16(offset, value, little_endian) {
 | 
| -  if (!IS_DATAVIEW(this)) {
 | 
| -    throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.setInt16', this]);
 | 
| -  }
 | 
| -  if (%_ArgumentsLength() < 2) {
 | 
| -    throw MakeTypeError('invalid_argument');
 | 
| -  }
 | 
| -  %DataViewSetInt16(this,
 | 
| -                    ToPositiveDataViewOffset(offset),
 | 
| -                    TO_NUMBER_INLINE(value),
 | 
| -                    !!little_endian);
 | 
| -}
 | 
| -
 | 
| -function DataViewGetUint16(offset, little_endian) {
 | 
| -  if (!IS_DATAVIEW(this)) {
 | 
| -    throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.getUint16', this]);
 | 
| -  }
 | 
| -  if (%_ArgumentsLength() < 1) {
 | 
| -    throw MakeTypeError('invalid_argument');
 | 
| -  }
 | 
| -  return %DataViewGetUint16(this,
 | 
| -                            ToPositiveDataViewOffset(offset),
 | 
| -                            !!little_endian);
 | 
| -}
 | 
| -
 | 
| -function DataViewSetUint16(offset, value, little_endian) {
 | 
| -  if (!IS_DATAVIEW(this)) {
 | 
| -    throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.setUint16', this]);
 | 
| -  }
 | 
| -  if (%_ArgumentsLength() < 2) {
 | 
| -    throw MakeTypeError('invalid_argument');
 | 
| -  }
 | 
| -  %DataViewSetUint16(this,
 | 
| -                     ToPositiveDataViewOffset(offset),
 | 
| -                     TO_NUMBER_INLINE(value),
 | 
| -                     !!little_endian);
 | 
| -}
 | 
| -
 | 
| -function DataViewGetInt32(offset, little_endian) {
 | 
| -  if (!IS_DATAVIEW(this)) {
 | 
| -    throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.getInt32', this]);
 | 
| -  }
 | 
| -  if (%_ArgumentsLength() < 1) {
 | 
| -    throw MakeTypeError('invalid_argument');
 | 
| -  }
 | 
| -  return %DataViewGetInt32(this,
 | 
| -                           ToPositiveDataViewOffset(offset),
 | 
| -                           !!little_endian);
 | 
| -}
 | 
| -
 | 
| -function DataViewSetInt32(offset, value, little_endian) {
 | 
| -  if (!IS_DATAVIEW(this)) {
 | 
| -    throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.setInt32', this]);
 | 
| -  }
 | 
| -  if (%_ArgumentsLength() < 2) {
 | 
| -    throw MakeTypeError('invalid_argument');
 | 
| -  }
 | 
| -  %DataViewSetInt32(this,
 | 
| -                    ToPositiveDataViewOffset(offset),
 | 
| -                    TO_NUMBER_INLINE(value),
 | 
| -                    !!little_endian);
 | 
| -}
 | 
| -
 | 
| -function DataViewGetUint32(offset, little_endian) {
 | 
| -  if (!IS_DATAVIEW(this)) {
 | 
| -    throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.getUint32', this]);
 | 
| -  }
 | 
| -  if (%_ArgumentsLength() < 1) {
 | 
| -    throw MakeTypeError('invalid_argument');
 | 
| -  }
 | 
| -  return %DataViewGetUint32(this,
 | 
| -                            ToPositiveDataViewOffset(offset),
 | 
| -                            !!little_endian);
 | 
| -}
 | 
| -
 | 
| -function DataViewSetUint32(offset, value, little_endian) {
 | 
| -  if (!IS_DATAVIEW(this)) {
 | 
| -    throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.setUint32', this]);
 | 
| -  }
 | 
| -  if (%_ArgumentsLength() < 2) {
 | 
| -    throw MakeTypeError('invalid_argument');
 | 
| -  }
 | 
| -  %DataViewSetUint32(this,
 | 
| -                     ToPositiveDataViewOffset(offset),
 | 
| -                     TO_NUMBER_INLINE(value),
 | 
| -                     !!little_endian);
 | 
| -}
 | 
| -
 | 
| -function DataViewGetFloat32(offset, little_endian) {
 | 
| -  if (!IS_DATAVIEW(this)) {
 | 
| -    throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.getFloat32', this]);
 | 
| -  }
 | 
| -  if (%_ArgumentsLength() < 1) {
 | 
| -    throw MakeTypeError('invalid_argument');
 | 
| -  }
 | 
| -  return %DataViewGetFloat32(this,
 | 
| -                             ToPositiveDataViewOffset(offset),
 | 
| -                             !!little_endian);
 | 
| -}
 | 
| -
 | 
| -function DataViewSetFloat32(offset, value, little_endian) {
 | 
| -  if (!IS_DATAVIEW(this)) {
 | 
| -    throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.setFloat32', this]);
 | 
| -  }
 | 
| -  if (%_ArgumentsLength() < 2) {
 | 
| -    throw MakeTypeError('invalid_argument');
 | 
| -  }
 | 
| -  %DataViewSetFloat32(this,
 | 
| -                      ToPositiveDataViewOffset(offset),
 | 
| -                      TO_NUMBER_INLINE(value),
 | 
| -                      !!little_endian);
 | 
| -}
 | 
| -
 | 
| -function DataViewGetFloat64(offset, little_endian) {
 | 
| -  if (!IS_DATAVIEW(this)) {
 | 
| -    throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.getFloat64', this]);
 | 
| -  }
 | 
| -  if (%_ArgumentsLength() < 1) {
 | 
| -    throw MakeTypeError('invalid_argument');
 | 
| -  }
 | 
| -  return %DataViewGetFloat64(this,
 | 
| -                             ToPositiveDataViewOffset(offset),
 | 
| -                             !!little_endian);
 | 
| -}
 | 
| -
 | 
| -function DataViewSetFloat64(offset, value, little_endian) {
 | 
| -  if (!IS_DATAVIEW(this)) {
 | 
| -    throw MakeTypeError('incompatible_method_receiver',
 | 
| -                        ['DataView.setFloat64', this]);
 | 
| -  }
 | 
| -  if (%_ArgumentsLength() < 2) {
 | 
| -    throw MakeTypeError('invalid_argument');
 | 
| -  }
 | 
| -  %DataViewSetFloat64(this,
 | 
| -                      ToPositiveDataViewOffset(offset),
 | 
| -                      TO_NUMBER_INLINE(value),
 | 
| -                      !!little_endian);
 | 
| -}
 | 
| +DATA_VIEW_TYPES(DATA_VIEW_GETTER_SETTER)
 | 
|  
 | 
|  function SetupDataView() {
 | 
|    %CheckIsBootstrapping();
 | 
| 
 |