| Index: runtime/lib/array.dart
|
| diff --git a/runtime/lib/array.dart b/runtime/lib/array.dart
|
| index 2478686b5aa44cdc324ffb97ca7b9119b801f570..fe18eab4abf674b149533e3ace08aefc34844dee 100644
|
| --- a/runtime/lib/array.dart
|
| +++ b/runtime/lib/array.dart
|
| @@ -65,10 +65,14 @@ class _ObjectArray<E> implements List<E> {
|
| }
|
|
|
| // List interface.
|
| - void setRange(int start, int length, List<E> from, [int startFrom = 0]) {
|
| - if (length < 0) {
|
| - throw new ArgumentError("negative length $length");
|
| + void setRange(int start, int end, List<E> from, [int startFrom = 0]) {
|
| + if (start < 0 || start > this.length) {
|
| + throw new RangeError.range(start, 0, this.length);
|
| }
|
| + if (end < 0 || end > this.length) {
|
| + throw new RangeError.range(end, start, this.length);
|
| + }
|
| + int length = end - start;
|
| if (from is _ObjectArray) {
|
| _copyFromObjectArray(from, startFrom, start, length);
|
| } else {
|
| @@ -317,7 +321,7 @@ class _ImmutableArray<E> implements List<E> {
|
| "Cannot modify an immutable array");
|
| }
|
|
|
| - void setRange(int start, int length, List<E> from, [int startFrom = 0]) {
|
| + void setRange(int start, int end, List<E> from, [int startFrom = 0]) {
|
| throw new UnsupportedError(
|
| "Cannot modify an immutable array");
|
| }
|
|
|