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

Side by Side Diff: test/codegen/expect/dart/_internal.js

Issue 1010893004: Allow S->T <: dynamic->T (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Add comment Created 5 years, 9 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
OLDNEW
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
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 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 }); 438 });
439 let MappedListIterable = MappedListIterable$(dart.dynamic, dart.dynamic); 439 let MappedListIterable = MappedListIterable$(dart.dynamic, dart.dynamic);
440 let WhereIterable$ = dart.generic(function(E) { 440 let WhereIterable$ = dart.generic(function(E) {
441 class WhereIterable extends collection.IterableBase$(E) { 441 class WhereIterable extends collection.IterableBase$(E) {
442 WhereIterable($_iterable, $_f) { 442 WhereIterable($_iterable, $_f) {
443 this[_iterable] = $_iterable; 443 this[_iterable] = $_iterable;
444 this[_f] = $_f; 444 this[_f] = $_f;
445 super.IterableBase(); 445 super.IterableBase();
446 } 446 }
447 get iterator() { 447 get iterator() {
448 return new WhereIterator(this[_iterable].iterator, this[_f]); 448 return new WhereIterator(this[_iterable].iterator, dart.closureWrap(this [_f], "(E) → bool"));
Jennifer Messerly 2015/03/18 21:50:59 hmmm. I'm a little confused, why did we closure wr
Jennifer Messerly 2015/03/18 21:53:22 aha, think I figured this out. It's a bug in the i
vsm 2015/03/18 22:34:38 Right you are. Fixed the source as suggested.
449 } 449 }
450 } 450 }
451 return WhereIterable; 451 return WhereIterable;
452 }); 452 });
453 let WhereIterable = WhereIterable$(dart.dynamic); 453 let WhereIterable = WhereIterable$(dart.dynamic);
454 let WhereIterator$ = dart.generic(function(E) { 454 let WhereIterator$ = dart.generic(function(E) {
455 class WhereIterator extends core.Iterator$(E) { 455 class WhereIterator extends core.Iterator$(E) {
456 WhereIterator($_iterator, $_f) { 456 WhereIterator($_iterator, $_f) {
457 this[_iterator] = $_iterator; 457 this[_iterator] = $_iterator;
458 this[_f] = $_f; 458 this[_f] = $_f;
459 super.Iterator(); 459 super.Iterator();
460 } 460 }
461 moveNext() { 461 moveNext() {
462 while (this[_iterator].moveNext()) { 462 while (this[_iterator].moveNext()) {
463 if (this[_f](this[_iterator].current)) { 463 if (dart.dinvokef(this[_f], this[_iterator].current)) {
Jennifer Messerly 2015/03/18 21:50:59 similar question to above: why is this a dynamic o
vsm 2015/03/18 22:34:38 Ditto.
464 return true; 464 return true;
465 } 465 }
466 } 466 }
467 return false; 467 return false;
468 } 468 }
469 get current() { 469 get current() {
470 return this[_iterator].current; 470 return this[_iterator].current;
471 } 471 }
472 } 472 }
473 return WhereIterator; 473 return WhereIterator;
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
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
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
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
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
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
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
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 = {}));
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698