| Index: runtime/lib/byte_array.dart
|
| diff --git a/runtime/lib/byte_array.dart b/runtime/lib/byte_array.dart
|
| index 38a90f1453e19db9b2b1d0f0d50e78cb7698a0ee..d2e1ec0ebd48c7bab33549195697cfcfa010e81c 100644
|
| --- a/runtime/lib/byte_array.dart
|
| +++ b/runtime/lib/byte_array.dart
|
| @@ -556,13 +556,17 @@ class _Int8Array extends _ByteArrayBase implements Int8List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = _new(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _Int8Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -620,13 +624,17 @@ class _Uint8Array extends _ByteArrayBase implements Uint8List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = _new(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _Uint8Array || from is _ExternalUint8Array ||
|
| from is _Uint8ClampedArray || from is _ExternalUint8ClampedArray) {
|
| @@ -686,13 +694,17 @@ class _Uint8ClampedArray extends _ByteArrayBase implements Uint8ClampedList {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = _new(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _Uint8Array || from is _ExternalUint8Array ||
|
| from is _Uint8ClampedArray || from is _ExternalUint8ClampedArray) {
|
| @@ -751,13 +763,17 @@ class _Int16Array extends _ByteArrayBase implements Int16List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = _new(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _Int16Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -815,13 +831,17 @@ class _Uint16Array extends _ByteArrayBase implements Uint16List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = _new(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _Uint16Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -879,13 +899,17 @@ class _Int32Array extends _ByteArrayBase implements Int32List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = _new(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _Int32Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -944,13 +968,17 @@ class _Uint32Array extends _ByteArrayBase implements Uint32List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = _new(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _Uint32Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -1008,13 +1036,17 @@ class _Int64Array extends _ByteArrayBase implements Int64List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = _new(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _Int64Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -1072,13 +1104,17 @@ class _Uint64Array extends _ByteArrayBase implements Uint64List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = _new(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _Uint64Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -1136,13 +1172,18 @@ class _Float32Array extends _ByteArrayBase implements Float32List {
|
| return new _ByteArrayIterator<double>(this);
|
| }
|
|
|
| - List<double> getRange(int start, int length) {
|
| + List<double> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<double> result = _new(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<double> getRange(int start, int length) =>
|
| + sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<double> from, [int startFrom = 0]) {
|
| if (from is _Float32Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -1200,13 +1241,18 @@ class _Float64Array extends _ByteArrayBase implements Float64List {
|
| return new _ByteArrayIterator<double>(this);
|
| }
|
|
|
| - List<double> getRange(int start, int length) {
|
| + List<double> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<double> result = _new(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<double> getRange(int start, int length) =>
|
| + sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<double> from, [int startFrom = 0]) {
|
| if (from is _Float64Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -1253,13 +1299,17 @@ class _ExternalInt8Array extends _ByteArrayBase implements Int8List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Int8List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _ExternalInt8Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -1304,13 +1354,17 @@ class _ExternalUint8Array extends _ByteArrayBase implements Uint8List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Uint8List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _ExternalUint8Array || from is _Uint8Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -1356,13 +1410,17 @@ class _ExternalUint8ClampedArray
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Uint8ClampedList(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _ExternalUint8ClampedArray || from is _Uint8ClampedArray) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -1407,13 +1465,17 @@ class _ExternalInt16Array extends _ByteArrayBase implements Int16List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Int16List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _ExternalInt16Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -1458,13 +1520,17 @@ class _ExternalUint16Array extends _ByteArrayBase implements Uint16List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Uint16List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _ExternalUint16Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -1511,13 +1577,17 @@ class _ExternalInt32Array extends _ByteArrayBase implements Int32List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Int32List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _ExternalInt32Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -1564,13 +1634,17 @@ class _ExternalUint32Array extends _ByteArrayBase implements Uint32List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Uint32List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _ExternalUint32Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -1617,13 +1691,17 @@ class _ExternalInt64Array extends _ByteArrayBase implements Int64List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Int64List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _ExternalInt64Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -1670,13 +1748,17 @@ class _ExternalUint64Array extends _ByteArrayBase implements Uint64List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Uint64List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| if (from is _ExternalUint64Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -1723,13 +1805,18 @@ class _ExternalFloat32Array extends _ByteArrayBase implements Float32List {
|
| return new _ByteArrayIterator<double>(this);
|
| }
|
|
|
| - List<double> getRange(int start, int length) {
|
| + List<double> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<double> result = new Float32List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<double> getRange(int start, int length) =>
|
| + sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<double> from, [int startFrom = 0]) {
|
| if (from is _ExternalFloat32Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -1776,13 +1863,18 @@ class _ExternalFloat64Array extends _ByteArrayBase implements Float64List {
|
| return new _ByteArrayIterator<double>(this);
|
| }
|
|
|
| - List<double> getRange(int start, int length) {
|
| + List<double> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<double> result = new Float64List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<double> getRange(int start, int length) =>
|
| + sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<double> from, [int startFrom = 0]) {
|
| if (from is _ExternalFloat64Array) {
|
| _setRange(start * _BYTES_PER_ELEMENT,
|
| @@ -2110,13 +2202,17 @@ class _Int8ArrayView extends _ByteArrayViewBase implements Int8List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Int8List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
|
| }
|
| @@ -2174,13 +2270,17 @@ class _Uint8ArrayView extends _ByteArrayViewBase implements Uint8List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Uint8List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
|
| }
|
| @@ -2238,13 +2338,17 @@ class _Int16ArrayView extends _ByteArrayViewBase implements Int16List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Int16List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
|
| }
|
| @@ -2302,13 +2406,17 @@ class _Uint16ArrayView extends _ByteArrayViewBase implements Uint16List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Uint16List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
|
| }
|
| @@ -2366,13 +2474,17 @@ class _Int32ArrayView extends _ByteArrayViewBase implements Int32List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Int32List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
|
| }
|
| @@ -2430,13 +2542,17 @@ class _Uint32ArrayView extends _ByteArrayViewBase implements Uint32List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Uint32List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
|
| }
|
| @@ -2494,13 +2610,17 @@ class _Int64ArrayView extends _ByteArrayViewBase implements Int64List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Int64List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
|
| }
|
| @@ -2558,13 +2678,17 @@ class _Uint64ArrayView extends _ByteArrayViewBase implements Uint64List {
|
| return new _ByteArrayIterator<int>(this);
|
| }
|
|
|
| - List<int> getRange(int start, int length) {
|
| + List<int> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<int> result = new Uint64List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<int> getRange(int start, int length) => sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<int> from, [int startFrom = 0]) {
|
| IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
|
| }
|
| @@ -2622,13 +2746,18 @@ class _Float32ArrayView extends _ByteArrayViewBase implements Float32List {
|
| return new _ByteArrayIterator<double>(this);
|
| }
|
|
|
| - List<double> getRange(int start, int length) {
|
| + List<double> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<double> result = new Float32List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<double> getRange(int start, int length) =>
|
| + sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<double> from, [int startFrom = 0]) {
|
| IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
|
| }
|
| @@ -2686,13 +2815,18 @@ class _Float64ArrayView extends _ByteArrayViewBase implements Float64List {
|
| return new _ByteArrayIterator<double>(this);
|
| }
|
|
|
| - List<double> getRange(int start, int length) {
|
| + List<double> sublist(int start, [int end]) {
|
| + if (end == null) end = this.length;
|
| + int length = end - start;
|
| _rangeCheck(this.length, start, length);
|
| List<double> result = new Float64List(length);
|
| result.setRange(0, length, this, start);
|
| return result;
|
| }
|
|
|
| + List<double> getRange(int start, int length) =>
|
| + sublist(start, start + length);
|
| +
|
| void setRange(int start, int length, List<double> from, [int startFrom = 0]) {
|
| IterableMixinWorkaround.setRangeList(this, start, length, from, startFrom);
|
| }
|
|
|