| Index: sdk/lib/collection/collections.dart
|
| diff --git a/sdk/lib/collection/collections.dart b/sdk/lib/collection/collections.dart
|
| index a5cbfafd7d495f909b914f71b9e9365b29153603..54c7d0bc33d480fd47aa936c1cc8755be62c5fed 100644
|
| --- a/sdk/lib/collection/collections.dart
|
| +++ b/sdk/lib/collection/collections.dart
|
| @@ -369,16 +369,18 @@ class IterableMixinWorkaround {
|
| return new SubListIterable(list, start, end);
|
| }
|
|
|
| - static void setRangeList(List list, int start, int length,
|
| + static void setRangeList(List list, int start, int end,
|
| List from, int startFrom) {
|
| - if (length == 0) return;
|
| -
|
| - if (length < 0) throw new ArgumentError(length);
|
| - if (start < 0) throw new RangeError.value(start);
|
| - if (start + length > list.length) {
|
| - throw new RangeError.value(start + length);
|
| + if (start < 0 || start > list.length) {
|
| + throw new RangeError.range(start, 0, list.length);
|
| + }
|
| + if (end < start || end > list.length) {
|
| + throw new RangeError.range(end, start, list.length);
|
| + }
|
| + int length = end - start;
|
| + if (startFrom < 0 || startFrom + length > from.length) {
|
| + throw new RangeError.range(startFrom, 0, from.length - length);
|
| }
|
| -
|
| Arrays.copy(from, startFrom, list, start, length);
|
| }
|
|
|
|
|