Index: runtime/lib/growable_array.dart |
=================================================================== |
--- runtime/lib/growable_array.dart (revision 424) |
+++ runtime/lib/growable_array.dart (working copy) |
@@ -38,7 +38,30 @@ |
} |
void insertRange(int start, int length, [T initialValue = null]) { |
- throw const NotImplementedException(); |
+ if (length == 0) { |
+ return; |
+ } |
+ if (length < 0) { |
+ throw new IllegalArgumentException("negative length $length"); |
+ } |
+ if (start < 0 || start > this.length) { |
+ throw new IndexOutOfRangeException(start); |
+ } |
+ if (this.length + length >= backingArray.length) { |
+ grow(backingArray.length + length); |
+ } |
+ Arrays.copy(backingArray, |
+ start, |
+ backingArray, |
+ start + length, |
+ this.length - start); |
+ print(backingArray[2]); |
+ if (initialValue !== null) { |
+ for (int i = start; i < start + length; i++) { |
+ backingArray[i] = initialValue; |
+ } |
+ } |
+ this.length = this.length + length; |
} |
List<T> getRange(int start, int length) { |