Index: sdk/lib/typed_data/dart2js/typed_data_dart2js.dart |
diff --git a/sdk/lib/typed_data/dart2js/typed_data_dart2js.dart b/sdk/lib/typed_data/dart2js/typed_data_dart2js.dart |
index 472ae26defc60c83318ba12a880d3d35550829ad..83044ce0e3224665e1ecaabacf54ce6817452e77 100644 |
--- a/sdk/lib/typed_data/dart2js/typed_data_dart2js.dart |
+++ b/sdk/lib/typed_data/dart2js/typed_data_dart2js.dart |
@@ -100,30 +100,6 @@ class TypedData native "ArrayBufferView" { |
} |
-// Validates the unnamed constructor length argument. Checking is necessary |
-// because passing unvalidated values to the native constructors can cause |
-// conversions or create views. |
-int _checkLength(length) { |
- if (length is! int) throw new ArgumentError('Invalid length $length'); |
- return length; |
-} |
- |
-// Validates `.view` constructor arguments. Checking is necessary because |
-// passing unvalidated values to the native constructors can cause conversions |
-// (e.g. String arguments) or create typed data objects that are not actually |
-// views of the input. |
-void _checkViewArguments(buffer, offsetInBytes, length) { |
- if (buffer is! ByteBuffer) { |
- throw new ArgumentError('Invalid view buffer'); |
- } |
- if (offsetInBytes is! int) { |
- throw new ArgumentError('Invalid view offsetInBytes $offsetInBytes'); |
- } |
- if (length != null && length is! int) { |
- throw new ArgumentError('Invalid view length $length'); |
- } |
-} |
- |
// Ensures that [list] is a JavaScript Array or a typed array. If necessary, |
// returns a copy of the list. |
List _ensureNativeList(List list) { |
@@ -160,7 +136,7 @@ class ByteData extends TypedData native "DataView" { |
* Creates a [ByteData] of the specified length (in elements), all of |
* whose elements are initially zero. |
*/ |
- factory ByteData(int length) => _create1(_checkLength(length)); |
+ factory ByteData(int length) => _create1(length); |
/** |
* Creates an [ByteData] _view_ of the specified region in the specified |
@@ -175,12 +151,10 @@ class ByteData extends TypedData native "DataView" { |
* the length of [buffer]. |
*/ |
factory ByteData.view(ByteBuffer buffer, |
- [int offsetInBytes = 0, int length]) { |
- _checkViewArguments(buffer, offsetInBytes, length); |
- return length == null |
- ? _create2(buffer, offsetInBytes) |
- : _create3(buffer, offsetInBytes, length); |
- } |
+ [int byteOffset = 0, int byteLength]) => |
+ byteLength == null |
+ ? _create2(buffer, byteOffset) |
+ : _create3(buffer, byteOffset, byteLength); |
/** |
* Returns the floating point number represented by the four bytes at |
@@ -558,7 +532,7 @@ class Float32List extends _NativeTypedArrayOfDouble native "Float32Array" { |
* Creates a [Float32List] of the specified length (in elements), all of |
* whose elements are initially zero. |
*/ |
- factory Float32List(int length) => _create1(_checkLength(length)); |
+ factory Float32List(int length) => _create1(length); |
/** |
* Creates a [Float32List] with the same size as the [elements] list |
@@ -583,12 +557,10 @@ class Float32List extends _NativeTypedArrayOfDouble native "Float32Array" { |
* BYTES_PER_ELEMENT. |
*/ |
factory Float32List.view(ByteBuffer buffer, |
- [int offsetInBytes = 0, int length]) { |
- _checkViewArguments(buffer, offsetInBytes, length); |
- return length == null |
- ? _create2(buffer, offsetInBytes) |
- : _create3(buffer, offsetInBytes, length); |
- } |
+ [int byteOffset = 0, int length]) => |
+ length == null |
+ ? _create2(buffer, byteOffset) |
+ : _create3(buffer, byteOffset, length); |
static const int BYTES_PER_ELEMENT = 4; |
@@ -630,7 +602,7 @@ class Float64List extends _NativeTypedArrayOfDouble native "Float64Array" { |
* Creates a [Float64List] of the specified length (in elements), all of |
* whose elements are initially zero. |
*/ |
- factory Float64List(int length) => _create1(_checkLength(length)); |
+ factory Float64List(int length) => _create1(length); |
/** |
* Creates a [Float64List] with the same size as the [elements] list |
@@ -655,12 +627,10 @@ class Float64List extends _NativeTypedArrayOfDouble native "Float64Array" { |
* BYTES_PER_ELEMENT. |
*/ |
factory Float64List.view(ByteBuffer buffer, |
- [int offsetInBytes = 0, int length]) { |
- _checkViewArguments(buffer, offsetInBytes, length); |
- return length == null |
- ? _create2(buffer, offsetInBytes) |
- : _create3(buffer, offsetInBytes, length); |
- } |
+ [int byteOffset = 0, int length]) => |
+ length == null |
+ ? _create2(buffer, byteOffset) |
+ : _create3(buffer, byteOffset, length); |
static const int BYTES_PER_ELEMENT = 8; |
@@ -704,7 +674,7 @@ class Int16List extends _NativeTypedArrayOfInt native "Int16Array" { |
* Creates an [Int16List] of the specified length (in elements), all of |
* whose elements are initially zero. |
*/ |
- factory Int16List(int length) => _create1(_checkLength(length)); |
+ factory Int16List(int length) => _create1(length); |
/** |
* Creates a [Int16List] with the same size as the [elements] list |
@@ -728,13 +698,10 @@ class Int16List extends _NativeTypedArrayOfInt native "Int16Array" { |
* Throws [ArgumentError] if [offsetInBytes] is not a multiple of |
* BYTES_PER_ELEMENT. |
*/ |
- factory Int16List.view(ByteBuffer buffer, |
- [int offsetInBytes = 0, int length]) { |
- _checkViewArguments(buffer, offsetInBytes, length); |
- return length == null |
- ? _create2(buffer, offsetInBytes) |
- : _create3(buffer, offsetInBytes, length); |
- } |
+ factory Int16List.view(ByteBuffer buffer, [int byteOffset = 0, int length]) => |
+ length == null |
+ ? _create2(buffer, byteOffset) |
+ : _create3(buffer, byteOffset, length); |
static const int BYTES_PER_ELEMENT = 2; |
@@ -775,7 +742,7 @@ class Int32List extends _NativeTypedArrayOfInt native "Int32Array" { |
* Creates an [Int32List] of the specified length (in elements), all of |
* whose elements are initially zero. |
*/ |
- factory Int32List(int length) => _create1(_checkLength(length)); |
+ factory Int32List(int length) => _create1(length); |
/** |
* Creates a [Int32List] with the same size as the [elements] list |
@@ -799,13 +766,10 @@ class Int32List extends _NativeTypedArrayOfInt native "Int32Array" { |
* Throws [ArgumentError] if [offsetInBytes] is not a multiple of |
* BYTES_PER_ELEMENT. |
*/ |
- factory Int32List.view(ByteBuffer buffer, |
- [int offsetInBytes = 0, int length]) { |
- _checkViewArguments(buffer, offsetInBytes, length); |
- return length == null |
- ? _create2(buffer, offsetInBytes) |
- : _create3(buffer, offsetInBytes, length); |
- } |
+ factory Int32List.view(ByteBuffer buffer, [int byteOffset = 0, int length]) => |
+ length == null |
+ ? _create2(buffer, byteOffset) |
+ : _create3(buffer, byteOffset, length); |
static const int BYTES_PER_ELEMENT = 4; |
@@ -846,7 +810,7 @@ class Int8List extends _NativeTypedArrayOfInt native "Int8Array" { |
* Creates an [Int8List] of the specified length (in elements), all of |
* whose elements are initially zero. |
*/ |
- factory Int8List(int length) => _create1(_checkLength(length)); |
+ factory Int8List(int length) => _create1(length); |
/** |
* Creates a [Int8List] with the same size as the [elements] list |
@@ -867,13 +831,10 @@ class Int8List extends _NativeTypedArrayOfInt native "Int8Array" { |
* if [offsetInBytes] + ([length] * elementSizeInBytes) is greater than |
* the length of [buffer]. |
*/ |
- factory Int8List.view(ByteBuffer buffer, |
- [int offsetInBytes = 0, int length]) { |
- _checkViewArguments(buffer, offsetInBytes, length); |
- return length == null |
- ? _create2(buffer, offsetInBytes) |
- : _create3(buffer, offsetInBytes, length); |
- } |
+ factory Int8List.view(ByteBuffer buffer, [int byteOffset = 0, int length]) => |
+ length == null |
+ ? _create2(buffer, byteOffset) |
+ : _create3(buffer, byteOffset, length); |
static const int BYTES_PER_ELEMENT = 1; |
@@ -914,7 +875,7 @@ class Uint16List extends _NativeTypedArrayOfInt native "Uint16Array" { |
* Creates a [Uint16List] of the specified length (in elements), all |
* of whose elements are initially zero. |
*/ |
- factory Uint16List(int length) => _create1(_checkLength(length)); |
+ factory Uint16List(int length) => _create1(length); |
/** |
* Creates a [Uint16List] with the same size as the [elements] list |
@@ -939,12 +900,10 @@ class Uint16List extends _NativeTypedArrayOfInt native "Uint16Array" { |
* BYTES_PER_ELEMENT. |
*/ |
factory Uint16List.view(ByteBuffer buffer, |
- [int offsetInBytes = 0, int length]) { |
- _checkViewArguments(buffer, offsetInBytes, length); |
- return length == null |
- ? _create2(buffer, offsetInBytes) |
- : _create3(buffer, offsetInBytes, length); |
- } |
+ [int byteOffset = 0, int length]) => |
+ length == null |
+ ? _create2(buffer, byteOffset) |
+ : _create3(buffer, byteOffset, length); |
static const int BYTES_PER_ELEMENT = 2; |
@@ -985,7 +944,7 @@ class Uint32List extends _NativeTypedArrayOfInt native "Uint32Array" { |
* Creates a [Uint32List] of the specified length (in elements), all |
* of whose elements are initially zero. |
*/ |
- factory Uint32List(int length) => _create1(_checkLength(length)); |
+ factory Uint32List(int length) => _create1(length); |
/** |
* Creates a [Uint32List] with the same size as the [elements] list |
@@ -1010,12 +969,10 @@ class Uint32List extends _NativeTypedArrayOfInt native "Uint32Array" { |
* BYTES_PER_ELEMENT. |
*/ |
factory Uint32List.view(ByteBuffer buffer, |
- [int offsetInBytes = 0, int length]) { |
- _checkViewArguments(buffer, offsetInBytes, length); |
- return length == null |
- ? _create2(buffer, offsetInBytes) |
- : _create3(buffer, offsetInBytes, length); |
- } |
+ [int byteOffset = 0, int length]) => |
+ length == null |
+ ? _create2(buffer, byteOffset) |
+ : _create3(buffer, byteOffset, length); |
static const int BYTES_PER_ELEMENT = 4; |
@@ -1058,7 +1015,7 @@ class Uint8ClampedList extends _NativeTypedArrayOfInt |
* Creates a [Uint8ClampedList] of the specified length (in elements), all of |
* whose elements are initially zero. |
*/ |
- factory Uint8ClampedList(int length) => _create1(_checkLength(length)); |
+ factory Uint8ClampedList(int length) => _create1(length); |
/** |
* Creates a [Uint8ClampedList] of the same size as the [elements] |
@@ -1080,12 +1037,10 @@ class Uint8ClampedList extends _NativeTypedArrayOfInt |
* the length of [buffer]. |
*/ |
factory Uint8ClampedList.view(ByteBuffer buffer, |
- [int offsetInBytes = 0, int length]) { |
- _checkViewArguments(buffer, offsetInBytes, length); |
- return length == null |
- ? _create2(buffer, offsetInBytes) |
- : _create3(buffer, offsetInBytes, length); |
- } |
+ [int byteOffset = 0, int length]) => |
+ length == null |
+ ? _create2(buffer, byteOffset) |
+ : _create3(buffer, byteOffset, length); |
static const int BYTES_PER_ELEMENT = 1; |
@@ -1134,7 +1089,7 @@ class Uint8List extends _NativeTypedArrayOfInt |
* Creates a [Uint8List] of the specified length (in elements), all of |
* whose elements are initially zero. |
*/ |
- factory Uint8List(int length) => _create1(_checkLength(length)); |
+ factory Uint8List(int length) => _create1(length); |
/** |
* Creates a [Uint8List] with the same size as the [elements] list |
@@ -1156,12 +1111,10 @@ class Uint8List extends _NativeTypedArrayOfInt |
* the length of [buffer]. |
*/ |
factory Uint8List.view(ByteBuffer buffer, |
- [int offsetInBytes = 0, int length]) { |
- _checkViewArguments(buffer, offsetInBytes, length); |
- return length == null |
- ? _create2(buffer, offsetInBytes) |
- : _create3(buffer, offsetInBytes, length); |
- } |
+ [int byteOffset = 0, int length]) => |
+ length == null |
+ ? _create2(buffer, byteOffset) |
+ : _create3(buffer, byteOffset, length); |
static const int BYTES_PER_ELEMENT = 1; |