| OLD | NEW |
| 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 ListFactory { | 5 class ListFactory { |
| 6 factory List<E>.from(Iterable<E> other) { | 6 factory List<E>.from(Iterable<E> other) { |
| 7 List<E> list = new List<E>(); | 7 List<E> list = new List<E>(); |
| 8 for (final e in other) { | 8 for (final e in other) { |
| 9 list.add(e); | 9 list.add(e); |
| 10 } | 10 } |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 140 | 140 |
| 141 List<T> getRange(int start, int length) { | 141 List<T> getRange(int start, int length) { |
| 142 if (length == 0) return []; | 142 if (length == 0) return []; |
| 143 Arrays.rangeCheck(this, start, length); | 143 Arrays.rangeCheck(this, start, length); |
| 144 List list = new List<T>(); | 144 List list = new List<T>(); |
| 145 list.length = length; | 145 list.length = length; |
| 146 Arrays.copy(this, start, list, 0, length); | 146 Arrays.copy(this, start, list, 0, length); |
| 147 return list; | 147 return list; |
| 148 } | 148 } |
| 149 | 149 |
| 150 int indexOf(T element, int startIndex) { | 150 int indexOf(T element, [int start = 0]) { |
| 151 return Arrays.indexOf(this, element, startIndex, this.length); | 151 return Arrays.indexOf(this, element, start, this.length); |
| 152 } | 152 } |
| 153 | 153 |
| 154 int lastIndexOf(T element, int startIndex) { | 154 int lastIndexOf(T element, [int start = null]) { |
| 155 return Arrays.lastIndexOf(this, element, startIndex); | 155 if (start === null) start = length - 1; |
| 156 return Arrays.lastIndexOf(this, element, start); |
| 156 } | 157 } |
| 157 | 158 |
| 158 void add(T element) { | 159 void add(T element) { |
| 159 if (_isFixed) { | 160 if (_isFixed) { |
| 160 throw const UnsupportedOperationException( | 161 throw const UnsupportedOperationException( |
| 161 "Cannot add to a non-extendable list"); | 162 "Cannot add to a non-extendable list"); |
| 162 } else { | 163 } else { |
| 163 _add(element); | 164 _add(element); |
| 164 } | 165 } |
| 165 } | 166 } |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 258 } | 259 } |
| 259 | 260 |
| 260 static List _newList(int len) native { | 261 static List _newList(int len) native { |
| 261 return new List(len); | 262 return new List(len); |
| 262 } | 263 } |
| 263 | 264 |
| 264 static void _throwIndexOutOfRangeException(int index) native { | 265 static void _throwIndexOutOfRangeException(int index) native { |
| 265 throw new IndexOutOfRangeException(index); | 266 throw new IndexOutOfRangeException(index); |
| 266 } | 267 } |
| 267 } | 268 } |
| OLD | NEW |