Index: lib/runtime/dart/collection.js |
diff --git a/lib/runtime/dart/collection.js b/lib/runtime/dart/collection.js |
index fb349ba24347530099bf6ad4f1f96d0c7972340e..1305ed5298f85750de58fbba2154aa5863d7b66f 100644 |
--- a/lib/runtime/dart/collection.js |
+++ b/lib/runtime/dart/collection.js |
@@ -39,8 +39,11 @@ var collection; |
class HashMap extends core.Object { |
HashMap(opts) { |
let equals = opts && 'equals' in opts ? opts.equals : null; |
+ dart.as(equals, dart.functionType(core.bool, [K, K])); |
vsm
2015/04/30 14:00:51
We shouldn't need runtime checks on constructor pa
Jennifer Messerly
2015/05/01 20:43:04
fixed
|
let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null; |
+ dart.as(hashCode, dart.functionType(core.int, [K])); |
let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null; |
+ dart.as(isValidKey, dart.functionType(core.bool, [dart.dynamic])); |
if (isValidKey == null) { |
if (hashCode == null) { |
if (equals == null) { |
@@ -77,7 +80,9 @@ var collection; |
} |
fromIterable(iterable, opts) { |
let key = opts && 'key' in opts ? opts.key : null; |
+ dart.as(key, dart.functionType(K, [dart.dynamic])); |
let value = opts && 'value' in opts ? opts.value : null; |
+ dart.as(value, dart.functionType(V, [dart.dynamic])); |
let map = new (HashMap$(K, V))(); |
Maps._fillMapWithMappedIterable(map, iterable, key, value); |
return map; |
@@ -300,7 +305,9 @@ var collection; |
return result; |
} |
[core.$firstWhere](test, opts) { |
+ dart.as(test, dart.functionType(core.bool, [E])); |
let orElse = opts && 'orElse' in opts ? opts.orElse : null; |
+ dart.as(orElse, dart.functionType(E, [])); |
for (let element of this) { |
if (test(element)) |
return element; |
@@ -310,7 +317,9 @@ var collection; |
throw _internal.IterableElementError.noElement(); |
} |
[core.$lastWhere](test, opts) { |
+ dart.as(test, dart.functionType(core.bool, [E])); |
let orElse = opts && 'orElse' in opts ? opts.orElse : null; |
+ dart.as(orElse, dart.functionType(E, [])); |
let result = null; |
let foundMatching = false; |
for (let element of this) { |
@@ -400,8 +409,11 @@ var collection; |
class HashSet extends core.Object { |
HashSet(opts) { |
let equals = opts && 'equals' in opts ? opts.equals : null; |
+ dart.as(equals, dart.functionType(core.bool, [E, E])); |
let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null; |
+ dart.as(hashCode, dart.functionType(core.int, [E])); |
let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null; |
+ dart.as(isValidKey, dart.functionType(core.bool, [dart.dynamic])); |
if (isValidKey == null) { |
if (hashCode == null) { |
if (equals == null) { |
@@ -587,7 +599,9 @@ var collection; |
return result; |
} |
[core.$firstWhere](test, opts) { |
+ dart.as(test, dart.functionType(core.bool, [E])); |
let orElse = opts && 'orElse' in opts ? opts.orElse : null; |
+ dart.as(orElse, dart.functionType(E, [])); |
for (let element of this) { |
if (test(element)) |
return element; |
@@ -597,7 +611,9 @@ var collection; |
throw _internal.IterableElementError.noElement(); |
} |
[core.$lastWhere](test, opts) { |
+ dart.as(test, dart.functionType(core.bool, [E])); |
let orElse = opts && 'orElse' in opts ? opts.orElse : null; |
+ dart.as(orElse, dart.functionType(E, [])); |
let result = null; |
let foundMatching = false; |
for (let element of this) { |
@@ -785,7 +801,9 @@ var collection; |
return result; |
} |
[core.$firstWhere](test, opts) { |
+ dart.as(test, dart.functionType(core.bool, [E])); |
let orElse = opts && 'orElse' in opts ? opts.orElse : null; |
+ dart.as(orElse, dart.functionType(E, [])); |
for (let element of this) { |
if (test(element)) |
return element; |
@@ -795,7 +813,9 @@ var collection; |
throw _internal.IterableElementError.noElement(); |
} |
[core.$lastWhere](test, opts) { |
+ dart.as(test, dart.functionType(core.bool, [E])); |
let orElse = opts && 'orElse' in opts ? opts.orElse : null; |
+ dart.as(orElse, dart.functionType(E, [])); |
let result = null; |
let foundMatching = false; |
for (let element of this) { |
@@ -1021,8 +1041,11 @@ var collection; |
class LinkedHashMap extends core.Object { |
LinkedHashMap(opts) { |
let equals = opts && 'equals' in opts ? opts.equals : null; |
+ dart.as(equals, dart.functionType(core.bool, [K, K])); |
let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null; |
+ dart.as(hashCode, dart.functionType(core.int, [K])); |
let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null; |
+ dart.as(isValidKey, dart.functionType(core.bool, [dart.dynamic])); |
if (isValidKey == null) { |
if (hashCode == null) { |
if (equals == null) { |
@@ -1059,7 +1082,9 @@ var collection; |
} |
fromIterable(iterable, opts) { |
let key = opts && 'key' in opts ? opts.key : null; |
+ dart.as(key, dart.functionType(K, [dart.dynamic])); |
let value = opts && 'value' in opts ? opts.value : null; |
+ dart.as(value, dart.functionType(V, [dart.dynamic])); |
let map = new (LinkedHashMap$(K, V))(); |
Maps._fillMapWithMappedIterable(map, iterable, key, value); |
return map; |
@@ -1100,8 +1125,11 @@ var collection; |
class LinkedHashSet extends core.Object { |
LinkedHashSet(opts) { |
let equals = opts && 'equals' in opts ? opts.equals : null; |
+ dart.as(equals, dart.functionType(core.bool, [E, E])); |
let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null; |
+ dart.as(hashCode, dart.functionType(core.int, [E])); |
let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null; |
+ dart.as(isValidKey, dart.functionType(core.bool, [dart.dynamic])); |
if (isValidKey == null) { |
if (hashCode == null) { |
if (equals == null) { |
@@ -1171,15 +1199,18 @@ var collection; |
this[_next] = this[_previous] = this; |
} |
addFirst(entry) { |
+ dart.as(entry, E); |
this[_insertAfter](this, entry); |
} |
add(entry) { |
+ dart.as(entry, E); |
this[_insertAfter](this[_previous], entry); |
} |
addAll(entries) { |
entries[core.$forEach]((entry => this[_insertAfter](this[_previous], dart.as(entry, E))).bind(this)); |
} |
remove(entry) { |
+ dart.as(entry, E); |
if (!dart.equals(entry[_list], this)) |
return false; |
this[_unlink](entry); |
@@ -1238,6 +1269,7 @@ var collection; |
return this[_length] == 0; |
} |
[_insertAfter](entry, newEntry) { |
+ dart.as(newEntry, E); |
if (newEntry.list != null) { |
throw new core.StateError('LinkedListEntry is already in a LinkedList'); |
} |
@@ -1323,9 +1355,11 @@ var collection; |
return dart.as(this[_previous], E); |
} |
insertAfter(entry) { |
+ dart.as(entry, E); |
this[_list][_insertAfter](this, entry); |
} |
insertBefore(entry) { |
+ dart.as(entry, E); |
this[_list][_insertAfter](this[_previous], entry); |
} |
} |
@@ -1407,7 +1441,9 @@ var collection; |
return false; |
} |
[core.$firstWhere](test, opts) { |
+ dart.as(test, dart.functionType(core.bool, [E])); |
let orElse = opts && 'orElse' in opts ? opts.orElse : null; |
+ dart.as(orElse, dart.functionType(E, [])); |
let length = this[core.$length]; |
for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull(i) + 1) { |
let element = this[core.$get](i); |
@@ -1422,7 +1458,9 @@ var collection; |
throw _internal.IterableElementError.noElement(); |
} |
[core.$lastWhere](test, opts) { |
+ dart.as(test, dart.functionType(core.bool, [E])); |
let orElse = opts && 'orElse' in opts ? opts.orElse : null; |
+ dart.as(orElse, dart.functionType(E, [])); |
let length = this[core.$length]; |
for (let i = dart.notNull(length) - 1; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) { |
let element = this[core.$get](i); |
@@ -1533,6 +1571,7 @@ var collection; |
return result; |
} |
[core.$add](element) { |
+ dart.as(element, E); |
this[core.$set]((() => { |
let o = this, x = o[core.$length]; |
o[core.$length] = dart.notNull(x) + 1; |
@@ -1596,6 +1635,7 @@ var collection; |
[core.$sort](compare) { |
if (compare === void 0) |
compare = null; |
+ dart.as(compare, dart.functionType(core.int, [E, E])); |
if (compare == null) { |
let defaultCompare = dart.bind(core.Comparable, 'compare'); |
compare = defaultCompare; |
@@ -1648,12 +1688,14 @@ var collection; |
[core.$fillRange](start, end, fill) { |
if (fill === void 0) |
fill = null; |
+ dart.as(fill, E); |
core.RangeError.checkValidRange(start, end, this[core.$length]); |
for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) + 1) { |
this[core.$set](i, fill); |
} |
} |
[core.$setRange](start, end, iterable, skipCount) { |
+ dart.as(iterable, core.Iterable$(E)); |
if (skipCount === void 0) |
skipCount = 0; |
core.RangeError.checkValidRange(start, end, this[core.$length]); |
@@ -1745,6 +1787,7 @@ var collection; |
return -1; |
} |
[core.$insert](index, element) { |
+ dart.as(element, E); |
core.RangeError.checkValueInInterval(index, 0, this[core.$length], "index"); |
if (index == this[core.$length]) { |
this[core.$add](element); |
@@ -1820,6 +1863,7 @@ var collection; |
} |
} |
containsValue(value) { |
+ dart.as(value, V); |
for (let key of this.keys) { |
if (dart.equals(this.get(key), value)) |
return true; |
@@ -1827,6 +1871,8 @@ var collection; |
return false; |
} |
putIfAbsent(key, ifAbsent) { |
+ dart.as(key, K); |
+ dart.as(ifAbsent, dart.functionType(V, [])); |
if (this.keys[core.$contains](key)) { |
return this.get(key); |
} |
@@ -1863,6 +1909,8 @@ var collection; |
let _UnmodifiableMapMixin$ = dart.generic(function(K, V) { |
class _UnmodifiableMapMixin extends core.Object { |
set(key, value) { |
+ dart.as(key, K); |
+ dart.as(value, V); |
throw new core.UnsupportedError("Cannot modify unmodifiable map"); |
} |
addAll(other) { |
@@ -1875,6 +1923,8 @@ var collection; |
throw new core.UnsupportedError("Cannot modify unmodifiable map"); |
} |
putIfAbsent(key, ifAbsent) { |
+ dart.as(key, K); |
+ dart.as(ifAbsent, dart.functionType(V, [])); |
throw new core.UnsupportedError("Cannot modify unmodifiable map"); |
} |
} |
@@ -1953,6 +2003,8 @@ var collection; |
return this[_map].get(key); |
} |
set(key, value) { |
+ dart.as(key, K); |
+ dart.as(value, V); |
this[_map].set(key, value); |
} |
addAll(other) { |
@@ -1962,6 +2014,8 @@ var collection; |
this[_map].clear(); |
} |
putIfAbsent(key, ifAbsent) { |
+ dart.as(key, K); |
+ dart.as(ifAbsent, dart.functionType(V, [])); |
return this[_map].putIfAbsent(key, ifAbsent); |
} |
containsKey(key) { |
@@ -2123,6 +2177,7 @@ var collection; |
let DoubleLinkedQueueEntry$ = dart.generic(function(E) { |
class DoubleLinkedQueueEntry extends core.Object { |
DoubleLinkedQueueEntry(e) { |
+ dart.as(e, E); |
this[_element] = e; |
this[_previous] = null; |
this[_next] = null; |
@@ -2134,9 +2189,11 @@ var collection; |
next[_previous] = this; |
} |
append(e) { |
+ dart.as(e, E); |
new (DoubleLinkedQueueEntry$(E))(e)[_link](this, this[_next]); |
} |
prepend(e) { |
+ dart.as(e, E); |
new (DoubleLinkedQueueEntry$(E))(e)[_link](this[_previous], this); |
} |
remove() { |
@@ -2159,6 +2216,7 @@ var collection; |
return this[_element]; |
} |
set element(e) { |
+ dart.as(e, E); |
this[_element] = e; |
} |
} |
@@ -2178,6 +2236,7 @@ var collection; |
return null; |
} |
set element(e) { |
+ dart.as(e, E); |
dart.assert(false); |
} |
get element() { |
@@ -2209,14 +2268,17 @@ var collection; |
return this[_elementCount]; |
} |
addLast(value) { |
+ dart.as(value, E); |
this[_sentinel].prepend(value); |
this[_elementCount] = dart.notNull(this[_elementCount]) + 1; |
} |
addFirst(value) { |
+ dart.as(value, E); |
this[_sentinel].append(value); |
this[_elementCount] = dart.notNull(this[_elementCount]) + 1; |
} |
add(value) { |
+ dart.as(value, E); |
this[_sentinel].prepend(value); |
this[_elementCount] = dart.notNull(this[_elementCount]) + 1; |
} |
@@ -2436,6 +2498,7 @@ var collection; |
return list; |
} |
add(element) { |
+ dart.as(element, E); |
this[_add](element); |
} |
addAll(elements) { |
@@ -2511,9 +2574,11 @@ var collection; |
return IterableBase.iterableToFullString(this, "{", "}"); |
} |
addLast(element) { |
+ dart.as(element, E); |
this[_add](element); |
} |
addFirst(element) { |
+ dart.as(element, E); |
this[_head] = dart.notNull(this[_head]) - 1 & dart.notNull(this[_table][core.$length]) - 1; |
this[_table][core.$set](this[_head], element); |
if (this[_head] == this[_tail]) |
@@ -2557,6 +2622,7 @@ var collection; |
} |
} |
[_add](element) { |
+ dart.as(element, E); |
this[_table][core.$set](this[_tail], element); |
this[_tail] = dart.notNull(this[_tail]) + 1 & dart.notNull(this[_table][core.$length]) - 1; |
if (this[_head] == this[_tail]) |
@@ -2665,6 +2731,7 @@ var collection; |
let _SplayTreeNode$ = dart.generic(function(K) { |
class _SplayTreeNode extends core.Object { |
_SplayTreeNode(key) { |
+ dart.as(key, K); |
this.key = key; |
this.left = null; |
this.right = null; |
@@ -2676,6 +2743,8 @@ var collection; |
let _SplayTreeMapNode$ = dart.generic(function(K, V) { |
class _SplayTreeMapNode extends _SplayTreeNode$(K) { |
_SplayTreeMapNode(key, value) { |
+ dart.as(key, K); |
+ dart.as(value, V); |
this.value = value; |
super._SplayTreeNode(key); |
} |
@@ -2705,6 +2774,7 @@ var collection; |
this[_splayCount] = 0; |
} |
[_splay](key) { |
+ dart.as(key, K); |
if (this[_root] == null) |
return -1; |
let left = this[_dummy]; |
@@ -2778,6 +2848,7 @@ var collection; |
return dart.as(current, _SplayTreeNode$(K)); |
} |
[_remove](key) { |
+ dart.as(key, K); |
if (this[_root] == null) |
return null; |
let comp = this[_splay](key); |
@@ -2850,8 +2921,10 @@ var collection; |
SplayTreeMap(compare, isValidKey) { |
if (compare === void 0) |
compare = null; |
+ dart.as(compare, dart.functionType(core.int, [K, K])); |
if (isValidKey === void 0) |
isValidKey = null; |
+ dart.as(isValidKey, dart.functionType(core.bool, [dart.dynamic])); |
this[_comparator] = dart.as(compare == null ? dart.bind(core.Comparable, 'compare') : compare, core.Comparator$(K)); |
this[_validKey] = dart.as(isValidKey != null ? isValidKey : v => dart.is(v, K), _Predicate); |
super._SplayTree(); |
@@ -2859,8 +2932,10 @@ var collection; |
from(other, compare, isValidKey) { |
if (compare === void 0) |
compare = null; |
+ dart.as(compare, dart.functionType(core.int, [K, K])); |
if (isValidKey === void 0) |
isValidKey = null; |
+ dart.as(isValidKey, dart.functionType(core.bool, [dart.dynamic])); |
let result = new (SplayTreeMap$(K, V))(); |
other.forEach((k, v) => { |
result.set(k, dart.as(v, V)); |
@@ -2869,23 +2944,33 @@ var collection; |
} |
fromIterable(iterable, opts) { |
let key = opts && 'key' in opts ? opts.key : null; |
+ dart.as(key, dart.functionType(K, [dart.dynamic])); |
let value = opts && 'value' in opts ? opts.value : null; |
+ dart.as(value, dart.functionType(V, [dart.dynamic])); |
let compare = opts && 'compare' in opts ? opts.compare : null; |
+ dart.as(compare, dart.functionType(core.int, [K, K])); |
let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null; |
+ dart.as(isValidKey, dart.functionType(core.bool, [dart.dynamic])); |
let map = new (SplayTreeMap$(K, V))(compare, isValidKey); |
Maps._fillMapWithMappedIterable(map, iterable, key, value); |
return map; |
} |
fromIterables(keys, values, compare, isValidKey) { |
+ dart.as(keys, core.Iterable$(K)); |
+ dart.as(values, core.Iterable$(V)); |
if (compare === void 0) |
compare = null; |
+ dart.as(compare, dart.functionType(core.int, [K, K])); |
if (isValidKey === void 0) |
isValidKey = null; |
+ dart.as(isValidKey, dart.functionType(core.bool, [dart.dynamic])); |
let map = new (SplayTreeMap$(K, V))(compare, isValidKey); |
Maps._fillMapWithIterables(map, keys, values); |
return map; |
} |
[_compare](key1, key2) { |
+ dart.as(key1, K); |
+ dart.as(key2, K); |
return this[_comparator](key1, key2); |
} |
_internal() { |
@@ -2916,6 +3001,8 @@ var collection; |
return null; |
} |
set(key, value) { |
+ dart.as(key, K); |
+ dart.as(value, V); |
if (key == null) |
throw new core.ArgumentError(key); |
let comp = this[_splay](key); |
@@ -2927,6 +3014,8 @@ var collection; |
this[_addNewRoot](new (_SplayTreeMapNode$(K, dart.dynamic))(key, value), comp); |
} |
putIfAbsent(key, ifAbsent) { |
+ dart.as(key, K); |
+ dart.as(ifAbsent, dart.functionType(V, [])); |
if (key == null) |
throw new core.ArgumentError(key); |
let comp = this[_splay](key); |
@@ -2949,6 +3038,8 @@ var collection; |
} |
addAll(other) { |
other.forEach(((key, value) => { |
+ dart.as(key, K); |
+ dart.as(value, V); |
this.set(key, value); |
}).bind(this)); |
} |
@@ -3013,6 +3104,7 @@ var collection; |
return dart.as(this[_last].key, K); |
} |
lastKeyBefore(key) { |
+ dart.as(key, K); |
if (key == null) |
throw new core.ArgumentError(key); |
if (this[_root] == null) |
@@ -3029,6 +3121,7 @@ var collection; |
return node.key; |
} |
firstKeyAfter(key) { |
+ dart.as(key, K); |
if (key == null) |
throw new core.ArgumentError(key); |
if (this[_root] == null) |
@@ -3222,8 +3315,10 @@ var collection; |
SplayTreeSet(compare, isValidKey) { |
if (compare === void 0) |
compare = null; |
+ dart.as(compare, dart.functionType(core.int, [E, E])); |
if (isValidKey === void 0) |
isValidKey = null; |
+ dart.as(isValidKey, dart.functionType(core.bool, [dart.dynamic])); |
this[_comparator] = dart.as(compare == null ? dart.bind(core.Comparable, 'compare') : compare, core.Comparator); |
this[_validKey] = dart.as(isValidKey != null ? isValidKey : v => dart.is(v, E), _Predicate); |
super._SplayTree(); |
@@ -3231,8 +3326,10 @@ var collection; |
from(elements, compare, isValidKey) { |
if (compare === void 0) |
compare = null; |
+ dart.as(compare, dart.functionType(core.int, [E, E])); |
if (isValidKey === void 0) |
isValidKey = null; |
+ dart.as(isValidKey, dart.functionType(core.bool, [dart.dynamic])); |
let result = new (SplayTreeSet$(E))(compare, isValidKey); |
for (let element of dart.as(elements, core.Iterable$(E))) { |
result.add(element); |
@@ -3240,6 +3337,8 @@ var collection; |
return result; |
} |
[_compare](e1, e2) { |
+ dart.as(e1, E); |
+ dart.as(e2, E); |
return dart.dcall(this[_comparator], e1, e2); |
} |
get [core.$iterator]() { |
@@ -3275,6 +3374,7 @@ var collection; |
return dart.notNull(dart.dcall(this[_validKey], object)) && this[_splay](dart.as(object, E)) == 0; |
} |
add(element) { |
+ dart.as(element, E); |
let compare = this[_splay](element); |
if (compare == 0) |
return false; |
@@ -3443,6 +3543,8 @@ var collection; |
} |
addAll(other) { |
other.forEach(((key, value) => { |
+ dart.as(key, K); |
+ dart.as(value, V); |
this.set(key, value); |
}).bind(this)); |
} |
@@ -3466,6 +3568,8 @@ var collection; |
return dart.as(dart.notNull(index) < 0 ? null : bucket[dart.notNull(index) + 1], V); |
} |
set(key, value) { |
+ dart.as(key, K); |
+ dart.as(value, V); |
if (_HashMap._isStringKey(key)) { |
let strings = this[_strings]; |
if (strings == null) |
@@ -3481,6 +3585,8 @@ var collection; |
} |
} |
[_set](key, value) { |
+ dart.as(key, K); |
+ dart.as(value, V); |
let rest = this[_rest]; |
if (rest == null) |
this[_rest] = rest = _HashMap._newHashTable(); |
@@ -3502,6 +3608,8 @@ var collection; |
} |
} |
putIfAbsent(key, ifAbsent) { |
+ dart.as(key, K); |
+ dart.as(ifAbsent, dart.functionType(V, [])); |
if (this.containsKey(key)) |
return this.get(key); |
let value = ifAbsent(); |
@@ -3589,6 +3697,8 @@ var collection; |
return this[_keys] = result; |
} |
[_addHashTableEntry](table, key, value) { |
+ dart.as(key, K); |
+ dart.as(value, V); |
if (!dart.notNull(_HashMap._hasTableEntry(table, key))) { |
this[_length] = dart.notNull(this[_length]) + 1; |
this[_keys] = null; |
@@ -3694,6 +3804,8 @@ var collection; |
return super[_get](key); |
} |
set(key, value) { |
+ dart.as(key, K); |
+ dart.as(value, V); |
super[_set](key, value); |
} |
containsKey(key) { |
@@ -3850,6 +3962,8 @@ var collection; |
} |
addAll(other) { |
other.forEach(((key, value) => { |
+ dart.as(key, K); |
+ dart.as(value, V); |
this.set(key, value); |
}).bind(this)); |
} |
@@ -3882,6 +3996,8 @@ var collection; |
return dart.as(cell[_value], V); |
} |
set(key, value) { |
+ dart.as(key, K); |
+ dart.as(value, V); |
if (_LinkedHashMap._isStringKey(key)) { |
let strings = this[_strings]; |
if (strings == null) |
@@ -3897,6 +4013,8 @@ var collection; |
} |
} |
[_set](key, value) { |
+ dart.as(key, K); |
+ dart.as(value, V); |
let rest = this[_rest]; |
if (rest == null) |
this[_rest] = rest = _LinkedHashMap._newHashTable(); |
@@ -3917,6 +4035,8 @@ var collection; |
} |
} |
putIfAbsent(key, ifAbsent) { |
+ dart.as(key, K); |
+ dart.as(ifAbsent, dart.functionType(V, [])); |
if (this.containsKey(key)) |
return this.get(key); |
let value = ifAbsent(); |
@@ -3963,6 +4083,8 @@ var collection; |
} |
} |
[_addHashTableEntry](table, key, value) { |
+ dart.as(key, K); |
+ dart.as(value, V); |
let cell = dart.as(_LinkedHashMap._getTableEntry(table, key), LinkedHashMapCell); |
if (cell == null) { |
_LinkedHashMap._setTableEntry(table, key, this[_newLinkedCell](key, value)); |
@@ -3984,6 +4106,8 @@ var collection; |
this[_modifications] = dart.notNull(this[_modifications]) + 1 & 67108863; |
} |
[_newLinkedCell](key, value) { |
+ dart.as(key, K); |
+ dart.as(value, V); |
let cell = new LinkedHashMapCell(key, value); |
if (this[_first] == null) { |
this[_first] = this[_last] = cell; |
@@ -4097,6 +4221,8 @@ var collection; |
return super[_get](key); |
} |
set(key, value) { |
+ dart.as(key, K); |
+ dart.as(value, V); |
super[_set](key, value); |
} |
containsKey(key) { |
@@ -4262,6 +4388,7 @@ var collection; |
return dart.as(bucket[core.$get](index), E); |
} |
add(element) { |
+ dart.as(element, E); |
if (_HashSet._isStringElement(element)) { |
let strings = this[_strings]; |
if (strings == null) |
@@ -4277,6 +4404,7 @@ var collection; |
} |
} |
[_add](element) { |
+ dart.as(element, E); |
let rest = this[_rest]; |
if (rest == null) |
this[_rest] = rest = _HashSet._newHashTable(); |
@@ -4370,6 +4498,7 @@ var collection; |
return this[_elements] = result; |
} |
[_addHashTableEntry](table, element) { |
+ dart.as(element, E); |
if (_HashSet._hasTableEntry(table, element)) |
return false; |
_HashSet._setTableEntry(table, element, 0); |
@@ -4482,6 +4611,7 @@ var collection; |
return this[_hasher](dart.as(element, E)) & 0x3ffffff; |
} |
add(object) { |
+ dart.as(object, E); |
return super[_add](object); |
} |
[core.$contains](object) { |
@@ -4626,6 +4756,7 @@ var collection; |
return dart.as(this[_last][_element], E); |
} |
add(element) { |
+ dart.as(element, E); |
if (_LinkedHashSet._isStringElement(element)) { |
let strings = this[_strings]; |
if (strings == null) |
@@ -4641,6 +4772,7 @@ var collection; |
} |
} |
[_add](element) { |
+ dart.as(element, E); |
let rest = this[_rest]; |
if (rest == null) |
this[_rest] = rest = _LinkedHashSet._newHashTable(); |
@@ -4708,6 +4840,7 @@ var collection; |
} |
} |
[_addHashTableEntry](table, element) { |
+ dart.as(element, E); |
let cell = dart.as(_LinkedHashSet._getTableEntry(table, element), LinkedHashSetCell); |
if (cell != null) |
return false; |
@@ -4728,6 +4861,7 @@ var collection; |
this[_modifications] = dart.notNull(this[_modifications]) + 1 & 67108863; |
} |
[_newLinkedCell](element) { |
+ dart.as(element, E); |
let cell = new LinkedHashSetCell(element); |
if (this[_first] == null) { |
this[_first] = this[_last] = cell; |
@@ -4853,6 +4987,7 @@ var collection; |
return this[_hasher](dart.as(element, E)) & 0x3ffffff; |
} |
add(element) { |
+ dart.as(element, E); |
return super[_add](element); |
} |
[core.$contains](object) { |