Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(165)

Side by Side Diff: dart/runtime/lib/typed_data.dart

Issue 59073003: Version 0.8.10.4 (Closed) Base URL: http://dart.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « dart/runtime/lib/typed_data.cc ('k') | dart/runtime/platform/globals.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 // patch classes for Int8List ..... Float64List and ByteData implementations. 5 // patch classes for Int8List ..... Float64List and ByteData implementations.
6 6
7 patch class Int8List { 7 patch class Int8List {
8 /* patch */ factory Int8List(int length) { 8 /* patch */ factory Int8List(int length) {
9 return new _Int8Array(length); 9 return new _Int8Array(length);
10 } 10 }
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 return result; 237 return result;
238 } 238 }
239 239
240 /* patch */ factory Float32x4List.view(ByteBuffer buffer, 240 /* patch */ factory Float32x4List.view(ByteBuffer buffer,
241 [int offsetInBytes = 0, int length]) { 241 [int offsetInBytes = 0, int length]) {
242 return new _Float32x4ArrayView(buffer, offsetInBytes, length); 242 return new _Float32x4ArrayView(buffer, offsetInBytes, length);
243 } 243 }
244 } 244 }
245 245
246 246
247 patch class Uint32x4List { 247 patch class Int32x4List {
248 /* patch */ factory Uint32x4List(int length) { 248 /* patch */ factory Int32x4List(int length) {
249 return new _Uint32x4Array(length); 249 return new _Int32x4Array(length);
250 } 250 }
251 251
252 /* patch */ factory Uint32x4List.fromList(List<Uint32x4> elements) { 252 /* patch */ factory Int32x4List.fromList(List<Int32x4> elements) {
253 var result = new _Uint32x4Array(elements.length); 253 var result = new _Int32x4Array(elements.length);
254 for (int i = 0; i < elements.length; i++) { 254 for (int i = 0; i < elements.length; i++) {
255 result[i] = elements[i]; 255 result[i] = elements[i];
256 } 256 }
257 return result; 257 return result;
258 } 258 }
259 259
260 /* patch */ factory Uint32x4List.view(ByteBuffer buffer, 260 /* patch */ factory Int32x4List.view(ByteBuffer buffer,
261 [int offsetInBytes = 0, int length]) { 261 [int offsetInBytes = 0, int length]) {
262 return new _Uint32x4ArrayView(buffer, offsetInBytes, length); 262 return new _Int32x4ArrayView(buffer, offsetInBytes, length);
263 } 263 }
264 } 264 }
265 265
266 266
267 patch class Float32x4 { 267 patch class Float32x4 {
268 /* patch */ factory Float32x4(double x, double y, double z, double w) { 268 /* patch */ factory Float32x4(double x, double y, double z, double w) {
269 return new _Float32x4(x, y, z, w); 269 return new _Float32x4(x, y, z, w);
270 } 270 }
271 /* patch */ factory Float32x4.splat(double v) { 271 /* patch */ factory Float32x4.splat(double v) {
272 return new _Float32x4.splat(v); 272 return new _Float32x4.splat(v);
273 } 273 }
274 /* patch */ factory Float32x4.zero() { 274 /* patch */ factory Float32x4.zero() {
275 return new _Float32x4.zero(); 275 return new _Float32x4.zero();
276 } 276 }
277 /* patch */ factory Float32x4.fromUint32x4Bits(Uint32x4 x) { 277 /* patch */ factory Float32x4.fromInt32x4Bits(Int32x4 x) {
278 return new _Float32x4.fromUint32x4Bits(x); 278 return new _Float32x4.fromInt32x4Bits(x);
279 } 279 }
280 } 280 }
281 281
282 282
283 patch class Uint32x4 { 283 patch class Int32x4 {
284 /* patch */ factory Uint32x4(int x, int y, int z, int w) { 284 /* patch */ factory Int32x4(int x, int y, int z, int w) {
285 return new _Uint32x4(x, y, z, w); 285 return new _Int32x4(x, y, z, w);
286 } 286 }
287 /* patch */ factory Uint32x4.bool(bool x, bool y, bool z, bool w) { 287 /* patch */ factory Int32x4.bool(bool x, bool y, bool z, bool w) {
288 return new _Uint32x4.bool(x, y, z, w); 288 return new _Int32x4.bool(x, y, z, w);
289 } 289 }
290 /* patch */ factory Uint32x4.fromFloat32x4Bits(Float32x4 x) { 290 /* patch */ factory Int32x4.fromFloat32x4Bits(Float32x4 x) {
291 return new _Uint32x4.fromFloat32x4Bits(x); 291 return new _Int32x4.fromFloat32x4Bits(x);
292 } 292 }
293 } 293 }
294 294
295 295
296 patch class ByteData { 296 patch class ByteData {
297 /* patch */ factory ByteData(int length) { 297 /* patch */ factory ByteData(int length) {
298 var list = new _Uint8Array(length); 298 var list = new _Uint8Array(length);
299 return new _ByteDataView(list.buffer, 0, length); 299 return new _ByteDataView(list.buffer, 0, length);
300 } 300 }
301 301
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 504
505 Set toSet() { 505 Set toSet() {
506 return new Set.from(this); 506 return new Set.from(this);
507 } 507 }
508 508
509 Map<int, num> asMap() { 509 Map<int, num> asMap() {
510 return IterableMixinWorkaround.asMapList(this); 510 return IterableMixinWorkaround.asMapList(this);
511 } 511 }
512 512
513 List sublist(int start, [int end]) { 513 List sublist(int start, [int end]) {
514 if (end == null) end = length; 514 if (end == null) end = this.length;
515 int length = end - start; 515 int length = end - start;
516 _rangeCheck(this.length, start, length); 516 _rangeCheck(this.length, start, length);
517 List result = _createList(length); 517 List result = _createList(length);
518 result.setRange(0, length, this, start); 518 result.setRange(0, length, this, start);
519 return result; 519 return result;
520 } 520 }
521 521
522 Iterable getRange(int start, [int end]) { 522 Iterable getRange(int start, [int end]) {
523 return IterableMixinWorkaround.getRangeList(this, start, end); 523 return IterableMixinWorkaround.getRangeList(this, start, end);
524 } 524 }
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 native "TypedData_SetFloat32"; 604 native "TypedData_SetFloat32";
605 605
606 double _getFloat64(int offsetInBytes) native "TypedData_GetFloat64"; 606 double _getFloat64(int offsetInBytes) native "TypedData_GetFloat64";
607 void _setFloat64(int offsetInBytes, double value) 607 void _setFloat64(int offsetInBytes, double value)
608 native "TypedData_SetFloat64"; 608 native "TypedData_SetFloat64";
609 609
610 Float32x4 _getFloat32x4(int offsetInBytes) native "TypedData_GetFloat32x4"; 610 Float32x4 _getFloat32x4(int offsetInBytes) native "TypedData_GetFloat32x4";
611 void _setFloat32x4(int offsetInBytes, Float32x4 value) 611 void _setFloat32x4(int offsetInBytes, Float32x4 value)
612 native "TypedData_SetFloat32x4"; 612 native "TypedData_SetFloat32x4";
613 613
614 Uint32x4 _getUint32x4(int offsetInBytes) native "TypedData_GetUint32x4"; 614 Int32x4 _getInt32x4(int offsetInBytes) native "TypedData_GetInt32x4";
615 void _setUint32x4(int offsetInBytes, Uint32x4 value) 615 void _setInt32x4(int offsetInBytes, Int32x4 value)
616 native "TypedData_SetUint32x4"; 616 native "TypedData_SetInt32x4";
617 } 617 }
618 618
619 619
620 class _Int8Array extends _TypedList implements Int8List { 620 class _Int8Array extends _TypedList implements Int8List {
621 // Factory constructors. 621 // Factory constructors.
622 622
623 factory _Int8Array(int length) { 623 factory _Int8Array(int length) {
624 return _new(length); 624 return _new(length);
625 } 625 }
626 626
(...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after
1335 } 1335 }
1336 1336
1337 void _setIndexedFloat32x4(int index, Float32x4 value) { 1337 void _setIndexedFloat32x4(int index, Float32x4 value) {
1338 _setFloat32x4(index * Float32x4List.BYTES_PER_ELEMENT, value); 1338 _setFloat32x4(index * Float32x4List.BYTES_PER_ELEMENT, value);
1339 } 1339 }
1340 1340
1341 static _Float32x4Array _new(int length) native "TypedData_Float32x4Array_new"; 1341 static _Float32x4Array _new(int length) native "TypedData_Float32x4Array_new";
1342 } 1342 }
1343 1343
1344 1344
1345 class _Uint32x4Array extends _TypedList implements Uint32x4List { 1345 class _Int32x4Array extends _TypedList implements Int32x4List {
1346 // Factory constructors. 1346 // Factory constructors.
1347 1347
1348 factory _Uint32x4Array(int length) { 1348 factory _Int32x4Array(int length) {
1349 return _new(length); 1349 return _new(length);
1350 } 1350 }
1351 1351
1352 factory _Uint32x4Array.view(ByteBuffer buffer, 1352 factory _Int32x4Array.view(ByteBuffer buffer,
1353 [int offsetInBytes = 0, int length]) { 1353 [int offsetInBytes = 0, int length]) {
1354 if (length == null) { 1354 if (length == null) {
1355 length = (buffer.lengthInBytes - offsetInBytes) ~/ 1355 length = (buffer.lengthInBytes - offsetInBytes) ~/
1356 Uint32x4List.BYTES_PER_ELEMENT; 1356 Int32x4List.BYTES_PER_ELEMENT;
1357 } 1357 }
1358 return new _Uint32x4ArrayView(buffer, offsetInBytes, length); 1358 return new _Int32x4ArrayView(buffer, offsetInBytes, length);
1359 } 1359 }
1360 1360
1361 1361
1362 Uint32x4 operator[](int index) { 1362 Int32x4 operator[](int index) {
1363 if (index < 0 || index >= length) { 1363 if (index < 0 || index >= length) {
1364 _throwRangeError(index, length); 1364 _throwRangeError(index, length);
1365 } 1365 }
1366 return _getIndexedUint32x4(index); 1366 return _getIndexedInt32x4(index);
1367 } 1367 }
1368 1368
1369 void operator[]=(int index, Uint32x4 value) { 1369 void operator[]=(int index, Int32x4 value) {
1370 if (index < 0 || index >= length) { 1370 if (index < 0 || index >= length) {
1371 _throwRangeError(index, length); 1371 _throwRangeError(index, length);
1372 } 1372 }
1373 _setIndexedUint32x4(index, value); 1373 _setIndexedInt32x4(index, value);
1374 } 1374 }
1375 1375
1376 Iterator<Uint32x4> get iterator { 1376 Iterator<Int32x4> get iterator {
1377 return new _TypedListIterator<Uint32x4>(this); 1377 return new _TypedListIterator<Int32x4>(this);
1378 } 1378 }
1379 1379
1380 1380
1381 // Method(s) implementing the TypedData interface. 1381 // Method(s) implementing the TypedData interface.
1382 1382
1383 int get elementSizeInBytes { 1383 int get elementSizeInBytes {
1384 return Uint32x4List.BYTES_PER_ELEMENT; 1384 return Int32x4List.BYTES_PER_ELEMENT;
1385 } 1385 }
1386 1386
1387 1387
1388 // Internal utility methods. 1388 // Internal utility methods.
1389 1389
1390 _Uint32x4Array _createList(int length) { 1390 _Int32x4Array _createList(int length) {
1391 return _new(length); 1391 return _new(length);
1392 } 1392 }
1393 1393
1394 Uint32x4 _getIndexedUint32x4(int index) { 1394 Int32x4 _getIndexedInt32x4(int index) {
1395 return _getUint32x4(index * Uint32x4List.BYTES_PER_ELEMENT); 1395 return _getInt32x4(index * Int32x4List.BYTES_PER_ELEMENT);
1396 } 1396 }
1397 1397
1398 void _setIndexedUint32x4(int index, Uint32x4 value) { 1398 void _setIndexedInt32x4(int index, Int32x4 value) {
1399 _setUint32x4(index * Uint32x4List.BYTES_PER_ELEMENT, value); 1399 _setInt32x4(index * Int32x4List.BYTES_PER_ELEMENT, value);
1400 } 1400 }
1401 1401
1402 static _Uint32x4Array _new(int length) native "TypedData_Uint32x4Array_new"; 1402 static _Int32x4Array _new(int length) native "TypedData_Int32x4Array_new";
1403 } 1403 }
1404 1404
1405 1405
1406 class _ExternalInt8Array extends _TypedList implements Int8List { 1406 class _ExternalInt8Array extends _TypedList implements Int8List {
1407 // Factory constructors. 1407 // Factory constructors.
1408 1408
1409 factory _ExternalInt8Array(int length) { 1409 factory _ExternalInt8Array(int length) {
1410 return _new(length); 1410 return _new(length);
1411 } 1411 }
1412 1412
(...skipping 618 matching lines...) Expand 10 before | Expand all | Expand 10 after
2031 2031
2032 void _setIndexedFloat32x4(int index, Float32x4 value) { 2032 void _setIndexedFloat32x4(int index, Float32x4 value) {
2033 _setFloat32x4(index * Float32x4List.BYTES_PER_ELEMENT, value); 2033 _setFloat32x4(index * Float32x4List.BYTES_PER_ELEMENT, value);
2034 } 2034 }
2035 2035
2036 static _ExternalFloat32x4Array _new(int length) native 2036 static _ExternalFloat32x4Array _new(int length) native
2037 "ExternalTypedData_Float32x4Array_new"; 2037 "ExternalTypedData_Float32x4Array_new";
2038 } 2038 }
2039 2039
2040 2040
2041 class _ExternalUint32x4Array extends _TypedList implements Uint32x4List { 2041 class _ExternalInt32x4Array extends _TypedList implements Int32x4List {
2042 // Factory constructors. 2042 // Factory constructors.
2043 2043
2044 factory _ExternalUint32x4Array(int length) { 2044 factory _ExternalInt32x4Array(int length) {
2045 return _new(length); 2045 return _new(length);
2046 } 2046 }
2047 2047
2048 2048
2049 // Method(s) implementing the List interface. 2049 // Method(s) implementing the List interface.
2050 2050
2051 Uint32x4 operator[](int index) { 2051 Int32x4 operator[](int index) {
2052 if (index < 0 || index >= length) { 2052 if (index < 0 || index >= length) {
2053 _throwRangeError(index, length); 2053 _throwRangeError(index, length);
2054 } 2054 }
2055 return _getIndexedUint32x4(index); 2055 return _getIndexedInt32x4(index);
2056 } 2056 }
2057 2057
2058 void operator[]=(int index, Uint32x4 value) { 2058 void operator[]=(int index, Int32x4 value) {
2059 if (index < 0 || index >= length) { 2059 if (index < 0 || index >= length) {
2060 _throwRangeError(index, length); 2060 _throwRangeError(index, length);
2061 } 2061 }
2062 _setIndexedUint32x4(index, value); 2062 _setIndexedInt32x4(index, value);
2063 } 2063 }
2064 2064
2065 Iterator<Uint32x4> get iterator { 2065 Iterator<Int32x4> get iterator {
2066 return new _TypedListIterator<Uint32x4>(this); 2066 return new _TypedListIterator<Int32x4>(this);
2067 } 2067 }
2068 2068
2069 2069
2070 // Method(s) implementing the TypedData interface. 2070 // Method(s) implementing the TypedData interface.
2071 2071
2072 int get elementSizeInBytes { 2072 int get elementSizeInBytes {
2073 return Uint32x4List.BYTES_PER_ELEMENT; 2073 return Int32x4List.BYTES_PER_ELEMENT;
2074 } 2074 }
2075 2075
2076 2076
2077 // Internal utility methods. 2077 // Internal utility methods.
2078 2078
2079 Uint32x4List _createList(int length) { 2079 Int32x4List _createList(int length) {
2080 return new Uint32x4List(length); 2080 return new Int32x4List(length);
2081 } 2081 }
2082 2082
2083 Uint32x4 _getIndexedUint32x4(int index) { 2083 Int32x4 _getIndexedInt32x4(int index) {
2084 return _getUint32x4(index * Uint32x4List.BYTES_PER_ELEMENT); 2084 return _getInt32x4(index * Int32x4List.BYTES_PER_ELEMENT);
2085 } 2085 }
2086 2086
2087 void _setIndexedUint32x4(int index, Uint32x4 value) { 2087 void _setIndexedInt32x4(int index, Int32x4 value) {
2088 _setUint32x4(index * Uint32x4List.BYTES_PER_ELEMENT, value); 2088 _setInt32x4(index * Int32x4List.BYTES_PER_ELEMENT, value);
2089 } 2089 }
2090 2090
2091 static _ExternalUint32x4Array _new(int length) native 2091 static _ExternalInt32x4Array _new(int length) native
2092 "ExternalTypedData_Uint32x4Array_new"; 2092 "ExternalTypedData_Int32x4Array_new";
2093 } 2093 }
2094 2094
2095 2095
2096 class _Float32x4 implements Float32x4 { 2096 class _Float32x4 implements Float32x4 {
2097 factory _Float32x4(double x, double y, double z, double w) 2097 factory _Float32x4(double x, double y, double z, double w)
2098 native "Float32x4_fromDoubles"; 2098 native "Float32x4_fromDoubles";
2099 factory _Float32x4.splat(double v) native "Float32x4_splat"; 2099 factory _Float32x4.splat(double v) native "Float32x4_splat";
2100 factory _Float32x4.zero() native "Float32x4_zero"; 2100 factory _Float32x4.zero() native "Float32x4_zero";
2101 factory _Float32x4.fromUint32x4Bits(Uint32x4 x) 2101 factory _Float32x4.fromInt32x4Bits(Int32x4 x)
2102 native "Float32x4_fromUint32x4Bits"; 2102 native "Float32x4_fromInt32x4Bits";
2103 Float32x4 operator +(Float32x4 other) { 2103 Float32x4 operator +(Float32x4 other) {
2104 return _add(other); 2104 return _add(other);
2105 } 2105 }
2106 Float32x4 _add(Float32x4 other) native "Float32x4_add"; 2106 Float32x4 _add(Float32x4 other) native "Float32x4_add";
2107 Float32x4 operator -() { 2107 Float32x4 operator -() {
2108 return _negate(); 2108 return _negate();
2109 } 2109 }
2110 Float32x4 _negate() native "Float32x4_negate"; 2110 Float32x4 _negate() native "Float32x4_negate";
2111 Float32x4 operator -(Float32x4 other) { 2111 Float32x4 operator -(Float32x4 other) {
2112 return _sub(other); 2112 return _sub(other);
2113 } 2113 }
2114 Float32x4 _sub(Float32x4 other) native "Float32x4_sub"; 2114 Float32x4 _sub(Float32x4 other) native "Float32x4_sub";
2115 Float32x4 operator *(Float32x4 other) { 2115 Float32x4 operator *(Float32x4 other) {
2116 return _mul(other); 2116 return _mul(other);
2117 } 2117 }
2118 Float32x4 _mul(Float32x4 other) native "Float32x4_mul"; 2118 Float32x4 _mul(Float32x4 other) native "Float32x4_mul";
2119 Float32x4 operator /(Float32x4 other) { 2119 Float32x4 operator /(Float32x4 other) {
2120 return _div(other); 2120 return _div(other);
2121 } 2121 }
2122 Float32x4 _div(Float32x4 other) native "Float32x4_div"; 2122 Float32x4 _div(Float32x4 other) native "Float32x4_div";
2123 Uint32x4 lessThan(Float32x4 other) { 2123 Int32x4 lessThan(Float32x4 other) {
2124 return _cmplt(other); 2124 return _cmplt(other);
2125 } 2125 }
2126 Uint32x4 _cmplt(Float32x4 other) native "Float32x4_cmplt"; 2126 Int32x4 _cmplt(Float32x4 other) native "Float32x4_cmplt";
2127 Uint32x4 lessThanOrEqual(Float32x4 other) { 2127 Int32x4 lessThanOrEqual(Float32x4 other) {
2128 return _cmplte(other); 2128 return _cmplte(other);
2129 } 2129 }
2130 Uint32x4 _cmplte(Float32x4 other) native "Float32x4_cmplte"; 2130 Int32x4 _cmplte(Float32x4 other) native "Float32x4_cmplte";
2131 Uint32x4 greaterThan(Float32x4 other) { 2131 Int32x4 greaterThan(Float32x4 other) {
2132 return _cmpgt(other); 2132 return _cmpgt(other);
2133 } 2133 }
2134 Uint32x4 _cmpgt(Float32x4 other) native "Float32x4_cmpgt"; 2134 Int32x4 _cmpgt(Float32x4 other) native "Float32x4_cmpgt";
2135 Uint32x4 greaterThanOrEqual(Float32x4 other) { 2135 Int32x4 greaterThanOrEqual(Float32x4 other) {
2136 return _cmpgte(other); 2136 return _cmpgte(other);
2137 } 2137 }
2138 Uint32x4 _cmpgte(Float32x4 other) native "Float32x4_cmpgte"; 2138 Int32x4 _cmpgte(Float32x4 other) native "Float32x4_cmpgte";
2139 Uint32x4 equal(Float32x4 other) { 2139 Int32x4 equal(Float32x4 other) {
2140 return _cmpequal(other); 2140 return _cmpequal(other);
2141 } 2141 }
2142 Uint32x4 _cmpequal(Float32x4 other) 2142 Int32x4 _cmpequal(Float32x4 other)
2143 native "Float32x4_cmpequal"; 2143 native "Float32x4_cmpequal";
2144 Uint32x4 notEqual(Float32x4 other) { 2144 Int32x4 notEqual(Float32x4 other) {
2145 return _cmpnequal(other); 2145 return _cmpnequal(other);
2146 } 2146 }
2147 Uint32x4 _cmpnequal(Float32x4 other) 2147 Int32x4 _cmpnequal(Float32x4 other)
2148 native "Float32x4_cmpnequal"; 2148 native "Float32x4_cmpnequal";
2149 Float32x4 scale(double s) { 2149 Float32x4 scale(double s) {
2150 return _scale(s); 2150 return _scale(s);
2151 } 2151 }
2152 Float32x4 _scale(double s) native "Float32x4_scale"; 2152 Float32x4 _scale(double s) native "Float32x4_scale";
2153 Float32x4 abs() { 2153 Float32x4 abs() {
2154 return _abs(); 2154 return _abs();
2155 } 2155 }
2156 Float32x4 _abs() native "Float32x4_abs"; 2156 Float32x4 _abs() native "Float32x4_abs";
2157 Float32x4 clamp(Float32x4 lowerLimit, 2157 Float32x4 clamp(Float32x4 lowerLimit,
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
2190 return _reciprocal(); 2190 return _reciprocal();
2191 } 2191 }
2192 Float32x4 _reciprocal() native "Float32x4_reciprocal"; 2192 Float32x4 _reciprocal() native "Float32x4_reciprocal";
2193 Float32x4 reciprocalSqrt() { 2193 Float32x4 reciprocalSqrt() {
2194 return _reciprocalSqrt(); 2194 return _reciprocalSqrt();
2195 } 2195 }
2196 Float32x4 _reciprocalSqrt() native "Float32x4_reciprocalSqrt"; 2196 Float32x4 _reciprocalSqrt() native "Float32x4_reciprocalSqrt";
2197 } 2197 }
2198 2198
2199 2199
2200 class _Uint32x4 implements Uint32x4 { 2200 class _Int32x4 implements Int32x4 {
2201 factory _Uint32x4(int x, int y, int z, int w) 2201 factory _Int32x4(int x, int y, int z, int w)
2202 native "Uint32x4_fromInts"; 2202 native "Int32x4_fromInts";
2203 factory _Uint32x4.bool(bool x, bool y, bool z, bool w) 2203 factory _Int32x4.bool(bool x, bool y, bool z, bool w)
2204 native "Uint32x4_fromBools"; 2204 native "Int32x4_fromBools";
2205 factory _Uint32x4.fromFloat32x4Bits(Float32x4 x) 2205 factory _Int32x4.fromFloat32x4Bits(Float32x4 x)
2206 native "Uint32x4_fromFloat32x4Bits"; 2206 native "Int32x4_fromFloat32x4Bits";
2207 Uint32x4 operator |(Uint32x4 other) { 2207 Int32x4 operator |(Int32x4 other) {
2208 return _or(other); 2208 return _or(other);
2209 } 2209 }
2210 Uint32x4 _or(Uint32x4 other) native "Uint32x4_or"; 2210 Int32x4 _or(Int32x4 other) native "Int32x4_or";
2211 Uint32x4 operator &(Uint32x4 other) { 2211 Int32x4 operator &(Int32x4 other) {
2212 return _and(other); 2212 return _and(other);
2213 } 2213 }
2214 Uint32x4 _and(Uint32x4 other) native "Uint32x4_and"; 2214 Int32x4 _and(Int32x4 other) native "Int32x4_and";
2215 Uint32x4 operator ^(Uint32x4 other) { 2215 Int32x4 operator ^(Int32x4 other) {
2216 return _xor(other); 2216 return _xor(other);
2217 } 2217 }
2218 Uint32x4 _xor(Uint32x4 other) native "Uint32x4_xor"; 2218 Int32x4 _xor(Int32x4 other) native "Int32x4_xor";
2219 Uint32x4 operator +(Uint32x4 other) { 2219 Int32x4 operator +(Int32x4 other) {
2220 return _add(other); 2220 return _add(other);
2221 } 2221 }
2222 Uint32x4 _add(Uint32x4 other) native "Uint32x4_add"; 2222 Int32x4 _add(Int32x4 other) native "Int32x4_add";
2223 Uint32x4 operator -(Uint32x4 other) { 2223 Int32x4 operator -(Int32x4 other) {
2224 return _sub(other); 2224 return _sub(other);
2225 } 2225 }
2226 Uint32x4 _sub(Uint32x4 other) native "Uint32x4_sub"; 2226 Int32x4 _sub(Int32x4 other) native "Int32x4_sub";
2227 int get x native "Uint32x4_getX"; 2227 int get x native "Int32x4_getX";
2228 int get y native "Uint32x4_getY"; 2228 int get y native "Int32x4_getY";
2229 int get z native "Uint32x4_getZ"; 2229 int get z native "Int32x4_getZ";
2230 int get w native "Uint32x4_getW"; 2230 int get w native "Int32x4_getW";
2231 int get signMask native "Uint32x4_getSignMask"; 2231 int get signMask native "Int32x4_getSignMask";
2232 Uint32x4 shuffle(int mask) native "Uint32x4_shuffle"; 2232 Int32x4 shuffle(int mask) native "Int32x4_shuffle";
2233 Uint32x4 shuffleMix(Uint32x4 zw, int mask) native "Uint32x4_shuffleMix"; 2233 Int32x4 shuffleMix(Int32x4 zw, int mask) native "Int32x4_shuffleMix";
2234 Uint32x4 withX(int x) native "Uint32x4_setX"; 2234 Int32x4 withX(int x) native "Int32x4_setX";
2235 Uint32x4 withY(int y) native "Uint32x4_setY"; 2235 Int32x4 withY(int y) native "Int32x4_setY";
2236 Uint32x4 withZ(int z) native "Uint32x4_setZ"; 2236 Int32x4 withZ(int z) native "Int32x4_setZ";
2237 Uint32x4 withW(int w) native "Uint32x4_setW"; 2237 Int32x4 withW(int w) native "Int32x4_setW";
2238 bool get flagX native "Uint32x4_getFlagX"; 2238 bool get flagX native "Int32x4_getFlagX";
2239 bool get flagY native "Uint32x4_getFlagY"; 2239 bool get flagY native "Int32x4_getFlagY";
2240 bool get flagZ native "Uint32x4_getFlagZ"; 2240 bool get flagZ native "Int32x4_getFlagZ";
2241 bool get flagW native "Uint32x4_getFlagW"; 2241 bool get flagW native "Int32x4_getFlagW";
2242 Uint32x4 withFlagX(bool x) native "Uint32x4_setFlagX"; 2242 Int32x4 withFlagX(bool x) native "Int32x4_setFlagX";
2243 Uint32x4 withFlagY(bool y) native "Uint32x4_setFlagY"; 2243 Int32x4 withFlagY(bool y) native "Int32x4_setFlagY";
2244 Uint32x4 withFlagZ(bool z) native "Uint32x4_setFlagZ"; 2244 Int32x4 withFlagZ(bool z) native "Int32x4_setFlagZ";
2245 Uint32x4 withFlagW(bool w) native "Uint32x4_setFlagW"; 2245 Int32x4 withFlagW(bool w) native "Int32x4_setFlagW";
2246 Float32x4 select(Float32x4 trueValue, 2246 Float32x4 select(Float32x4 trueValue,
2247 Float32x4 falseValue) { 2247 Float32x4 falseValue) {
2248 return _select(trueValue, falseValue); 2248 return _select(trueValue, falseValue);
2249 } 2249 }
2250 Float32x4 _select(Float32x4 trueValue, 2250 Float32x4 _select(Float32x4 trueValue,
2251 Float32x4 falseValue) 2251 Float32x4 falseValue)
2252 native "Uint32x4_select"; 2252 native "Int32x4_select";
2253 } 2253 }
2254 2254
2255 class _TypedListIterator<E> implements Iterator<E> { 2255 class _TypedListIterator<E> implements Iterator<E> {
2256 final List<E> _array; 2256 final List<E> _array;
2257 final int _length; 2257 final int _length;
2258 int _position; 2258 int _position;
2259 E _current; 2259 E _current;
2260 2260
2261 _TypedListIterator(List array) 2261 _TypedListIterator(List array)
2262 : _array = array, _length = array.length, _position = -1 { 2262 : _array = array, _length = array.length, _position = -1 {
(...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after
2918 2918
2919 2919
2920 // Internal utility methods. 2920 // Internal utility methods.
2921 2921
2922 Float32x4List _createList(int length) { 2922 Float32x4List _createList(int length) {
2923 return new Float32x4List(length); 2923 return new Float32x4List(length);
2924 } 2924 }
2925 } 2925 }
2926 2926
2927 2927
2928 class _Uint32x4ArrayView extends _TypedListView implements Uint32x4List { 2928 class _Int32x4ArrayView extends _TypedListView implements Int32x4List {
2929 // Constructor. 2929 // Constructor.
2930 _Uint32x4ArrayView(ByteBuffer buffer, [int _offsetInBytes = 0, int _length]) 2930 _Int32x4ArrayView(ByteBuffer buffer, [int _offsetInBytes = 0, int _length])
2931 : super(buffer, _offsetInBytes, 2931 : super(buffer, _offsetInBytes,
2932 _defaultIfNull(_length, 2932 _defaultIfNull(_length,
2933 ((buffer.lengthInBytes - _offsetInBytes) ~/ 2933 ((buffer.lengthInBytes - _offsetInBytes) ~/
2934 Uint32x4List.BYTES_PER_ELEMENT))) { 2934 Int32x4List.BYTES_PER_ELEMENT))) {
2935 _rangeCheck(buffer.lengthInBytes, 2935 _rangeCheck(buffer.lengthInBytes,
2936 offsetInBytes, 2936 offsetInBytes,
2937 length * Uint32x4List.BYTES_PER_ELEMENT); 2937 length * Int32x4List.BYTES_PER_ELEMENT);
2938 _offsetAlignmentCheck(_offsetInBytes, Uint32x4List.BYTES_PER_ELEMENT); 2938 _offsetAlignmentCheck(_offsetInBytes, Int32x4List.BYTES_PER_ELEMENT);
2939 } 2939 }
2940 2940
2941 2941
2942 // Method(s) implementing List interface. 2942 // Method(s) implementing List interface.
2943 2943
2944 Uint32x4 operator[](int index) { 2944 Int32x4 operator[](int index) {
2945 if (index < 0 || index >= length) { 2945 if (index < 0 || index >= length) {
2946 _throwRangeError(index, length); 2946 _throwRangeError(index, length);
2947 } 2947 }
2948 return _typedData._getUint32x4(offsetInBytes + 2948 return _typedData._getInt32x4(offsetInBytes +
2949 (index * Uint32x4List.BYTES_PER_ELEMENT)); 2949 (index * Int32x4List.BYTES_PER_ELEMENT));
2950 } 2950 }
2951 2951
2952 void operator[]=(int index, Uint32x4 value) { 2952 void operator[]=(int index, Int32x4 value) {
2953 if (index < 0 || index >= length) { 2953 if (index < 0 || index >= length) {
2954 _throwRangeError(index, length); 2954 _throwRangeError(index, length);
2955 } 2955 }
2956 _typedData._setUint32x4(offsetInBytes + 2956 _typedData._setInt32x4(offsetInBytes +
2957 (index * Uint32x4List.BYTES_PER_ELEMENT), value); 2957 (index * Int32x4List.BYTES_PER_ELEMENT), value);
2958 } 2958 }
2959 2959
2960 Iterator<Uint32x4> get iterator { 2960 Iterator<Int32x4> get iterator {
2961 return new _TypedListIterator<Uint32x4>(this); 2961 return new _TypedListIterator<Int32x4>(this);
2962 } 2962 }
2963 2963
2964 2964
2965 // Method(s) implementing TypedData interface. 2965 // Method(s) implementing TypedData interface.
2966 2966
2967 int get elementSizeInBytes { 2967 int get elementSizeInBytes {
2968 return Uint32x4List.BYTES_PER_ELEMENT; 2968 return Int32x4List.BYTES_PER_ELEMENT;
2969 } 2969 }
2970 2970
2971 2971
2972 // Internal utility methods. 2972 // Internal utility methods.
2973 2973
2974 Uint32x4List _createList(int length) { 2974 Int32x4List _createList(int length) {
2975 return new Uint32x4List(length); 2975 return new Int32x4List(length);
2976 } 2976 }
2977 } 2977 }
2978 2978
2979 2979
2980 class _ByteDataView implements ByteData { 2980 class _ByteDataView implements ByteData {
2981 _ByteDataView(ByteBuffer _buffer, int _offsetInBytes, int _lengthInBytes) 2981 _ByteDataView(ByteBuffer _buffer, int _offsetInBytes, int _lengthInBytes)
2982 : _typedData = _buffer, // _buffer is guaranteed to be a TypedData here. 2982 : _typedData = _buffer, // _buffer is guaranteed to be a TypedData here.
2983 _offset = _offsetInBytes, 2983 _offset = _offsetInBytes,
2984 length = _lengthInBytes { 2984 length = _lengthInBytes {
2985 _rangeCheck(_buffer.lengthInBytes, _offset, length); 2985 _rangeCheck(_buffer.lengthInBytes, _offset, length);
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
3341 return value; 3341 return value;
3342 } 3342 }
3343 return object; 3343 return object;
3344 } 3344 }
3345 3345
3346 3346
3347 void _throwRangeError(int index, int length) { 3347 void _throwRangeError(int index, int length) {
3348 String message = "$index must be in the range [0..$length)"; 3348 String message = "$index must be in the range [0..$length)";
3349 throw new RangeError(message); 3349 throw new RangeError(message);
3350 } 3350 }
OLDNEW
« no previous file with comments | « dart/runtime/lib/typed_data.cc ('k') | dart/runtime/platform/globals.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698