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

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

Issue 1133593004: fixes #131, use before define from variables to classes (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: fix static fields Created 5 years, 7 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 = dart.defineLibrary(collection, {}); 1 var collection = dart.defineLibrary(collection, {});
2 var _internal = dart.lazyImport(_internal); 2 var _internal = dart.lazyImport(_internal);
3 var core = dart.import(core); 3 var core = dart.import(core);
4 var _js_helper = dart.lazyImport(_js_helper); 4 var _js_helper = dart.lazyImport(_js_helper);
5 var math = dart.lazyImport(math); 5 var math = dart.lazyImport(math);
6 (function(exports, _internal, core, _js_helper, math) { 6 (function(exports, _internal, core, _js_helper, math) {
7 'use strict'; 7 'use strict';
8 let _source = Symbol('_source'); 8 let _source = Symbol('_source');
9 let UnmodifiableListView$ = dart.generic(function(E) { 9 let UnmodifiableListView$ = dart.generic(function(E) {
10 class UnmodifiableListView extends _internal.UnmodifiableListBase$(E) { 10 class UnmodifiableListView extends _internal.UnmodifiableListBase$(E) {
(...skipping 12 matching lines...) Expand all
23 dart.defineLazyClassGeneric(exports, 'UnmodifiableListView', {get: Unmodifiabl eListView$}); 23 dart.defineLazyClassGeneric(exports, 'UnmodifiableListView', {get: Unmodifiabl eListView$});
24 // Function _defaultEquals: (Object, Object) → bool 24 // Function _defaultEquals: (Object, Object) → bool
25 function _defaultEquals(a, b) { 25 function _defaultEquals(a, b) {
26 return dart.equals(a, b); 26 return dart.equals(a, b);
27 } 27 }
28 // Function _defaultHashCode: (Object) → int 28 // Function _defaultHashCode: (Object) → int
29 function _defaultHashCode(a) { 29 function _defaultHashCode(a) {
30 return dart.hashCode(a); 30 return dart.hashCode(a);
31 } 31 }
32 let _Equality$ = dart.generic(function(K) { 32 let _Equality$ = dart.generic(function(K) {
33 let _Equality = dart.typedef('_Equality', () => dart.functionType(core.bool, [K, K])); 33 let _Equality = dart.typedef('_Equality', dart.functionType(core.bool, [K, K ]));
34 return _Equality; 34 return _Equality;
35 }); 35 });
36 let _Equality = _Equality$(); 36 let _Equality = _Equality$();
37 let _Hasher$ = dart.generic(function(K) { 37 let _Hasher$ = dart.generic(function(K) {
38 let _Hasher = dart.typedef('_Hasher', () => dart.functionType(core.int, [K]) ); 38 let _Hasher = dart.typedef('_Hasher', dart.functionType(core.int, [K]));
39 return _Hasher; 39 return _Hasher;
40 }); 40 });
41 let _Hasher = _Hasher$(); 41 let _Hasher = _Hasher$();
42 let HashMap$ = dart.generic(function(K, V) { 42 let HashMap$ = dart.generic(function(K, V) {
43 class HashMap extends core.Object { 43 class HashMap extends core.Object {
44 HashMap(opts) { 44 HashMap(opts) {
45 let equals = opts && 'equals' in opts ? opts.equals : null; 45 let equals = opts && 'equals' in opts ? opts.equals : null;
46 let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null; 46 let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
47 let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null; 47 let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
48 if (isValidKey == null) { 48 if (isValidKey == null) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 } 93 }
94 } 94 }
95 HashMap[dart.implements] = () => [core.Map$(K, V)]; 95 HashMap[dart.implements] = () => [core.Map$(K, V)];
96 dart.defineNamedConstructor(HashMap, 'identity'); 96 dart.defineNamedConstructor(HashMap, 'identity');
97 dart.defineNamedConstructor(HashMap, 'from'); 97 dart.defineNamedConstructor(HashMap, 'from');
98 dart.defineNamedConstructor(HashMap, 'fromIterable'); 98 dart.defineNamedConstructor(HashMap, 'fromIterable');
99 dart.defineNamedConstructor(HashMap, 'fromIterables'); 99 dart.defineNamedConstructor(HashMap, 'fromIterables');
100 return HashMap; 100 return HashMap;
101 }); 101 });
102 let HashMap = HashMap$(); 102 let HashMap = HashMap$();
103 let _newSet = Symbol('_newSet');
104 let SetMixin$ = dart.generic(function(E) { 103 let SetMixin$ = dart.generic(function(E) {
105 class SetMixin extends core.Object { 104 class SetMixin extends core.Object {
106 [Symbol.iterator]() { 105 [Symbol.iterator]() {
107 return new dart.JsIterator(this[core.$iterator]); 106 return new dart.JsIterator(this[core.$iterator]);
108 } 107 }
109 get [core.$isEmpty]() { 108 get [core.$isEmpty]() {
110 return this[core.$length] == 0; 109 return this[core.$length] == 0;
111 } 110 }
112 get [core.$isNotEmpty]() { 111 get [core.$isNotEmpty]() {
113 return this[core.$length] != 0; 112 return this[core.$length] != 0;
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 let SetMixin = SetMixin$(); 375 let SetMixin = SetMixin$();
377 let SetBase$ = dart.generic(function(E) { 376 let SetBase$ = dart.generic(function(E) {
378 class SetBase extends SetMixin$(E) { 377 class SetBase extends SetMixin$(E) {
379 static setToString(set) { 378 static setToString(set) {
380 return IterableBase.iterableToFullString(set, '{', '}'); 379 return IterableBase.iterableToFullString(set, '{', '}');
381 } 380 }
382 } 381 }
383 return SetBase; 382 return SetBase;
384 }); 383 });
385 let SetBase = SetBase$(); 384 let SetBase = SetBase$();
385 let _newSet = Symbol('_newSet');
386 let _HashSetBase$ = dart.generic(function(E) { 386 let _HashSetBase$ = dart.generic(function(E) {
387 class _HashSetBase extends SetBase$(E) { 387 class _HashSetBase extends SetBase$(E) {
388 difference(other) { 388 difference(other) {
389 let result = this[_newSet](); 389 let result = this[_newSet]();
390 for (let element of this) { 390 for (let element of this) {
391 if (!dart.notNull(other[core.$contains](element))) 391 if (!dart.notNull(other[core.$contains](element)))
392 result.add(element); 392 result.add(element);
393 } 393 }
394 return result; 394 return result;
395 } 395 }
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after
874 core.RangeError.checkNotNegative(index, "index"); 874 core.RangeError.checkNotNegative(index, "index");
875 let elementIndex = 0; 875 let elementIndex = 0;
876 for (let element of this) { 876 for (let element of this) {
877 if (index == elementIndex) 877 if (index == elementIndex)
878 return element; 878 return element;
879 elementIndex = dart.notNull(elementIndex) + 1; 879 elementIndex = dart.notNull(elementIndex) + 1;
880 } 880 }
881 throw new core.RangeError.index(index, this, "index", null, elementIndex ); 881 throw new core.RangeError.index(index, this, "index", null, elementIndex );
882 } 882 }
883 toString() { 883 toString() {
884 return IterableBase.iterableToShortString(this, '(', ')'); 884 return IterableBase$().iterableToShortString(this, '(', ')');
885 } 885 }
886 static iterableToShortString(iterable, leftDelimiter, rightDelimiter) { 886 static iterableToShortString(iterable, leftDelimiter, rightDelimiter) {
887 if (leftDelimiter === void 0) 887 if (leftDelimiter === void 0)
888 leftDelimiter = '('; 888 leftDelimiter = '(';
889 if (rightDelimiter === void 0) 889 if (rightDelimiter === void 0)
890 rightDelimiter = ')'; 890 rightDelimiter = ')';
891 if (IterableBase._isToStringVisiting(iterable)) { 891 if (IterableBase$()._isToStringVisiting(iterable)) {
892 if (leftDelimiter == "(" && rightDelimiter == ")") { 892 if (leftDelimiter == "(" && rightDelimiter == ")") {
893 return "(...)"; 893 return "(...)";
894 } 894 }
895 return `${leftDelimiter}...${rightDelimiter}`; 895 return `${leftDelimiter}...${rightDelimiter}`;
896 } 896 }
897 let parts = []; 897 let parts = [];
898 IterableBase._toStringVisiting[core.$add](iterable); 898 IterableBase$()._toStringVisiting[core.$add](iterable);
899 try { 899 try {
900 IterableBase._iterablePartsToStrings(iterable, parts); 900 IterableBase$()._iterablePartsToStrings(iterable, parts);
901 } finally { 901 } finally {
902 dart.assert(core.identical(IterableBase._toStringVisiting[core.$last], iterable)); 902 dart.assert(core.identical(IterableBase$()._toStringVisiting[core.$las t], iterable));
903 IterableBase._toStringVisiting[core.$removeLast](); 903 IterableBase$()._toStringVisiting[core.$removeLast]();
904 } 904 }
905 return dart.toString((() => { 905 return dart.toString((() => {
906 let _ = new core.StringBuffer(leftDelimiter); 906 let _ = new core.StringBuffer(leftDelimiter);
907 _.writeAll(parts, ", "); 907 _.writeAll(parts, ", ");
908 _.write(rightDelimiter); 908 _.write(rightDelimiter);
909 return _; 909 return _;
910 })()); 910 })());
911 } 911 }
912 static iterableToFullString(iterable, leftDelimiter, rightDelimiter) { 912 static iterableToFullString(iterable, leftDelimiter, rightDelimiter) {
913 if (leftDelimiter === void 0) 913 if (leftDelimiter === void 0)
914 leftDelimiter = '('; 914 leftDelimiter = '(';
915 if (rightDelimiter === void 0) 915 if (rightDelimiter === void 0)
916 rightDelimiter = ')'; 916 rightDelimiter = ')';
917 if (IterableBase._isToStringVisiting(iterable)) { 917 if (IterableBase$()._isToStringVisiting(iterable)) {
918 return `${leftDelimiter}...${rightDelimiter}`; 918 return `${leftDelimiter}...${rightDelimiter}`;
919 } 919 }
920 let buffer = new core.StringBuffer(leftDelimiter); 920 let buffer = new core.StringBuffer(leftDelimiter);
921 IterableBase._toStringVisiting[core.$add](iterable); 921 IterableBase$()._toStringVisiting[core.$add](iterable);
922 try { 922 try {
923 buffer.writeAll(iterable, ", "); 923 buffer.writeAll(iterable, ", ");
924 } finally { 924 } finally {
925 dart.assert(core.identical(IterableBase._toStringVisiting[core.$last], iterable)); 925 dart.assert(core.identical(IterableBase$()._toStringVisiting[core.$las t], iterable));
926 IterableBase._toStringVisiting[core.$removeLast](); 926 IterableBase$()._toStringVisiting[core.$removeLast]();
927 } 927 }
928 buffer.write(rightDelimiter); 928 buffer.write(rightDelimiter);
929 return dart.toString(buffer); 929 return dart.toString(buffer);
930 } 930 }
931 static _isToStringVisiting(o) { 931 static _isToStringVisiting(o) {
932 for (let i = 0; dart.notNull(i) < dart.notNull(IterableBase._toStringVis iting[core.$length]); i = dart.notNull(i) + 1) { 932 for (let i = 0; dart.notNull(i) < dart.notNull(IterableBase$()._toString Visiting[core.$length]); i = dart.notNull(i) + 1) {
933 if (core.identical(o, IterableBase._toStringVisiting[core.$get](i))) 933 if (core.identical(o, IterableBase$()._toStringVisiting[core.$get](i)) )
934 return true; 934 return true;
935 } 935 }
936 return false; 936 return false;
937 } 937 }
938 static _iterablePartsToStrings(iterable, parts) { 938 static _iterablePartsToStrings(iterable, parts) {
939 let LENGTH_LIMIT = 80; 939 let LENGTH_LIMIT = 80;
940 let HEAD_COUNT = 3; 940 let HEAD_COUNT = 3;
941 let TAIL_COUNT = 2; 941 let TAIL_COUNT = 2;
942 let MAX_COUNT = 100; 942 let MAX_COUNT = 100;
943 let OVERHEAD = 2; 943 let OVERHEAD = 2;
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
1011 parts[core.$add](elision); 1011 parts[core.$add](elision);
1012 } 1012 }
1013 parts[core.$add](penultimateString); 1013 parts[core.$add](penultimateString);
1014 parts[core.$add](ultimateString); 1014 parts[core.$add](ultimateString);
1015 } 1015 }
1016 [Symbol.iterator]() { 1016 [Symbol.iterator]() {
1017 return new dart.JsIterator(this[core.$iterator]); 1017 return new dart.JsIterator(this[core.$iterator]);
1018 } 1018 }
1019 } 1019 }
1020 IterableBase[dart.implements] = () => [core.Iterable$(E)]; 1020 IterableBase[dart.implements] = () => [core.Iterable$(E)];
1021 dart.defineLazyProperties(IterableBase, {
1022 get _toStringVisiting() {
1023 return [];
1024 }
1025 });
1026 return IterableBase; 1021 return IterableBase;
1027 }); 1022 });
1028 let IterableBase = IterableBase$(); 1023 let IterableBase = IterableBase$();
1024 dart.defineLazyProperties(IterableBase, {
1025 get _toStringVisiting() {
1026 return [];
1027 }
1028 });
1029 let _iterator = Symbol('_iterator'); 1029 let _iterator = Symbol('_iterator');
1030 let _state = Symbol('_state'); 1030 let _state = Symbol('_state');
1031 let _move = Symbol('_move'); 1031 let _move = Symbol('_move');
1032 let HasNextIterator$ = dart.generic(function(E) { 1032 let HasNextIterator$ = dart.generic(function(E) {
1033 class HasNextIterator extends core.Object { 1033 class HasNextIterator extends core.Object {
1034 HasNextIterator(iterator) { 1034 HasNextIterator(iterator) {
1035 this[_iterator] = iterator; 1035 this[_iterator] = iterator;
1036 this[_state] = HasNextIterator._NOT_MOVED_YET; 1036 this[_state] = HasNextIterator$()._NOT_MOVED_YET;
Jennifer Messerly 2015/05/12 16:23:45 this is needed to use the dynamic instantiation fo
1037 } 1037 }
1038 get hasNext() { 1038 get hasNext() {
1039 if (this[_state] == HasNextIterator._NOT_MOVED_YET) 1039 if (this[_state] == HasNextIterator$()._NOT_MOVED_YET)
1040 this[_move](); 1040 this[_move]();
1041 return this[_state] == HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT; 1041 return this[_state] == HasNextIterator$()._HAS_NEXT_AND_NEXT_IN_CURRENT;
1042 } 1042 }
1043 next() { 1043 next() {
1044 if (!dart.notNull(this.hasNext)) 1044 if (!dart.notNull(this.hasNext))
1045 throw new core.StateError("No more elements"); 1045 throw new core.StateError("No more elements");
1046 dart.assert(this[_state] == HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURREN T); 1046 dart.assert(this[_state] == HasNextIterator$()._HAS_NEXT_AND_NEXT_IN_CUR RENT);
1047 let result = dart.as(this[_iterator].current, E); 1047 let result = dart.as(this[_iterator].current, E);
1048 this[_move](); 1048 this[_move]();
1049 return result; 1049 return result;
1050 } 1050 }
1051 [_move]() { 1051 [_move]() {
1052 if (this[_iterator].moveNext()) { 1052 if (this[_iterator].moveNext()) {
1053 this[_state] = HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT; 1053 this[_state] = HasNextIterator$()._HAS_NEXT_AND_NEXT_IN_CURRENT;
1054 } else { 1054 } else {
1055 this[_state] = HasNextIterator._NO_NEXT; 1055 this[_state] = HasNextIterator$()._NO_NEXT;
1056 } 1056 }
1057 } 1057 }
1058 } 1058 }
1059 HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT = 0;
1060 HasNextIterator._NO_NEXT = 1;
1061 HasNextIterator._NOT_MOVED_YET = 2;
1062 return HasNextIterator; 1059 return HasNextIterator;
1063 }); 1060 });
1064 let HasNextIterator = HasNextIterator$(); 1061 let HasNextIterator = HasNextIterator$();
1062 HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT = 0;
1063 HasNextIterator._NO_NEXT = 1;
1064 HasNextIterator._NOT_MOVED_YET = 2;
1065 let LinkedHashMap$ = dart.generic(function(K, V) { 1065 let LinkedHashMap$ = dart.generic(function(K, V) {
1066 class LinkedHashMap extends core.Object { 1066 class LinkedHashMap extends core.Object {
1067 LinkedHashMap(opts) { 1067 LinkedHashMap(opts) {
1068 let equals = opts && 'equals' in opts ? opts.equals : null; 1068 let equals = opts && 'equals' in opts ? opts.equals : null;
1069 let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null; 1069 let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
1070 let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null; 1070 let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
1071 if (isValidKey == null) { 1071 if (isValidKey == null) {
1072 if (hashCode == null) { 1072 if (hashCode == null) {
1073 if (equals == null) { 1073 if (equals == null) {
1074 return new (_LinkedHashMap$(K, V))(); 1074 return new (_LinkedHashMap$(K, V))();
(...skipping 535 matching lines...) Expand 10 before | Expand all | Expand 10 after
1610 if (dart.equals(this[core.$get](i), element)) { 1610 if (dart.equals(this[core.$get](i), element)) {
1611 this[core.$setRange](i, dart.notNull(this[core.$length]) - 1, this, dart.notNull(i) + 1); 1611 this[core.$setRange](i, dart.notNull(this[core.$length]) - 1, this, dart.notNull(i) + 1);
1612 this[core.$length] = dart.notNull(this[core.$length]) - 1; 1612 this[core.$length] = dart.notNull(this[core.$length]) - 1;
1613 return true; 1613 return true;
1614 } 1614 }
1615 } 1615 }
1616 return false; 1616 return false;
1617 } 1617 }
1618 [core.$removeWhere](test) { 1618 [core.$removeWhere](test) {
1619 dart.as(test, dart.functionType(core.bool, [E])); 1619 dart.as(test, dart.functionType(core.bool, [E]));
1620 ListMixin._filter(this, test, false); 1620 ListMixin$()._filter(this, test, false);
1621 } 1621 }
1622 [core.$retainWhere](test) { 1622 [core.$retainWhere](test) {
1623 dart.as(test, dart.functionType(core.bool, [E])); 1623 dart.as(test, dart.functionType(core.bool, [E]));
1624 ListMixin._filter(this, test, true); 1624 ListMixin$()._filter(this, test, true);
1625 } 1625 }
1626 static _filter(source, test, retainMatching) { 1626 static _filter(source, test, retainMatching) {
1627 dart.as(test, dart.functionType(core.bool, [dart.dynamic])); 1627 dart.as(test, dart.functionType(core.bool, [dart.dynamic]));
1628 let retained = []; 1628 let retained = [];
1629 let length = source[core.$length]; 1629 let length = source[core.$length];
1630 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1630 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1631 let element = source[core.$get](i); 1631 let element = source[core.$get](i);
1632 if (dart.dcall(test, element) == retainMatching) { 1632 if (dart.dcall(test, element) == retainMatching) {
1633 retained[core.$add](element); 1633 retained[core.$add](element);
1634 } 1634 }
(...skipping 806 matching lines...) Expand 10 before | Expand all | Expand 10 after
2441 let ListQueue$ = dart.generic(function(E) { 2441 let ListQueue$ = dart.generic(function(E) {
2442 class ListQueue extends IterableBase$(E) { 2442 class ListQueue extends IterableBase$(E) {
2443 ListQueue(initialCapacity) { 2443 ListQueue(initialCapacity) {
2444 if (initialCapacity === void 0) 2444 if (initialCapacity === void 0)
2445 initialCapacity = null; 2445 initialCapacity = null;
2446 this[_head] = 0; 2446 this[_head] = 0;
2447 this[_tail] = 0; 2447 this[_tail] = 0;
2448 this[_table] = null; 2448 this[_table] = null;
2449 this[_modificationCount] = 0; 2449 this[_modificationCount] = 0;
2450 super.IterableBase(); 2450 super.IterableBase();
2451 if (initialCapacity == null || dart.notNull(initialCapacity) < dart.notN ull(ListQueue._INITIAL_CAPACITY)) { 2451 if (initialCapacity == null || dart.notNull(initialCapacity) < dart.notN ull(ListQueue$()._INITIAL_CAPACITY)) {
2452 initialCapacity = ListQueue._INITIAL_CAPACITY; 2452 initialCapacity = ListQueue$()._INITIAL_CAPACITY;
2453 } else if (!dart.notNull(ListQueue._isPowerOf2(initialCapacity))) { 2453 } else if (!dart.notNull(ListQueue$()._isPowerOf2(initialCapacity))) {
2454 initialCapacity = ListQueue._nextPowerOf2(initialCapacity); 2454 initialCapacity = ListQueue$()._nextPowerOf2(initialCapacity);
2455 } 2455 }
2456 dart.assert(ListQueue._isPowerOf2(initialCapacity)); 2456 dart.assert(ListQueue$()._isPowerOf2(initialCapacity));
2457 this[_table] = new (core.List$(E))(initialCapacity); 2457 this[_table] = new (core.List$(E))(initialCapacity);
2458 } 2458 }
2459 from(elements) { 2459 from(elements) {
2460 if (dart.is(elements, core.List)) { 2460 if (dart.is(elements, core.List)) {
2461 let length = elements[core.$length]; 2461 let length = elements[core.$length];
2462 let queue = new (ListQueue$(E))(dart.notNull(length) + 1); 2462 let queue = new (ListQueue$(E))(dart.notNull(length) + 1);
2463 dart.assert(dart.notNull(queue[_table][core.$length]) > dart.notNull(l ength)); 2463 dart.assert(dart.notNull(queue[_table][core.$length]) > dart.notNull(l ength));
2464 let sourceList = elements; 2464 let sourceList = elements;
2465 queue[_table][core.$setRange](0, length, dart.as(sourceList, core.Iter able$(E)), 0); 2465 queue[_table][core.$setRange](0, length, dart.as(sourceList, core.Iter able$(E)), 0);
2466 queue[_tail] = length; 2466 queue[_tail] = length;
2467 return queue; 2467 return queue;
2468 } else { 2468 } else {
2469 let capacity = ListQueue._INITIAL_CAPACITY; 2469 let capacity = ListQueue$()._INITIAL_CAPACITY;
2470 if (dart.is(elements, _internal.EfficientLength)) { 2470 if (dart.is(elements, _internal.EfficientLength)) {
2471 capacity = elements[core.$length]; 2471 capacity = elements[core.$length];
2472 } 2472 }
2473 let result = new (ListQueue$(E))(capacity); 2473 let result = new (ListQueue$(E))(capacity);
2474 for (let element of dart.as(elements, core.Iterable$(E))) { 2474 for (let element of dart.as(elements, core.Iterable$(E))) {
2475 result.addLast(element); 2475 result.addLast(element);
2476 } 2476 }
2477 return result; 2477 return result;
2478 } 2478 }
2479 } 2479 }
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
2708 } else { 2708 } else {
2709 let firstPartSize = dart.notNull(this[_table][core.$length]) - dart.no tNull(this[_head]); 2709 let firstPartSize = dart.notNull(this[_table][core.$length]) - dart.no tNull(this[_head]);
2710 target[core.$setRange](0, firstPartSize, this[_table], this[_head]); 2710 target[core.$setRange](0, firstPartSize, this[_table], this[_head]);
2711 target[core.$setRange](firstPartSize, dart.notNull(firstPartSize) + da rt.notNull(this[_tail]), this[_table], 0); 2711 target[core.$setRange](firstPartSize, dart.notNull(firstPartSize) + da rt.notNull(this[_tail]), this[_table], 0);
2712 return dart.notNull(this[_tail]) + dart.notNull(firstPartSize); 2712 return dart.notNull(this[_tail]) + dart.notNull(firstPartSize);
2713 } 2713 }
2714 } 2714 }
2715 [_preGrow](newElementCount) { 2715 [_preGrow](newElementCount) {
2716 dart.assert(dart.notNull(newElementCount) >= dart.notNull(this[core.$len gth])); 2716 dart.assert(dart.notNull(newElementCount) >= dart.notNull(this[core.$len gth]));
2717 newElementCount = dart.notNull(newElementCount) + (dart.notNull(newEleme ntCount) >> 1); 2717 newElementCount = dart.notNull(newElementCount) + (dart.notNull(newEleme ntCount) >> 1);
2718 let newCapacity = ListQueue._nextPowerOf2(newElementCount); 2718 let newCapacity = ListQueue$()._nextPowerOf2(newElementCount);
2719 let newTable = new (core.List$(E))(newCapacity); 2719 let newTable = new (core.List$(E))(newCapacity);
2720 this[_tail] = this[_writeToList](newTable); 2720 this[_tail] = this[_writeToList](newTable);
2721 this[_table] = newTable; 2721 this[_table] = newTable;
2722 this[_head] = 0; 2722 this[_head] = 0;
2723 } 2723 }
2724 } 2724 }
2725 ListQueue[dart.implements] = () => [Queue$(E)]; 2725 ListQueue[dart.implements] = () => [Queue$(E)];
2726 dart.defineNamedConstructor(ListQueue, 'from'); 2726 dart.defineNamedConstructor(ListQueue, 'from');
2727 ListQueue._INITIAL_CAPACITY = 8;
2728 return ListQueue; 2727 return ListQueue;
2729 }); 2728 });
2730 let ListQueue = ListQueue$(); 2729 let ListQueue = ListQueue$();
2730 ListQueue._INITIAL_CAPACITY = 8;
2731 let _queue = Symbol('_queue'); 2731 let _queue = Symbol('_queue');
2732 let _end = Symbol('_end'); 2732 let _end = Symbol('_end');
2733 let _position = Symbol('_position'); 2733 let _position = Symbol('_position');
2734 let _ListQueueIterator$ = dart.generic(function(E) { 2734 let _ListQueueIterator$ = dart.generic(function(E) {
2735 class _ListQueueIterator extends core.Object { 2735 class _ListQueueIterator extends core.Object {
2736 _ListQueueIterator(queue) { 2736 _ListQueueIterator(queue) {
2737 this[_queue] = queue; 2737 this[_queue] = queue;
2738 this[_end] = queue[_tail]; 2738 this[_end] = queue[_tail];
2739 this[_modificationCount] = queue[_modificationCount]; 2739 this[_modificationCount] = queue[_modificationCount];
2740 this[_position] = queue[_head]; 2740 this[_position] = queue[_head];
(...skipping 11 matching lines...) Expand all
2752 this[_current] = dart.as(this[_queue][_table][core.$get](this[_position] ), E); 2752 this[_current] = dart.as(this[_queue][_table][core.$get](this[_position] ), E);
2753 this[_position] = dart.notNull(this[_position]) + 1 & dart.notNull(this[ _queue][_table][core.$length]) - 1; 2753 this[_position] = dart.notNull(this[_position]) + 1 & dart.notNull(this[ _queue][_table][core.$length]) - 1;
2754 return true; 2754 return true;
2755 } 2755 }
2756 } 2756 }
2757 _ListQueueIterator[dart.implements] = () => [core.Iterator$(E)]; 2757 _ListQueueIterator[dart.implements] = () => [core.Iterator$(E)];
2758 return _ListQueueIterator; 2758 return _ListQueueIterator;
2759 }); 2759 });
2760 let _ListQueueIterator = _ListQueueIterator$(); 2760 let _ListQueueIterator = _ListQueueIterator$();
2761 let _Predicate$ = dart.generic(function(T) { 2761 let _Predicate$ = dart.generic(function(T) {
2762 let _Predicate = dart.typedef('_Predicate', () => dart.functionType(core.boo l, [T])); 2762 let _Predicate = dart.typedef('_Predicate', dart.functionType(core.bool, [T] ));
2763 return _Predicate; 2763 return _Predicate;
2764 }); 2764 });
2765 let _Predicate = _Predicate$(); 2765 let _Predicate = _Predicate$();
2766 let _SplayTreeNode$ = dart.generic(function(K) { 2766 let _SplayTreeNode$ = dart.generic(function(K) {
2767 class _SplayTreeNode extends core.Object { 2767 class _SplayTreeNode extends core.Object {
2768 _SplayTreeNode(key) { 2768 _SplayTreeNode(key) {
2769 this.key = key; 2769 this.key = key;
2770 this.left = null; 2770 this.left = null;
2771 this.right = null; 2771 this.right = null;
2772 } 2772 }
(...skipping 709 matching lines...) Expand 10 before | Expand all | Expand 10 after
3482 } 3482 }
3483 toString() { 3483 toString() {
3484 return IterableBase.iterableToFullString(this, '{', '}'); 3484 return IterableBase.iterableToFullString(this, '{', '}');
3485 } 3485 }
3486 } 3486 }
3487 dart.defineNamedConstructor(SplayTreeSet, 'from'); 3487 dart.defineNamedConstructor(SplayTreeSet, 'from');
3488 return SplayTreeSet; 3488 return SplayTreeSet;
3489 }); 3489 });
3490 let SplayTreeSet = SplayTreeSet$(); 3490 let SplayTreeSet = SplayTreeSet$();
3491 let __CastType0$ = dart.generic(function(K) { 3491 let __CastType0$ = dart.generic(function(K) {
3492 let __CastType0 = dart.typedef('__CastType0', () => dart.functionType(core.i nt, [K, K])); 3492 let __CastType0 = dart.typedef('__CastType0', dart.functionType(core.int, [K , K]));
3493 return __CastType0; 3493 return __CastType0;
3494 }); 3494 });
3495 let __CastType0 = __CastType0$(); 3495 let __CastType0 = __CastType0$();
3496 let __CastType3 = dart.typedef('__CastType3', () => dart.functionType(core.boo l, [core.Object])); 3496 let __CastType3 = dart.typedef('__CastType3', dart.functionType(core.bool, [co re.Object]));
3497 let _strings = Symbol('_strings'); 3497 let _strings = Symbol('_strings');
3498 let _nums = Symbol('_nums'); 3498 let _nums = Symbol('_nums');
3499 let _rest = Symbol('_rest'); 3499 let _rest = Symbol('_rest');
3500 let _containsKey = Symbol('_containsKey'); 3500 let _containsKey = Symbol('_containsKey');
3501 let _getBucket = Symbol('_getBucket'); 3501 let _getBucket = Symbol('_getBucket');
3502 let _findBucketIndex = Symbol('_findBucketIndex'); 3502 let _findBucketIndex = Symbol('_findBucketIndex');
3503 let _computeKeys = Symbol('_computeKeys'); 3503 let _computeKeys = Symbol('_computeKeys');
3504 let _get = Symbol('_get'); 3504 let _get = Symbol('_get');
3505 let _addHashTableEntry = Symbol('_addHashTableEntry'); 3505 let _addHashTableEntry = Symbol('_addHashTableEntry');
3506 let _set = Symbol('_set'); 3506 let _set = Symbol('_set');
(...skipping 17 matching lines...) Expand all
3524 get isNotEmpty() { 3524 get isNotEmpty() {
3525 return !dart.notNull(this.isEmpty); 3525 return !dart.notNull(this.isEmpty);
3526 } 3526 }
3527 get keys() { 3527 get keys() {
3528 return new (HashMapKeyIterable$(K))(this); 3528 return new (HashMapKeyIterable$(K))(this);
3529 } 3529 }
3530 get values() { 3530 get values() {
3531 return new (_internal.MappedIterable$(K, V))(this.keys, (each => this.ge t(each)).bind(this)); 3531 return new (_internal.MappedIterable$(K, V))(this.keys, (each => this.ge t(each)).bind(this));
3532 } 3532 }
3533 containsKey(key) { 3533 containsKey(key) {
3534 if (_HashMap._isStringKey(key)) { 3534 if (_HashMap$()._isStringKey(key)) {
3535 let strings = this[_strings]; 3535 let strings = this[_strings];
3536 return strings == null ? false : _HashMap._hasTableEntry(strings, key) ; 3536 return strings == null ? false : _HashMap$()._hasTableEntry(strings, k ey);
3537 } else if (_HashMap._isNumericKey(key)) { 3537 } else if (_HashMap$()._isNumericKey(key)) {
3538 let nums = this[_nums]; 3538 let nums = this[_nums];
3539 return nums == null ? false : _HashMap._hasTableEntry(nums, key); 3539 return nums == null ? false : _HashMap$()._hasTableEntry(nums, key);
3540 } else { 3540 } else {
3541 return this[_containsKey](key); 3541 return this[_containsKey](key);
3542 } 3542 }
3543 } 3543 }
3544 [_containsKey](key) { 3544 [_containsKey](key) {
3545 let rest = this[_rest]; 3545 let rest = this[_rest];
3546 if (rest == null) 3546 if (rest == null)
3547 return false; 3547 return false;
3548 let bucket = this[_getBucket](rest, key); 3548 let bucket = this[_getBucket](rest, key);
3549 return dart.notNull(this[_findBucketIndex](bucket, key)) >= 0; 3549 return dart.notNull(this[_findBucketIndex](bucket, key)) >= 0;
3550 } 3550 }
3551 containsValue(value) { 3551 containsValue(value) {
3552 return this[_computeKeys]()[core.$any]((each => dart.equals(this.get(eac h), value)).bind(this)); 3552 return this[_computeKeys]()[core.$any]((each => dart.equals(this.get(eac h), value)).bind(this));
3553 } 3553 }
3554 addAll(other) { 3554 addAll(other) {
3555 dart.as(other, core.Map$(K, V)); 3555 dart.as(other, core.Map$(K, V));
3556 other.forEach(((key, value) => { 3556 other.forEach(((key, value) => {
3557 dart.as(key, K); 3557 dart.as(key, K);
3558 dart.as(value, V); 3558 dart.as(value, V);
3559 this.set(key, value); 3559 this.set(key, value);
3560 }).bind(this)); 3560 }).bind(this));
3561 } 3561 }
3562 get(key) { 3562 get(key) {
3563 if (_HashMap._isStringKey(key)) { 3563 if (_HashMap$()._isStringKey(key)) {
3564 let strings = this[_strings]; 3564 let strings = this[_strings];
3565 return strings == null ? null : dart.as(_HashMap._getTableEntry(string s, key), V); 3565 return strings == null ? null : dart.as(_HashMap$()._getTableEntry(str ings, key), V);
3566 } else if (_HashMap._isNumericKey(key)) { 3566 } else if (_HashMap$()._isNumericKey(key)) {
3567 let nums = this[_nums]; 3567 let nums = this[_nums];
3568 return nums == null ? null : dart.as(_HashMap._getTableEntry(nums, key ), V); 3568 return nums == null ? null : dart.as(_HashMap$()._getTableEntry(nums, key), V);
3569 } else { 3569 } else {
3570 return this[_get](key); 3570 return this[_get](key);
3571 } 3571 }
3572 } 3572 }
3573 [_get](key) { 3573 [_get](key) {
3574 let rest = this[_rest]; 3574 let rest = this[_rest];
3575 if (rest == null) 3575 if (rest == null)
3576 return null; 3576 return null;
3577 let bucket = this[_getBucket](rest, key); 3577 let bucket = this[_getBucket](rest, key);
3578 let index = this[_findBucketIndex](bucket, key); 3578 let index = this[_findBucketIndex](bucket, key);
3579 return dart.notNull(index) < 0 ? null : dart.as(bucket[dart.notNull(inde x) + 1], V); 3579 return dart.notNull(index) < 0 ? null : dart.as(bucket[dart.notNull(inde x) + 1], V);
3580 } 3580 }
3581 set(key, value) { 3581 set(key, value) {
3582 dart.as(key, K); 3582 dart.as(key, K);
3583 dart.as(value, V); 3583 dart.as(value, V);
3584 if (_HashMap._isStringKey(key)) { 3584 if (_HashMap$()._isStringKey(key)) {
3585 let strings = this[_strings]; 3585 let strings = this[_strings];
3586 if (strings == null) 3586 if (strings == null)
3587 this[_strings] = strings = _HashMap._newHashTable(); 3587 this[_strings] = strings = _HashMap$()._newHashTable();
3588 this[_addHashTableEntry](strings, key, value); 3588 this[_addHashTableEntry](strings, key, value);
3589 } else if (_HashMap._isNumericKey(key)) { 3589 } else if (_HashMap$()._isNumericKey(key)) {
3590 let nums = this[_nums]; 3590 let nums = this[_nums];
3591 if (nums == null) 3591 if (nums == null)
3592 this[_nums] = nums = _HashMap._newHashTable(); 3592 this[_nums] = nums = _HashMap$()._newHashTable();
3593 this[_addHashTableEntry](nums, key, value); 3593 this[_addHashTableEntry](nums, key, value);
3594 } else { 3594 } else {
3595 this[_set](key, value); 3595 this[_set](key, value);
3596 } 3596 }
3597 } 3597 }
3598 [_set](key, value) { 3598 [_set](key, value) {
3599 dart.as(key, K); 3599 dart.as(key, K);
3600 dart.as(value, V); 3600 dart.as(value, V);
3601 let rest = this[_rest]; 3601 let rest = this[_rest];
3602 if (rest == null) 3602 if (rest == null)
3603 this[_rest] = rest = _HashMap._newHashTable(); 3603 this[_rest] = rest = _HashMap$()._newHashTable();
3604 let hash = this[_computeHashCode](key); 3604 let hash = this[_computeHashCode](key);
3605 let bucket = rest[hash]; 3605 let bucket = rest[hash];
3606 if (bucket == null) { 3606 if (bucket == null) {
3607 _HashMap._setTableEntry(rest, hash, [key, value]); 3607 _HashMap$()._setTableEntry(rest, hash, [key, value]);
3608 this[_length] = dart.notNull(this[_length]) + 1; 3608 this[_length] = dart.notNull(this[_length]) + 1;
3609 this[_keys] = null; 3609 this[_keys] = null;
3610 } else { 3610 } else {
3611 let index = this[_findBucketIndex](bucket, key); 3611 let index = this[_findBucketIndex](bucket, key);
3612 if (dart.notNull(index) >= 0) { 3612 if (dart.notNull(index) >= 0) {
3613 bucket[dart.notNull(index) + 1] = value; 3613 bucket[dart.notNull(index) + 1] = value;
3614 } else { 3614 } else {
3615 bucket.push(key, value); 3615 bucket.push(key, value);
3616 this[_length] = dart.notNull(this[_length]) + 1; 3616 this[_length] = dart.notNull(this[_length]) + 1;
3617 this[_keys] = null; 3617 this[_keys] = null;
3618 } 3618 }
3619 } 3619 }
3620 } 3620 }
3621 putIfAbsent(key, ifAbsent) { 3621 putIfAbsent(key, ifAbsent) {
3622 dart.as(key, K); 3622 dart.as(key, K);
3623 dart.as(ifAbsent, dart.functionType(V, [])); 3623 dart.as(ifAbsent, dart.functionType(V, []));
3624 if (this.containsKey(key)) 3624 if (this.containsKey(key))
3625 return this.get(key); 3625 return this.get(key);
3626 let value = ifAbsent(); 3626 let value = ifAbsent();
3627 this.set(key, value); 3627 this.set(key, value);
3628 return value; 3628 return value;
3629 } 3629 }
3630 remove(key) { 3630 remove(key) {
3631 if (_HashMap._isStringKey(key)) { 3631 if (_HashMap$()._isStringKey(key)) {
3632 return this[_removeHashTableEntry](this[_strings], key); 3632 return this[_removeHashTableEntry](this[_strings], key);
3633 } else if (_HashMap._isNumericKey(key)) { 3633 } else if (_HashMap$()._isNumericKey(key)) {
3634 return this[_removeHashTableEntry](this[_nums], key); 3634 return this[_removeHashTableEntry](this[_nums], key);
3635 } else { 3635 } else {
3636 return this[_remove](key); 3636 return this[_remove](key);
3637 } 3637 }
3638 } 3638 }
3639 [_remove](key) { 3639 [_remove](key) {
3640 let rest = this[_rest]; 3640 let rest = this[_rest];
3641 if (rest == null) 3641 if (rest == null)
3642 return null; 3642 return null;
3643 let bucket = this[_getBucket](rest, key); 3643 let bucket = this[_getBucket](rest, key);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
3704 index = dart.notNull(index) + 1; 3704 index = dart.notNull(index) + 1;
3705 } 3705 }
3706 } 3706 }
3707 } 3707 }
3708 dart.assert(index == this[_length]); 3708 dart.assert(index == this[_length]);
3709 return this[_keys] = result; 3709 return this[_keys] = result;
3710 } 3710 }
3711 [_addHashTableEntry](table, key, value) { 3711 [_addHashTableEntry](table, key, value) {
3712 dart.as(key, K); 3712 dart.as(key, K);
3713 dart.as(value, V); 3713 dart.as(value, V);
3714 if (!dart.notNull(_HashMap._hasTableEntry(table, key))) { 3714 if (!dart.notNull(_HashMap$()._hasTableEntry(table, key))) {
3715 this[_length] = dart.notNull(this[_length]) + 1; 3715 this[_length] = dart.notNull(this[_length]) + 1;
3716 this[_keys] = null; 3716 this[_keys] = null;
3717 } 3717 }
3718 _HashMap._setTableEntry(table, key, value); 3718 _HashMap$()._setTableEntry(table, key, value);
3719 } 3719 }
3720 [_removeHashTableEntry](table, key) { 3720 [_removeHashTableEntry](table, key) {
3721 if (dart.notNull(table != null) && dart.notNull(_HashMap._hasTableEntry( table, key))) { 3721 if (dart.notNull(table != null) && dart.notNull(_HashMap$()._hasTableEnt ry(table, key))) {
3722 let value = dart.as(_HashMap._getTableEntry(table, key), V); 3722 let value = dart.as(_HashMap$()._getTableEntry(table, key), V);
3723 _HashMap._deleteTableEntry(table, key); 3723 _HashMap$()._deleteTableEntry(table, key);
3724 this[_length] = dart.notNull(this[_length]) - 1; 3724 this[_length] = dart.notNull(this[_length]) - 1;
3725 this[_keys] = null; 3725 this[_keys] = null;
3726 return value; 3726 return value;
3727 } else { 3727 } else {
3728 return null; 3728 return null;
3729 } 3729 }
3730 } 3730 }
3731 static _isStringKey(key) { 3731 static _isStringKey(key) {
3732 return typeof key == 'string' && dart.notNull(!dart.equals(key, '__proto __')); 3732 return typeof key == 'string' && dart.notNull(!dart.equals(key, '__proto __'));
3733 } 3733 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
3765 let length = bucket.length; 3765 let length = bucket.length;
3766 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 2) { 3766 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 2) {
3767 if (dart.equals(bucket[i], key)) 3767 if (dart.equals(bucket[i], key))
3768 return i; 3768 return i;
3769 } 3769 }
3770 return -1; 3770 return -1;
3771 } 3771 }
3772 static _newHashTable() { 3772 static _newHashTable() {
3773 let table = Object.create(null); 3773 let table = Object.create(null);
3774 let temporaryKey = '<non-identifier-key>'; 3774 let temporaryKey = '<non-identifier-key>';
3775 _HashMap._setTableEntry(table, temporaryKey, table); 3775 _HashMap$()._setTableEntry(table, temporaryKey, table);
3776 _HashMap._deleteTableEntry(table, temporaryKey); 3776 _HashMap$()._deleteTableEntry(table, temporaryKey);
3777 return table; 3777 return table;
3778 } 3778 }
3779 } 3779 }
3780 _HashMap[dart.implements] = () => [HashMap$(K, V)]; 3780 _HashMap[dart.implements] = () => [HashMap$(K, V)];
3781 return _HashMap; 3781 return _HashMap;
3782 }); 3782 });
3783 let _HashMap = _HashMap$(); 3783 let _HashMap = _HashMap$();
3784 let _IdentityHashMap$ = dart.generic(function(K, V) { 3784 let _IdentityHashMap$ = dart.generic(function(K, V) {
3785 class _IdentityHashMap extends _HashMap$(K, V) { 3785 class _IdentityHashMap extends _HashMap$(K, V) {
3786 _IdentityHashMap() { 3786 _IdentityHashMap() {
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
3943 get isNotEmpty() { 3943 get isNotEmpty() {
3944 return !dart.notNull(this.isEmpty); 3944 return !dart.notNull(this.isEmpty);
3945 } 3945 }
3946 get keys() { 3946 get keys() {
3947 return new (LinkedHashMapKeyIterable$(K))(this); 3947 return new (LinkedHashMapKeyIterable$(K))(this);
3948 } 3948 }
3949 get values() { 3949 get values() {
3950 return new (_internal.MappedIterable$(K, V))(this.keys, (each => this.ge t(each)).bind(this)); 3950 return new (_internal.MappedIterable$(K, V))(this.keys, (each => this.ge t(each)).bind(this));
3951 } 3951 }
3952 containsKey(key) { 3952 containsKey(key) {
3953 if (_LinkedHashMap._isStringKey(key)) { 3953 if (_LinkedHashMap$()._isStringKey(key)) {
3954 let strings = this[_strings]; 3954 let strings = this[_strings];
3955 if (strings == null) 3955 if (strings == null)
3956 return false; 3956 return false;
3957 let cell = dart.as(_LinkedHashMap._getTableEntry(strings, key), Linked HashMapCell); 3957 let cell = dart.as(_LinkedHashMap$()._getTableEntry(strings, key), Lin kedHashMapCell);
3958 return cell != null; 3958 return cell != null;
3959 } else if (_LinkedHashMap._isNumericKey(key)) { 3959 } else if (_LinkedHashMap$()._isNumericKey(key)) {
3960 let nums = this[_nums]; 3960 let nums = this[_nums];
3961 if (nums == null) 3961 if (nums == null)
3962 return false; 3962 return false;
3963 let cell = dart.as(_LinkedHashMap._getTableEntry(nums, key), LinkedHas hMapCell); 3963 let cell = dart.as(_LinkedHashMap$()._getTableEntry(nums, key), Linked HashMapCell);
3964 return cell != null; 3964 return cell != null;
3965 } else { 3965 } else {
3966 return this[_containsKey](key); 3966 return this[_containsKey](key);
3967 } 3967 }
3968 } 3968 }
3969 [_containsKey](key) { 3969 [_containsKey](key) {
3970 let rest = this[_rest]; 3970 let rest = this[_rest];
3971 if (rest == null) 3971 if (rest == null)
3972 return false; 3972 return false;
3973 let bucket = this[_getBucket](rest, key); 3973 let bucket = this[_getBucket](rest, key);
3974 return dart.notNull(this[_findBucketIndex](bucket, key)) >= 0; 3974 return dart.notNull(this[_findBucketIndex](bucket, key)) >= 0;
3975 } 3975 }
3976 containsValue(value) { 3976 containsValue(value) {
3977 return this.keys[core.$any]((each => dart.equals(this.get(each), value)) .bind(this)); 3977 return this.keys[core.$any]((each => dart.equals(this.get(each), value)) .bind(this));
3978 } 3978 }
3979 addAll(other) { 3979 addAll(other) {
3980 dart.as(other, core.Map$(K, V)); 3980 dart.as(other, core.Map$(K, V));
3981 other.forEach(((key, value) => { 3981 other.forEach(((key, value) => {
3982 dart.as(key, K); 3982 dart.as(key, K);
3983 dart.as(value, V); 3983 dart.as(value, V);
3984 this.set(key, value); 3984 this.set(key, value);
3985 }).bind(this)); 3985 }).bind(this));
3986 } 3986 }
3987 get(key) { 3987 get(key) {
3988 if (_LinkedHashMap._isStringKey(key)) { 3988 if (_LinkedHashMap$()._isStringKey(key)) {
3989 let strings = this[_strings]; 3989 let strings = this[_strings];
3990 if (strings == null) 3990 if (strings == null)
3991 return null; 3991 return null;
3992 let cell = dart.as(_LinkedHashMap._getTableEntry(strings, key), Linked HashMapCell); 3992 let cell = dart.as(_LinkedHashMap$()._getTableEntry(strings, key), Lin kedHashMapCell);
3993 return cell == null ? null : dart.as(cell[_value], V); 3993 return cell == null ? null : dart.as(cell[_value], V);
3994 } else if (_LinkedHashMap._isNumericKey(key)) { 3994 } else if (_LinkedHashMap$()._isNumericKey(key)) {
3995 let nums = this[_nums]; 3995 let nums = this[_nums];
3996 if (nums == null) 3996 if (nums == null)
3997 return null; 3997 return null;
3998 let cell = dart.as(_LinkedHashMap._getTableEntry(nums, key), LinkedHas hMapCell); 3998 let cell = dart.as(_LinkedHashMap$()._getTableEntry(nums, key), Linked HashMapCell);
3999 return cell == null ? null : dart.as(cell[_value], V); 3999 return cell == null ? null : dart.as(cell[_value], V);
4000 } else { 4000 } else {
4001 return this[_get](key); 4001 return this[_get](key);
4002 } 4002 }
4003 } 4003 }
4004 [_get](key) { 4004 [_get](key) {
4005 let rest = this[_rest]; 4005 let rest = this[_rest];
4006 if (rest == null) 4006 if (rest == null)
4007 return null; 4007 return null;
4008 let bucket = this[_getBucket](rest, key); 4008 let bucket = this[_getBucket](rest, key);
4009 let index = this[_findBucketIndex](bucket, key); 4009 let index = this[_findBucketIndex](bucket, key);
4010 if (dart.notNull(index) < 0) 4010 if (dart.notNull(index) < 0)
4011 return null; 4011 return null;
4012 let cell = dart.as(bucket[index], LinkedHashMapCell); 4012 let cell = dart.as(bucket[index], LinkedHashMapCell);
4013 return dart.as(cell[_value], V); 4013 return dart.as(cell[_value], V);
4014 } 4014 }
4015 set(key, value) { 4015 set(key, value) {
4016 dart.as(key, K); 4016 dart.as(key, K);
4017 dart.as(value, V); 4017 dart.as(value, V);
4018 if (_LinkedHashMap._isStringKey(key)) { 4018 if (_LinkedHashMap$()._isStringKey(key)) {
4019 let strings = this[_strings]; 4019 let strings = this[_strings];
4020 if (strings == null) 4020 if (strings == null)
4021 this[_strings] = strings = _LinkedHashMap._newHashTable(); 4021 this[_strings] = strings = _LinkedHashMap$()._newHashTable();
4022 this[_addHashTableEntry](strings, key, value); 4022 this[_addHashTableEntry](strings, key, value);
4023 } else if (_LinkedHashMap._isNumericKey(key)) { 4023 } else if (_LinkedHashMap$()._isNumericKey(key)) {
4024 let nums = this[_nums]; 4024 let nums = this[_nums];
4025 if (nums == null) 4025 if (nums == null)
4026 this[_nums] = nums = _LinkedHashMap._newHashTable(); 4026 this[_nums] = nums = _LinkedHashMap$()._newHashTable();
4027 this[_addHashTableEntry](nums, key, value); 4027 this[_addHashTableEntry](nums, key, value);
4028 } else { 4028 } else {
4029 this[_set](key, value); 4029 this[_set](key, value);
4030 } 4030 }
4031 } 4031 }
4032 [_set](key, value) { 4032 [_set](key, value) {
4033 dart.as(key, K); 4033 dart.as(key, K);
4034 dart.as(value, V); 4034 dart.as(value, V);
4035 let rest = this[_rest]; 4035 let rest = this[_rest];
4036 if (rest == null) 4036 if (rest == null)
4037 this[_rest] = rest = _LinkedHashMap._newHashTable(); 4037 this[_rest] = rest = _LinkedHashMap$()._newHashTable();
4038 let hash = this[_computeHashCode](key); 4038 let hash = this[_computeHashCode](key);
4039 let bucket = rest[hash]; 4039 let bucket = rest[hash];
4040 if (bucket == null) { 4040 if (bucket == null) {
4041 let cell = this[_newLinkedCell](key, value); 4041 let cell = this[_newLinkedCell](key, value);
4042 _LinkedHashMap._setTableEntry(rest, hash, [cell]); 4042 _LinkedHashMap$()._setTableEntry(rest, hash, [cell]);
4043 } else { 4043 } else {
4044 let index = this[_findBucketIndex](bucket, key); 4044 let index = this[_findBucketIndex](bucket, key);
4045 if (dart.notNull(index) >= 0) { 4045 if (dart.notNull(index) >= 0) {
4046 let cell = dart.as(bucket[index], LinkedHashMapCell); 4046 let cell = dart.as(bucket[index], LinkedHashMapCell);
4047 cell[_value] = value; 4047 cell[_value] = value;
4048 } else { 4048 } else {
4049 let cell = this[_newLinkedCell](key, value); 4049 let cell = this[_newLinkedCell](key, value);
4050 bucket.push(cell); 4050 bucket.push(cell);
4051 } 4051 }
4052 } 4052 }
4053 } 4053 }
4054 putIfAbsent(key, ifAbsent) { 4054 putIfAbsent(key, ifAbsent) {
4055 dart.as(key, K); 4055 dart.as(key, K);
4056 dart.as(ifAbsent, dart.functionType(V, [])); 4056 dart.as(ifAbsent, dart.functionType(V, []));
4057 if (this.containsKey(key)) 4057 if (this.containsKey(key))
4058 return this.get(key); 4058 return this.get(key);
4059 let value = ifAbsent(); 4059 let value = ifAbsent();
4060 this.set(key, value); 4060 this.set(key, value);
4061 return value; 4061 return value;
4062 } 4062 }
4063 remove(key) { 4063 remove(key) {
4064 if (_LinkedHashMap._isStringKey(key)) { 4064 if (_LinkedHashMap$()._isStringKey(key)) {
4065 return this[_removeHashTableEntry](this[_strings], key); 4065 return this[_removeHashTableEntry](this[_strings], key);
4066 } else if (_LinkedHashMap._isNumericKey(key)) { 4066 } else if (_LinkedHashMap$()._isNumericKey(key)) {
4067 return this[_removeHashTableEntry](this[_nums], key); 4067 return this[_removeHashTableEntry](this[_nums], key);
4068 } else { 4068 } else {
4069 return this[_remove](key); 4069 return this[_remove](key);
4070 } 4070 }
4071 } 4071 }
4072 [_remove](key) { 4072 [_remove](key) {
4073 let rest = this[_rest]; 4073 let rest = this[_rest];
4074 if (rest == null) 4074 if (rest == null)
4075 return null; 4075 return null;
4076 let bucket = this[_getBucket](rest, key); 4076 let bucket = this[_getBucket](rest, key);
(...skipping 19 matching lines...) Expand all
4096 action(dart.as(cell[_key], K), dart.as(cell[_value], V)); 4096 action(dart.as(cell[_key], K), dart.as(cell[_value], V));
4097 if (modifications != this[_modifications]) { 4097 if (modifications != this[_modifications]) {
4098 throw new core.ConcurrentModificationError(this); 4098 throw new core.ConcurrentModificationError(this);
4099 } 4099 }
4100 cell = cell[_next]; 4100 cell = cell[_next];
4101 } 4101 }
4102 } 4102 }
4103 [_addHashTableEntry](table, key, value) { 4103 [_addHashTableEntry](table, key, value) {
4104 dart.as(key, K); 4104 dart.as(key, K);
4105 dart.as(value, V); 4105 dart.as(value, V);
4106 let cell = dart.as(_LinkedHashMap._getTableEntry(table, key), LinkedHash MapCell); 4106 let cell = dart.as(_LinkedHashMap$()._getTableEntry(table, key), LinkedH ashMapCell);
4107 if (cell == null) { 4107 if (cell == null) {
4108 _LinkedHashMap._setTableEntry(table, key, this[_newLinkedCell](key, va lue)); 4108 _LinkedHashMap$()._setTableEntry(table, key, this[_newLinkedCell](key, value));
4109 } else { 4109 } else {
4110 cell[_value] = value; 4110 cell[_value] = value;
4111 } 4111 }
4112 } 4112 }
4113 [_removeHashTableEntry](table, key) { 4113 [_removeHashTableEntry](table, key) {
4114 if (table == null) 4114 if (table == null)
4115 return null; 4115 return null;
4116 let cell = dart.as(_LinkedHashMap._getTableEntry(table, key), LinkedHash MapCell); 4116 let cell = dart.as(_LinkedHashMap$()._getTableEntry(table, key), LinkedH ashMapCell);
4117 if (cell == null) 4117 if (cell == null)
4118 return null; 4118 return null;
4119 this[_unlinkCell](cell); 4119 this[_unlinkCell](cell);
4120 _LinkedHashMap._deleteTableEntry(table, key); 4120 _LinkedHashMap$()._deleteTableEntry(table, key);
4121 return dart.as(cell[_value], V); 4121 return dart.as(cell[_value], V);
4122 } 4122 }
4123 [_modified]() { 4123 [_modified]() {
4124 this[_modifications] = dart.notNull(this[_modifications]) + 1 & 67108863 ; 4124 this[_modifications] = dart.notNull(this[_modifications]) + 1 & 67108863 ;
4125 } 4125 }
4126 [_newLinkedCell](key, value) { 4126 [_newLinkedCell](key, value) {
4127 dart.as(key, K); 4127 dart.as(key, K);
4128 dart.as(value, V); 4128 dart.as(value, V);
4129 let cell = new LinkedHashMapCell(key, value); 4129 let cell = new LinkedHashMapCell(key, value);
4130 if (this[_first] == null) { 4130 if (this[_first] == null) {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
4186 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 4186 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
4187 let cell = dart.as(bucket[i], LinkedHashMapCell); 4187 let cell = dart.as(bucket[i], LinkedHashMapCell);
4188 if (dart.equals(cell[_key], key)) 4188 if (dart.equals(cell[_key], key))
4189 return i; 4189 return i;
4190 } 4190 }
4191 return -1; 4191 return -1;
4192 } 4192 }
4193 static _newHashTable() { 4193 static _newHashTable() {
4194 let table = Object.create(null); 4194 let table = Object.create(null);
4195 let temporaryKey = '<non-identifier-key>'; 4195 let temporaryKey = '<non-identifier-key>';
4196 _LinkedHashMap._setTableEntry(table, temporaryKey, table); 4196 _LinkedHashMap$()._setTableEntry(table, temporaryKey, table);
4197 _LinkedHashMap._deleteTableEntry(table, temporaryKey); 4197 _LinkedHashMap$()._deleteTableEntry(table, temporaryKey);
4198 return table; 4198 return table;
4199 } 4199 }
4200 toString() { 4200 toString() {
4201 return Maps.mapToString(this); 4201 return Maps.mapToString(this);
4202 } 4202 }
4203 } 4203 }
4204 _LinkedHashMap[dart.implements] = () => [LinkedHashMap$(K, V), _js_helper.In ternalMap]; 4204 _LinkedHashMap[dart.implements] = () => [LinkedHashMap$(K, V), _js_helper.In ternalMap];
4205 return _LinkedHashMap; 4205 return _LinkedHashMap;
4206 }); 4206 });
4207 let _LinkedHashMap = _LinkedHashMap$(); 4207 let _LinkedHashMap = _LinkedHashMap$();
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
4369 get [core.$length]() { 4369 get [core.$length]() {
4370 return this[_length]; 4370 return this[_length];
4371 } 4371 }
4372 get [core.$isEmpty]() { 4372 get [core.$isEmpty]() {
4373 return this[_length] == 0; 4373 return this[_length] == 0;
4374 } 4374 }
4375 get [core.$isNotEmpty]() { 4375 get [core.$isNotEmpty]() {
4376 return !dart.notNull(this[core.$isEmpty]); 4376 return !dart.notNull(this[core.$isEmpty]);
4377 } 4377 }
4378 [core.$contains](object) { 4378 [core.$contains](object) {
4379 if (_HashSet._isStringElement(object)) { 4379 if (_HashSet$()._isStringElement(object)) {
4380 let strings = this[_strings]; 4380 let strings = this[_strings];
4381 return strings == null ? false : _HashSet._hasTableEntry(strings, obje ct); 4381 return strings == null ? false : _HashSet$()._hasTableEntry(strings, o bject);
4382 } else if (_HashSet._isNumericElement(object)) { 4382 } else if (_HashSet$()._isNumericElement(object)) {
4383 let nums = this[_nums]; 4383 let nums = this[_nums];
4384 return nums == null ? false : _HashSet._hasTableEntry(nums, object); 4384 return nums == null ? false : _HashSet$()._hasTableEntry(nums, object) ;
4385 } else { 4385 } else {
4386 return this[_contains](object); 4386 return this[_contains](object);
4387 } 4387 }
4388 } 4388 }
4389 [_contains](object) { 4389 [_contains](object) {
4390 let rest = this[_rest]; 4390 let rest = this[_rest];
4391 if (rest == null) 4391 if (rest == null)
4392 return false; 4392 return false;
4393 let bucket = this[_getBucket](rest, object); 4393 let bucket = this[_getBucket](rest, object);
4394 return dart.notNull(this[_findBucketIndex](bucket, object)) >= 0; 4394 return dart.notNull(this[_findBucketIndex](bucket, object)) >= 0;
4395 } 4395 }
4396 lookup(object) { 4396 lookup(object) {
4397 if (dart.notNull(_HashSet._isStringElement(object)) || dart.notNull(_Has hSet._isNumericElement(object))) { 4397 if (dart.notNull(_HashSet$()._isStringElement(object)) || dart.notNull(_ HashSet$()._isNumericElement(object))) {
4398 return dart.as(this[core.$contains](object) ? object : null, E); 4398 return dart.as(this[core.$contains](object) ? object : null, E);
4399 } 4399 }
4400 return this[_lookup](object); 4400 return this[_lookup](object);
4401 } 4401 }
4402 [_lookup](object) { 4402 [_lookup](object) {
4403 let rest = this[_rest]; 4403 let rest = this[_rest];
4404 if (rest == null) 4404 if (rest == null)
4405 return null; 4405 return null;
4406 let bucket = this[_getBucket](rest, object); 4406 let bucket = this[_getBucket](rest, object);
4407 let index = this[_findBucketIndex](bucket, object); 4407 let index = this[_findBucketIndex](bucket, object);
4408 if (dart.notNull(index) < 0) 4408 if (dart.notNull(index) < 0)
4409 return null; 4409 return null;
4410 return dart.as(bucket[core.$get](index), E); 4410 return dart.as(bucket[core.$get](index), E);
4411 } 4411 }
4412 add(element) { 4412 add(element) {
4413 dart.as(element, E); 4413 dart.as(element, E);
4414 if (_HashSet._isStringElement(element)) { 4414 if (_HashSet$()._isStringElement(element)) {
4415 let strings = this[_strings]; 4415 let strings = this[_strings];
4416 if (strings == null) 4416 if (strings == null)
4417 this[_strings] = strings = _HashSet._newHashTable(); 4417 this[_strings] = strings = _HashSet$()._newHashTable();
4418 return this[_addHashTableEntry](strings, element); 4418 return this[_addHashTableEntry](strings, element);
4419 } else if (_HashSet._isNumericElement(element)) { 4419 } else if (_HashSet$()._isNumericElement(element)) {
4420 let nums = this[_nums]; 4420 let nums = this[_nums];
4421 if (nums == null) 4421 if (nums == null)
4422 this[_nums] = nums = _HashSet._newHashTable(); 4422 this[_nums] = nums = _HashSet$()._newHashTable();
4423 return this[_addHashTableEntry](nums, element); 4423 return this[_addHashTableEntry](nums, element);
4424 } else { 4424 } else {
4425 return this[_add](element); 4425 return this[_add](element);
4426 } 4426 }
4427 } 4427 }
4428 [_add](element) { 4428 [_add](element) {
4429 dart.as(element, E); 4429 dart.as(element, E);
4430 let rest = this[_rest]; 4430 let rest = this[_rest];
4431 if (rest == null) 4431 if (rest == null)
4432 this[_rest] = rest = _HashSet._newHashTable(); 4432 this[_rest] = rest = _HashSet$()._newHashTable();
4433 let hash = this[_computeHashCode](element); 4433 let hash = this[_computeHashCode](element);
4434 let bucket = rest[hash]; 4434 let bucket = rest[hash];
4435 if (bucket == null) { 4435 if (bucket == null) {
4436 _HashSet._setTableEntry(rest, hash, [element]); 4436 _HashSet$()._setTableEntry(rest, hash, [element]);
4437 } else { 4437 } else {
4438 let index = this[_findBucketIndex](bucket, element); 4438 let index = this[_findBucketIndex](bucket, element);
4439 if (dart.notNull(index) >= 0) 4439 if (dart.notNull(index) >= 0)
4440 return false; 4440 return false;
4441 bucket.push(element); 4441 bucket.push(element);
4442 } 4442 }
4443 this[_length] = dart.notNull(this[_length]) + 1; 4443 this[_length] = dart.notNull(this[_length]) + 1;
4444 this[_elements] = null; 4444 this[_elements] = null;
4445 return true; 4445 return true;
4446 } 4446 }
4447 addAll(objects) { 4447 addAll(objects) {
4448 dart.as(objects, core.Iterable$(E)); 4448 dart.as(objects, core.Iterable$(E));
4449 for (let each of objects) { 4449 for (let each of objects) {
4450 this.add(each); 4450 this.add(each);
4451 } 4451 }
4452 } 4452 }
4453 remove(object) { 4453 remove(object) {
4454 if (_HashSet._isStringElement(object)) { 4454 if (_HashSet$()._isStringElement(object)) {
4455 return this[_removeHashTableEntry](this[_strings], object); 4455 return this[_removeHashTableEntry](this[_strings], object);
4456 } else if (_HashSet._isNumericElement(object)) { 4456 } else if (_HashSet$()._isNumericElement(object)) {
4457 return this[_removeHashTableEntry](this[_nums], object); 4457 return this[_removeHashTableEntry](this[_nums], object);
4458 } else { 4458 } else {
4459 return this[_remove](object); 4459 return this[_remove](object);
4460 } 4460 }
4461 } 4461 }
4462 [_remove](object) { 4462 [_remove](object) {
4463 let rest = this[_rest]; 4463 let rest = this[_rest];
4464 if (rest == null) 4464 if (rest == null)
4465 return false; 4465 return false;
4466 let bucket = this[_getBucket](rest, object); 4466 let bucket = this[_getBucket](rest, object);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
4515 result[index] = bucket[i]; 4515 result[index] = bucket[i];
4516 index = dart.notNull(index) + 1; 4516 index = dart.notNull(index) + 1;
4517 } 4517 }
4518 } 4518 }
4519 } 4519 }
4520 dart.assert(index == this[_length]); 4520 dart.assert(index == this[_length]);
4521 return this[_elements] = result; 4521 return this[_elements] = result;
4522 } 4522 }
4523 [_addHashTableEntry](table, element) { 4523 [_addHashTableEntry](table, element) {
4524 dart.as(element, E); 4524 dart.as(element, E);
4525 if (_HashSet._hasTableEntry(table, element)) 4525 if (_HashSet$()._hasTableEntry(table, element))
4526 return false; 4526 return false;
4527 _HashSet._setTableEntry(table, element, 0); 4527 _HashSet$()._setTableEntry(table, element, 0);
4528 this[_length] = dart.notNull(this[_length]) + 1; 4528 this[_length] = dart.notNull(this[_length]) + 1;
4529 this[_elements] = null; 4529 this[_elements] = null;
4530 return true; 4530 return true;
4531 } 4531 }
4532 [_removeHashTableEntry](table, element) { 4532 [_removeHashTableEntry](table, element) {
4533 if (dart.notNull(table != null) && dart.notNull(_HashSet._hasTableEntry( table, element))) { 4533 if (dart.notNull(table != null) && dart.notNull(_HashSet$()._hasTableEnt ry(table, element))) {
4534 _HashSet._deleteTableEntry(table, element); 4534 _HashSet$()._deleteTableEntry(table, element);
4535 this[_length] = dart.notNull(this[_length]) - 1; 4535 this[_length] = dart.notNull(this[_length]) - 1;
4536 this[_elements] = null; 4536 this[_elements] = null;
4537 return true; 4537 return true;
4538 } else { 4538 } else {
4539 return false; 4539 return false;
4540 } 4540 }
4541 } 4541 }
4542 static _isStringElement(element) { 4542 static _isStringElement(element) {
4543 return typeof element == 'string' && dart.notNull(!dart.equals(element, '__proto__')); 4543 return typeof element == 'string' && dart.notNull(!dart.equals(element, '__proto__'));
4544 } 4544 }
(...skipping 24 matching lines...) Expand all
4569 let length = bucket.length; 4569 let length = bucket.length;
4570 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 4570 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
4571 if (dart.equals(bucket[i], element)) 4571 if (dart.equals(bucket[i], element))
4572 return i; 4572 return i;
4573 } 4573 }
4574 return -1; 4574 return -1;
4575 } 4575 }
4576 static _newHashTable() { 4576 static _newHashTable() {
4577 let table = Object.create(null); 4577 let table = Object.create(null);
4578 let temporaryKey = '<non-identifier-key>'; 4578 let temporaryKey = '<non-identifier-key>';
4579 _HashSet._setTableEntry(table, temporaryKey, table); 4579 _HashSet$()._setTableEntry(table, temporaryKey, table);
4580 _HashSet._deleteTableEntry(table, temporaryKey); 4580 _HashSet$()._deleteTableEntry(table, temporaryKey);
4581 return table; 4581 return table;
4582 } 4582 }
4583 } 4583 }
4584 _HashSet[dart.implements] = () => [HashSet$(E)]; 4584 _HashSet[dart.implements] = () => [HashSet$(E)];
4585 return _HashSet; 4585 return _HashSet;
4586 }); 4586 });
4587 let _HashSet = _HashSet$(); 4587 let _HashSet = _HashSet$();
4588 let _IdentityHashSet$ = dart.generic(function(E) { 4588 let _IdentityHashSet$ = dart.generic(function(E) {
4589 class _IdentityHashSet extends _HashSet$(E) { 4589 class _IdentityHashSet extends _HashSet$(E) {
4590 _IdentityHashSet() { 4590 _IdentityHashSet() {
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
4713 get [core.$length]() { 4713 get [core.$length]() {
4714 return this[_length]; 4714 return this[_length];
4715 } 4715 }
4716 get [core.$isEmpty]() { 4716 get [core.$isEmpty]() {
4717 return this[_length] == 0; 4717 return this[_length] == 0;
4718 } 4718 }
4719 get [core.$isNotEmpty]() { 4719 get [core.$isNotEmpty]() {
4720 return !dart.notNull(this[core.$isEmpty]); 4720 return !dart.notNull(this[core.$isEmpty]);
4721 } 4721 }
4722 [core.$contains](object) { 4722 [core.$contains](object) {
4723 if (_LinkedHashSet._isStringElement(object)) { 4723 if (_LinkedHashSet$()._isStringElement(object)) {
4724 let strings = this[_strings]; 4724 let strings = this[_strings];
4725 if (strings == null) 4725 if (strings == null)
4726 return false; 4726 return false;
4727 let cell = dart.as(_LinkedHashSet._getTableEntry(strings, object), Lin kedHashSetCell); 4727 let cell = dart.as(_LinkedHashSet$()._getTableEntry(strings, object), LinkedHashSetCell);
4728 return cell != null; 4728 return cell != null;
4729 } else if (_LinkedHashSet._isNumericElement(object)) { 4729 } else if (_LinkedHashSet$()._isNumericElement(object)) {
4730 let nums = this[_nums]; 4730 let nums = this[_nums];
4731 if (nums == null) 4731 if (nums == null)
4732 return false; 4732 return false;
4733 let cell = dart.as(_LinkedHashSet._getTableEntry(nums, object), Linked HashSetCell); 4733 let cell = dart.as(_LinkedHashSet$()._getTableEntry(nums, object), Lin kedHashSetCell);
4734 return cell != null; 4734 return cell != null;
4735 } else { 4735 } else {
4736 return this[_contains](object); 4736 return this[_contains](object);
4737 } 4737 }
4738 } 4738 }
4739 [_contains](object) { 4739 [_contains](object) {
4740 let rest = this[_rest]; 4740 let rest = this[_rest];
4741 if (rest == null) 4741 if (rest == null)
4742 return false; 4742 return false;
4743 let bucket = this[_getBucket](rest, object); 4743 let bucket = this[_getBucket](rest, object);
4744 return dart.notNull(this[_findBucketIndex](bucket, object)) >= 0; 4744 return dart.notNull(this[_findBucketIndex](bucket, object)) >= 0;
4745 } 4745 }
4746 lookup(object) { 4746 lookup(object) {
4747 if (dart.notNull(_LinkedHashSet._isStringElement(object)) || dart.notNul l(_LinkedHashSet._isNumericElement(object))) { 4747 if (dart.notNull(_LinkedHashSet$()._isStringElement(object)) || dart.not Null(_LinkedHashSet$()._isNumericElement(object))) {
4748 return dart.as(this[core.$contains](object) ? object : null, E); 4748 return dart.as(this[core.$contains](object) ? object : null, E);
4749 } else { 4749 } else {
4750 return this[_lookup](object); 4750 return this[_lookup](object);
4751 } 4751 }
4752 } 4752 }
4753 [_lookup](object) { 4753 [_lookup](object) {
4754 let rest = this[_rest]; 4754 let rest = this[_rest];
4755 if (rest == null) 4755 if (rest == null)
4756 return null; 4756 return null;
4757 let bucket = this[_getBucket](rest, object); 4757 let bucket = this[_getBucket](rest, object);
(...skipping 19 matching lines...) Expand all
4777 throw new core.StateError("No elements"); 4777 throw new core.StateError("No elements");
4778 return dart.as(this[_first][_element], E); 4778 return dart.as(this[_first][_element], E);
4779 } 4779 }
4780 get [core.$last]() { 4780 get [core.$last]() {
4781 if (this[_last] == null) 4781 if (this[_last] == null)
4782 throw new core.StateError("No elements"); 4782 throw new core.StateError("No elements");
4783 return dart.as(this[_last][_element], E); 4783 return dart.as(this[_last][_element], E);
4784 } 4784 }
4785 add(element) { 4785 add(element) {
4786 dart.as(element, E); 4786 dart.as(element, E);
4787 if (_LinkedHashSet._isStringElement(element)) { 4787 if (_LinkedHashSet$()._isStringElement(element)) {
4788 let strings = this[_strings]; 4788 let strings = this[_strings];
4789 if (strings == null) 4789 if (strings == null)
4790 this[_strings] = strings = _LinkedHashSet._newHashTable(); 4790 this[_strings] = strings = _LinkedHashSet$()._newHashTable();
4791 return this[_addHashTableEntry](strings, element); 4791 return this[_addHashTableEntry](strings, element);
4792 } else if (_LinkedHashSet._isNumericElement(element)) { 4792 } else if (_LinkedHashSet$()._isNumericElement(element)) {
4793 let nums = this[_nums]; 4793 let nums = this[_nums];
4794 if (nums == null) 4794 if (nums == null)
4795 this[_nums] = nums = _LinkedHashSet._newHashTable(); 4795 this[_nums] = nums = _LinkedHashSet$()._newHashTable();
4796 return this[_addHashTableEntry](nums, element); 4796 return this[_addHashTableEntry](nums, element);
4797 } else { 4797 } else {
4798 return this[_add](element); 4798 return this[_add](element);
4799 } 4799 }
4800 } 4800 }
4801 [_add](element) { 4801 [_add](element) {
4802 dart.as(element, E); 4802 dart.as(element, E);
4803 let rest = this[_rest]; 4803 let rest = this[_rest];
4804 if (rest == null) 4804 if (rest == null)
4805 this[_rest] = rest = _LinkedHashSet._newHashTable(); 4805 this[_rest] = rest = _LinkedHashSet$()._newHashTable();
4806 let hash = this[_computeHashCode](element); 4806 let hash = this[_computeHashCode](element);
4807 let bucket = rest[hash]; 4807 let bucket = rest[hash];
4808 if (bucket == null) { 4808 if (bucket == null) {
4809 let cell = this[_newLinkedCell](element); 4809 let cell = this[_newLinkedCell](element);
4810 _LinkedHashSet._setTableEntry(rest, hash, [cell]); 4810 _LinkedHashSet$()._setTableEntry(rest, hash, [cell]);
4811 } else { 4811 } else {
4812 let index = this[_findBucketIndex](bucket, element); 4812 let index = this[_findBucketIndex](bucket, element);
4813 if (dart.notNull(index) >= 0) 4813 if (dart.notNull(index) >= 0)
4814 return false; 4814 return false;
4815 let cell = this[_newLinkedCell](element); 4815 let cell = this[_newLinkedCell](element);
4816 bucket.push(cell); 4816 bucket.push(cell);
4817 } 4817 }
4818 return true; 4818 return true;
4819 } 4819 }
4820 remove(object) { 4820 remove(object) {
4821 if (_LinkedHashSet._isStringElement(object)) { 4821 if (_LinkedHashSet$()._isStringElement(object)) {
4822 return this[_removeHashTableEntry](this[_strings], object); 4822 return this[_removeHashTableEntry](this[_strings], object);
4823 } else if (_LinkedHashSet._isNumericElement(object)) { 4823 } else if (_LinkedHashSet$()._isNumericElement(object)) {
4824 return this[_removeHashTableEntry](this[_nums], object); 4824 return this[_removeHashTableEntry](this[_nums], object);
4825 } else { 4825 } else {
4826 return this[_remove](object); 4826 return this[_remove](object);
4827 } 4827 }
4828 } 4828 }
4829 [_remove](object) { 4829 [_remove](object) {
4830 let rest = this[_rest]; 4830 let rest = this[_rest];
4831 if (rest == null) 4831 if (rest == null)
4832 return false; 4832 return false;
4833 let bucket = this[_getBucket](rest, object); 4833 let bucket = this[_getBucket](rest, object);
(...skipping 30 matching lines...) Expand all
4864 } 4864 }
4865 clear() { 4865 clear() {
4866 if (dart.notNull(this[_length]) > 0) { 4866 if (dart.notNull(this[_length]) > 0) {
4867 this[_strings] = this[_nums] = this[_rest] = this[_first] = this[_last ] = null; 4867 this[_strings] = this[_nums] = this[_rest] = this[_first] = this[_last ] = null;
4868 this[_length] = 0; 4868 this[_length] = 0;
4869 this[_modified](); 4869 this[_modified]();
4870 } 4870 }
4871 } 4871 }
4872 [_addHashTableEntry](table, element) { 4872 [_addHashTableEntry](table, element) {
4873 dart.as(element, E); 4873 dart.as(element, E);
4874 let cell = dart.as(_LinkedHashSet._getTableEntry(table, element), Linked HashSetCell); 4874 let cell = dart.as(_LinkedHashSet$()._getTableEntry(table, element), Lin kedHashSetCell);
4875 if (cell != null) 4875 if (cell != null)
4876 return false; 4876 return false;
4877 _LinkedHashSet._setTableEntry(table, element, this[_newLinkedCell](eleme nt)); 4877 _LinkedHashSet$()._setTableEntry(table, element, this[_newLinkedCell](el ement));
4878 return true; 4878 return true;
4879 } 4879 }
4880 [_removeHashTableEntry](table, element) { 4880 [_removeHashTableEntry](table, element) {
4881 if (table == null) 4881 if (table == null)
4882 return false; 4882 return false;
4883 let cell = dart.as(_LinkedHashSet._getTableEntry(table, element), Linked HashSetCell); 4883 let cell = dart.as(_LinkedHashSet$()._getTableEntry(table, element), Lin kedHashSetCell);
4884 if (cell == null) 4884 if (cell == null)
4885 return false; 4885 return false;
4886 this[_unlinkCell](cell); 4886 this[_unlinkCell](cell);
4887 _LinkedHashSet._deleteTableEntry(table, element); 4887 _LinkedHashSet$()._deleteTableEntry(table, element);
4888 return true; 4888 return true;
4889 } 4889 }
4890 [_modified]() { 4890 [_modified]() {
4891 this[_modifications] = dart.notNull(this[_modifications]) + 1 & 67108863 ; 4891 this[_modifications] = dart.notNull(this[_modifications]) + 1 & 67108863 ;
4892 } 4892 }
4893 [_newLinkedCell](element) { 4893 [_newLinkedCell](element) {
4894 dart.as(element, E); 4894 dart.as(element, E);
4895 let cell = new LinkedHashSetCell(element); 4895 let cell = new LinkedHashSetCell(element);
4896 if (this[_first] == null) { 4896 if (this[_first] == null) {
4897 this[_first] = this[_last] = cell; 4897 this[_first] = this[_last] = cell;
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
4952 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 4952 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
4953 let cell = dart.as(bucket[i], LinkedHashSetCell); 4953 let cell = dart.as(bucket[i], LinkedHashSetCell);
4954 if (dart.equals(cell[_element], element)) 4954 if (dart.equals(cell[_element], element))
4955 return i; 4955 return i;
4956 } 4956 }
4957 return -1; 4957 return -1;
4958 } 4958 }
4959 static _newHashTable() { 4959 static _newHashTable() {
4960 let table = Object.create(null); 4960 let table = Object.create(null);
4961 let temporaryKey = '<non-identifier-key>'; 4961 let temporaryKey = '<non-identifier-key>';
4962 _LinkedHashSet._setTableEntry(table, temporaryKey, table); 4962 _LinkedHashSet$()._setTableEntry(table, temporaryKey, table);
4963 _LinkedHashSet._deleteTableEntry(table, temporaryKey); 4963 _LinkedHashSet$()._deleteTableEntry(table, temporaryKey);
4964 return table; 4964 return table;
4965 } 4965 }
4966 } 4966 }
4967 _LinkedHashSet[dart.implements] = () => [LinkedHashSet$(E)]; 4967 _LinkedHashSet[dart.implements] = () => [LinkedHashSet$(E)];
4968 return _LinkedHashSet; 4968 return _LinkedHashSet;
4969 }); 4969 });
4970 let _LinkedHashSet = _LinkedHashSet$(); 4970 let _LinkedHashSet = _LinkedHashSet$();
4971 let _LinkedIdentityHashSet$ = dart.generic(function(E) { 4971 let _LinkedIdentityHashSet$ = dart.generic(function(E) {
4972 class _LinkedIdentityHashSet extends _LinkedHashSet$(E) { 4972 class _LinkedIdentityHashSet extends _LinkedHashSet$(E) {
4973 _LinkedIdentityHashSet() { 4973 _LinkedIdentityHashSet() {
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
5089 } 5089 }
5090 } 5090 }
5091 LinkedHashSetIterator[dart.implements] = () => [core.Iterator$(E)]; 5091 LinkedHashSetIterator[dart.implements] = () => [core.Iterator$(E)];
5092 return LinkedHashSetIterator; 5092 return LinkedHashSetIterator;
5093 }); 5093 });
5094 let LinkedHashSetIterator = LinkedHashSetIterator$(); 5094 let LinkedHashSetIterator = LinkedHashSetIterator$();
5095 // Exports: 5095 // Exports:
5096 exports.UnmodifiableListView$ = UnmodifiableListView$; 5096 exports.UnmodifiableListView$ = UnmodifiableListView$;
5097 exports.HashMap$ = HashMap$; 5097 exports.HashMap$ = HashMap$;
5098 exports.HashMap = HashMap; 5098 exports.HashMap = HashMap;
5099 exports.SetMixin$ = SetMixin$;
5100 exports.SetMixin = SetMixin;
5099 exports.SetBase$ = SetBase$; 5101 exports.SetBase$ = SetBase$;
5100 exports.SetBase = SetBase; 5102 exports.SetBase = SetBase;
5101 exports.SetMixin$ = SetMixin$;
5102 exports.SetMixin = SetMixin;
5103 exports.HashSet$ = HashSet$; 5103 exports.HashSet$ = HashSet$;
5104 exports.HashSet = HashSet; 5104 exports.HashSet = HashSet;
5105 exports.IterableMixin$ = IterableMixin$; 5105 exports.IterableMixin$ = IterableMixin$;
5106 exports.IterableMixin = IterableMixin; 5106 exports.IterableMixin = IterableMixin;
5107 exports.IterableBase$ = IterableBase$; 5107 exports.IterableBase$ = IterableBase$;
5108 exports.IterableBase = IterableBase; 5108 exports.IterableBase = IterableBase;
5109 exports.HasNextIterator$ = HasNextIterator$; 5109 exports.HasNextIterator$ = HasNextIterator$;
5110 exports.HasNextIterator = HasNextIterator; 5110 exports.HasNextIterator = HasNextIterator;
5111 exports.LinkedHashMap$ = LinkedHashMap$; 5111 exports.LinkedHashMap$ = LinkedHashMap$;
5112 exports.LinkedHashMap = LinkedHashMap; 5112 exports.LinkedHashMap = LinkedHashMap;
5113 exports.LinkedHashSet$ = LinkedHashSet$; 5113 exports.LinkedHashSet$ = LinkedHashSet$;
5114 exports.LinkedHashSet = LinkedHashSet; 5114 exports.LinkedHashSet = LinkedHashSet;
5115 exports.LinkedList$ = LinkedList$; 5115 exports.LinkedList$ = LinkedList$;
5116 exports.LinkedList = LinkedList; 5116 exports.LinkedList = LinkedList;
5117 exports.LinkedListEntry$ = LinkedListEntry$; 5117 exports.LinkedListEntry$ = LinkedListEntry$;
5118 exports.LinkedListEntry = LinkedListEntry; 5118 exports.LinkedListEntry = LinkedListEntry;
5119 exports.ListMixin$ = ListMixin$;
5120 exports.ListMixin = ListMixin;
5119 exports.ListBase$ = ListBase$; 5121 exports.ListBase$ = ListBase$;
5120 exports.ListBase = ListBase; 5122 exports.ListBase = ListBase;
5121 exports.ListMixin$ = ListMixin$; 5123 exports.MapMixin$ = MapMixin$;
5122 exports.ListMixin = ListMixin; 5124 exports.MapMixin = MapMixin;
5123 exports.MapBase$ = MapBase$; 5125 exports.MapBase$ = MapBase$;
5124 exports.MapBase = MapBase; 5126 exports.MapBase = MapBase;
5125 exports.MapMixin$ = MapMixin$;
5126 exports.MapMixin = MapMixin;
5127 exports.UnmodifiableMapBase$ = UnmodifiableMapBase$; 5127 exports.UnmodifiableMapBase$ = UnmodifiableMapBase$;
5128 exports.UnmodifiableMapBase = UnmodifiableMapBase; 5128 exports.UnmodifiableMapBase = UnmodifiableMapBase;
5129 exports.MapView$ = MapView$; 5129 exports.MapView$ = MapView$;
5130 exports.MapView = MapView; 5130 exports.MapView = MapView;
5131 exports.UnmodifiableMapView$ = UnmodifiableMapView$; 5131 exports.UnmodifiableMapView$ = UnmodifiableMapView$;
5132 exports.UnmodifiableMapView = UnmodifiableMapView; 5132 exports.UnmodifiableMapView = UnmodifiableMapView;
5133 exports.Maps = Maps; 5133 exports.Maps = Maps;
5134 exports.Queue$ = Queue$; 5134 exports.Queue$ = Queue$;
5135 exports.Queue = Queue; 5135 exports.Queue = Queue;
5136 exports.DoubleLinkedQueueEntry$ = DoubleLinkedQueueEntry$; 5136 exports.DoubleLinkedQueueEntry$ = DoubleLinkedQueueEntry$;
(...skipping 14 matching lines...) Expand all
5151 exports.LinkedHashMapKeyIterable$ = LinkedHashMapKeyIterable$; 5151 exports.LinkedHashMapKeyIterable$ = LinkedHashMapKeyIterable$;
5152 exports.LinkedHashMapKeyIterable = LinkedHashMapKeyIterable; 5152 exports.LinkedHashMapKeyIterable = LinkedHashMapKeyIterable;
5153 exports.LinkedHashMapKeyIterator$ = LinkedHashMapKeyIterator$; 5153 exports.LinkedHashMapKeyIterator$ = LinkedHashMapKeyIterator$;
5154 exports.LinkedHashMapKeyIterator = LinkedHashMapKeyIterator; 5154 exports.LinkedHashMapKeyIterator = LinkedHashMapKeyIterator;
5155 exports.HashSetIterator$ = HashSetIterator$; 5155 exports.HashSetIterator$ = HashSetIterator$;
5156 exports.HashSetIterator = HashSetIterator; 5156 exports.HashSetIterator = HashSetIterator;
5157 exports.LinkedHashSetCell = LinkedHashSetCell; 5157 exports.LinkedHashSetCell = LinkedHashSetCell;
5158 exports.LinkedHashSetIterator$ = LinkedHashSetIterator$; 5158 exports.LinkedHashSetIterator$ = LinkedHashSetIterator$;
5159 exports.LinkedHashSetIterator = LinkedHashSetIterator; 5159 exports.LinkedHashSetIterator = LinkedHashSetIterator;
5160 })(collection, _internal, core, _js_helper, math); 5160 })(collection, _internal, core, _js_helper, math);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698