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

Side by Side Diff: compiler/lib/implementation/array.dart

Issue 8276005: Implement List.getRange. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 9 years, 2 months 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 | « no previous file | compiler/lib/implementation/arrays.dart » ('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) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 class ArrayFactory { 5 class ArrayFactory {
6 factory Array<E>.from(Iterable<E> other) { 6 factory Array<E>.from(Iterable<E> other) {
7 Array<E> array = new Array<E>(); 7 Array<E> array = new Array<E>();
8 for (final e in other) { 8 for (final e in other) {
9 array.add(e); 9 array.add(e);
10 } 10 }
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 throw new IndexOutOfRangeException(start + length); 182 throw new IndexOutOfRangeException(start + length);
183 } 183 }
184 _splice(start, length); 184 _splice(start, length);
185 } 185 }
186 186
187 void insertRange(int start, int length, [T initialValue = null]) { 187 void insertRange(int start, int length, [T initialValue = null]) {
188 throw const NotImplementedException(); 188 throw const NotImplementedException();
189 } 189 }
190 190
191 List<T> getRange(int start, int length) { 191 List<T> getRange(int start, int length) {
192 throw const NotImplementedException(); 192 if (length == 0) return [];
193 Arrays.rangeCheck(this, start, length);
194 return new List<T>.fromList(this, start, start + length);
193 } 195 }
194 196
195 int indexOf(T element, int startIndex) { 197 int indexOf(T element, int startIndex) {
196 return Arrays.indexOf(this, element, startIndex, this.length); 198 return Arrays.indexOf(this, element, startIndex, this.length);
197 } 199 }
198 200
199 int lastIndexOf(T element, int startIndex) { 201 int lastIndexOf(T element, int startIndex) {
200 return Arrays.lastIndexOf(this, element, startIndex); 202 return Arrays.lastIndexOf(this, element, startIndex);
201 } 203 }
202 204
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 } 305 }
304 306
305 static Array _newArray(int len) native { 307 static Array _newArray(int len) native {
306 return new Array(len); 308 return new Array(len);
307 } 309 }
308 310
309 static void _throwIndexOutOfRangeException(int index) native { 311 static void _throwIndexOutOfRangeException(int index) native {
310 throw new IndexOutOfRangeException(index); 312 throw new IndexOutOfRangeException(index);
311 } 313 }
312 } 314 }
OLDNEW
« no previous file with comments | « no previous file | compiler/lib/implementation/arrays.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698