| OLD | NEW |
| 1 dart_library.library('collection/src/canonicalized_map', null, /* Imports */[ | 1 dart_library.library('collection/src/canonicalized_map', null, /* Imports */[ |
| 2 'dart/_runtime', | 2 'dart/_runtime', |
| 3 'dart/core', | 3 'dart/core', |
| 4 'collection/src/utils', | 4 'collection/src/utils', |
| 5 'dart/collection' | 5 'dart/collection' |
| 6 ], /* Lazy imports */[ | 6 ], /* Lazy imports */[ |
| 7 ], function(exports, dart, core, utils, collection) { | 7 ], function(exports, dart, core, utils, collection) { |
| 8 'use strict'; | 8 'use strict'; |
| 9 let dartx = dart.dartx; | 9 let dartx = dart.dartx; |
| 10 const _Canonicalize$ = dart.generic(function(C, K) { |
| 11 const _Canonicalize = dart.typedef('_Canonicalize', () => dart.functionType(
C, [K])); |
| 12 return _Canonicalize; |
| 13 }); |
| 14 let _Canonicalize = _Canonicalize$(); |
| 15 const _IsValidKey = dart.typedef('_IsValidKey', () => dart.functionType(core.b
ool, [core.Object])); |
| 10 const _base = Symbol('_base'); | 16 const _base = Symbol('_base'); |
| 11 const _canonicalize = Symbol('_canonicalize'); | 17 const _canonicalize = Symbol('_canonicalize'); |
| 12 const _isValidKeyFn = Symbol('_isValidKeyFn'); | 18 const _isValidKeyFn = Symbol('_isValidKeyFn'); |
| 13 const _isValidKey = Symbol('_isValidKey'); | 19 const _isValidKey = Symbol('_isValidKey'); |
| 14 const CanonicalizedMap$ = dart.generic(function(C, K, V) { | 20 const CanonicalizedMap$ = dart.generic(function(C, K, V) { |
| 15 class CanonicalizedMap extends core.Object { | 21 class CanonicalizedMap extends core.Object { |
| 16 CanonicalizedMap(canonicalize, opts) { | 22 CanonicalizedMap(canonicalize, opts) { |
| 17 let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null; | 23 let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null; |
| 18 this[_base] = core.Map$(C, utils.Pair$(K, V)).new(); | 24 this[_base] = core.Map$(C, utils.Pair$(K, V)).new(); |
| 19 this[_canonicalize] = canonicalize; | 25 this[_canonicalize] = canonicalize; |
| 20 this[_isValidKeyFn] = isValidKey; | 26 this[_isValidKeyFn] = isValidKey; |
| 21 } | 27 } |
| 22 from(other, canonicalize, opts) { | 28 from(other, canonicalize, opts) { |
| 23 let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null; | 29 let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null; |
| 24 this[_base] = core.Map$(C, utils.Pair$(K, V)).new(); | 30 this[_base] = core.Map$(C, utils.Pair$(K, V)).new(); |
| 25 this[_canonicalize] = canonicalize; | 31 this[_canonicalize] = canonicalize; |
| 26 this[_isValidKeyFn] = isValidKey; | 32 this[_isValidKeyFn] = isValidKey; |
| 27 this.addAll(other); | 33 this.addAll(other); |
| 28 } | 34 } |
| 29 get(key) { | 35 get(key) { |
| 30 if (!dart.notNull(this[_isValidKey](key))) return null; | 36 if (!dart.notNull(this[_isValidKey](key))) return null; |
| 31 let pair = this[_base][dartx.get](dart.dcall(this[_canonicalize], key)); | 37 let pair = this[_base][dartx.get](this[_canonicalize](dart.as(key, K))); |
| 32 return pair == null ? null : pair.last; | 38 return pair == null ? null : pair.last; |
| 33 } | 39 } |
| 34 set(key, value) { | 40 set(key, value) { |
| 35 (() => { | 41 (() => { |
| 36 dart.as(key, K); | 42 dart.as(key, K); |
| 37 dart.as(value, V); | 43 dart.as(value, V); |
| 38 if (!dart.notNull(this[_isValidKey](key))) return; | 44 if (!dart.notNull(this[_isValidKey](key))) return; |
| 39 this[_base][dartx.set](dart.as(dart.dcall(this[_canonicalize], key), C
), new (utils.Pair$(K, V))(key, value)); | 45 this[_base][dartx.set](this[_canonicalize](key), new (utils.Pair$(K, V
))(key, value)); |
| 40 })(); | 46 })(); |
| 41 return value; | 47 return value; |
| 42 } | 48 } |
| 43 addAll(other) { | 49 addAll(other) { |
| 44 dart.as(other, core.Map$(K, V)); | 50 dart.as(other, core.Map$(K, V)); |
| 45 other[dartx.forEach](dart.fn((key, value) => { | 51 other[dartx.forEach](dart.fn((key, value) => { |
| 46 dart.as(key, K); | 52 dart.as(key, K); |
| 47 dart.as(value, V); | 53 dart.as(value, V); |
| 48 return this.set(key, value); | 54 return this.set(key, value); |
| 49 }, V, [K, V])); | 55 }, V, [K, V])); |
| 50 } | 56 } |
| 51 clear() { | 57 clear() { |
| 52 this[_base][dartx.clear](); | 58 this[_base][dartx.clear](); |
| 53 } | 59 } |
| 54 containsKey(key) { | 60 containsKey(key) { |
| 55 if (!dart.notNull(this[_isValidKey](key))) return false; | 61 if (!dart.notNull(this[_isValidKey](key))) return false; |
| 56 return this[_base][dartx.containsKey](dart.dcall(this[_canonicalize], ke
y)); | 62 return this[_base][dartx.containsKey](this[_canonicalize](dart.as(key, K
))); |
| 57 } | 63 } |
| 58 containsValue(value) { | 64 containsValue(value) { |
| 59 return this[_base][dartx.values][dartx.any](dart.fn(pair => { | 65 return this[_base][dartx.values][dartx.any](dart.fn(pair => { |
| 60 dart.as(pair, utils.Pair$(K, V)); | 66 dart.as(pair, utils.Pair$(K, V)); |
| 61 return dart.equals(pair.last, value); | 67 return dart.equals(pair.last, value); |
| 62 }, core.bool, [utils.Pair$(K, V)])); | 68 }, core.bool, [utils.Pair$(K, V)])); |
| 63 } | 69 } |
| 64 forEach(f) { | 70 forEach(f) { |
| 65 dart.as(f, dart.functionType(dart.void, [K, V])); | 71 dart.as(f, dart.functionType(dart.void, [K, V])); |
| 66 this[_base][dartx.forEach](dart.fn((key, pair) => { | 72 this[_base][dartx.forEach](dart.fn((key, pair) => { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 80 dart.as(pair, utils.Pair$(K, V)); | 86 dart.as(pair, utils.Pair$(K, V)); |
| 81 return pair.first; | 87 return pair.first; |
| 82 }, K, [utils.Pair$(K, V)])); | 88 }, K, [utils.Pair$(K, V)])); |
| 83 } | 89 } |
| 84 get length() { | 90 get length() { |
| 85 return this[_base][dartx.length]; | 91 return this[_base][dartx.length]; |
| 86 } | 92 } |
| 87 putIfAbsent(key, ifAbsent) { | 93 putIfAbsent(key, ifAbsent) { |
| 88 dart.as(key, K); | 94 dart.as(key, K); |
| 89 dart.as(ifAbsent, dart.functionType(V, [])); | 95 dart.as(ifAbsent, dart.functionType(V, [])); |
| 90 return this[_base][dartx.putIfAbsent](dart.as(dart.dcall(this[_canonical
ize], key), C), dart.fn(() => new (utils.Pair$(K, V))(key, ifAbsent()), utils.Pa
ir$(K, V), [])).last; | 96 return this[_base][dartx.putIfAbsent](this[_canonicalize](key), dart.fn(
() => new (utils.Pair$(K, V))(key, ifAbsent()), utils.Pair$(K, V), [])).last; |
| 91 } | 97 } |
| 92 remove(key) { | 98 remove(key) { |
| 93 if (!dart.notNull(this[_isValidKey](key))) return null; | 99 if (!dart.notNull(this[_isValidKey](key))) return null; |
| 94 let pair = this[_base][dartx.remove](dart.dcall(this[_canonicalize], key
)); | 100 let pair = this[_base][dartx.remove](this[_canonicalize](dart.as(key, K)
)); |
| 95 return pair == null ? null : pair.last; | 101 return pair == null ? null : pair.last; |
| 96 } | 102 } |
| 97 get values() { | 103 get values() { |
| 98 return this[_base][dartx.values][dartx.map](dart.fn(pair => { | 104 return this[_base][dartx.values][dartx.map](dart.fn(pair => { |
| 99 dart.as(pair, utils.Pair$(K, V)); | 105 dart.as(pair, utils.Pair$(K, V)); |
| 100 return pair.last; | 106 return pair.last; |
| 101 }, V, [utils.Pair$(K, V)])); | 107 }, V, [utils.Pair$(K, V)])); |
| 102 } | 108 } |
| 103 toString() { | 109 toString() { |
| 104 return collection.Maps.mapToString(this); | 110 return collection.Maps.mapToString(this); |
| 105 } | 111 } |
| 106 [_isValidKey](key) { | 112 [_isValidKey](key) { |
| 107 return (key == null || dart.is(key, K)) && (this[_isValidKeyFn] == null
|| dart.notNull(dart.as(dart.dcall(this[_isValidKeyFn], key), core.bool))); | 113 return (key == null || dart.is(key, K)) && (this[_isValidKeyFn] == null
|| dart.notNull(this[_isValidKeyFn](key))); |
| 108 } | 114 } |
| 109 } | 115 } |
| 110 CanonicalizedMap[dart.implements] = () => [core.Map$(K, V)]; | 116 CanonicalizedMap[dart.implements] = () => [core.Map$(K, V)]; |
| 111 dart.defineNamedConstructor(CanonicalizedMap, 'from'); | 117 dart.defineNamedConstructor(CanonicalizedMap, 'from'); |
| 112 dart.setSignature(CanonicalizedMap, { | 118 dart.setSignature(CanonicalizedMap, { |
| 113 constructors: () => ({ | 119 constructors: () => ({ |
| 114 CanonicalizedMap: [CanonicalizedMap$(C, K, V), [dart.functionType(C, [K]
)], {isValidKey: dart.functionType(core.bool, [core.Object])}], | 120 CanonicalizedMap: [CanonicalizedMap$(C, K, V), [dart.functionType(C, [K]
)], {isValidKey: dart.functionType(core.bool, [core.Object])}], |
| 115 from: [CanonicalizedMap$(C, K, V), [core.Map$(K, V), dart.functionType(C
, [K])], {isValidKey: dart.functionType(core.bool, [core.Object])}] | 121 from: [CanonicalizedMap$(C, K, V), [core.Map$(K, V), dart.functionType(C
, [K])], {isValidKey: dart.functionType(core.bool, [core.Object])}] |
| 116 }), | 122 }), |
| 117 methods: () => ({ | 123 methods: () => ({ |
| (...skipping 25 matching lines...) Expand all Loading... |
| 143 'length', | 149 'length', |
| 144 'values' | 150 'values' |
| 145 ]); | 151 ]); |
| 146 return CanonicalizedMap; | 152 return CanonicalizedMap; |
| 147 }); | 153 }); |
| 148 let CanonicalizedMap = CanonicalizedMap$(); | 154 let CanonicalizedMap = CanonicalizedMap$(); |
| 149 // Exports: | 155 // Exports: |
| 150 exports.CanonicalizedMap$ = CanonicalizedMap$; | 156 exports.CanonicalizedMap$ = CanonicalizedMap$; |
| 151 exports.CanonicalizedMap = CanonicalizedMap; | 157 exports.CanonicalizedMap = CanonicalizedMap; |
| 152 }); | 158 }); |
| OLD | NEW |