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

Side by Side Diff: lib/runtime/dart/collection.js

Issue 1069493002: implement opassign, fix bugs in pre/postfix, introduce a let* helper (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 8 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 collection; 1 var collection;
2 (function(exports) { 2 (function(exports) {
3 'use strict'; 3 'use strict';
4 let _source = Symbol('_source'); 4 let _source = Symbol('_source');
5 let UnmodifiableListView$ = dart.generic(function(E) { 5 let UnmodifiableListView$ = dart.generic(function(E) {
6 class UnmodifiableListView extends _internal.UnmodifiableListBase$(E) { 6 class UnmodifiableListView extends _internal.UnmodifiableListBase$(E) {
7 UnmodifiableListView(source) { 7 UnmodifiableListView(source) {
8 this[_source] = source; 8 this[_source] = source;
9 super.UnmodifiableListBase(); 9 super.UnmodifiableListBase();
10 } 10 }
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 this.removeAll(toRemove); 143 this.removeAll(toRemove);
144 } 144 }
145 containsAll(other) { 145 containsAll(other) {
146 for (let o of other) { 146 for (let o of other) {
147 if (!dart.notNull(this.contains(o))) 147 if (!dart.notNull(this.contains(o)))
148 return false; 148 return false;
149 } 149 }
150 return true; 150 return true;
151 } 151 }
152 union(other) { 152 union(other) {
153 return ((_) => { 153 let _ = this.toSet();
154 _.addAll(other); 154 _.addAll(other);
155 return _; 155 return _;
156 })(this.toSet());
157 } 156 }
158 intersection(other) { 157 intersection(other) {
159 let result = this.toSet(); 158 let result = this.toSet();
160 for (let element of this) { 159 for (let element of this) {
161 if (!dart.notNull(other[core.$contains](element))) 160 if (!dart.notNull(other[core.$contains](element)))
162 result.remove(element); 161 result.remove(element);
163 } 162 }
164 return result; 163 return result;
165 } 164 }
166 difference(other) { 165 difference(other) {
167 let result = this.toSet(); 166 let result = this.toSet();
168 for (let element of this) { 167 for (let element of this) {
169 if (other[core.$contains](element)) 168 if (other[core.$contains](element))
170 result.remove(element); 169 result.remove(element);
171 } 170 }
172 return result; 171 return result;
173 } 172 }
174 [core.$toList](opts) { 173 [core.$toList](opts) {
175 let growable = opts && 'growable' in opts ? opts.growable : true; 174 let growable = opts && 'growable' in opts ? opts.growable : true;
176 let result = growable ? ((_) => { 175 let result = growable ? ((_) => (_ = new (core.List$(E))(), _[core.$leng th] = this.length, _)).bind(this)() : new (core.List$(E))(this.length);
177 _[core.$length] = this.length;
178 return _;
179 }).bind(this)(new (core.List$(E))()) : new (core.List$(E))(this.length);
180 let i = 0; 176 let i = 0;
181 for (let element of this) 177 for (let element of this)
182 result[core.$set](((x$) => i = dart.notNull(x$) + 1, x$)(i), element); 178 result[core.$set](((x$) => (x$ = i, i = dart.notNull(x$) + 1, x$))(), element);
183 return result; 179 return result;
184 } 180 }
185 [core.$map](f) { 181 [core.$map](f) {
186 return new (_internal.EfficientLengthMappedIterable$(E, dynamic))(this, f); 182 return new (_internal.EfficientLengthMappedIterable$(E, dynamic))(this, f);
187 } 183 }
188 get [core.$single]() { 184 get [core.$single]() {
189 if (dart.notNull(this.length) > 1) 185 if (dart.notNull(this.length) > 1)
190 throw _internal.IterableElementError.tooMany(); 186 throw _internal.IterableElementError.tooMany();
191 let it = this.iterator; 187 let it = this.iterator;
192 if (!dart.notNull(it.moveNext())) 188 if (!dart.notNull(it.moveNext()))
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 } 364 }
369 intersection(other) { 365 intersection(other) {
370 let result = this[_newSet](); 366 let result = this[_newSet]();
371 for (let element of this) { 367 for (let element of this) {
372 if (other[core.$contains](element)) 368 if (other[core.$contains](element))
373 result.add(element); 369 result.add(element);
374 } 370 }
375 return result; 371 return result;
376 } 372 }
377 [core.$toSet]() { 373 [core.$toSet]() {
378 return ((_) => { 374 return ((_) => (_ = this[_newSet](), _.addAll(this), _)).bind(this)();
379 _.addAll(this);
380 return _;
381 }).bind(this)(this[_newSet]());
382 } 375 }
383 } 376 }
384 return _HashSetBase; 377 return _HashSetBase;
385 }); 378 });
386 let _HashSetBase = _HashSetBase$(); 379 let _HashSetBase = _HashSetBase$();
387 let HashSet$ = dart.generic(function(E) { 380 let HashSet$ = dart.generic(function(E) {
388 class HashSet extends core.Object { 381 class HashSet extends core.Object {
389 HashSet(opts) { 382 HashSet(opts) {
390 let equals = opts && 'equals' in opts ? opts.equals : null; 383 let equals = opts && 'equals' in opts ? opts.equals : null;
391 let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null; 384 let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
(...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
835 } 828 }
836 let parts = new core.List.from([]); 829 let parts = new core.List.from([]);
837 IterableBase[_toStringVisiting][core.$add](iterable); 830 IterableBase[_toStringVisiting][core.$add](iterable);
838 try { 831 try {
839 IterableBase[_iterablePartsToStrings](iterable, parts); 832 IterableBase[_iterablePartsToStrings](iterable, parts);
840 } finally { 833 } finally {
841 dart.assert(core.identical(IterableBase[_toStringVisiting][core.$last] , iterable)); 834 dart.assert(core.identical(IterableBase[_toStringVisiting][core.$last] , iterable));
842 IterableBase[_toStringVisiting][core.$removeLast](); 835 IterableBase[_toStringVisiting][core.$removeLast]();
843 } 836 }
844 return ((_) => { 837 return ((_) => {
838 _ = new core.StringBuffer(leftDelimiter);
845 _.writeAll(parts, ", "); 839 _.writeAll(parts, ", ");
846 _.write(rightDelimiter); 840 _.write(rightDelimiter);
847 return _; 841 return _;
848 })(new core.StringBuffer(leftDelimiter)).toString(); 842 })().toString();
849 } 843 }
850 static iterableToFullString(iterable, leftDelimiter, rightDelimiter) { 844 static iterableToFullString(iterable, leftDelimiter, rightDelimiter) {
851 if (leftDelimiter === void 0) 845 if (leftDelimiter === void 0)
852 leftDelimiter = '('; 846 leftDelimiter = '(';
853 if (rightDelimiter === void 0) 847 if (rightDelimiter === void 0)
854 rightDelimiter = ')'; 848 rightDelimiter = ')';
855 if (IterableBase[_isToStringVisiting](iterable)) { 849 if (IterableBase[_isToStringVisiting](iterable)) {
856 return `${leftDelimiter}...${rightDelimiter}`; 850 return `${leftDelimiter}...${rightDelimiter}`;
857 } 851 }
858 let buffer = new core.StringBuffer(leftDelimiter); 852 let buffer = new core.StringBuffer(leftDelimiter);
(...skipping 22 matching lines...) Expand all
881 let OVERHEAD = 2; 875 let OVERHEAD = 2;
882 let ELLIPSIS_SIZE = 3; 876 let ELLIPSIS_SIZE = 3;
883 let length = 0; 877 let length = 0;
884 let count = 0; 878 let count = 0;
885 let it = iterable[core.$iterator]; 879 let it = iterable[core.$iterator];
886 while (dart.notNull(length) < dart.notNull(LENGTH_LIMIT) || dart.notNull (count) < dart.notNull(HEAD_COUNT)) { 880 while (dart.notNull(length) < dart.notNull(LENGTH_LIMIT) || dart.notNull (count) < dart.notNull(HEAD_COUNT)) {
887 if (!dart.notNull(it.moveNext())) 881 if (!dart.notNull(it.moveNext()))
888 return; 882 return;
889 let next = `${it.current}`; 883 let next = `${it.current}`;
890 parts[core.$add](next); 884 parts[core.$add](next);
891 length = dart.notNull(next.length) + dart.notNull(OVERHEAD); 885 length = dart.notNull(length) + (dart.notNull(next.length) + dart.notN ull(OVERHEAD));
892 count = dart.notNull(count) + 1; 886 count = dart.notNull(count) + 1;
893 } 887 }
894 let penultimateString = null; 888 let penultimateString = null;
895 let ultimateString = null; 889 let ultimateString = null;
896 let penultimate = null; 890 let penultimate = null;
897 let ultimate = null; 891 let ultimate = null;
898 if (!dart.notNull(it.moveNext())) { 892 if (!dart.notNull(it.moveNext())) {
899 if (dart.notNull(count) <= dart.notNull(HEAD_COUNT) + dart.notNull(TAI L_COUNT)) 893 if (dart.notNull(count) <= dart.notNull(HEAD_COUNT) + dart.notNull(TAI L_COUNT))
900 return; 894 return;
901 ultimateString = dart.as(parts[core.$removeLast](), core.String); 895 ultimateString = dart.as(parts[core.$removeLast](), core.String);
902 penultimateString = dart.as(parts[core.$removeLast](), core.String); 896 penultimateString = dart.as(parts[core.$removeLast](), core.String);
903 } else { 897 } else {
904 penultimate = it.current; 898 penultimate = it.current;
905 count = dart.notNull(count) + 1; 899 count = dart.notNull(count) + 1;
906 if (!dart.notNull(it.moveNext())) { 900 if (!dart.notNull(it.moveNext())) {
907 if (dart.notNull(count) <= dart.notNull(HEAD_COUNT) + 1) { 901 if (dart.notNull(count) <= dart.notNull(HEAD_COUNT) + 1) {
908 parts[core.$add](`${penultimate}`); 902 parts[core.$add](`${penultimate}`);
909 return; 903 return;
910 } 904 }
911 ultimateString = `${penultimate}`; 905 ultimateString = `${penultimate}`;
912 penultimateString = dart.as(parts[core.$removeLast](), core.String); 906 penultimateString = dart.as(parts[core.$removeLast](), core.String);
913 length = dart.notNull(ultimateString.length) + dart.notNull(OVERHEAD ); 907 length = dart.notNull(length) + (dart.notNull(ultimateString.length) + dart.notNull(OVERHEAD));
914 } else { 908 } else {
915 ultimate = it.current; 909 ultimate = it.current;
916 count = dart.notNull(count) + 1; 910 count = dart.notNull(count) + 1;
917 dart.assert(dart.notNull(count) < dart.notNull(MAX_COUNT)); 911 dart.assert(dart.notNull(count) < dart.notNull(MAX_COUNT));
918 while (it.moveNext()) { 912 while (it.moveNext()) {
919 penultimate = ultimate; 913 penultimate = ultimate;
920 ultimate = it.current; 914 ultimate = it.current;
921 count = dart.notNull(count) + 1; 915 count = dart.notNull(count) + 1;
922 if (dart.notNull(count) > dart.notNull(MAX_COUNT)) { 916 if (dart.notNull(count) > dart.notNull(MAX_COUNT)) {
923 while (dart.notNull(length) > dart.notNull(LENGTH_LIMIT) - dart. notNull(ELLIPSIS_SIZE) - dart.notNull(OVERHEAD) && dart.notNull(count) > dart.no tNull(HEAD_COUNT)) { 917 while (dart.notNull(length) > dart.notNull(LENGTH_LIMIT) - dart. notNull(ELLIPSIS_SIZE) - dart.notNull(OVERHEAD) && dart.notNull(count) > dart.no tNull(HEAD_COUNT)) {
924 length = dart.as(dart.dbinary(dart.dload(parts[core.$removeLas t](), 'length'), '+', OVERHEAD), core.int); 918 length = dart.notNull(length) - dart.notNull(dart.as(dart.dbin ary(dart.dload(parts[core.$removeLast](), 'length'), '+', OVERHEAD), core.int));
925 count = dart.notNull(count) - 1; 919 count = dart.notNull(count) - 1;
926 } 920 }
927 parts[core.$add]("..."); 921 parts[core.$add]("...");
928 return; 922 return;
929 } 923 }
930 } 924 }
931 penultimateString = `${penultimate}`; 925 penultimateString = `${penultimate}`;
932 ultimateString = `${ultimate}`; 926 ultimateString = `${ultimate}`;
933 length = dart.notNull(ultimateString.length) + dart.notNull(penultim ateString.length) + 2 * dart.notNull(OVERHEAD); 927 length = dart.notNull(length) + (dart.notNull(ultimateString.length) + dart.notNull(penultimateString.length) + 2 * dart.notNull(OVERHEAD));
934 } 928 }
935 } 929 }
936 let elision = null; 930 let elision = null;
937 if (dart.notNull(count) > dart.notNull(parts[core.$length]) + dart.notNu ll(TAIL_COUNT)) { 931 if (dart.notNull(count) > dart.notNull(parts[core.$length]) + dart.notNu ll(TAIL_COUNT)) {
938 elision = "..."; 932 elision = "...";
939 length = dart.notNull(ELLIPSIS_SIZE) + dart.notNull(OVERHEAD); 933 length = dart.notNull(length) + (dart.notNull(ELLIPSIS_SIZE) + dart.no tNull(OVERHEAD));
940 } 934 }
941 while (dart.notNull(length) > dart.notNull(LENGTH_LIMIT) && dart.notNull (parts[core.$length]) > dart.notNull(HEAD_COUNT)) { 935 while (dart.notNull(length) > dart.notNull(LENGTH_LIMIT) && dart.notNull (parts[core.$length]) > dart.notNull(HEAD_COUNT)) {
942 length = dart.as(dart.dbinary(dart.dload(parts[core.$removeLast](), 'l ength'), '+', OVERHEAD), core.int); 936 length = dart.notNull(length) - dart.notNull(dart.as(dart.dbinary(dart .dload(parts[core.$removeLast](), 'length'), '+', OVERHEAD), core.int));
943 if (elision == null) { 937 if (elision == null) {
944 elision = "..."; 938 elision = "...";
945 length = dart.notNull(ELLIPSIS_SIZE) + dart.notNull(OVERHEAD); 939 length = dart.notNull(length) + (dart.notNull(ELLIPSIS_SIZE) + dart. notNull(OVERHEAD));
946 } 940 }
947 } 941 }
948 if (elision != null) { 942 if (elision != null) {
949 parts[core.$add](elision); 943 parts[core.$add](elision);
950 } 944 }
951 parts[core.$add](penultimateString); 945 parts[core.$add](penultimateString);
952 parts[core.$add](ultimateString); 946 parts[core.$add](ultimateString);
953 } 947 }
954 } 948 }
955 IterableBase[dart.implements] = () => [core.Iterable$(E)]; 949 IterableBase[dart.implements] = () => [core.Iterable$(E)];
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
1474 [core.$take](count) { 1468 [core.$take](count) {
1475 return new (_internal.SubListIterable$(E))(this, 0, count); 1469 return new (_internal.SubListIterable$(E))(this, 0, count);
1476 } 1470 }
1477 [core.$takeWhile](test) { 1471 [core.$takeWhile](test) {
1478 return new (_internal.TakeWhileIterable$(E))(this, test); 1472 return new (_internal.TakeWhileIterable$(E))(this, test);
1479 } 1473 }
1480 [core.$toList](opts) { 1474 [core.$toList](opts) {
1481 let growable = opts && 'growable' in opts ? opts.growable : true; 1475 let growable = opts && 'growable' in opts ? opts.growable : true;
1482 let result = null; 1476 let result = null;
1483 if (growable) { 1477 if (growable) {
1484 result = ((_) => { 1478 result = new (core.List$(E))();
1485 _[core.$length] = this.length; 1479 result[core.$length] = this.length;
1486 return _;
1487 }).bind(this)(new (core.List$(E))());
1488 } else { 1480 } else {
1489 result = new (core.List$(E))(this.length); 1481 result = new (core.List$(E))(this.length);
1490 } 1482 }
1491 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no tNull(i) + 1) { 1483 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no tNull(i) + 1) {
1492 result[core.$set](i, this[core.$get](i)); 1484 result[core.$set](i, this[core.$get](i));
1493 } 1485 }
1494 return result; 1486 return result;
1495 } 1487 }
1496 [core.$toSet]() { 1488 [core.$toSet]() {
1497 let result = new (core.Set$(E))(); 1489 let result = new (core.Set$(E))();
1498 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no tNull(i) + 1) { 1490 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no tNull(i) + 1) {
1499 result.add(this[core.$get](i)); 1491 result.add(this[core.$get](i));
1500 } 1492 }
1501 return result; 1493 return result;
1502 } 1494 }
1503 [core.$add](element) { 1495 [core.$add](element) {
1504 this[core.$set](((x$) => this[core.$length] = dart.notNull(x$) + 1, x$). bind(this)(this[core.$length]), element); 1496 this[core.$set](((o$, x$) => {
1497 o$ = this;
1498 x$ = o$[core.$length];
1499 o$[core.$length] = dart.notNull(x$) + 1;
1500 return x$;
1501 }).bind(this)(), element);
1505 } 1502 }
1506 [core.$addAll](iterable) { 1503 [core.$addAll](iterable) {
1507 for (let element of iterable) { 1504 for (let element of iterable) {
1508 this[core.$set](((x$) => this[core.$length] = dart.notNull(x$) + 1, x$ ).bind(this)(this[core.$length]), element); 1505 this[core.$set](((o$, x$) => {
1506 o$ = this;
1507 x$ = o$[core.$length];
1508 o$[core.$length] = dart.notNull(x$) + 1;
1509 return x$;
1510 }).bind(this)(), element);
1509 } 1511 }
1510 } 1512 }
1511 [core.$remove](element) { 1513 [core.$remove](element) {
1512 for (let i = 0; dart.notNull(i) < dart.notNull(this[core.$length]); i = dart.notNull(i) + 1) { 1514 for (let i = 0; dart.notNull(i) < dart.notNull(this[core.$length]); i = dart.notNull(i) + 1) {
1513 if (dart.equals(this[core.$get](i), element)) { 1515 if (dart.equals(this[core.$get](i), element)) {
1514 this[core.$setRange](i, dart.notNull(this[core.$length]) - 1, this, dart.notNull(i) + 1); 1516 this[core.$setRange](i, dart.notNull(this[core.$length]) - 1, this, dart.notNull(i) + 1);
1515 this[core.$length] = 1; 1517 let o$ = this;
1518 o$[core.$length] = dart.notNull(o$[core.$length]) - 1;
1516 return true; 1519 return true;
1517 } 1520 }
1518 } 1521 }
1519 return false; 1522 return false;
1520 } 1523 }
1521 [core.$removeWhere](test) { 1524 [core.$removeWhere](test) {
1522 ListMixin[_filter](this, test, false); 1525 ListMixin[_filter](this, test, false);
1523 } 1526 }
1524 [core.$retainWhere](test) { 1527 [core.$retainWhere](test) {
1525 ListMixin[_filter](this, test, true); 1528 ListMixin[_filter](this, test, true);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1562 _internal.Sort.sort(this, compare); 1565 _internal.Sort.sort(this, compare);
1563 } 1566 }
1564 [core.$shuffle](random) { 1567 [core.$shuffle](random) {
1565 if (random === void 0) 1568 if (random === void 0)
1566 random = null; 1569 random = null;
1567 if (random == null) 1570 if (random == null)
1568 random = new math.Random(); 1571 random = new math.Random();
1569 let length = this[core.$length]; 1572 let length = this[core.$length];
1570 while (dart.notNull(length) > 1) { 1573 while (dart.notNull(length) > 1) {
1571 let pos = random.nextInt(length); 1574 let pos = random.nextInt(length);
1572 length = 1; 1575 length = dart.notNull(length) - 1;
1573 let tmp = this[core.$get](length); 1576 let tmp = this[core.$get](length);
1574 this[core.$set](length, this[core.$get](pos)); 1577 this[core.$set](length, this[core.$get](pos));
1575 this[core.$set](pos, tmp); 1578 this[core.$set](pos, tmp);
1576 } 1579 }
1577 } 1580 }
1578 [core.$asMap]() { 1581 [core.$asMap]() {
1579 return new (_internal.ListMapView$(E))(this); 1582 return new (_internal.ListMapView$(E))(this);
1580 } 1583 }
1581 [core.$sublist](start, end) { 1584 [core.$sublist](start, end) {
1582 if (end === void 0) 1585 if (end === void 0)
(...skipping 11 matching lines...) Expand all
1594 return result; 1597 return result;
1595 } 1598 }
1596 [core.$getRange](start, end) { 1599 [core.$getRange](start, end) {
1597 core.RangeError.checkValidRange(start, end, this[core.$length]); 1600 core.RangeError.checkValidRange(start, end, this[core.$length]);
1598 return new (_internal.SubListIterable$(E))(this, start, end); 1601 return new (_internal.SubListIterable$(E))(this, start, end);
1599 } 1602 }
1600 [core.$removeRange](start, end) { 1603 [core.$removeRange](start, end) {
1601 core.RangeError.checkValidRange(start, end, this[core.$length]); 1604 core.RangeError.checkValidRange(start, end, this[core.$length]);
1602 let length = dart.notNull(end) - dart.notNull(start); 1605 let length = dart.notNull(end) - dart.notNull(start);
1603 this.setRange(start, dart.notNull(this[core.$length]) - dart.notNull(len gth), this, end); 1606 this.setRange(start, dart.notNull(this[core.$length]) - dart.notNull(len gth), this, end);
1604 this[core.$length] = length; 1607 let o$ = this;
1608 o$[core.$length] = dart.notNull(o$[core.$length]) - dart.notNull(length) ;
1605 } 1609 }
1606 [core.$fillRange](start, end, fill) { 1610 [core.$fillRange](start, end, fill) {
1607 if (fill === void 0) 1611 if (fill === void 0)
1608 fill = null; 1612 fill = null;
1609 core.RangeError.checkValidRange(start, end, this[core.$length]); 1613 core.RangeError.checkValidRange(start, end, this[core.$length]);
1610 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul l(i) + 1) { 1614 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul l(i) + 1) {
1611 this[core.$set](i, fill); 1615 this[core.$set](i, fill);
1612 } 1616 }
1613 } 1617 }
1614 [core.$setRange](start, end, iterable, skipCount) { 1618 [core.$setRange](start, end, iterable, skipCount) {
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
1703 return -1; 1707 return -1;
1704 } 1708 }
1705 [core.$insert](index, element) { 1709 [core.$insert](index, element) {
1706 core.RangeError.checkValueInInterval(index, 0, this.length, "index"); 1710 core.RangeError.checkValueInInterval(index, 0, this.length, "index");
1707 if (index == this[core.$length]) { 1711 if (index == this[core.$length]) {
1708 this.add(element); 1712 this.add(element);
1709 return; 1713 return;
1710 } 1714 }
1711 if (!(typeof index == 'number')) 1715 if (!(typeof index == 'number'))
1712 throw new core.ArgumentError(index); 1716 throw new core.ArgumentError(index);
1713 this[core.$length] = dart.notNull(this[core.$length]) + 1; 1717 let o$ = this;
1718 o$[core.$length] = dart.notNull(o$[core.$length]) + 1;
1714 this.setRange(dart.notNull(index) + 1, this[core.$length], this, index); 1719 this.setRange(dart.notNull(index) + 1, this[core.$length], this, index);
1715 this[core.$set](index, element); 1720 this[core.$set](index, element);
1716 } 1721 }
1717 [core.$removeAt](index) { 1722 [core.$removeAt](index) {
1718 let result = this[core.$get](index); 1723 let result = this[core.$get](index);
1719 this.setRange(index, dart.notNull(this[core.$length]) - 1, this, dart.no tNull(index) + 1); 1724 this.setRange(index, dart.notNull(this[core.$length]) - 1, this, dart.no tNull(index) + 1);
1720 this.length = dart.notNull(this.length) - 1; 1725 this.length = dart.notNull(this.length) - 1;
1721 return result; 1726 return result;
1722 } 1727 }
1723 [core.$insertAll](index, iterable) { 1728 [core.$insertAll](index, iterable) {
1724 core.RangeError.checkValueInInterval(index, 0, this.length, "index"); 1729 core.RangeError.checkValueInInterval(index, 0, this.length, "index");
1725 if (dart.is(iterable, _internal.EfficientLength)) { 1730 if (dart.is(iterable, _internal.EfficientLength)) {
1726 iterable = iterable[core.$toList](); 1731 iterable = iterable[core.$toList]();
1727 } 1732 }
1728 let insertionLength = iterable[core.$length]; 1733 let insertionLength = iterable[core.$length];
1729 this[core.$length] = insertionLength; 1734 let o$ = this;
1735 o$[core.$length] = dart.notNull(o$[core.$length]) + dart.notNull(inserti onLength);
1730 this.setRange(dart.notNull(index) + dart.notNull(insertionLength), this[ core.$length], this, index); 1736 this.setRange(dart.notNull(index) + dart.notNull(insertionLength), this[ core.$length], this, index);
1731 this.setAll(index, iterable); 1737 this.setAll(index, iterable);
1732 } 1738 }
1733 [core.$setAll](index, iterable) { 1739 [core.$setAll](index, iterable) {
1734 if (dart.is(iterable, core.List)) { 1740 if (dart.is(iterable, core.List)) {
1735 this.setRange(index, dart.notNull(index) + dart.notNull(iterable[core. $length]), iterable); 1741 this.setRange(index, dart.notNull(index) + dart.notNull(iterable[core. $length]), iterable);
1736 } else { 1742 } else {
1737 for (let element of iterable) { 1743 for (let element of iterable) {
1738 this[core.$set](((x$) => index = dart.notNull(x$) + 1, x$)(index), e lement); 1744 this[core.$set](((x$) => (x$ = index, index = dart.notNull(x$) + 1, x$))(), element);
1739 } 1745 }
1740 } 1746 }
1741 } 1747 }
1742 get [core.$reversed]() { 1748 get [core.$reversed]() {
1743 return new (_internal.ReversedListIterable$(E))(this); 1749 return new (_internal.ReversedListIterable$(E))(this);
1744 } 1750 }
1745 toString() { 1751 toString() {
1746 return IterableBase.iterableToFullString(this, '[', ']'); 1752 return IterableBase.iterableToFullString(this, '[', ']');
1747 } 1753 }
1748 } 1754 }
(...skipping 626 matching lines...) Expand 10 before | Expand all | Expand 10 after
2375 return this[_table][core.$get](this[_head]); 2381 return this[_table][core.$get](this[_head]);
2376 } 2382 }
2377 [core.$elementAt](index) { 2383 [core.$elementAt](index) {
2378 core.RangeError.checkValidIndex(index, this); 2384 core.RangeError.checkValidIndex(index, this);
2379 return this[_table][core.$get](dart.notNull(this[_head]) + dart.notNull( index) & dart.notNull(this[_table][core.$length]) - 1); 2385 return this[_table][core.$get](dart.notNull(this[_head]) + dart.notNull( index) & dart.notNull(this[_table][core.$length]) - 1);
2380 } 2386 }
2381 [core.$toList](opts) { 2387 [core.$toList](opts) {
2382 let growable = opts && 'growable' in opts ? opts.growable : true; 2388 let growable = opts && 'growable' in opts ? opts.growable : true;
2383 let list = null; 2389 let list = null;
2384 if (growable) { 2390 if (growable) {
2385 list = ((_) => { 2391 list = new (core.List$(E))();
2386 _[core.$length] = this.length; 2392 list[core.$length] = this.length;
2387 return _;
2388 }).bind(this)(new (core.List$(E))());
2389 } else { 2393 } else {
2390 list = new (core.List$(E))(this.length); 2394 list = new (core.List$(E))(this.length);
2391 } 2395 }
2392 this[_writeToList](list); 2396 this[_writeToList](list);
2393 return list; 2397 return list;
2394 } 2398 }
2395 add(element) { 2399 add(element) {
2396 this[_add](element); 2400 this[_add](element);
2397 } 2401 }
2398 addAll(elements) { 2402 addAll(elements) {
2399 if (dart.is(elements, core.List)) { 2403 if (dart.is(elements, core.List)) {
2400 let list = dart.as(elements, core.List); 2404 let list = dart.as(elements, core.List);
2401 let addCount = list[core.$length]; 2405 let addCount = list[core.$length];
2402 let length = this[core.$length]; 2406 let length = this[core.$length];
2403 if (dart.notNull(length) + dart.notNull(addCount) >= dart.notNull(this [_table][core.$length])) { 2407 if (dart.notNull(length) + dart.notNull(addCount) >= dart.notNull(this [_table][core.$length])) {
2404 this[_preGrow](dart.notNull(length) + dart.notNull(addCount)); 2408 this[_preGrow](dart.notNull(length) + dart.notNull(addCount));
2405 this[_table][core.$setRange](length, dart.notNull(length) + dart.not Null(addCount), dart.as(list, core.Iterable$(E)), 0); 2409 this[_table][core.$setRange](length, dart.notNull(length) + dart.not Null(addCount), dart.as(list, core.Iterable$(E)), 0);
2406 this[_tail] = addCount; 2410 this[_tail] = dart.notNull(this[_tail]) + dart.notNull(addCount);
2407 } else { 2411 } else {
2408 let endSpace = dart.notNull(this[_table][core.$length]) - dart.notNu ll(this[_tail]); 2412 let endSpace = dart.notNull(this[_table][core.$length]) - dart.notNu ll(this[_tail]);
2409 if (dart.notNull(addCount) < dart.notNull(endSpace)) { 2413 if (dart.notNull(addCount) < dart.notNull(endSpace)) {
2410 this[_table][core.$setRange](this[_tail], dart.notNull(this[_tail] ) + dart.notNull(addCount), dart.as(list, core.Iterable$(E)), 0); 2414 this[_table][core.$setRange](this[_tail], dart.notNull(this[_tail] ) + dart.notNull(addCount), dart.as(list, core.Iterable$(E)), 0);
2411 this[_tail] = addCount; 2415 this[_tail] = dart.notNull(this[_tail]) + dart.notNull(addCount);
2412 } else { 2416 } else {
2413 let preSpace = dart.notNull(addCount) - dart.notNull(endSpace); 2417 let preSpace = dart.notNull(addCount) - dart.notNull(endSpace);
2414 this[_table][core.$setRange](this[_tail], dart.notNull(this[_tail] ) + dart.notNull(endSpace), dart.as(list, core.Iterable$(E)), 0); 2418 this[_table][core.$setRange](this[_tail], dart.notNull(this[_tail] ) + dart.notNull(endSpace), dart.as(list, core.Iterable$(E)), 0);
2415 this[_table][core.$setRange](0, preSpace, dart.as(list, core.Itera ble$(E)), endSpace); 2419 this[_table][core.$setRange](0, preSpace, dart.as(list, core.Itera ble$(E)), endSpace);
2416 this[_tail] = preSpace; 2420 this[_tail] = preSpace;
2417 } 2421 }
2418 } 2422 }
2419 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 2423 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
2420 } else { 2424 } else {
2421 for (let element of elements) 2425 for (let element of elements)
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
2563 return length; 2567 return length;
2564 } else { 2568 } else {
2565 let firstPartSize = dart.notNull(this[_table][core.$length]) - dart.no tNull(this[_head]); 2569 let firstPartSize = dart.notNull(this[_table][core.$length]) - dart.no tNull(this[_head]);
2566 target[core.$setRange](0, firstPartSize, this[_table], this[_head]); 2570 target[core.$setRange](0, firstPartSize, this[_table], this[_head]);
2567 target[core.$setRange](firstPartSize, dart.notNull(firstPartSize) + da rt.notNull(this[_tail]), this[_table], 0); 2571 target[core.$setRange](firstPartSize, dart.notNull(firstPartSize) + da rt.notNull(this[_tail]), this[_table], 0);
2568 return dart.notNull(this[_tail]) + dart.notNull(firstPartSize); 2572 return dart.notNull(this[_tail]) + dart.notNull(firstPartSize);
2569 } 2573 }
2570 } 2574 }
2571 [_preGrow](newElementCount) { 2575 [_preGrow](newElementCount) {
2572 dart.assert(dart.notNull(newElementCount) >= dart.notNull(this.length)); 2576 dart.assert(dart.notNull(newElementCount) >= dart.notNull(this.length));
2573 newElementCount = dart.notNull(newElementCount) >> 1; 2577 newElementCount = dart.notNull(newElementCount) + (dart.notNull(newEleme ntCount) >> 1);
2574 let newCapacity = ListQueue[_nextPowerOf2](newElementCount); 2578 let newCapacity = ListQueue[_nextPowerOf2](newElementCount);
2575 let newTable = new (core.List$(E))(newCapacity); 2579 let newTable = new (core.List$(E))(newCapacity);
2576 this[_tail] = this[_writeToList](newTable); 2580 this[_tail] = this[_writeToList](newTable);
2577 this[_table] = newTable; 2581 this[_table] = newTable;
2578 this[_head] = 0; 2582 this[_head] = 0;
2579 } 2583 }
2580 } 2584 }
2581 ListQueue[dart.implements] = () => [Queue$(E)]; 2585 ListQueue[dart.implements] = () => [Queue$(E)];
2582 dart.defineNamedConstructor(ListQueue, 'from'); 2586 dart.defineNamedConstructor(ListQueue, 'from');
2583 ListQueue._INITIAL_CAPACITY = 8; 2587 ListQueue._INITIAL_CAPACITY = 8;
(...skipping 708 matching lines...) Expand 10 before | Expand all | Expand 10 after
3292 } 3296 }
3293 difference(other) { 3297 difference(other) {
3294 let result = new (SplayTreeSet$(E))(dart.as(this[_comparator], dart.thro w_("Unimplemented type (E, E) → int")), this[_validKey]); 3298 let result = new (SplayTreeSet$(E))(dart.as(this[_comparator], dart.thro w_("Unimplemented type (E, E) → int")), this[_validKey]);
3295 for (let element of this) { 3299 for (let element of this) {
3296 if (!dart.notNull(other[core.$contains](element))) 3300 if (!dart.notNull(other[core.$contains](element)))
3297 result.add(element); 3301 result.add(element);
3298 } 3302 }
3299 return result; 3303 return result;
3300 } 3304 }
3301 union(other) { 3305 union(other) {
3302 return ((_) => { 3306 let _ = this[_clone]();
3303 _.addAll(other); 3307 _.addAll(other);
3304 return _; 3308 return _;
3305 })(this[_clone]());
3306 } 3309 }
3307 [_clone]() { 3310 [_clone]() {
3308 let set = new (SplayTreeSet$(E))(dart.as(this[_comparator], dart.throw_( "Unimplemented type (E, E) → int")), this[_validKey]); 3311 let set = new (SplayTreeSet$(E))(dart.as(this[_comparator], dart.throw_( "Unimplemented type (E, E) → int")), this[_validKey]);
3309 set[_count] = this[_count]; 3312 set[_count] = this[_count];
3310 set[_root] = this[_copyNode](this[_root]); 3313 set[_root] = this[_copyNode](this[_root]);
3311 return set; 3314 return set;
3312 } 3315 }
3313 [_copyNode](node) { 3316 [_copyNode](node) {
3314 if (node == null) 3317 if (node == null)
3315 return null; 3318 return null;
3316 return ((_) => { 3319 let _ = new (_SplayTreeNode$(E))(node.key);
3317 _.left = this[_copyNode](node.left); 3320 _.left = this[_copyNode](node.left);
3318 _.right = this[_copyNode](node.right); 3321 _.right = this[_copyNode](node.right);
3319 return _; 3322 return _;
3320 }).bind(this)(new (_SplayTreeNode$(E))(node.key));
3321 } 3323 }
3322 clear() { 3324 clear() {
3323 this[_clear](); 3325 this[_clear]();
3324 } 3326 }
3325 [core.$toSet]() { 3327 [core.$toSet]() {
3326 return this[_clone](); 3328 return this[_clone]();
3327 } 3329 }
3328 toString() { 3330 toString() {
3329 return IterableBase.iterableToFullString(this, '{', '}'); 3331 return IterableBase.iterableToFullString(this, '{', '}');
3330 } 3332 }
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
3527 } 3529 }
3528 } 3530 }
3529 let rest = this[_rest]; 3531 let rest = this[_rest];
3530 if (rest != null) { 3532 if (rest != null) {
3531 let names = Object.getOwnPropertyNames(rest); 3533 let names = Object.getOwnPropertyNames(rest);
3532 let entries = names.length; 3534 let entries = names.length;
3533 for (let i = 0; dart.notNull(i) < dart.notNull(entries); i = dart.notN ull(i) + 1) { 3535 for (let i = 0; dart.notNull(i) < dart.notNull(entries); i = dart.notN ull(i) + 1) {
3534 let key = names[i]; 3536 let key = names[i];
3535 let bucket = rest[key]; 3537 let bucket = rest[key];
3536 let length = bucket.length; 3538 let length = bucket.length;
3537 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = 2) { 3539 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.not Null(i) + 2) {
3538 let key = bucket[i]; 3540 let key = bucket[i];
3539 result[index] = key; 3541 result[index] = key;
3540 index = dart.notNull(index) + 1; 3542 index = dart.notNull(index) + 1;
3541 } 3543 }
3542 } 3544 }
3543 } 3545 }
3544 dart.assert(index == this[_length]); 3546 dart.assert(index == this[_length]);
3545 return this[_keys] = result; 3547 return this[_keys] = result;
3546 } 3548 }
3547 [_addHashTableEntry](table, key, value) { 3549 [_addHashTableEntry](table, key, value) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
3590 delete table[key]; 3592 delete table[key];
3591 } 3593 }
3592 [_getBucket](table, key) { 3594 [_getBucket](table, key) {
3593 let hash = this[_computeHashCode](key); 3595 let hash = this[_computeHashCode](key);
3594 return dart.as(table[hash], core.List); 3596 return dart.as(table[hash], core.List);
3595 } 3597 }
3596 [_findBucketIndex](bucket, key) { 3598 [_findBucketIndex](bucket, key) {
3597 if (bucket == null) 3599 if (bucket == null)
3598 return -1; 3600 return -1;
3599 let length = bucket.length; 3601 let length = bucket.length;
3600 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = 2) { 3602 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 2) {
3601 if (dart.equals(bucket[i], key)) 3603 if (dart.equals(bucket[i], key))
3602 return i; 3604 return i;
3603 } 3605 }
3604 return -1; 3606 return -1;
3605 } 3607 }
3606 static [_newHashTable]() { 3608 static [_newHashTable]() {
3607 let table = Object.create(null); 3609 let table = Object.create(null);
3608 let temporaryKey = '<non-identifier-key>'; 3610 let temporaryKey = '<non-identifier-key>';
3609 _HashMap[_setTableEntry](table, temporaryKey, table); 3611 _HashMap[_setTableEntry](table, temporaryKey, table);
3610 _HashMap[_deleteTableEntry](table, temporaryKey); 3612 _HashMap[_deleteTableEntry](table, temporaryKey);
3611 return table; 3613 return table;
3612 } 3614 }
3613 } 3615 }
3614 _HashMap[dart.implements] = () => [HashMap$(K, V)]; 3616 _HashMap[dart.implements] = () => [HashMap$(K, V)];
3615 return _HashMap; 3617 return _HashMap;
3616 }); 3618 });
3617 let _HashMap = _HashMap$(); 3619 let _HashMap = _HashMap$();
3618 let _IdentityHashMap$ = dart.generic(function(K, V) { 3620 let _IdentityHashMap$ = dart.generic(function(K, V) {
3619 class _IdentityHashMap extends _HashMap$(K, V) { 3621 class _IdentityHashMap extends _HashMap$(K, V) {
3620 [_computeHashCode](key) { 3622 [_computeHashCode](key) {
3621 return core.identityHashCode(key) & 0x3ffffff; 3623 return core.identityHashCode(key) & 0x3ffffff;
3622 } 3624 }
3623 [_findBucketIndex](bucket, key) { 3625 [_findBucketIndex](bucket, key) {
3624 if (bucket == null) 3626 if (bucket == null)
3625 return -1; 3627 return -1;
3626 let length = bucket.length; 3628 let length = bucket.length;
3627 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = 2) { 3629 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 2) {
3628 if (core.identical(bucket[i], key)) 3630 if (core.identical(bucket[i], key))
3629 return i; 3631 return i;
3630 } 3632 }
3631 return -1; 3633 return -1;
3632 } 3634 }
3633 } 3635 }
3634 return _IdentityHashMap; 3636 return _IdentityHashMap;
3635 }); 3637 });
3636 let _IdentityHashMap = _IdentityHashMap$(); 3638 let _IdentityHashMap = _IdentityHashMap$();
3637 let _equals = Symbol('_equals'); 3639 let _equals = Symbol('_equals');
(...skipping 24 matching lines...) Expand all
3662 return null; 3664 return null;
3663 return super[_remove](key); 3665 return super[_remove](key);
3664 } 3666 }
3665 [_computeHashCode](key) { 3667 [_computeHashCode](key) {
3666 return this[_hashCode](dart.as(key, K)) & 0x3ffffff; 3668 return this[_hashCode](dart.as(key, K)) & 0x3ffffff;
3667 } 3669 }
3668 [_findBucketIndex](bucket, key) { 3670 [_findBucketIndex](bucket, key) {
3669 if (bucket == null) 3671 if (bucket == null)
3670 return -1; 3672 return -1;
3671 let length = bucket.length; 3673 let length = bucket.length;
3672 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = 2) { 3674 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 2) {
3673 if (this[_equals](dart.as(bucket[i], K), dart.as(key, K))) 3675 if (this[_equals](dart.as(bucket[i], K), dart.as(key, K)))
3674 return i; 3676 return i;
3675 } 3677 }
3676 return -1; 3678 return -1;
3677 } 3679 }
3678 toString() { 3680 toString() {
3679 return Maps.mapToString(this); 3681 return Maps.mapToString(this);
3680 } 3682 }
3681 } 3683 }
3682 return _CustomHashMap; 3684 return _CustomHashMap;
(...skipping 1260 matching lines...) Expand 10 before | Expand all | Expand 10 after
4943 exports.LinkedHashMapKeyIterable$ = LinkedHashMapKeyIterable$; 4945 exports.LinkedHashMapKeyIterable$ = LinkedHashMapKeyIterable$;
4944 exports.LinkedHashMapKeyIterable = LinkedHashMapKeyIterable; 4946 exports.LinkedHashMapKeyIterable = LinkedHashMapKeyIterable;
4945 exports.LinkedHashMapKeyIterator$ = LinkedHashMapKeyIterator$; 4947 exports.LinkedHashMapKeyIterator$ = LinkedHashMapKeyIterator$;
4946 exports.LinkedHashMapKeyIterator = LinkedHashMapKeyIterator; 4948 exports.LinkedHashMapKeyIterator = LinkedHashMapKeyIterator;
4947 exports.HashSetIterator$ = HashSetIterator$; 4949 exports.HashSetIterator$ = HashSetIterator$;
4948 exports.HashSetIterator = HashSetIterator; 4950 exports.HashSetIterator = HashSetIterator;
4949 exports.LinkedHashSetCell = LinkedHashSetCell; 4951 exports.LinkedHashSetCell = LinkedHashSetCell;
4950 exports.LinkedHashSetIterator$ = LinkedHashSetIterator$; 4952 exports.LinkedHashSetIterator$ = LinkedHashSetIterator$;
4951 exports.LinkedHashSetIterator = LinkedHashSetIterator; 4953 exports.LinkedHashSetIterator = LinkedHashSetIterator;
4952 })(collection || (collection = {})); 4954 })(collection || (collection = {}));
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698