| OLD | NEW |
| 1 var _internal; | 1 var _internal; |
| 2 (function(exports) { | 2 (function(exports) { |
| 3 'use strict'; | 3 'use strict'; |
| 4 class EfficientLength extends core.Object { | 4 class EfficientLength extends core.Object { |
| 5 } | 5 } |
| 6 let ListIterable$ = dart.generic(function(E) { | 6 let ListIterable$ = dart.generic(function(E) { |
| 7 class ListIterable extends collection.IterableBase$(E) { | 7 class ListIterable extends collection.IterableBase$(E) { |
| 8 ListIterable() { | 8 ListIterable() { |
| 9 super.IterableBase(); | 9 super.IterableBase(); |
| 10 } | 10 } |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 throw new core.ConcurrentModificationError(this); | 152 throw new core.ConcurrentModificationError(this); |
| 153 } | 153 } |
| 154 } | 154 } |
| 155 return buffer.toString(); | 155 return buffer.toString(); |
| 156 } | 156 } |
| 157 } | 157 } |
| 158 where(test) { | 158 where(test) { |
| 159 return super.where(test); | 159 return super.where(test); |
| 160 } | 160 } |
| 161 map(f) { | 161 map(f) { |
| 162 return new MappedListIterable(this, dart.as(f, dart.throw_("Unimplemente
d type (dynamic) → dynamic"))); | 162 return new MappedListIterable(this, f); |
| 163 } | 163 } |
| 164 reduce(combine) { | 164 reduce(combine) { |
| 165 let length = this.length; | 165 let length = this.length; |
| 166 if (length === 0) | 166 if (length === 0) |
| 167 throw IterableElementError.noElement(); | 167 throw IterableElementError.noElement(); |
| 168 let value = this.elementAt(0); | 168 let value = this.elementAt(0); |
| 169 for (let i = 1; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | 169 for (let i = 1; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { |
| 170 value = combine(value, this.elementAt(i)); | 170 value = dart.dinvokef(combine, value, this.elementAt(i)); |
| 171 if (length !== this.length) { | 171 if (length !== this.length) { |
| 172 throw new core.ConcurrentModificationError(this); | 172 throw new core.ConcurrentModificationError(this); |
| 173 } | 173 } |
| 174 } | 174 } |
| 175 return value; | 175 return value; |
| 176 } | 176 } |
| 177 fold(initialValue, combine) { | 177 fold(initialValue, combine) { |
| 178 let value = initialValue; | 178 let value = initialValue; |
| 179 let length = this.length; | 179 let length = this.length; |
| 180 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | 180 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { |
| 181 value = combine(value, this.elementAt(i)); | 181 value = dart.dinvokef(combine, value, this.elementAt(i)); |
| 182 if (length !== this.length) { | 182 if (length !== this.length) { |
| 183 throw new core.ConcurrentModificationError(this); | 183 throw new core.ConcurrentModificationError(this); |
| 184 } | 184 } |
| 185 } | 185 } |
| 186 return value; | 186 return value; |
| 187 } | 187 } |
| 188 skip(count) { | 188 skip(count) { |
| 189 return new SubListIterable(this, count, null); | 189 return new SubListIterable(this, count, null); |
| 190 } | 190 } |
| 191 skipWhile(test) { | 191 skipWhile(test) { |
| (...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 474 }); | 474 }); |
| 475 let WhereIterator = WhereIterator$(dart.dynamic); | 475 let WhereIterator = WhereIterator$(dart.dynamic); |
| 476 let ExpandIterable$ = dart.generic(function(S, T) { | 476 let ExpandIterable$ = dart.generic(function(S, T) { |
| 477 class ExpandIterable extends collection.IterableBase$(T) { | 477 class ExpandIterable extends collection.IterableBase$(T) { |
| 478 ExpandIterable($_iterable, $_f) { | 478 ExpandIterable($_iterable, $_f) { |
| 479 this[_iterable] = $_iterable; | 479 this[_iterable] = $_iterable; |
| 480 this[_f] = $_f; | 480 this[_f] = $_f; |
| 481 super.IterableBase(); | 481 super.IterableBase(); |
| 482 } | 482 } |
| 483 get iterator() { | 483 get iterator() { |
| 484 return new ExpandIterator(this[_iterable].iterator, dart.as(this[_f], da
rt.throw_("Unimplemented type (S) → Iterable<T>"))); | 484 return new ExpandIterator(this[_iterable].iterator, dart.closureWrap(thi
s[_f], "(S) → Iterable<T>")); |
| 485 } | 485 } |
| 486 } | 486 } |
| 487 return ExpandIterable; | 487 return ExpandIterable; |
| 488 }); | 488 }); |
| 489 let ExpandIterable = ExpandIterable$(dart.dynamic, dart.dynamic); | 489 let ExpandIterable = ExpandIterable$(dart.dynamic, dart.dynamic); |
| 490 let _currentExpansion = Symbol('_currentExpansion'); | 490 let _currentExpansion = Symbol('_currentExpansion'); |
| 491 let _nextExpansion = Symbol('_nextExpansion'); | 491 let _nextExpansion = Symbol('_nextExpansion'); |
| 492 let ExpandIterator$ = dart.generic(function(S, T) { | 492 let ExpandIterator$ = dart.generic(function(S, T) { |
| 493 class ExpandIterator extends core.Object { | 493 class ExpandIterator extends core.Object { |
| 494 ExpandIterator($_iterator, $_f) { | 494 ExpandIterator($_iterator, $_f) { |
| 495 this[_iterator] = $_iterator; | 495 this[_iterator] = $_iterator; |
| 496 this[_f] = $_f; | 496 this[_f] = $_f; |
| 497 this[_currentExpansion] = dart.as(new EmptyIterator(), core.Iterator$(T)
); | 497 this[_currentExpansion] = dart.as(new EmptyIterator(), core.Iterator$(T)
); |
| 498 this[_current] = null; | 498 this[_current] = null; |
| 499 } | 499 } |
| 500 [_nextExpansion]() {} | 500 [_nextExpansion]() {} |
| 501 get current() { | 501 get current() { |
| 502 return this[_current]; | 502 return this[_current]; |
| 503 } | 503 } |
| 504 moveNext() { | 504 moveNext() { |
| 505 if (this[_currentExpansion] === null) | 505 if (this[_currentExpansion] === null) |
| 506 return false; | 506 return false; |
| 507 while (!dart.notNull(this[_currentExpansion].moveNext())) { | 507 while (!dart.notNull(this[_currentExpansion].moveNext())) { |
| 508 this[_current] = null; | 508 this[_current] = null; |
| 509 if (this[_iterator].moveNext()) { | 509 if (this[_iterator].moveNext()) { |
| 510 this[_currentExpansion] = null; | 510 this[_currentExpansion] = null; |
| 511 this[_currentExpansion] = dart.as(this[_f](this[_iterator].current).
iterator, core.Iterator$(T)); | 511 this[_currentExpansion] = dart.as(dart.dinvokef(this[_f], this[_iter
ator].current).iterator, core.Iterator$(T)); |
| 512 } else { | 512 } else { |
| 513 return false; | 513 return false; |
| 514 } | 514 } |
| 515 } | 515 } |
| 516 this[_current] = this[_currentExpansion].current; | 516 this[_current] = this[_currentExpansion].current; |
| 517 return true; | 517 return true; |
| 518 } | 518 } |
| 519 } | 519 } |
| 520 return ExpandIterator; | 520 return ExpandIterator; |
| 521 }); | 521 }); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 587 }); | 587 }); |
| 588 let TakeIterator = TakeIterator$(dart.dynamic); | 588 let TakeIterator = TakeIterator$(dart.dynamic); |
| 589 let TakeWhileIterable$ = dart.generic(function(E) { | 589 let TakeWhileIterable$ = dart.generic(function(E) { |
| 590 class TakeWhileIterable extends collection.IterableBase$(E) { | 590 class TakeWhileIterable extends collection.IterableBase$(E) { |
| 591 TakeWhileIterable($_iterable, $_f) { | 591 TakeWhileIterable($_iterable, $_f) { |
| 592 this[_iterable] = $_iterable; | 592 this[_iterable] = $_iterable; |
| 593 this[_f] = $_f; | 593 this[_f] = $_f; |
| 594 super.IterableBase(); | 594 super.IterableBase(); |
| 595 } | 595 } |
| 596 get iterator() { | 596 get iterator() { |
| 597 return new TakeWhileIterator(this[_iterable].iterator, this[_f]); | 597 return new TakeWhileIterator(this[_iterable].iterator, dart.closureWrap(
this[_f], "(E) → bool")); |
| 598 } | 598 } |
| 599 } | 599 } |
| 600 return TakeWhileIterable; | 600 return TakeWhileIterable; |
| 601 }); | 601 }); |
| 602 let TakeWhileIterable = TakeWhileIterable$(dart.dynamic); | 602 let TakeWhileIterable = TakeWhileIterable$(dart.dynamic); |
| 603 let _isFinished = Symbol('_isFinished'); | 603 let _isFinished = Symbol('_isFinished'); |
| 604 let TakeWhileIterator$ = dart.generic(function(E) { | 604 let TakeWhileIterator$ = dart.generic(function(E) { |
| 605 class TakeWhileIterator extends core.Iterator$(E) { | 605 class TakeWhileIterator extends core.Iterator$(E) { |
| 606 TakeWhileIterator($_iterator, $_f) { | 606 TakeWhileIterator($_iterator, $_f) { |
| 607 this[_iterator] = $_iterator; | 607 this[_iterator] = $_iterator; |
| 608 this[_f] = $_f; | 608 this[_f] = $_f; |
| 609 this[_isFinished] = false; | 609 this[_isFinished] = false; |
| 610 super.Iterator(); | 610 super.Iterator(); |
| 611 } | 611 } |
| 612 moveNext() { | 612 moveNext() { |
| 613 if (this[_isFinished]) | 613 if (this[_isFinished]) |
| 614 return false; | 614 return false; |
| 615 if (!dart.notNull(this[_iterator].moveNext()) || !dart.notNull(this[_f](
this[_iterator].current))) { | 615 if (!dart.notNull(this[_iterator].moveNext()) || !dart.notNull(dart.dinv
okef(this[_f], this[_iterator].current))) { |
| 616 this[_isFinished] = true; | 616 this[_isFinished] = true; |
| 617 return false; | 617 return false; |
| 618 } | 618 } |
| 619 return true; | 619 return true; |
| 620 } | 620 } |
| 621 get current() { | 621 get current() { |
| 622 if (this[_isFinished]) | 622 if (this[_isFinished]) |
| 623 return null; | 623 return null; |
| 624 return this[_iterator].current; | 624 return this[_iterator].current; |
| 625 } | 625 } |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 697 }); | 697 }); |
| 698 let SkipIterator = SkipIterator$(dart.dynamic); | 698 let SkipIterator = SkipIterator$(dart.dynamic); |
| 699 let SkipWhileIterable$ = dart.generic(function(E) { | 699 let SkipWhileIterable$ = dart.generic(function(E) { |
| 700 class SkipWhileIterable extends collection.IterableBase$(E) { | 700 class SkipWhileIterable extends collection.IterableBase$(E) { |
| 701 SkipWhileIterable($_iterable, $_f) { | 701 SkipWhileIterable($_iterable, $_f) { |
| 702 this[_iterable] = $_iterable; | 702 this[_iterable] = $_iterable; |
| 703 this[_f] = $_f; | 703 this[_f] = $_f; |
| 704 super.IterableBase(); | 704 super.IterableBase(); |
| 705 } | 705 } |
| 706 get iterator() { | 706 get iterator() { |
| 707 return new SkipWhileIterator(this[_iterable].iterator, this[_f]); | 707 return new SkipWhileIterator(this[_iterable].iterator, dart.closureWrap(
this[_f], "(E) → bool")); |
| 708 } | 708 } |
| 709 } | 709 } |
| 710 return SkipWhileIterable; | 710 return SkipWhileIterable; |
| 711 }); | 711 }); |
| 712 let SkipWhileIterable = SkipWhileIterable$(dart.dynamic); | 712 let SkipWhileIterable = SkipWhileIterable$(dart.dynamic); |
| 713 let _hasSkipped = Symbol('_hasSkipped'); | 713 let _hasSkipped = Symbol('_hasSkipped'); |
| 714 let SkipWhileIterator$ = dart.generic(function(E) { | 714 let SkipWhileIterator$ = dart.generic(function(E) { |
| 715 class SkipWhileIterator extends core.Iterator$(E) { | 715 class SkipWhileIterator extends core.Iterator$(E) { |
| 716 SkipWhileIterator($_iterator, $_f) { | 716 SkipWhileIterator($_iterator, $_f) { |
| 717 this[_iterator] = $_iterator; | 717 this[_iterator] = $_iterator; |
| 718 this[_f] = $_f; | 718 this[_f] = $_f; |
| 719 this[_hasSkipped] = false; | 719 this[_hasSkipped] = false; |
| 720 super.Iterator(); | 720 super.Iterator(); |
| 721 } | 721 } |
| 722 moveNext() { | 722 moveNext() { |
| 723 if (!dart.notNull(this[_hasSkipped])) { | 723 if (!dart.notNull(this[_hasSkipped])) { |
| 724 this[_hasSkipped] = true; | 724 this[_hasSkipped] = true; |
| 725 while (this[_iterator].moveNext()) { | 725 while (this[_iterator].moveNext()) { |
| 726 if (!dart.notNull(this[_f](this[_iterator].current))) | 726 if (!dart.notNull(dart.dinvokef(this[_f], this[_iterator].current))) |
| 727 return true; | 727 return true; |
| 728 } | 728 } |
| 729 } | 729 } |
| 730 return this[_iterator].moveNext(); | 730 return this[_iterator].moveNext(); |
| 731 } | 731 } |
| 732 get current() { | 732 get current() { |
| 733 return this[_iterator].current; | 733 return this[_iterator].current; |
| 734 } | 734 } |
| 735 } | 735 } |
| 736 return SkipWhileIterator; | 736 return SkipWhileIterator; |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 857 class IterableMixinWorkaround extends core.Object { | 857 class IterableMixinWorkaround extends core.Object { |
| 858 static contains(iterable, element) { | 858 static contains(iterable, element) { |
| 859 for (let e of iterable) { | 859 for (let e of iterable) { |
| 860 if (dart.equals(e, element)) | 860 if (dart.equals(e, element)) |
| 861 return true; | 861 return true; |
| 862 } | 862 } |
| 863 return false; | 863 return false; |
| 864 } | 864 } |
| 865 static forEach(iterable, f) { | 865 static forEach(iterable, f) { |
| 866 for (let e of iterable) { | 866 for (let e of iterable) { |
| 867 f(e); | 867 dart.dinvokef(f, e); |
| 868 } | 868 } |
| 869 } | 869 } |
| 870 static any(iterable, f) { | 870 static any(iterable, f) { |
| 871 for (let e of iterable) { | 871 for (let e of iterable) { |
| 872 if (f(e)) | 872 if (dart.dinvokef(f, e)) |
| 873 return true; | 873 return true; |
| 874 } | 874 } |
| 875 return false; | 875 return false; |
| 876 } | 876 } |
| 877 static every(iterable, f) { | 877 static every(iterable, f) { |
| 878 for (let e of iterable) { | 878 for (let e of iterable) { |
| 879 if (!dart.notNull(f(e))) | 879 if (!dart.notNull(dart.dinvokef(f, e))) |
| 880 return false; | 880 return false; |
| 881 } | 881 } |
| 882 return true; | 882 return true; |
| 883 } | 883 } |
| 884 static reduce(iterable, combine) { | 884 static reduce(iterable, combine) { |
| 885 let iterator = iterable.iterator; | 885 let iterator = iterable.iterator; |
| 886 if (!dart.notNull(iterator.moveNext())) | 886 if (!dart.notNull(iterator.moveNext())) |
| 887 throw IterableElementError.noElement(); | 887 throw IterableElementError.noElement(); |
| 888 let value = iterator.current; | 888 let value = iterator.current; |
| 889 while (iterator.moveNext()) { | 889 while (iterator.moveNext()) { |
| 890 value = combine(value, iterator.current); | 890 value = dart.dinvokef(combine, value, iterator.current); |
| 891 } | 891 } |
| 892 return value; | 892 return value; |
| 893 } | 893 } |
| 894 static fold(iterable, initialValue, combine) { | 894 static fold(iterable, initialValue, combine) { |
| 895 for (let element of iterable) { | 895 for (let element of iterable) { |
| 896 initialValue = combine(initialValue, element); | 896 initialValue = dart.dinvokef(combine, initialValue, element); |
| 897 } | 897 } |
| 898 return initialValue; | 898 return initialValue; |
| 899 } | 899 } |
| 900 static removeWhereList(list, test) { | 900 static removeWhereList(list, test) { |
| 901 let retained = new List.from([]); | 901 let retained = new List.from([]); |
| 902 let length = list.length; | 902 let length = list.length; |
| 903 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | 903 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { |
| 904 let element = list.get(i); | 904 let element = list.get(i); |
| 905 if (!dart.notNull(test(element))) { | 905 if (!dart.notNull(dart.dinvokef(test, element))) { |
| 906 retained.add(element); | 906 retained.add(element); |
| 907 } | 907 } |
| 908 if (length !== list.length) { | 908 if (length !== list.length) { |
| 909 throw new core.ConcurrentModificationError(list); | 909 throw new core.ConcurrentModificationError(list); |
| 910 } | 910 } |
| 911 } | 911 } |
| 912 if (retained.length === length) | 912 if (retained.length === length) |
| 913 return; | 913 return; |
| 914 list.length = retained.length; | 914 list.length = retained.length; |
| 915 for (let i = 0; dart.notNull(i) < dart.notNull(retained.length); i = dar
t.notNull(i) + 1) { | 915 for (let i = 0; dart.notNull(i) < dart.notNull(retained.length); i = dar
t.notNull(i) + 1) { |
| (...skipping 25 matching lines...) Expand all Loading... |
| 941 let it = iterable.iterator; | 941 let it = iterable.iterator; |
| 942 if (!dart.notNull(it.moveNext())) | 942 if (!dart.notNull(it.moveNext())) |
| 943 throw IterableElementError.noElement(); | 943 throw IterableElementError.noElement(); |
| 944 let result = it.current; | 944 let result = it.current; |
| 945 if (it.moveNext()) | 945 if (it.moveNext()) |
| 946 throw IterableElementError.tooMany(); | 946 throw IterableElementError.tooMany(); |
| 947 return result; | 947 return result; |
| 948 } | 948 } |
| 949 static firstWhere(iterable, test, orElse) { | 949 static firstWhere(iterable, test, orElse) { |
| 950 for (let element of iterable) { | 950 for (let element of iterable) { |
| 951 if (test(element)) | 951 if (dart.dinvokef(test, element)) |
| 952 return element; | 952 return element; |
| 953 } | 953 } |
| 954 if (orElse !== null) | 954 if (orElse !== null) |
| 955 return orElse(); | 955 return orElse(); |
| 956 throw IterableElementError.noElement(); | 956 throw IterableElementError.noElement(); |
| 957 } | 957 } |
| 958 static lastWhere(iterable, test, orElse) { | 958 static lastWhere(iterable, test, orElse) { |
| 959 let result = null; | 959 let result = null; |
| 960 let foundMatching = false; | 960 let foundMatching = false; |
| 961 for (let element of iterable) { | 961 for (let element of iterable) { |
| 962 if (test(element)) { | 962 if (dart.dinvokef(test, element)) { |
| 963 result = element; | 963 result = element; |
| 964 foundMatching = true; | 964 foundMatching = true; |
| 965 } | 965 } |
| 966 } | 966 } |
| 967 if (foundMatching) | 967 if (foundMatching) |
| 968 return result; | 968 return result; |
| 969 if (orElse !== null) | 969 if (orElse !== null) |
| 970 return orElse(); | 970 return orElse(); |
| 971 throw IterableElementError.noElement(); | 971 throw IterableElementError.noElement(); |
| 972 } | 972 } |
| 973 static lastWhereList(list, test, orElse) { | 973 static lastWhereList(list, test, orElse) { |
| 974 for (let i = dart.notNull(list.length) - 1; dart.notNull(i) >= 0; i = da
rt.notNull(i) - 1) { | 974 for (let i = dart.notNull(list.length) - 1; dart.notNull(i) >= 0; i = da
rt.notNull(i) - 1) { |
| 975 let element = list.get(i); | 975 let element = list.get(i); |
| 976 if (test(element)) | 976 if (dart.dinvokef(test, element)) |
| 977 return element; | 977 return element; |
| 978 } | 978 } |
| 979 if (orElse !== null) | 979 if (orElse !== null) |
| 980 return orElse(); | 980 return orElse(); |
| 981 throw IterableElementError.noElement(); | 981 throw IterableElementError.noElement(); |
| 982 } | 982 } |
| 983 static singleWhere(iterable, test) { | 983 static singleWhere(iterable, test) { |
| 984 let result = null; | 984 let result = null; |
| 985 let foundMatching = false; | 985 let foundMatching = false; |
| 986 for (let element of iterable) { | 986 for (let element of iterable) { |
| 987 if (test(element)) { | 987 if (dart.dinvokef(test, element)) { |
| 988 if (foundMatching) { | 988 if (foundMatching) { |
| 989 throw IterableElementError.tooMany(); | 989 throw IterableElementError.tooMany(); |
| 990 } | 990 } |
| 991 result = element; | 991 result = element; |
| 992 foundMatching = true; | 992 foundMatching = true; |
| 993 } | 993 } |
| 994 } | 994 } |
| 995 if (foundMatching) | 995 if (foundMatching) |
| 996 return result; | 996 return result; |
| 997 throw IterableElementError.noElement(); | 997 throw IterableElementError.noElement(); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1030 } else { | 1030 } else { |
| 1031 buffer.write(list.get(0)); | 1031 buffer.write(list.get(0)); |
| 1032 for (let i = 1; dart.notNull(i) < dart.notNull(list.length); i = dart.
notNull(i) + 1) { | 1032 for (let i = 1; dart.notNull(i) < dart.notNull(list.length); i = dart.
notNull(i) + 1) { |
| 1033 buffer.write(separator); | 1033 buffer.write(separator); |
| 1034 buffer.write(list.get(i)); | 1034 buffer.write(list.get(i)); |
| 1035 } | 1035 } |
| 1036 } | 1036 } |
| 1037 return buffer.toString(); | 1037 return buffer.toString(); |
| 1038 } | 1038 } |
| 1039 where(iterable, f) { | 1039 where(iterable, f) { |
| 1040 return new WhereIterable(dart.as(iterable, core.Iterable$(T)), f); | 1040 return new WhereIterable(dart.as(iterable, core.Iterable$(T)), dart.clos
ureWrap(f, "(T) → bool")); |
| 1041 } | 1041 } |
| 1042 static map(iterable, f) { | 1042 static map(iterable, f) { |
| 1043 return new MappedIterable(iterable, f); | 1043 return new MappedIterable(iterable, f); |
| 1044 } | 1044 } |
| 1045 static mapList(list, f) { | 1045 static mapList(list, f) { |
| 1046 return new MappedListIterable(list, f); | 1046 return new MappedListIterable(list, f); |
| 1047 } | 1047 } |
| 1048 static expand(iterable, f) { | 1048 static expand(iterable, f) { |
| 1049 return new ExpandIterable(iterable, f); | 1049 return new ExpandIterable(iterable, f); |
| 1050 } | 1050 } |
| 1051 takeList(list, n) { | 1051 takeList(list, n) { |
| 1052 return new SubListIterable(dart.as(list, core.Iterable$(T)), 0, n); | 1052 return new SubListIterable(dart.as(list, core.Iterable$(T)), 0, n); |
| 1053 } | 1053 } |
| 1054 takeWhile(iterable, test) { | 1054 takeWhile(iterable, test) { |
| 1055 return new TakeWhileIterable(dart.as(iterable, core.Iterable$(T)), test)
; | 1055 return new TakeWhileIterable(dart.as(iterable, core.Iterable$(T)), dart.
closureWrap(test, "(T) → bool")); |
| 1056 } | 1056 } |
| 1057 skipList(list, n) { | 1057 skipList(list, n) { |
| 1058 return new SubListIterable(dart.as(list, core.Iterable$(T)), n, null); | 1058 return new SubListIterable(dart.as(list, core.Iterable$(T)), n, null); |
| 1059 } | 1059 } |
| 1060 skipWhile(iterable, test) { | 1060 skipWhile(iterable, test) { |
| 1061 return new SkipWhileIterable(dart.as(iterable, core.Iterable$(T)), test)
; | 1061 return new SkipWhileIterable(dart.as(iterable, core.Iterable$(T)), dart.
closureWrap(test, "(T) → bool")); |
| 1062 } | 1062 } |
| 1063 reversedList(list) { | 1063 reversedList(list) { |
| 1064 return new ReversedListIterable(dart.as(list, core.Iterable$(T))); | 1064 return new ReversedListIterable(dart.as(list, core.Iterable$(T))); |
| 1065 } | 1065 } |
| 1066 static sortList(list, compare) { | 1066 static sortList(list, compare) { |
| 1067 if (compare === null) | 1067 if (compare === null) |
| 1068 compare = dart.as(core.Comparable.compare, dart.throw_("Unimplemented
type (dynamic, dynamic) → int")); | 1068 compare = core.Comparable.compare; |
| 1069 Sort.sort(list, compare); | 1069 Sort.sort(list, compare); |
| 1070 } | 1070 } |
| 1071 static shuffleList(list, random) { | 1071 static shuffleList(list, random) { |
| 1072 if (random === null) | 1072 if (random === null) |
| 1073 random = new math.Random(); | 1073 random = new math.Random(); |
| 1074 let length = list.length; | 1074 let length = list.length; |
| 1075 while (dart.notNull(length) > 1) { | 1075 while (dart.notNull(length) > 1) { |
| 1076 let pos = random.nextInt(length); | 1076 let pos = random.nextInt(length); |
| 1077 length = 1; | 1077 length = 1; |
| 1078 let tmp = list.get(length); | 1078 let tmp = list.get(length); |
| (...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1557 if (dart.notNull(right) - dart.notNull(left) <= dart.notNull(Sort._INSERTI
ON_SORT_THRESHOLD)) { | 1557 if (dart.notNull(right) - dart.notNull(left) <= dart.notNull(Sort._INSERTI
ON_SORT_THRESHOLD)) { |
| 1558 _insertionSort(a, left, right, compare); | 1558 _insertionSort(a, left, right, compare); |
| 1559 } else { | 1559 } else { |
| 1560 _dualPivotQuicksort(a, left, right, compare); | 1560 _dualPivotQuicksort(a, left, right, compare); |
| 1561 } | 1561 } |
| 1562 } | 1562 } |
| 1563 static [_insertionSort](a, left, right, compare) { | 1563 static [_insertionSort](a, left, right, compare) { |
| 1564 for (let i = dart.notNull(left) + 1; dart.notNull(i) <= dart.notNull(right
); i = dart.notNull(i) + 1) { | 1564 for (let i = dart.notNull(left) + 1; dart.notNull(i) <= dart.notNull(right
); i = dart.notNull(i) + 1) { |
| 1565 let el = a.get(i); | 1565 let el = a.get(i); |
| 1566 let j = i; | 1566 let j = i; |
| 1567 while (dart.notNull(j) > dart.notNull(left) && dart.notNull(compare(a.ge
t(dart.notNull(j) - 1), el)) > 0) { | 1567 while (dart.notNull(j) > dart.notNull(left) && dart.notNull(dart.dinvoke
f(compare, a.get(dart.notNull(j) - 1), el)) > 0) { |
| 1568 a.set(j, a.get(dart.notNull(j) - 1)); | 1568 a.set(j, a.get(dart.notNull(j) - 1)); |
| 1569 j = dart.notNull(j) - 1; | 1569 j = dart.notNull(j) - 1; |
| 1570 } | 1570 } |
| 1571 a.set(j, el); | 1571 a.set(j, el); |
| 1572 } | 1572 } |
| 1573 } | 1573 } |
| 1574 static [_dualPivotQuicksort](a, left, right, compare) { | 1574 static [_dualPivotQuicksort](a, left, right, compare) { |
| 1575 dart.assert(dart.notNull(right) - dart.notNull(left) > dart.notNull(Sort._
INSERTION_SORT_THRESHOLD)); | 1575 dart.assert(dart.notNull(right) - dart.notNull(left) > dart.notNull(Sort._
INSERTION_SORT_THRESHOLD)); |
| 1576 let sixth = ((dart.notNull(right) - dart.notNull(left) + 1) / 6).truncate(
); | 1576 let sixth = ((dart.notNull(right) - dart.notNull(left) + 1) / 6).truncate(
); |
| 1577 let index1 = dart.notNull(left) + dart.notNull(sixth); | 1577 let index1 = dart.notNull(left) + dart.notNull(sixth); |
| 1578 let index5 = dart.notNull(right) - dart.notNull(sixth); | 1578 let index5 = dart.notNull(right) - dart.notNull(sixth); |
| 1579 let index3 = ((dart.notNull(left) + dart.notNull(right)) / 2).truncate(); | 1579 let index3 = ((dart.notNull(left) + dart.notNull(right)) / 2).truncate(); |
| 1580 let index2 = dart.notNull(index3) - dart.notNull(sixth); | 1580 let index2 = dart.notNull(index3) - dart.notNull(sixth); |
| 1581 let index4 = dart.notNull(index3) + dart.notNull(sixth); | 1581 let index4 = dart.notNull(index3) + dart.notNull(sixth); |
| 1582 let el1 = a.get(index1); | 1582 let el1 = a.get(index1); |
| 1583 let el2 = a.get(index2); | 1583 let el2 = a.get(index2); |
| 1584 let el3 = a.get(index3); | 1584 let el3 = a.get(index3); |
| 1585 let el4 = a.get(index4); | 1585 let el4 = a.get(index4); |
| 1586 let el5 = a.get(index5); | 1586 let el5 = a.get(index5); |
| 1587 if (dart.notNull(compare(el1, el2)) > 0) { | 1587 if (dart.notNull(dart.dinvokef(compare, el1, el2)) > 0) { |
| 1588 let t = el1; | 1588 let t = el1; |
| 1589 el1 = el2; | 1589 el1 = el2; |
| 1590 el2 = t; | 1590 el2 = t; |
| 1591 } | 1591 } |
| 1592 if (dart.notNull(compare(el4, el5)) > 0) { | 1592 if (dart.notNull(dart.dinvokef(compare, el4, el5)) > 0) { |
| 1593 let t = el4; | 1593 let t = el4; |
| 1594 el4 = el5; | 1594 el4 = el5; |
| 1595 el5 = t; | 1595 el5 = t; |
| 1596 } | 1596 } |
| 1597 if (dart.notNull(compare(el1, el3)) > 0) { | 1597 if (dart.notNull(dart.dinvokef(compare, el1, el3)) > 0) { |
| 1598 let t = el1; | 1598 let t = el1; |
| 1599 el1 = el3; | 1599 el1 = el3; |
| 1600 el3 = t; | 1600 el3 = t; |
| 1601 } | 1601 } |
| 1602 if (dart.notNull(compare(el2, el3)) > 0) { | 1602 if (dart.notNull(dart.dinvokef(compare, el2, el3)) > 0) { |
| 1603 let t = el2; | 1603 let t = el2; |
| 1604 el2 = el3; | 1604 el2 = el3; |
| 1605 el3 = t; | 1605 el3 = t; |
| 1606 } | 1606 } |
| 1607 if (dart.notNull(compare(el1, el4)) > 0) { | 1607 if (dart.notNull(dart.dinvokef(compare, el1, el4)) > 0) { |
| 1608 let t = el1; | 1608 let t = el1; |
| 1609 el1 = el4; | 1609 el1 = el4; |
| 1610 el4 = t; | 1610 el4 = t; |
| 1611 } | 1611 } |
| 1612 if (dart.notNull(compare(el3, el4)) > 0) { | 1612 if (dart.notNull(dart.dinvokef(compare, el3, el4)) > 0) { |
| 1613 let t = el3; | 1613 let t = el3; |
| 1614 el3 = el4; | 1614 el3 = el4; |
| 1615 el4 = t; | 1615 el4 = t; |
| 1616 } | 1616 } |
| 1617 if (dart.notNull(compare(el2, el5)) > 0) { | 1617 if (dart.notNull(dart.dinvokef(compare, el2, el5)) > 0) { |
| 1618 let t = el2; | 1618 let t = el2; |
| 1619 el2 = el5; | 1619 el2 = el5; |
| 1620 el5 = t; | 1620 el5 = t; |
| 1621 } | 1621 } |
| 1622 if (dart.notNull(compare(el2, el3)) > 0) { | 1622 if (dart.notNull(dart.dinvokef(compare, el2, el3)) > 0) { |
| 1623 let t = el2; | 1623 let t = el2; |
| 1624 el2 = el3; | 1624 el2 = el3; |
| 1625 el3 = t; | 1625 el3 = t; |
| 1626 } | 1626 } |
| 1627 if (dart.notNull(compare(el4, el5)) > 0) { | 1627 if (dart.notNull(dart.dinvokef(compare, el4, el5)) > 0) { |
| 1628 let t = el4; | 1628 let t = el4; |
| 1629 el4 = el5; | 1629 el4 = el5; |
| 1630 el5 = t; | 1630 el5 = t; |
| 1631 } | 1631 } |
| 1632 let pivot1 = el2; | 1632 let pivot1 = el2; |
| 1633 let pivot2 = el4; | 1633 let pivot2 = el4; |
| 1634 a.set(index1, el1); | 1634 a.set(index1, el1); |
| 1635 a.set(index3, el3); | 1635 a.set(index3, el3); |
| 1636 a.set(index5, el5); | 1636 a.set(index5, el5); |
| 1637 a.set(index2, a.get(left)); | 1637 a.set(index2, a.get(left)); |
| 1638 a.set(index4, a.get(right)); | 1638 a.set(index4, a.get(right)); |
| 1639 let less = dart.notNull(left) + 1; | 1639 let less = dart.notNull(left) + 1; |
| 1640 let great = dart.notNull(right) - 1; | 1640 let great = dart.notNull(right) - 1; |
| 1641 let pivots_are_equal = compare(pivot1, pivot2) === 0; | 1641 let pivots_are_equal = dart.dinvokef(compare, pivot1, pivot2) === 0; |
| 1642 if (pivots_are_equal) { | 1642 if (pivots_are_equal) { |
| 1643 let pivot = pivot1; | 1643 let pivot = pivot1; |
| 1644 for (let k = less; dart.notNull(k) <= dart.notNull(great); k = dart.notN
ull(k) + 1) { | 1644 for (let k = less; dart.notNull(k) <= dart.notNull(great); k = dart.notN
ull(k) + 1) { |
| 1645 let ak = a.get(k); | 1645 let ak = a.get(k); |
| 1646 let comp = compare(ak, pivot); | 1646 let comp = dart.dinvokef(compare, ak, pivot); |
| 1647 if (comp === 0) | 1647 if (comp === 0) |
| 1648 continue; | 1648 continue; |
| 1649 if (dart.notNull(comp) < 0) { | 1649 if (dart.notNull(comp) < 0) { |
| 1650 if (k !== less) { | 1650 if (k !== less) { |
| 1651 a.set(k, a.get(less)); | 1651 a.set(k, a.get(less)); |
| 1652 a.set(less, ak); | 1652 a.set(less, ak); |
| 1653 } | 1653 } |
| 1654 less = dart.notNull(less) + 1; | 1654 less = dart.notNull(less) + 1; |
| 1655 } else { | 1655 } else { |
| 1656 while (true) { | 1656 while (true) { |
| 1657 comp = compare(a.get(great), pivot); | 1657 comp = dart.dinvokef(compare, a.get(great), pivot); |
| 1658 if (dart.notNull(comp) > 0) { | 1658 if (dart.notNull(comp) > 0) { |
| 1659 great = dart.notNull(great) - 1; | 1659 great = dart.notNull(great) - 1; |
| 1660 continue; | 1660 continue; |
| 1661 } else if (dart.notNull(comp) < 0) { | 1661 } else if (dart.notNull(comp) < 0) { |
| 1662 a.set(k, a.get(less)); | 1662 a.set(k, a.get(less)); |
| 1663 a.set((($tmp) => less = dart.notNull($tmp) + 1, $tmp)(less), a.g
et(great)); | 1663 a.set((($tmp) => less = dart.notNull($tmp) + 1, $tmp)(less), a.g
et(great)); |
| 1664 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great), a
k); | 1664 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great), a
k); |
| 1665 break; | 1665 break; |
| 1666 } else { | 1666 } else { |
| 1667 a.set(k, a.get(great)); | 1667 a.set(k, a.get(great)); |
| 1668 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great), a
k); | 1668 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great), a
k); |
| 1669 break; | 1669 break; |
| 1670 } | 1670 } |
| 1671 } | 1671 } |
| 1672 } | 1672 } |
| 1673 } | 1673 } |
| 1674 } else { | 1674 } else { |
| 1675 for (let k = less; dart.notNull(k) <= dart.notNull(great); k = dart.notN
ull(k) + 1) { | 1675 for (let k = less; dart.notNull(k) <= dart.notNull(great); k = dart.notN
ull(k) + 1) { |
| 1676 let ak = a.get(k); | 1676 let ak = a.get(k); |
| 1677 let comp_pivot1 = compare(ak, pivot1); | 1677 let comp_pivot1 = dart.dinvokef(compare, ak, pivot1); |
| 1678 if (dart.notNull(comp_pivot1) < 0) { | 1678 if (dart.notNull(comp_pivot1) < 0) { |
| 1679 if (k !== less) { | 1679 if (k !== less) { |
| 1680 a.set(k, a.get(less)); | 1680 a.set(k, a.get(less)); |
| 1681 a.set(less, ak); | 1681 a.set(less, ak); |
| 1682 } | 1682 } |
| 1683 less = dart.notNull(less) + 1; | 1683 less = dart.notNull(less) + 1; |
| 1684 } else { | 1684 } else { |
| 1685 let comp_pivot2 = compare(ak, pivot2); | 1685 let comp_pivot2 = dart.dinvokef(compare, ak, pivot2); |
| 1686 if (dart.notNull(comp_pivot2) > 0) { | 1686 if (dart.notNull(comp_pivot2) > 0) { |
| 1687 while (true) { | 1687 while (true) { |
| 1688 let comp = compare(a.get(great), pivot2); | 1688 let comp = dart.dinvokef(compare, a.get(great), pivot2); |
| 1689 if (dart.notNull(comp) > 0) { | 1689 if (dart.notNull(comp) > 0) { |
| 1690 great = dart.notNull(great) - 1; | 1690 great = dart.notNull(great) - 1; |
| 1691 if (dart.notNull(great) < dart.notNull(k)) | 1691 if (dart.notNull(great) < dart.notNull(k)) |
| 1692 break; | 1692 break; |
| 1693 continue; | 1693 continue; |
| 1694 } else { | 1694 } else { |
| 1695 comp = compare(a.get(great), pivot1); | 1695 comp = dart.dinvokef(compare, a.get(great), pivot1); |
| 1696 if (dart.notNull(comp) < 0) { | 1696 if (dart.notNull(comp) < 0) { |
| 1697 a.set(k, a.get(less)); | 1697 a.set(k, a.get(less)); |
| 1698 a.set((($tmp) => less = dart.notNull($tmp) + 1, $tmp)(less),
a.get(great)); | 1698 a.set((($tmp) => less = dart.notNull($tmp) + 1, $tmp)(less),
a.get(great)); |
| 1699 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great
), ak); | 1699 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great
), ak); |
| 1700 } else { | 1700 } else { |
| 1701 a.set(k, a.get(great)); | 1701 a.set(k, a.get(great)); |
| 1702 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great
), ak); | 1702 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great
), ak); |
| 1703 } | 1703 } |
| 1704 break; | 1704 break; |
| 1705 } | 1705 } |
| 1706 } | 1706 } |
| 1707 } | 1707 } |
| 1708 } | 1708 } |
| 1709 } | 1709 } |
| 1710 } | 1710 } |
| 1711 a.set(left, a.get(dart.notNull(less) - 1)); | 1711 a.set(left, a.get(dart.notNull(less) - 1)); |
| 1712 a.set(dart.notNull(less) - 1, pivot1); | 1712 a.set(dart.notNull(less) - 1, pivot1); |
| 1713 a.set(right, a.get(dart.notNull(great) + 1)); | 1713 a.set(right, a.get(dart.notNull(great) + 1)); |
| 1714 a.set(dart.notNull(great) + 1, pivot2); | 1714 a.set(dart.notNull(great) + 1, pivot2); |
| 1715 _doSort(a, left, dart.notNull(less) - 2, compare); | 1715 _doSort(a, left, dart.notNull(less) - 2, compare); |
| 1716 _doSort(a, dart.notNull(great) + 2, right, compare); | 1716 _doSort(a, dart.notNull(great) + 2, right, compare); |
| 1717 if (pivots_are_equal) { | 1717 if (pivots_are_equal) { |
| 1718 return; | 1718 return; |
| 1719 } | 1719 } |
| 1720 if (dart.notNull(less) < dart.notNull(index1) && dart.notNull(great) > dar
t.notNull(index5)) { | 1720 if (dart.notNull(less) < dart.notNull(index1) && dart.notNull(great) > dar
t.notNull(index5)) { |
| 1721 while (compare(a.get(less), pivot1) === 0) { | 1721 while (dart.dinvokef(compare, a.get(less), pivot1) === 0) { |
| 1722 less = dart.notNull(less) + 1; | 1722 less = dart.notNull(less) + 1; |
| 1723 } | 1723 } |
| 1724 while (compare(a.get(great), pivot2) === 0) { | 1724 while (dart.dinvokef(compare, a.get(great), pivot2) === 0) { |
| 1725 great = dart.notNull(great) - 1; | 1725 great = dart.notNull(great) - 1; |
| 1726 } | 1726 } |
| 1727 for (let k = less; dart.notNull(k) <= dart.notNull(great); k = dart.notN
ull(k) + 1) { | 1727 for (let k = less; dart.notNull(k) <= dart.notNull(great); k = dart.notN
ull(k) + 1) { |
| 1728 let ak = a.get(k); | 1728 let ak = a.get(k); |
| 1729 let comp_pivot1 = compare(ak, pivot1); | 1729 let comp_pivot1 = dart.dinvokef(compare, ak, pivot1); |
| 1730 if (comp_pivot1 === 0) { | 1730 if (comp_pivot1 === 0) { |
| 1731 if (k !== less) { | 1731 if (k !== less) { |
| 1732 a.set(k, a.get(less)); | 1732 a.set(k, a.get(less)); |
| 1733 a.set(less, ak); | 1733 a.set(less, ak); |
| 1734 } | 1734 } |
| 1735 less = dart.notNull(less) + 1; | 1735 less = dart.notNull(less) + 1; |
| 1736 } else { | 1736 } else { |
| 1737 let comp_pivot2 = compare(ak, pivot2); | 1737 let comp_pivot2 = dart.dinvokef(compare, ak, pivot2); |
| 1738 if (comp_pivot2 === 0) { | 1738 if (comp_pivot2 === 0) { |
| 1739 while (true) { | 1739 while (true) { |
| 1740 let comp = compare(a.get(great), pivot2); | 1740 let comp = dart.dinvokef(compare, a.get(great), pivot2); |
| 1741 if (comp === 0) { | 1741 if (comp === 0) { |
| 1742 great = dart.notNull(great) - 1; | 1742 great = dart.notNull(great) - 1; |
| 1743 if (dart.notNull(great) < dart.notNull(k)) | 1743 if (dart.notNull(great) < dart.notNull(k)) |
| 1744 break; | 1744 break; |
| 1745 continue; | 1745 continue; |
| 1746 } else { | 1746 } else { |
| 1747 comp = compare(a.get(great), pivot1); | 1747 comp = dart.dinvokef(compare, a.get(great), pivot1); |
| 1748 if (dart.notNull(comp) < 0) { | 1748 if (dart.notNull(comp) < 0) { |
| 1749 a.set(k, a.get(less)); | 1749 a.set(k, a.get(less)); |
| 1750 a.set((($tmp) => less = dart.notNull($tmp) + 1, $tmp)(less),
a.get(great)); | 1750 a.set((($tmp) => less = dart.notNull($tmp) + 1, $tmp)(less),
a.get(great)); |
| 1751 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great
), ak); | 1751 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great
), ak); |
| 1752 } else { | 1752 } else { |
| 1753 a.set(k, a.get(great)); | 1753 a.set(k, a.get(great)); |
| 1754 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great
), ak); | 1754 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great
), ak); |
| 1755 } | 1755 } |
| 1756 break; | 1756 break; |
| 1757 } | 1757 } |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1884 exports.ReversedListIterable$ = ReversedListIterable$; | 1884 exports.ReversedListIterable$ = ReversedListIterable$; |
| 1885 exports.UnmodifiableListError = UnmodifiableListError; | 1885 exports.UnmodifiableListError = UnmodifiableListError; |
| 1886 exports.NonGrowableListError = NonGrowableListError; | 1886 exports.NonGrowableListError = NonGrowableListError; |
| 1887 exports.makeListFixedLength = makeListFixedLength; | 1887 exports.makeListFixedLength = makeListFixedLength; |
| 1888 exports.Lists = Lists; | 1888 exports.Lists = Lists; |
| 1889 exports.printToConsole = printToConsole; | 1889 exports.printToConsole = printToConsole; |
| 1890 exports.Sort = Sort; | 1890 exports.Sort = Sort; |
| 1891 exports.Symbol = Symbol; | 1891 exports.Symbol = Symbol; |
| 1892 exports.POWERS_OF_TEN = POWERS_OF_TEN; | 1892 exports.POWERS_OF_TEN = POWERS_OF_TEN; |
| 1893 })(_internal || (_internal = {})); | 1893 })(_internal || (_internal = {})); |
| OLD | NEW |