| Index: test/dart_codegen/expect/core/list.dart
|
| diff --git a/test/dart_codegen/expect/core/list.dart b/test/dart_codegen/expect/core/list.dart
|
| index 29544b59cd2185b4c9d030060cc813ac22ed7033..280a1eea01e771cf27010b10a2f81b66bc05a5b5 100644
|
| --- a/test/dart_codegen/expect/core/list.dart
|
| +++ b/test/dart_codegen/expect/core/list.dart
|
| @@ -19,31 +19,244 @@ part of dart.core;
|
| }
|
| return result;
|
| }
|
| - E operator [](int index);
|
| - void operator []=(int index, E value);
|
| - int get length;
|
| - void set length(int newLength);
|
| - void add(E value);
|
| - void addAll(Iterable<E> iterable);
|
| - Iterable<E> get reversed;
|
| - void sort([int compare(E a, E b)]);
|
| - void shuffle([Random random]);
|
| - int indexOf(E element, [int start = 0]);
|
| - int lastIndexOf(E element, [int start]);
|
| - void clear();
|
| - void insert(int index, E element);
|
| - void insertAll(int index, Iterable<E> iterable);
|
| - void setAll(int index, Iterable<E> iterable);
|
| - bool remove(Object value);
|
| - E removeAt(int index);
|
| - E removeLast();
|
| - void removeWhere(bool test(E element));
|
| - void retainWhere(bool test(E element));
|
| - List<E> sublist(int start, [int end]);
|
| - Iterable<E> getRange(int start, int end);
|
| - void setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]);
|
| - void removeRange(int start, int end);
|
| - void fillRange(int start, int end, [E fillValue]);
|
| - void replaceRange(int start, int end, Iterable<E> replacement);
|
| - Map<int, E> asMap();
|
| + checkMutable(reason) {
|
| + }
|
| + checkGrowable(reason) {
|
| + }
|
| + Iterable<E> where(bool f(E element)) {
|
| + return new IterableMixinWorkaround<E>().where(this, f);
|
| + }
|
| + Iterable expand(Iterable f(E element)) {
|
| + return IterableMixinWorkaround.expand(this, f);
|
| + }
|
| + void forEach(void f(E element)) {
|
| + int length = this.length;
|
| + for (int i = 0; i < length; i++) {
|
| + f(((__x9) => DEVC$RT.cast(__x9, dynamic, E, "CompositeCast", """line 153, column 9 of dart:core/list.dart: """, __x9 is E, false))(JS('', '#[#]', this, i)));
|
| + if (length != this.length) {
|
| + throw new ConcurrentModificationError(this);
|
| + }
|
| + }
|
| + }
|
| + Iterable map(f(E element)) {
|
| + return IterableMixinWorkaround.mapList(this, f);
|
| + }
|
| + String join([String separator = ""]) {
|
| + var list = new List(this.length);
|
| + for (int i = 0; i < this.length; i++) {
|
| + list[i] = "${this[i]}";
|
| + }
|
| + return ((__x10) => DEVC$RT.cast(__x10, dynamic, String, "DynamicCast", """line 169, column 12 of dart:core/list.dart: """, __x10 is String, true))(JS('String', "#.join(#)", list, separator));
|
| + }
|
| + Iterable<E> take(int n) {
|
| + return new IterableMixinWorkaround<E>().takeList(this, n);
|
| + }
|
| + Iterable<E> takeWhile(bool test(E value)) {
|
| + return new IterableMixinWorkaround<E>().takeWhile(this, test);
|
| + }
|
| + Iterable<E> skip(int n) {
|
| + return new IterableMixinWorkaround<E>().skipList(this, n);
|
| + }
|
| + Iterable<E> skipWhile(bool test(E value)) {
|
| + return new IterableMixinWorkaround<E>().skipWhile(this, test);
|
| + }
|
| + E reduce(E combine(E value, E element)) {
|
| + return ((__x11) => DEVC$RT.cast(__x11, dynamic, E, "CompositeCast", """line 189, column 12 of dart:core/list.dart: """, __x11 is E, false))(IterableMixinWorkaround.reduce(this, combine));
|
| + }
|
| + fold(initialValue, combine(previousValue, E element)) {
|
| + return IterableMixinWorkaround.fold(this, initialValue, combine);
|
| + }
|
| + E firstWhere(bool test(E value), {
|
| + E orElse()}
|
| +) {
|
| + return ((__x12) => DEVC$RT.cast(__x12, dynamic, E, "CompositeCast", """line 197, column 12 of dart:core/list.dart: """, __x12 is E, false))(IterableMixinWorkaround.firstWhere(this, test, orElse));
|
| + }
|
| + E lastWhere(bool test(E value), {
|
| + E orElse()}
|
| +) {
|
| + return ((__x13) => DEVC$RT.cast(__x13, dynamic, E, "CompositeCast", """line 201, column 12 of dart:core/list.dart: """, __x13 is E, false))(IterableMixinWorkaround.lastWhereList(this, test, orElse));
|
| + }
|
| + E singleWhere(bool test(E value)) {
|
| + return ((__x14) => DEVC$RT.cast(__x14, dynamic, E, "CompositeCast", """line 205, column 12 of dart:core/list.dart: """, __x14 is E, false))(IterableMixinWorkaround.singleWhere(this, test));
|
| + }
|
| + E elementAt(int index) {
|
| + return this[index];
|
| + }
|
| + E get first {
|
| + if (length > 0) return this[0];
|
| + throw new StateError("No elements");
|
| + }
|
| + E get last {
|
| + if (length > 0) return this[length - 1];
|
| + throw new StateError("No elements");
|
| + }
|
| + E get single {
|
| + if (length == 1) return this[0];
|
| + if (length == 0) throw new StateError("No elements");
|
| + throw new StateError("More than one element");
|
| + }
|
| + bool any(bool f(E element)) => IterableMixinWorkaround.any(this, f);
|
| + bool every(bool f(E element)) => IterableMixinWorkaround.every(this, f);
|
| + void sort([int compare(E a, E b)]) {
|
| + checkMutable('sort');
|
| + IterableMixinWorkaround.sortList(this, compare);
|
| + }
|
| + bool contains(Object other) {
|
| + for (int i = 0; i < length; i++) {
|
| + if (this[i] == other) return true;
|
| + }
|
| + return false;
|
| + }
|
| + bool get isEmpty => length == 0;
|
| + bool get isNotEmpty => !isEmpty;
|
| + String toString() => ListBase.listToString(this);
|
| + List<E> toList({
|
| + bool growable : true}
|
| +) {
|
| + if (growable) {
|
| + return new JSArray<E>.markGrowable(JS('', '#.slice()', this));
|
| + }
|
| + else {
|
| + return new JSArray<E>.markFixed(JS('', '#.slice()', this));
|
| + }
|
| + }
|
| + Set<E> toSet() => new Set<E>.from(this);
|
| + Iterator<E> get iterator => new ListIterator<E>(this);
|
| + int get hashCode => ((__x15) => DEVC$RT.cast(__x15, dynamic, int, "DynamicCast", """line 262, column 23 of dart:core/list.dart: """, __x15 is int, true))(Primitives.objectHashCode(this));
|
| + E operator [](int index) {
|
| + if (index is! int) throw new ArgumentError(index);
|
| + if (index >= length || index < 0) throw new RangeError.value(index);
|
| + return ((__x16) => DEVC$RT.cast(__x16, dynamic, E, "CompositeCast", """line 273, column 12 of dart:core/list.dart: """, __x16 is E, false))(JS('var', '#[#]', this, index));
|
| + }
|
| + void operator []=(int index, E value) {
|
| + checkMutable('indexed set');
|
| + if (index is! int) throw new ArgumentError(index);
|
| + if (index >= length || index < 0) throw new RangeError.value(index);
|
| + JS('void', r'#[#] = #', this, index, value);
|
| + }
|
| + int get length => ((__x17) => DEVC$RT.cast(__x17, dynamic, int, "DynamicCast", """line 292, column 21 of dart:core/list.dart: """, __x17 is int, true))(JS('JSUInt32', r'#.length', this));
|
| + void set length(int newLength) {
|
| + if (newLength is! int) throw new ArgumentError(newLength);
|
| + if (newLength < 0) throw new RangeError.value(newLength);
|
| + checkGrowable('set length');
|
| + JS('void', r'#.length = #', this, newLength);
|
| + }
|
| + void add(E value) {
|
| + checkGrowable('add');
|
| + JS('void', r'#.push(#)', this, value);
|
| + }
|
| + void addAll(Iterable<E> iterable) {
|
| + for (E e in iterable) {
|
| + this.add(e);
|
| + }
|
| + }
|
| + Iterable<E> get reversed => new IterableMixinWorkaround<E>().reversedList(this);
|
| + void sort([int compare(E a, E b)]) {
|
| + IterableMixinWorkaround.sortList(this, compare);
|
| + }
|
| + void shuffle([Random random]) {
|
| + IterableMixinWorkaround.shuffleList(this, random);
|
| + }
|
| + int indexOf(E element, [int start = 0]) {
|
| + return IterableMixinWorkaround.indexOfList(this, element, start);
|
| + }
|
| + int lastIndexOf(E element, [int start]) {
|
| + return IterableMixinWorkaround.lastIndexOfList(this, element, start);
|
| + }
|
| + void clear() {
|
| + length = 0;
|
| + }
|
| + void insert(int index, E element) {
|
| + if (index is! int) throw new ArgumentError(index);
|
| + if (index < 0 || index > length) {
|
| + throw new RangeError.value(index);
|
| + }
|
| + checkGrowable('insert');
|
| + JS('void', r'#.splice(#, 0, #)', this, index, element);
|
| + }
|
| + void insertAll(int index, Iterable<E> iterable) {
|
| + checkGrowable('insertAll');
|
| + IterableMixinWorkaround.insertAllList(this, index, iterable);
|
| + }
|
| + void setAll(int index, Iterable<E> iterable) {
|
| + checkMutable('setAll');
|
| + IterableMixinWorkaround.setAllList(this, index, iterable);
|
| + }
|
| + bool remove(Object element) {
|
| + checkGrowable('remove');
|
| + for (int i = 0; i < this.length; i++) {
|
| + if (this[i] == value) {
|
| + JS('var', r'#.splice(#, 1)', this, i);
|
| + return true;
|
| + }
|
| + }
|
| + return false;
|
| + }
|
| + E removeAt(int index) {
|
| + if (index is! int) throw new ArgumentError(index);
|
| + if (index < 0 || index >= length) {
|
| + throw new RangeError.value(index);
|
| + }
|
| + checkGrowable('removeAt');
|
| + return ((__x18) => DEVC$RT.cast(__x18, dynamic, E, "CompositeCast", """line 524, column 12 of dart:core/list.dart: """, __x18 is E, false))(JS('var', r'#.splice(#, 1)[0]', this, index));
|
| + }
|
| + E removeLast() {
|
| + checkGrowable('removeLast');
|
| + if (length == 0) throw new RangeError.value(-1);
|
| + return ((__x19) => DEVC$RT.cast(__x19, dynamic, E, "CompositeCast", """line 535, column 12 of dart:core/list.dart: """, __x19 is E, false))(JS('var', r'#.pop()', this));
|
| + }
|
| + void removeWhere(bool test(E element)) {
|
| + IterableMixinWorkaround.removeWhereList(this, test);
|
| + }
|
| + void retainWhere(bool test(E element)) {
|
| + IterableMixinWorkaround.removeWhereList(this, (E element) => !test(element));
|
| + }
|
| + List<E> sublist(int start, [int end]) {
|
| + checkNull(start);
|
| + if (start is! int) throw new ArgumentError(start);
|
| + if (start < 0 || start > length) {
|
| + throw new RangeError.range(start, 0, length);
|
| + }
|
| + if (end == null) {
|
| + end = length;
|
| + }
|
| + else {
|
| + if (end is! int) throw new ArgumentError(end);
|
| + if (end < start || end > length) {
|
| + throw new RangeError.range(end, start, length);
|
| + }
|
| + }
|
| + if (start == end) return <E> [];
|
| + return new JSArray<E>.markGrowable(JS('', r'#.slice(#, #)', this, start, end));
|
| + }
|
| + Iterable<E> getRange(int start, int end) {
|
| + return new IterableMixinWorkaround<E>().getRangeList(this, start, end);
|
| + }
|
| + void setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) {
|
| + checkMutable('set range');
|
| + IterableMixinWorkaround.setRangeList(this, start, end, iterable, skipCount);
|
| + }
|
| + void removeRange(int start, int end) {
|
| + checkGrowable('removeRange');
|
| + int receiverLength = this.length;
|
| + if (start < 0 || start > receiverLength) {
|
| + throw new RangeError.range(start, 0, receiverLength);
|
| + }
|
| + if (end < start || end > receiverLength) {
|
| + throw new RangeError.range(end, start, receiverLength);
|
| + }
|
| + Lists.copy(this, end, this, start, receiverLength - end);
|
| + this.length = receiverLength - (end - start);
|
| + }
|
| + void fillRange(int start, int end, [E fillValue]) {
|
| + checkMutable('fill range');
|
| + IterableMixinWorkaround.fillRangeList(this, start, end, fillValue);
|
| + }
|
| + void replaceRange(int start, int end, Iterable<E> replacement) {
|
| + checkGrowable('removeRange');
|
| + IterableMixinWorkaround.replaceRangeList(this, start, end, replacement);
|
| + }
|
| + Map<int, E> asMap() {
|
| + return new IterableMixinWorkaround<E>().asMapList(this);
|
| + }
|
| }
|
|
|