OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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; |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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); |
OLD | NEW |