| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 dart_library.library('matcher', null, /* Imports */[ |  | 
| 2   'dart_sdk' |  | 
| 3 ], function load__matcher(exports, dart_sdk) { |  | 
| 4   'use strict'; |  | 
| 5   const core = dart_sdk.core; |  | 
| 6   const mirrors = dart_sdk.mirrors; |  | 
| 7   const _interceptors = dart_sdk._interceptors; |  | 
| 8   const dart = dart_sdk.dart; |  | 
| 9   const dartx = dart_sdk.dartx; |  | 
| 10   const matcher = Object.create(null); |  | 
| 11   const mirror_matchers = Object.create(null); |  | 
| 12   const src__core_matchers = Object.create(null); |  | 
| 13   const src__description = Object.create(null); |  | 
| 14   const src__error_matchers = Object.create(null); |  | 
| 15   const src__interfaces = Object.create(null); |  | 
| 16   const src__iterable_matchers = Object.create(null); |  | 
| 17   const src__map_matchers = Object.create(null); |  | 
| 18   const src__numeric_matchers = Object.create(null); |  | 
| 19   const src__operator_matchers = Object.create(null); |  | 
| 20   const src__pretty_print = Object.create(null); |  | 
| 21   const src__string_matchers = Object.create(null); |  | 
| 22   const src__util = Object.create(null); |  | 
| 23   let dynamicTobool = () => (dynamicTobool = dart.constFn(dart.functionType(core
      .bool, [dart.dynamic])))(); |  | 
| 24   let isInstanceOf = () => (isInstanceOf = dart.constFn(src__core_matchers.isIns
      tanceOf$()))(); |  | 
| 25   let dynamicAnddynamicTobool = () => (dynamicAnddynamicTobool = dart.constFn(da
      rt.functionType(core.bool, [dart.dynamic, dart.dynamic])))(); |  | 
| 26   let ListOfString = () => (ListOfString = dart.constFn(core.List$(core.String))
      )(); |  | 
| 27   let JSArrayOfString = () => (JSArrayOfString = dart.constFn(_interceptors.JSAr
      ray$(core.String)))(); |  | 
| 28   let ListOfbool = () => (ListOfbool = dart.constFn(core.List$(core.bool)))(); |  | 
| 29   let ListOfMatcher = () => (ListOfMatcher = dart.constFn(core.List$(src__interf
      aces.Matcher)))(); |  | 
| 30   let dynamicToMatcher = () => (dynamicToMatcher = dart.constFn(dart.definiteFun
      ctionType(src__interfaces.Matcher, [dart.dynamic])))(); |  | 
| 31   let dynamic__ToMatcher = () => (dynamic__ToMatcher = dart.constFn(dart.definit
      eFunctionType(src__interfaces.Matcher, [dart.dynamic], [core.int])))(); |  | 
| 32   let Fn__ToMatcher = () => (Fn__ToMatcher = dart.constFn(dart.definiteFunctionT
      ype(src__interfaces.Matcher, [dynamicTobool()], [core.String])))(); |  | 
| 33   let IterableAndFnAndStringToMatcher = () => (IterableAndFnAndStringToMatcher =
       dart.constFn(dart.definiteFunctionType(src__interfaces.Matcher, [core.Iterable,
       dynamicAnddynamicTobool(), core.String])))(); |  | 
| 34   let IterableToMatcher = () => (IterableToMatcher = dart.constFn(dart.definiteF
      unctionType(src__interfaces.Matcher, [core.Iterable])))(); |  | 
| 35   let dynamicAnddynamicToMatcher = () => (dynamicAnddynamicToMatcher = dart.cons
      tFn(dart.definiteFunctionType(src__interfaces.Matcher, [dart.dynamic, dart.dynam
      ic])))(); |  | 
| 36   let numAndnumToMatcher = () => (numAndnumToMatcher = dart.constFn(dart.definit
      eFunctionType(src__interfaces.Matcher, [core.num, core.num])))(); |  | 
| 37   let dynamic__ToMatcher$ = () => (dynamic__ToMatcher$ = dart.constFn(dart.defin
      iteFunctionType(src__interfaces.Matcher, [dart.dynamic], [dart.dynamic, dart.dyn
      amic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic])))(); |  | 
| 38   let StringToMatcher = () => (StringToMatcher = dart.constFn(dart.definiteFunct
      ionType(src__interfaces.Matcher, [core.String])))(); |  | 
| 39   let StringToString = () => (StringToString = dart.constFn(dart.definiteFunctio
      nType(core.String, [core.String])))(); |  | 
| 40   let ListOfStringToMatcher = () => (ListOfStringToMatcher = dart.constFn(dart.d
      efiniteFunctionType(src__interfaces.Matcher, [ListOfString()])))(); |  | 
| 41   let MapAndMapTovoid = () => (MapAndMapTovoid = dart.constFn(dart.definiteFunct
      ionType(dart.void, [core.Map, core.Map])))(); |  | 
| 42   let MatchToString = () => (MatchToString = dart.constFn(dart.definiteFunctionT
      ype(core.String, [core.Match])))(); |  | 
| 43   let String__ToMatcher = () => (String__ToMatcher = dart.constFn(dart.definiteF
      unctionType(src__interfaces.Matcher, [core.String], [dart.dynamic])))(); |  | 
| 44   let dynamicTobool$ = () => (dynamicTobool$ = dart.constFn(dart.definiteFunctio
      nType(core.bool, [dart.dynamic])))(); |  | 
| 45   let dynamicAnddynamicAnddynamic__ToListOfMatcher = () => (dynamicAnddynamicAnd
      dynamic__ToListOfMatcher = dart.constFn(dart.definiteFunctionType(ListOfMatcher(
      ), [dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.dynamic, dart.d
      ynamic, dart.dynamic])))(); |  | 
| 46   let dynamicToString = () => (dynamicToString = dart.constFn(dart.definiteFunct
      ionType(core.String, [dart.dynamic])))(); |  | 
| 47   let dynamicAndintAndSet__ToString = () => (dynamicAndintAndSet__ToString = dar
      t.constFn(dart.definiteFunctionType(core.String, [dart.dynamic, core.int, core.S
      et, core.bool])))(); |  | 
| 48   let dynamic__ToString = () => (dynamic__ToString = dart.constFn(dart.definiteF
      unctionType(core.String, [dart.dynamic], {maxLineLength: core.int, maxItems: cor
      e.int})))(); |  | 
| 49   let intToString = () => (intToString = dart.constFn(dart.definiteFunctionType(
      core.String, [core.int])))(); |  | 
| 50   let StringTobool = () => (StringTobool = dart.constFn(dart.definiteFunctionTyp
      e(core.bool, [core.String])))(); |  | 
| 51   src__interfaces.Matcher = class Matcher extends core.Object { |  | 
| 52     new() { |  | 
| 53     } |  | 
| 54     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 55       return mismatchDescription; |  | 
| 56     } |  | 
| 57   }; |  | 
| 58   dart.setSignature(src__interfaces.Matcher, { |  | 
| 59     constructors: () => ({new: dart.definiteFunctionType(src__interfaces.Matcher
      , [])}), |  | 
| 60     methods: () => ({describeMismatch: dart.definiteFunctionType(src__interfaces
      .Description, [dart.dynamic, src__interfaces.Description, core.Map, core.bool])}
      ) |  | 
| 61   }); |  | 
| 62   src__core_matchers._IsTrue = class _IsTrue extends src__interfaces.Matcher { |  | 
| 63     new() { |  | 
| 64       super.new(); |  | 
| 65     } |  | 
| 66     matches(item, matchState) { |  | 
| 67       return dart.equals(item, true); |  | 
| 68     } |  | 
| 69     describe(description) { |  | 
| 70       return description.add('true'); |  | 
| 71     } |  | 
| 72   }; |  | 
| 73   dart.setSignature(src__core_matchers._IsTrue, { |  | 
| 74     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._IsT
      rue, [])}), |  | 
| 75     methods: () => ({ |  | 
| 76       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 77       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 78     }) |  | 
| 79   }); |  | 
| 80   src__core_matchers.isTrue = dart.const(new src__core_matchers._IsTrue()); |  | 
| 81   matcher.isTrue = src__core_matchers.isTrue; |  | 
| 82   src__core_matchers._IsFalse = class _IsFalse extends src__interfaces.Matcher { |  | 
| 83     new() { |  | 
| 84       super.new(); |  | 
| 85     } |  | 
| 86     matches(item, matchState) { |  | 
| 87       return dart.equals(item, false); |  | 
| 88     } |  | 
| 89     describe(description) { |  | 
| 90       return description.add('false'); |  | 
| 91     } |  | 
| 92   }; |  | 
| 93   dart.setSignature(src__core_matchers._IsFalse, { |  | 
| 94     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._IsF
      alse, [])}), |  | 
| 95     methods: () => ({ |  | 
| 96       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 97       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 98     }) |  | 
| 99   }); |  | 
| 100   src__core_matchers.isFalse = dart.const(new src__core_matchers._IsFalse()); |  | 
| 101   matcher.isFalse = src__core_matchers.isFalse; |  | 
| 102   src__core_matchers._Empty = class _Empty extends src__interfaces.Matcher { |  | 
| 103     new() { |  | 
| 104       super.new(); |  | 
| 105     } |  | 
| 106     matches(item, matchState) { |  | 
| 107       return core.bool._check(dart.dload(item, 'isEmpty')); |  | 
| 108     } |  | 
| 109     describe(description) { |  | 
| 110       return description.add('empty'); |  | 
| 111     } |  | 
| 112   }; |  | 
| 113   dart.setSignature(src__core_matchers._Empty, { |  | 
| 114     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._Emp
      ty, [])}), |  | 
| 115     methods: () => ({ |  | 
| 116       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 117       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 118     }) |  | 
| 119   }); |  | 
| 120   src__core_matchers.isEmpty = dart.const(new src__core_matchers._Empty()); |  | 
| 121   matcher.isEmpty = src__core_matchers.isEmpty; |  | 
| 122   src__core_matchers.same = function(expected) { |  | 
| 123     return new src__core_matchers._IsSameAs(expected); |  | 
| 124   }; |  | 
| 125   dart.fn(src__core_matchers.same, dynamicToMatcher()); |  | 
| 126   matcher.same = src__core_matchers.same; |  | 
| 127   src__core_matchers.equals = function(expected, limit) { |  | 
| 128     if (limit === void 0) limit = 100; |  | 
| 129     return typeof expected == 'string' ? new src__core_matchers._StringEqualsMat
      cher(expected) : new src__core_matchers._DeepMatcher(expected, limit); |  | 
| 130   }; |  | 
| 131   dart.fn(src__core_matchers.equals, dynamic__ToMatcher()); |  | 
| 132   matcher.equals = src__core_matchers.equals; |  | 
| 133   const _featureDescription = Symbol('_featureDescription'); |  | 
| 134   const _featureName = Symbol('_featureName'); |  | 
| 135   const _matcher = Symbol('_matcher'); |  | 
| 136   src__core_matchers.CustomMatcher = class CustomMatcher extends src__interfaces
      .Matcher { |  | 
| 137     new(featureDescription, featureName, matcher) { |  | 
| 138       this[_featureDescription] = featureDescription; |  | 
| 139       this[_featureName] = featureName; |  | 
| 140       this[_matcher] = src__util.wrapMatcher(matcher); |  | 
| 141       super.new(); |  | 
| 142     } |  | 
| 143     featureValueOf(actual) { |  | 
| 144       return actual; |  | 
| 145     } |  | 
| 146     matches(item, matchState) { |  | 
| 147       let f = this.featureValueOf(item); |  | 
| 148       if (dart.test(this[_matcher].matches(f, matchState))) return true; |  | 
| 149       src__util.addStateInfo(matchState, dart.map({feature: f}, core.String, dar
      t.dynamic)); |  | 
| 150       return false; |  | 
| 151     } |  | 
| 152     describe(description) { |  | 
| 153       return description.add(this[_featureDescription]).add(' ').addDescriptionO
      f(this[_matcher]); |  | 
| 154     } |  | 
| 155     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 156       mismatchDescription.add('has ').add(this[_featureName]).add(' with value '
      ).addDescriptionOf(matchState[dartx.get]('feature')); |  | 
| 157       let innerDescription = new src__description.StringDescription(); |  | 
| 158       this[_matcher].describeMismatch(matchState[dartx.get]('feature'), innerDes
      cription, core.Map._check(matchState[dartx.get]('state')), verbose); |  | 
| 159       if (dart.notNull(innerDescription.length) > 0) { |  | 
| 160         mismatchDescription.add(' which ').add(innerDescription.toString()); |  | 
| 161       } |  | 
| 162       return mismatchDescription; |  | 
| 163     } |  | 
| 164   }; |  | 
| 165   dart.setSignature(src__core_matchers.CustomMatcher, { |  | 
| 166     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers.Cust
      omMatcher, [core.String, core.String, dart.dynamic])}), |  | 
| 167     methods: () => ({ |  | 
| 168       featureValueOf: dart.definiteFunctionType(dart.dynamic, [dart.dynamic]), |  | 
| 169       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 170       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 171     }) |  | 
| 172   }); |  | 
| 173   matcher.CustomMatcher = src__core_matchers.CustomMatcher; |  | 
| 174   const _name = Symbol('_name'); |  | 
| 175   src__core_matchers.TypeMatcher = class TypeMatcher extends src__interfaces.Mat
      cher { |  | 
| 176     new(name) { |  | 
| 177       this[_name] = name; |  | 
| 178       super.new(); |  | 
| 179     } |  | 
| 180     describe(description) { |  | 
| 181       return description.add(this[_name]); |  | 
| 182     } |  | 
| 183   }; |  | 
| 184   dart.setSignature(src__core_matchers.TypeMatcher, { |  | 
| 185     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers.Type
      Matcher, [core.String])}), |  | 
| 186     methods: () => ({describe: dart.definiteFunctionType(src__interfaces.Descrip
      tion, [src__interfaces.Description])}) |  | 
| 187   }); |  | 
| 188   src__core_matchers._IsList = class _IsList extends src__core_matchers.TypeMatc
      her { |  | 
| 189     new() { |  | 
| 190       super.new("List"); |  | 
| 191     } |  | 
| 192     matches(item, matchState) { |  | 
| 193       return core.List.is(item); |  | 
| 194     } |  | 
| 195   }; |  | 
| 196   dart.setSignature(src__core_matchers._IsList, { |  | 
| 197     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._IsL
      ist, [])}), |  | 
| 198     methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic
      , core.Map])}) |  | 
| 199   }); |  | 
| 200   src__core_matchers.isList = dart.const(new src__core_matchers._IsList()); |  | 
| 201   matcher.isList = src__core_matchers.isList; |  | 
| 202   src__core_matchers.predicate = function(f, description) { |  | 
| 203     if (description === void 0) description = 'satisfies function'; |  | 
| 204     return new src__core_matchers._Predicate(f, description); |  | 
| 205   }; |  | 
| 206   dart.fn(src__core_matchers.predicate, Fn__ToMatcher()); |  | 
| 207   matcher.predicate = src__core_matchers.predicate; |  | 
| 208   src__core_matchers._IsNotNull = class _IsNotNull extends src__interfaces.Match
      er { |  | 
| 209     new() { |  | 
| 210       super.new(); |  | 
| 211     } |  | 
| 212     matches(item, matchState) { |  | 
| 213       return item != null; |  | 
| 214     } |  | 
| 215     describe(description) { |  | 
| 216       return description.add('not null'); |  | 
| 217     } |  | 
| 218   }; |  | 
| 219   dart.setSignature(src__core_matchers._IsNotNull, { |  | 
| 220     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._IsN
      otNull, [])}), |  | 
| 221     methods: () => ({ |  | 
| 222       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 223       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 224     }) |  | 
| 225   }); |  | 
| 226   src__core_matchers.isNotNull = dart.const(new src__core_matchers._IsNotNull())
      ; |  | 
| 227   matcher.isNotNull = src__core_matchers.isNotNull; |  | 
| 228   src__core_matchers.hasLength = function(matcher) { |  | 
| 229     return new src__core_matchers._HasLength(src__util.wrapMatcher(matcher)); |  | 
| 230   }; |  | 
| 231   dart.fn(src__core_matchers.hasLength, dynamicToMatcher()); |  | 
| 232   matcher.hasLength = src__core_matchers.hasLength; |  | 
| 233   src__core_matchers.isInstanceOf$ = dart.generic(T => { |  | 
| 234     class isInstanceOf extends src__interfaces.Matcher { |  | 
| 235       new() { |  | 
| 236         super.new(); |  | 
| 237       } |  | 
| 238       matches(obj, matchState) { |  | 
| 239         return T.is(obj); |  | 
| 240       } |  | 
| 241       describe(description) { |  | 
| 242         return description.add(dart.str`an instance of ${dart.wrapType(T)}`); |  | 
| 243       } |  | 
| 244     } |  | 
| 245     dart.addTypeTests(isInstanceOf); |  | 
| 246     dart.setSignature(isInstanceOf, { |  | 
| 247       constructors: () => ({new: dart.definiteFunctionType(src__core_matchers.is
      InstanceOf$(T), [])}), |  | 
| 248       methods: () => ({ |  | 
| 249         matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 250         describe: dart.definiteFunctionType(src__interfaces.Description, [src__i
      nterfaces.Description]) |  | 
| 251       }) |  | 
| 252     }); |  | 
| 253     return isInstanceOf; |  | 
| 254   }); |  | 
| 255   src__core_matchers.isInstanceOf = isInstanceOf(); |  | 
| 256   matcher.isInstanceOf$ = src__core_matchers.isInstanceOf$; |  | 
| 257   matcher.isInstanceOf = src__core_matchers.isInstanceOf; |  | 
| 258   src__core_matchers._IsNaN = class _IsNaN extends src__interfaces.Matcher { |  | 
| 259     new() { |  | 
| 260       super.new(); |  | 
| 261     } |  | 
| 262     matches(item, matchState) { |  | 
| 263       return core.double.NAN[dartx.compareTo](core.num._check(item)) == 0; |  | 
| 264     } |  | 
| 265     describe(description) { |  | 
| 266       return description.add('NaN'); |  | 
| 267     } |  | 
| 268   }; |  | 
| 269   dart.setSignature(src__core_matchers._IsNaN, { |  | 
| 270     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._IsN
      aN, [])}), |  | 
| 271     methods: () => ({ |  | 
| 272       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 273       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 274     }) |  | 
| 275   }); |  | 
| 276   src__core_matchers.isNaN = dart.const(new src__core_matchers._IsNaN()); |  | 
| 277   matcher.isNaN = src__core_matchers.isNaN; |  | 
| 278   src__core_matchers._ReturnsNormally = class _ReturnsNormally extends src__inte
      rfaces.Matcher { |  | 
| 279     new() { |  | 
| 280       super.new(); |  | 
| 281     } |  | 
| 282     matches(f, matchState) { |  | 
| 283       try { |  | 
| 284         dart.dcall(f); |  | 
| 285         return true; |  | 
| 286       } catch (e) { |  | 
| 287         let s = dart.stackTrace(e); |  | 
| 288         src__util.addStateInfo(matchState, dart.map({exception: e, stack: s}, co
      re.String, dart.dynamic)); |  | 
| 289         return false; |  | 
| 290       } |  | 
| 291 |  | 
| 292     } |  | 
| 293     describe(description) { |  | 
| 294       return description.add("return normally"); |  | 
| 295     } |  | 
| 296     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 297       mismatchDescription.add('threw ').addDescriptionOf(matchState[dartx.get]('
      exception')); |  | 
| 298       if (dart.test(verbose)) { |  | 
| 299         mismatchDescription.add(' at ').add(dart.toString(matchState[dartx.get](
      'stack'))); |  | 
| 300       } |  | 
| 301       return mismatchDescription; |  | 
| 302     } |  | 
| 303   }; |  | 
| 304   dart.setSignature(src__core_matchers._ReturnsNormally, { |  | 
| 305     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._Ret
      urnsNormally, [])}), |  | 
| 306     methods: () => ({ |  | 
| 307       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 308       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 309     }) |  | 
| 310   }); |  | 
| 311   src__core_matchers.returnsNormally = dart.const(new src__core_matchers._Return
      sNormally()); |  | 
| 312   matcher.returnsNormally = src__core_matchers.returnsNormally; |  | 
| 313   src__core_matchers._IsAnything = class _IsAnything extends src__interfaces.Mat
      cher { |  | 
| 314     new() { |  | 
| 315       super.new(); |  | 
| 316     } |  | 
| 317     matches(item, matchState) { |  | 
| 318       return true; |  | 
| 319     } |  | 
| 320     describe(description) { |  | 
| 321       return description.add('anything'); |  | 
| 322     } |  | 
| 323   }; |  | 
| 324   dart.setSignature(src__core_matchers._IsAnything, { |  | 
| 325     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._IsA
      nything, [])}), |  | 
| 326     methods: () => ({ |  | 
| 327       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 328       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 329     }) |  | 
| 330   }); |  | 
| 331   src__core_matchers.anything = dart.const(new src__core_matchers._IsAnything())
      ; |  | 
| 332   matcher.anything = src__core_matchers.anything; |  | 
| 333   matcher.TypeMatcher = src__core_matchers.TypeMatcher; |  | 
| 334   src__core_matchers.contains = function(expected) { |  | 
| 335     return new src__core_matchers._Contains(expected); |  | 
| 336   }; |  | 
| 337   dart.fn(src__core_matchers.contains, dynamicToMatcher()); |  | 
| 338   matcher.contains = src__core_matchers.contains; |  | 
| 339   src__core_matchers._NotEmpty = class _NotEmpty extends src__interfaces.Matcher
       { |  | 
| 340     new() { |  | 
| 341       super.new(); |  | 
| 342     } |  | 
| 343     matches(item, matchState) { |  | 
| 344       return core.bool._check(dart.dload(item, 'isNotEmpty')); |  | 
| 345     } |  | 
| 346     describe(description) { |  | 
| 347       return description.add('non-empty'); |  | 
| 348     } |  | 
| 349   }; |  | 
| 350   dart.setSignature(src__core_matchers._NotEmpty, { |  | 
| 351     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._Not
      Empty, [])}), |  | 
| 352     methods: () => ({ |  | 
| 353       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 354       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 355     }) |  | 
| 356   }); |  | 
| 357   src__core_matchers.isNotEmpty = dart.const(new src__core_matchers._NotEmpty())
      ; |  | 
| 358   matcher.isNotEmpty = src__core_matchers.isNotEmpty; |  | 
| 359   src__core_matchers._IsNull = class _IsNull extends src__interfaces.Matcher { |  | 
| 360     new() { |  | 
| 361       super.new(); |  | 
| 362     } |  | 
| 363     matches(item, matchState) { |  | 
| 364       return item == null; |  | 
| 365     } |  | 
| 366     describe(description) { |  | 
| 367       return description.add('null'); |  | 
| 368     } |  | 
| 369   }; |  | 
| 370   dart.setSignature(src__core_matchers._IsNull, { |  | 
| 371     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._IsN
      ull, [])}), |  | 
| 372     methods: () => ({ |  | 
| 373       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 374       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 375     }) |  | 
| 376   }); |  | 
| 377   src__core_matchers.isNull = dart.const(new src__core_matchers._IsNull()); |  | 
| 378   matcher.isNull = src__core_matchers.isNull; |  | 
| 379   src__core_matchers._IsMap = class _IsMap extends src__core_matchers.TypeMatche
      r { |  | 
| 380     new() { |  | 
| 381       super.new("Map"); |  | 
| 382     } |  | 
| 383     matches(item, matchState) { |  | 
| 384       return core.Map.is(item); |  | 
| 385     } |  | 
| 386   }; |  | 
| 387   dart.setSignature(src__core_matchers._IsMap, { |  | 
| 388     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._IsM
      ap, [])}), |  | 
| 389     methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic
      , core.Map])}) |  | 
| 390   }); |  | 
| 391   src__core_matchers.isMap = dart.const(new src__core_matchers._IsMap()); |  | 
| 392   matcher.isMap = src__core_matchers.isMap; |  | 
| 393   src__core_matchers._IsNotNaN = class _IsNotNaN extends src__interfaces.Matcher
       { |  | 
| 394     new() { |  | 
| 395       super.new(); |  | 
| 396     } |  | 
| 397     matches(item, matchState) { |  | 
| 398       return core.double.NAN[dartx.compareTo](core.num._check(item)) != 0; |  | 
| 399     } |  | 
| 400     describe(description) { |  | 
| 401       return description.add('not NaN'); |  | 
| 402     } |  | 
| 403   }; |  | 
| 404   dart.setSignature(src__core_matchers._IsNotNaN, { |  | 
| 405     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._IsN
      otNaN, [])}), |  | 
| 406     methods: () => ({ |  | 
| 407       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 408       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 409     }) |  | 
| 410   }); |  | 
| 411   src__core_matchers.isNotNaN = dart.const(new src__core_matchers._IsNotNaN()); |  | 
| 412   matcher.isNotNaN = src__core_matchers.isNotNaN; |  | 
| 413   src__core_matchers.isIn = function(expected) { |  | 
| 414     return new src__core_matchers._In(expected); |  | 
| 415   }; |  | 
| 416   dart.fn(src__core_matchers.isIn, dynamicToMatcher()); |  | 
| 417   matcher.isIn = src__core_matchers.isIn; |  | 
| 418   const _out = Symbol('_out'); |  | 
| 419   src__description.StringDescription = class StringDescription extends core.Obje
      ct { |  | 
| 420     new(init) { |  | 
| 421       if (init === void 0) init = ''; |  | 
| 422       this[_out] = new core.StringBuffer(); |  | 
| 423       this[_out].write(init); |  | 
| 424     } |  | 
| 425     get length() { |  | 
| 426       return this[_out].length; |  | 
| 427     } |  | 
| 428     toString() { |  | 
| 429       return dart.toString(this[_out]); |  | 
| 430     } |  | 
| 431     add(text) { |  | 
| 432       this[_out].write(text); |  | 
| 433       return this; |  | 
| 434     } |  | 
| 435     replace(text) { |  | 
| 436       this[_out].clear(); |  | 
| 437       return this.add(text); |  | 
| 438     } |  | 
| 439     addDescriptionOf(value) { |  | 
| 440       if (src__interfaces.Matcher.is(value)) { |  | 
| 441         value.describe(this); |  | 
| 442       } else { |  | 
| 443         this.add(src__pretty_print.prettyPrint(value, {maxLineLength: 80, maxIte
      ms: 25})); |  | 
| 444       } |  | 
| 445       return this; |  | 
| 446     } |  | 
| 447     addAll(start, separator, end, list) { |  | 
| 448       let separate = false; |  | 
| 449       this.add(start); |  | 
| 450       for (let item of list) { |  | 
| 451         if (separate) { |  | 
| 452           this.add(separator); |  | 
| 453         } |  | 
| 454         this.addDescriptionOf(item); |  | 
| 455         separate = true; |  | 
| 456       } |  | 
| 457       this.add(end); |  | 
| 458       return this; |  | 
| 459     } |  | 
| 460   }; |  | 
| 461   src__description.StringDescription[dart.implements] = () => [src__interfaces.D
      escription]; |  | 
| 462   dart.setSignature(src__description.StringDescription, { |  | 
| 463     constructors: () => ({new: dart.definiteFunctionType(src__description.String
      Description, [], [core.String])}), |  | 
| 464     methods: () => ({ |  | 
| 465       add: dart.definiteFunctionType(src__interfaces.Description, [core.String])
      , |  | 
| 466       replace: dart.definiteFunctionType(src__interfaces.Description, [core.Stri
      ng]), |  | 
| 467       addDescriptionOf: dart.definiteFunctionType(src__interfaces.Description, [
      dart.dynamic]), |  | 
| 468       addAll: dart.definiteFunctionType(src__interfaces.Description, [core.Strin
      g, core.String, core.String, core.Iterable]) |  | 
| 469     }) |  | 
| 470   }); |  | 
| 471   matcher.StringDescription = src__description.StringDescription; |  | 
| 472   src__error_matchers._ConcurrentModificationError = class _ConcurrentModificati
      onError extends src__core_matchers.TypeMatcher { |  | 
| 473     new() { |  | 
| 474       super.new("ConcurrentModificationError"); |  | 
| 475     } |  | 
| 476     matches(item, matchState) { |  | 
| 477       return core.ConcurrentModificationError.is(item); |  | 
| 478     } |  | 
| 479   }; |  | 
| 480   dart.setSignature(src__error_matchers._ConcurrentModificationError, { |  | 
| 481     constructors: () => ({new: dart.definiteFunctionType(src__error_matchers._Co
      ncurrentModificationError, [])}), |  | 
| 482     methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic
      , core.Map])}) |  | 
| 483   }); |  | 
| 484   src__error_matchers.isConcurrentModificationError = dart.const(new src__error_
      matchers._ConcurrentModificationError()); |  | 
| 485   matcher.isConcurrentModificationError = src__error_matchers.isConcurrentModifi
      cationError; |  | 
| 486   src__error_matchers._CyclicInitializationError = class _CyclicInitializationEr
      ror extends src__core_matchers.TypeMatcher { |  | 
| 487     new() { |  | 
| 488       super.new("CyclicInitializationError"); |  | 
| 489     } |  | 
| 490     matches(item, matchState) { |  | 
| 491       return core.CyclicInitializationError.is(item); |  | 
| 492     } |  | 
| 493   }; |  | 
| 494   dart.setSignature(src__error_matchers._CyclicInitializationError, { |  | 
| 495     constructors: () => ({new: dart.definiteFunctionType(src__error_matchers._Cy
      clicInitializationError, [])}), |  | 
| 496     methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic
      , core.Map])}) |  | 
| 497   }); |  | 
| 498   src__error_matchers.isCyclicInitializationError = dart.const(new src__error_ma
      tchers._CyclicInitializationError()); |  | 
| 499   matcher.isCyclicInitializationError = src__error_matchers.isCyclicInitializati
      onError; |  | 
| 500   src__error_matchers._ArgumentError = class _ArgumentError extends src__core_ma
      tchers.TypeMatcher { |  | 
| 501     new() { |  | 
| 502       super.new("ArgumentError"); |  | 
| 503     } |  | 
| 504     matches(item, matchState) { |  | 
| 505       return core.ArgumentError.is(item); |  | 
| 506     } |  | 
| 507   }; |  | 
| 508   dart.setSignature(src__error_matchers._ArgumentError, { |  | 
| 509     constructors: () => ({new: dart.definiteFunctionType(src__error_matchers._Ar
      gumentError, [])}), |  | 
| 510     methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic
      , core.Map])}) |  | 
| 511   }); |  | 
| 512   src__error_matchers.isArgumentError = dart.const(new src__error_matchers._Argu
      mentError()); |  | 
| 513   matcher.isArgumentError = src__error_matchers.isArgumentError; |  | 
| 514   src__error_matchers._Exception = class _Exception extends src__core_matchers.T
      ypeMatcher { |  | 
| 515     new() { |  | 
| 516       super.new("Exception"); |  | 
| 517     } |  | 
| 518     matches(item, matchState) { |  | 
| 519       return core.Exception.is(item); |  | 
| 520     } |  | 
| 521   }; |  | 
| 522   dart.setSignature(src__error_matchers._Exception, { |  | 
| 523     constructors: () => ({new: dart.definiteFunctionType(src__error_matchers._Ex
      ception, [])}), |  | 
| 524     methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic
      , core.Map])}) |  | 
| 525   }); |  | 
| 526   src__error_matchers.isException = dart.const(new src__error_matchers._Exceptio
      n()); |  | 
| 527   matcher.isException = src__error_matchers.isException; |  | 
| 528   src__error_matchers._NullThrownError = class _NullThrownError extends src__cor
      e_matchers.TypeMatcher { |  | 
| 529     new() { |  | 
| 530       super.new("NullThrownError"); |  | 
| 531     } |  | 
| 532     matches(item, matchState) { |  | 
| 533       return core.NullThrownError.is(item); |  | 
| 534     } |  | 
| 535   }; |  | 
| 536   dart.setSignature(src__error_matchers._NullThrownError, { |  | 
| 537     constructors: () => ({new: dart.definiteFunctionType(src__error_matchers._Nu
      llThrownError, [])}), |  | 
| 538     methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic
      , core.Map])}) |  | 
| 539   }); |  | 
| 540   src__error_matchers.isNullThrownError = dart.const(new src__error_matchers._Nu
      llThrownError()); |  | 
| 541   matcher.isNullThrownError = src__error_matchers.isNullThrownError; |  | 
| 542   src__error_matchers._RangeError = class _RangeError extends src__core_matchers
      .TypeMatcher { |  | 
| 543     new() { |  | 
| 544       super.new("RangeError"); |  | 
| 545     } |  | 
| 546     matches(item, matchState) { |  | 
| 547       return core.RangeError.is(item); |  | 
| 548     } |  | 
| 549   }; |  | 
| 550   dart.setSignature(src__error_matchers._RangeError, { |  | 
| 551     constructors: () => ({new: dart.definiteFunctionType(src__error_matchers._Ra
      ngeError, [])}), |  | 
| 552     methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic
      , core.Map])}) |  | 
| 553   }); |  | 
| 554   src__error_matchers.isRangeError = dart.const(new src__error_matchers._RangeEr
      ror()); |  | 
| 555   matcher.isRangeError = src__error_matchers.isRangeError; |  | 
| 556   src__error_matchers._FormatException = class _FormatException extends src__cor
      e_matchers.TypeMatcher { |  | 
| 557     new() { |  | 
| 558       super.new("FormatException"); |  | 
| 559     } |  | 
| 560     matches(item, matchState) { |  | 
| 561       return core.FormatException.is(item); |  | 
| 562     } |  | 
| 563   }; |  | 
| 564   dart.setSignature(src__error_matchers._FormatException, { |  | 
| 565     constructors: () => ({new: dart.definiteFunctionType(src__error_matchers._Fo
      rmatException, [])}), |  | 
| 566     methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic
      , core.Map])}) |  | 
| 567   }); |  | 
| 568   src__error_matchers.isFormatException = dart.const(new src__error_matchers._Fo
      rmatException()); |  | 
| 569   matcher.isFormatException = src__error_matchers.isFormatException; |  | 
| 570   src__error_matchers._StateError = class _StateError extends src__core_matchers
      .TypeMatcher { |  | 
| 571     new() { |  | 
| 572       super.new("StateError"); |  | 
| 573     } |  | 
| 574     matches(item, matchState) { |  | 
| 575       return core.StateError.is(item); |  | 
| 576     } |  | 
| 577   }; |  | 
| 578   dart.setSignature(src__error_matchers._StateError, { |  | 
| 579     constructors: () => ({new: dart.definiteFunctionType(src__error_matchers._St
      ateError, [])}), |  | 
| 580     methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic
      , core.Map])}) |  | 
| 581   }); |  | 
| 582   src__error_matchers.isStateError = dart.const(new src__error_matchers._StateEr
      ror()); |  | 
| 583   matcher.isStateError = src__error_matchers.isStateError; |  | 
| 584   src__error_matchers._NoSuchMethodError = class _NoSuchMethodError extends src_
      _core_matchers.TypeMatcher { |  | 
| 585     new() { |  | 
| 586       super.new("NoSuchMethodError"); |  | 
| 587     } |  | 
| 588     matches(item, matchState) { |  | 
| 589       return core.NoSuchMethodError.is(item); |  | 
| 590     } |  | 
| 591   }; |  | 
| 592   dart.setSignature(src__error_matchers._NoSuchMethodError, { |  | 
| 593     constructors: () => ({new: dart.definiteFunctionType(src__error_matchers._No
      SuchMethodError, [])}), |  | 
| 594     methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic
      , core.Map])}) |  | 
| 595   }); |  | 
| 596   src__error_matchers.isNoSuchMethodError = dart.const(new src__error_matchers._
      NoSuchMethodError()); |  | 
| 597   matcher.isNoSuchMethodError = src__error_matchers.isNoSuchMethodError; |  | 
| 598   src__error_matchers._UnimplementedError = class _UnimplementedError extends sr
      c__core_matchers.TypeMatcher { |  | 
| 599     new() { |  | 
| 600       super.new("UnimplementedError"); |  | 
| 601     } |  | 
| 602     matches(item, matchState) { |  | 
| 603       return core.UnimplementedError.is(item); |  | 
| 604     } |  | 
| 605   }; |  | 
| 606   dart.setSignature(src__error_matchers._UnimplementedError, { |  | 
| 607     constructors: () => ({new: dart.definiteFunctionType(src__error_matchers._Un
      implementedError, [])}), |  | 
| 608     methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic
      , core.Map])}) |  | 
| 609   }); |  | 
| 610   src__error_matchers.isUnimplementedError = dart.const(new src__error_matchers.
      _UnimplementedError()); |  | 
| 611   matcher.isUnimplementedError = src__error_matchers.isUnimplementedError; |  | 
| 612   src__error_matchers._UnsupportedError = class _UnsupportedError extends src__c
      ore_matchers.TypeMatcher { |  | 
| 613     new() { |  | 
| 614       super.new("UnsupportedError"); |  | 
| 615     } |  | 
| 616     matches(item, matchState) { |  | 
| 617       return core.UnsupportedError.is(item); |  | 
| 618     } |  | 
| 619   }; |  | 
| 620   dart.setSignature(src__error_matchers._UnsupportedError, { |  | 
| 621     constructors: () => ({new: dart.definiteFunctionType(src__error_matchers._Un
      supportedError, [])}), |  | 
| 622     methods: () => ({matches: dart.definiteFunctionType(core.bool, [dart.dynamic
      , core.Map])}) |  | 
| 623   }); |  | 
| 624   src__error_matchers.isUnsupportedError = dart.const(new src__error_matchers._U
      nsupportedError()); |  | 
| 625   matcher.isUnsupportedError = src__error_matchers.isUnsupportedError; |  | 
| 626   matcher.Matcher = src__interfaces.Matcher; |  | 
| 627   src__interfaces.Description = class Description extends core.Object {}; |  | 
| 628   matcher.Description = src__interfaces.Description; |  | 
| 629   src__iterable_matchers.pairwiseCompare = function(expected, comparator, descri
      ption) { |  | 
| 630     return new src__iterable_matchers._PairwiseCompare(expected, comparator, des
      cription); |  | 
| 631   }; |  | 
| 632   dart.fn(src__iterable_matchers.pairwiseCompare, IterableAndFnAndStringToMatche
      r()); |  | 
| 633   matcher.pairwiseCompare = src__iterable_matchers.pairwiseCompare; |  | 
| 634   src__iterable_matchers.anyElement = function(matcher) { |  | 
| 635     return new src__iterable_matchers._AnyElement(src__util.wrapMatcher(matcher)
      ); |  | 
| 636   }; |  | 
| 637   dart.fn(src__iterable_matchers.anyElement, dynamicToMatcher()); |  | 
| 638   matcher.anyElement = src__iterable_matchers.anyElement; |  | 
| 639   src__iterable_matchers.orderedEquals = function(expected) { |  | 
| 640     return new src__iterable_matchers._OrderedEquals(expected); |  | 
| 641   }; |  | 
| 642   dart.fn(src__iterable_matchers.orderedEquals, IterableToMatcher()); |  | 
| 643   matcher.orderedEquals = src__iterable_matchers.orderedEquals; |  | 
| 644   src__iterable_matchers.unorderedEquals = function(expected) { |  | 
| 645     return new src__iterable_matchers._UnorderedEquals(expected); |  | 
| 646   }; |  | 
| 647   dart.fn(src__iterable_matchers.unorderedEquals, IterableToMatcher()); |  | 
| 648   matcher.unorderedEquals = src__iterable_matchers.unorderedEquals; |  | 
| 649   src__iterable_matchers.unorderedMatches = function(expected) { |  | 
| 650     return new src__iterable_matchers._UnorderedMatches(expected); |  | 
| 651   }; |  | 
| 652   dart.fn(src__iterable_matchers.unorderedMatches, IterableToMatcher()); |  | 
| 653   matcher.unorderedMatches = src__iterable_matchers.unorderedMatches; |  | 
| 654   src__iterable_matchers.everyElement = function(matcher) { |  | 
| 655     return new src__iterable_matchers._EveryElement(src__util.wrapMatcher(matche
      r)); |  | 
| 656   }; |  | 
| 657   dart.fn(src__iterable_matchers.everyElement, dynamicToMatcher()); |  | 
| 658   matcher.everyElement = src__iterable_matchers.everyElement; |  | 
| 659   src__map_matchers.containsValue = function(value) { |  | 
| 660     return new src__map_matchers._ContainsValue(value); |  | 
| 661   }; |  | 
| 662   dart.fn(src__map_matchers.containsValue, dynamicToMatcher()); |  | 
| 663   matcher.containsValue = src__map_matchers.containsValue; |  | 
| 664   src__map_matchers.containsPair = function(key, value) { |  | 
| 665     return new src__map_matchers._ContainsMapping(key, src__util.wrapMatcher(val
      ue)); |  | 
| 666   }; |  | 
| 667   dart.fn(src__map_matchers.containsPair, dynamicAnddynamicToMatcher()); |  | 
| 668   matcher.containsPair = src__map_matchers.containsPair; |  | 
| 669   const _value = Symbol('_value'); |  | 
| 670   const _equalValue = Symbol('_equalValue'); |  | 
| 671   const _lessThanValue = Symbol('_lessThanValue'); |  | 
| 672   const _greaterThanValue = Symbol('_greaterThanValue'); |  | 
| 673   const _comparisonDescription = Symbol('_comparisonDescription'); |  | 
| 674   const _valueInDescription = Symbol('_valueInDescription'); |  | 
| 675   src__numeric_matchers._OrderingComparison = class _OrderingComparison extends 
      src__interfaces.Matcher { |  | 
| 676     new(value, equalValue, lessThanValue, greaterThanValue, comparisonDescriptio
      n, valueInDescription) { |  | 
| 677       if (valueInDescription === void 0) valueInDescription = true; |  | 
| 678       this[_value] = value; |  | 
| 679       this[_equalValue] = equalValue; |  | 
| 680       this[_lessThanValue] = lessThanValue; |  | 
| 681       this[_greaterThanValue] = greaterThanValue; |  | 
| 682       this[_comparisonDescription] = comparisonDescription; |  | 
| 683       this[_valueInDescription] = valueInDescription; |  | 
| 684       super.new(); |  | 
| 685     } |  | 
| 686     matches(item, matchState) { |  | 
| 687       if (dart.equals(item, this[_value])) { |  | 
| 688         return this[_equalValue]; |  | 
| 689       } else if (dart.test(dart.dsend(item, '<', this[_value]))) { |  | 
| 690         return this[_lessThanValue]; |  | 
| 691       } else { |  | 
| 692         return this[_greaterThanValue]; |  | 
| 693       } |  | 
| 694     } |  | 
| 695     describe(description) { |  | 
| 696       if (dart.test(this[_valueInDescription])) { |  | 
| 697         return description.add(this[_comparisonDescription]).add(' ').addDescrip
      tionOf(this[_value]); |  | 
| 698       } else { |  | 
| 699         return description.add(this[_comparisonDescription]); |  | 
| 700       } |  | 
| 701     } |  | 
| 702     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 703       mismatchDescription.add('is not '); |  | 
| 704       return this.describe(mismatchDescription); |  | 
| 705     } |  | 
| 706   }; |  | 
| 707   dart.setSignature(src__numeric_matchers._OrderingComparison, { |  | 
| 708     constructors: () => ({new: dart.definiteFunctionType(src__numeric_matchers._
      OrderingComparison, [dart.dynamic, core.bool, core.bool, core.bool, core.String]
      , [core.bool])}), |  | 
| 709     methods: () => ({ |  | 
| 710       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 711       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 712     }) |  | 
| 713   }); |  | 
| 714   src__numeric_matchers.isPositive = dart.const(new src__numeric_matchers._Order
      ingComparison(0, false, false, true, 'a positive value', false)); |  | 
| 715   matcher.isPositive = src__numeric_matchers.isPositive; |  | 
| 716   src__numeric_matchers.isZero = dart.const(new src__numeric_matchers._OrderingC
      omparison(0, true, false, false, 'a value equal to')); |  | 
| 717   matcher.isZero = src__numeric_matchers.isZero; |  | 
| 718   src__numeric_matchers.inOpenClosedRange = function(low, high) { |  | 
| 719     return new src__numeric_matchers._InRange(low, high, false, true); |  | 
| 720   }; |  | 
| 721   dart.fn(src__numeric_matchers.inOpenClosedRange, numAndnumToMatcher()); |  | 
| 722   matcher.inOpenClosedRange = src__numeric_matchers.inOpenClosedRange; |  | 
| 723   src__numeric_matchers.inClosedOpenRange = function(low, high) { |  | 
| 724     return new src__numeric_matchers._InRange(low, high, true, false); |  | 
| 725   }; |  | 
| 726   dart.fn(src__numeric_matchers.inClosedOpenRange, numAndnumToMatcher()); |  | 
| 727   matcher.inClosedOpenRange = src__numeric_matchers.inClosedOpenRange; |  | 
| 728   src__numeric_matchers.lessThanOrEqualTo = function(value) { |  | 
| 729     return new src__numeric_matchers._OrderingComparison(value, true, true, fals
      e, 'a value less than or equal to'); |  | 
| 730   }; |  | 
| 731   dart.fn(src__numeric_matchers.lessThanOrEqualTo, dynamicToMatcher()); |  | 
| 732   matcher.lessThanOrEqualTo = src__numeric_matchers.lessThanOrEqualTo; |  | 
| 733   src__numeric_matchers.isNegative = dart.const(new src__numeric_matchers._Order
      ingComparison(0, false, true, false, 'a negative value', false)); |  | 
| 734   matcher.isNegative = src__numeric_matchers.isNegative; |  | 
| 735   src__numeric_matchers.inInclusiveRange = function(low, high) { |  | 
| 736     return new src__numeric_matchers._InRange(low, high, true, true); |  | 
| 737   }; |  | 
| 738   dart.fn(src__numeric_matchers.inInclusiveRange, numAndnumToMatcher()); |  | 
| 739   matcher.inInclusiveRange = src__numeric_matchers.inInclusiveRange; |  | 
| 740   src__numeric_matchers.lessThan = function(value) { |  | 
| 741     return new src__numeric_matchers._OrderingComparison(value, false, true, fal
      se, 'a value less than'); |  | 
| 742   }; |  | 
| 743   dart.fn(src__numeric_matchers.lessThan, dynamicToMatcher()); |  | 
| 744   matcher.lessThan = src__numeric_matchers.lessThan; |  | 
| 745   src__numeric_matchers.greaterThan = function(value) { |  | 
| 746     return new src__numeric_matchers._OrderingComparison(value, false, false, tr
      ue, 'a value greater than'); |  | 
| 747   }; |  | 
| 748   dart.fn(src__numeric_matchers.greaterThan, dynamicToMatcher()); |  | 
| 749   matcher.greaterThan = src__numeric_matchers.greaterThan; |  | 
| 750   src__numeric_matchers.isNonNegative = dart.const(new src__numeric_matchers._Or
      deringComparison(0, true, false, true, 'a non-negative value', false)); |  | 
| 751   matcher.isNonNegative = src__numeric_matchers.isNonNegative; |  | 
| 752   src__numeric_matchers.inExclusiveRange = function(low, high) { |  | 
| 753     return new src__numeric_matchers._InRange(low, high, false, false); |  | 
| 754   }; |  | 
| 755   dart.fn(src__numeric_matchers.inExclusiveRange, numAndnumToMatcher()); |  | 
| 756   matcher.inExclusiveRange = src__numeric_matchers.inExclusiveRange; |  | 
| 757   src__numeric_matchers.closeTo = function(value, delta) { |  | 
| 758     return new src__numeric_matchers._IsCloseTo(value, delta); |  | 
| 759   }; |  | 
| 760   dart.fn(src__numeric_matchers.closeTo, numAndnumToMatcher()); |  | 
| 761   matcher.closeTo = src__numeric_matchers.closeTo; |  | 
| 762   src__numeric_matchers.greaterThanOrEqualTo = function(value) { |  | 
| 763     return new src__numeric_matchers._OrderingComparison(value, true, false, tru
      e, 'a value greater than or equal to'); |  | 
| 764   }; |  | 
| 765   dart.fn(src__numeric_matchers.greaterThanOrEqualTo, dynamicToMatcher()); |  | 
| 766   matcher.greaterThanOrEqualTo = src__numeric_matchers.greaterThanOrEqualTo; |  | 
| 767   src__numeric_matchers.isNonZero = dart.const(new src__numeric_matchers._Orderi
      ngComparison(0, false, true, true, 'a value not equal to')); |  | 
| 768   matcher.isNonZero = src__numeric_matchers.isNonZero; |  | 
| 769   src__numeric_matchers.isNonPositive = dart.const(new src__numeric_matchers._Or
      deringComparison(0, true, true, false, 'a non-positive value', false)); |  | 
| 770   matcher.isNonPositive = src__numeric_matchers.isNonPositive; |  | 
| 771   src__operator_matchers.allOf = function(arg0, arg1, arg2, arg3, arg4, arg5, ar
      g6) { |  | 
| 772     if (arg1 === void 0) arg1 = null; |  | 
| 773     if (arg2 === void 0) arg2 = null; |  | 
| 774     if (arg3 === void 0) arg3 = null; |  | 
| 775     if (arg4 === void 0) arg4 = null; |  | 
| 776     if (arg5 === void 0) arg5 = null; |  | 
| 777     if (arg6 === void 0) arg6 = null; |  | 
| 778     return new src__operator_matchers._AllOf(src__operator_matchers._wrapArgs(ar
      g0, arg1, arg2, arg3, arg4, arg5, arg6)); |  | 
| 779   }; |  | 
| 780   dart.fn(src__operator_matchers.allOf, dynamic__ToMatcher$()); |  | 
| 781   matcher.allOf = src__operator_matchers.allOf; |  | 
| 782   src__operator_matchers.isNot = function(matcher) { |  | 
| 783     return new src__operator_matchers._IsNot(src__util.wrapMatcher(matcher)); |  | 
| 784   }; |  | 
| 785   dart.fn(src__operator_matchers.isNot, dynamicToMatcher()); |  | 
| 786   matcher.isNot = src__operator_matchers.isNot; |  | 
| 787   src__operator_matchers.anyOf = function(arg0, arg1, arg2, arg3, arg4, arg5, ar
      g6) { |  | 
| 788     if (arg1 === void 0) arg1 = null; |  | 
| 789     if (arg2 === void 0) arg2 = null; |  | 
| 790     if (arg3 === void 0) arg3 = null; |  | 
| 791     if (arg4 === void 0) arg4 = null; |  | 
| 792     if (arg5 === void 0) arg5 = null; |  | 
| 793     if (arg6 === void 0) arg6 = null; |  | 
| 794     return new src__operator_matchers._AnyOf(src__operator_matchers._wrapArgs(ar
      g0, arg1, arg2, arg3, arg4, arg5, arg6)); |  | 
| 795   }; |  | 
| 796   dart.fn(src__operator_matchers.anyOf, dynamic__ToMatcher$()); |  | 
| 797   matcher.anyOf = src__operator_matchers.anyOf; |  | 
| 798   src__string_matchers.endsWith = function(suffixString) { |  | 
| 799     return new src__string_matchers._StringEndsWith(suffixString); |  | 
| 800   }; |  | 
| 801   dart.fn(src__string_matchers.endsWith, StringToMatcher()); |  | 
| 802   matcher.endsWith = src__string_matchers.endsWith; |  | 
| 803   src__string_matchers.startsWith = function(prefixString) { |  | 
| 804     return new src__string_matchers._StringStartsWith(prefixString); |  | 
| 805   }; |  | 
| 806   dart.fn(src__string_matchers.startsWith, StringToMatcher()); |  | 
| 807   matcher.startsWith = src__string_matchers.startsWith; |  | 
| 808   src__string_matchers.matches = function(re) { |  | 
| 809     return new src__string_matchers._MatchesRegExp(re); |  | 
| 810   }; |  | 
| 811   dart.fn(src__string_matchers.matches, dynamicToMatcher()); |  | 
| 812   matcher.matches = src__string_matchers.matches; |  | 
| 813   src__string_matchers.collapseWhitespace = function(string) { |  | 
| 814     let result = new core.StringBuffer(); |  | 
| 815     let skipSpace = true; |  | 
| 816     for (let i = 0; i < dart.notNull(string[dartx.length]); i++) { |  | 
| 817       let character = string[dartx.get](i); |  | 
| 818       if (dart.test(src__string_matchers._isWhitespace(character))) { |  | 
| 819         if (!skipSpace) { |  | 
| 820           result.write(' '); |  | 
| 821           skipSpace = true; |  | 
| 822         } |  | 
| 823       } else { |  | 
| 824         result.write(character); |  | 
| 825         skipSpace = false; |  | 
| 826       } |  | 
| 827     } |  | 
| 828     return result.toString()[dartx.trim](); |  | 
| 829   }; |  | 
| 830   dart.fn(src__string_matchers.collapseWhitespace, StringToString()); |  | 
| 831   matcher.collapseWhitespace = src__string_matchers.collapseWhitespace; |  | 
| 832   src__string_matchers.equalsIgnoringCase = function(value) { |  | 
| 833     return new src__string_matchers._IsEqualIgnoringCase(value); |  | 
| 834   }; |  | 
| 835   dart.fn(src__string_matchers.equalsIgnoringCase, StringToMatcher()); |  | 
| 836   matcher.equalsIgnoringCase = src__string_matchers.equalsIgnoringCase; |  | 
| 837   src__string_matchers.equalsIgnoringWhitespace = function(value) { |  | 
| 838     return new src__string_matchers._IsEqualIgnoringWhitespace(value); |  | 
| 839   }; |  | 
| 840   dart.fn(src__string_matchers.equalsIgnoringWhitespace, StringToMatcher()); |  | 
| 841   matcher.equalsIgnoringWhitespace = src__string_matchers.equalsIgnoringWhitespa
      ce; |  | 
| 842   src__string_matchers.stringContainsInOrder = function(substrings) { |  | 
| 843     return new src__string_matchers._StringContainsInOrder(substrings); |  | 
| 844   }; |  | 
| 845   dart.fn(src__string_matchers.stringContainsInOrder, ListOfStringToMatcher()); |  | 
| 846   matcher.stringContainsInOrder = src__string_matchers.stringContainsInOrder; |  | 
| 847   src__util.addStateInfo = function(matchState, values) { |  | 
| 848     let innerState = core.Map.from(matchState); |  | 
| 849     matchState[dartx.clear](); |  | 
| 850     matchState[dartx.set]('state', innerState); |  | 
| 851     matchState[dartx.addAll](values); |  | 
| 852   }; |  | 
| 853   dart.fn(src__util.addStateInfo, MapAndMapTovoid()); |  | 
| 854   matcher.addStateInfo = src__util.addStateInfo; |  | 
| 855   src__util.wrapMatcher = function(x) { |  | 
| 856     if (src__interfaces.Matcher.is(x)) { |  | 
| 857       return x; |  | 
| 858     } else if (src__util._Predicate.is(x)) { |  | 
| 859       return src__core_matchers.predicate(x); |  | 
| 860     } else { |  | 
| 861       return src__core_matchers.equals(x); |  | 
| 862     } |  | 
| 863   }; |  | 
| 864   dart.fn(src__util.wrapMatcher, dynamicToMatcher()); |  | 
| 865   matcher.wrapMatcher = src__util.wrapMatcher; |  | 
| 866   src__util.escape = function(str) { |  | 
| 867     str = str[dartx.replaceAll]('\\', '\\\\'); |  | 
| 868     return str[dartx.replaceAllMapped](src__util._escapeRegExp, dart.fn(match =>
       { |  | 
| 869       let mapped = src__util._escapeMap[dartx.get](match.get(0)); |  | 
| 870       if (mapped != null) return mapped; |  | 
| 871       return src__util._getHexLiteral(match.get(0)); |  | 
| 872     }, MatchToString())); |  | 
| 873   }; |  | 
| 874   dart.fn(src__util.escape, StringToString()); |  | 
| 875   matcher.escape = src__util.escape; |  | 
| 876   mirror_matchers.hasProperty = function(name, matcher) { |  | 
| 877     if (matcher === void 0) matcher = null; |  | 
| 878     return new mirror_matchers._HasProperty(name, matcher == null ? null : src__
      util.wrapMatcher(matcher)); |  | 
| 879   }; |  | 
| 880   dart.fn(mirror_matchers.hasProperty, String__ToMatcher()); |  | 
| 881   const _name$ = Symbol('_name'); |  | 
| 882   const _matcher$ = Symbol('_matcher'); |  | 
| 883   mirror_matchers._HasProperty = class _HasProperty extends src__interfaces.Matc
      her { |  | 
| 884     new(name, matcher) { |  | 
| 885       if (matcher === void 0) matcher = null; |  | 
| 886       this[_name$] = name; |  | 
| 887       this[_matcher$] = matcher; |  | 
| 888       super.new(); |  | 
| 889     } |  | 
| 890     matches(item, matchState) { |  | 
| 891       let mirror = mirrors.reflect(item); |  | 
| 892       let classMirror = mirror.type; |  | 
| 893       let symbol = core.Symbol.new(this[_name$]); |  | 
| 894       let candidate = classMirror.declarations[dartx.get](symbol); |  | 
| 895       if (candidate == null) { |  | 
| 896         src__util.addStateInfo(matchState, dart.map({reason: dart.str`has no pro
      perty named "${this[_name$]}"`}, core.String, core.String)); |  | 
| 897         return false; |  | 
| 898       } |  | 
| 899       let isInstanceField = mirrors.VariableMirror.is(candidate) && !dart.test(c
      andidate.isStatic); |  | 
| 900       let isInstanceGetter = mirrors.MethodMirror.is(candidate) && dart.test(can
      didate.isGetter) && !dart.test(candidate.isStatic); |  | 
| 901       if (!(isInstanceField || isInstanceGetter)) { |  | 
| 902         src__util.addStateInfo(matchState, dart.map({reason: dart.str`has a memb
      er named "${this[_name$]}", but it is not an instance property`}, core.String, c
      ore.String)); |  | 
| 903         return false; |  | 
| 904       } |  | 
| 905       if (this[_matcher$] == null) return true; |  | 
| 906       let result = mirror.getField(symbol); |  | 
| 907       let resultMatches = this[_matcher$].matches(result.reflectee, matchState); |  | 
| 908       if (!dart.test(resultMatches)) { |  | 
| 909         src__util.addStateInfo(matchState, dart.map({value: result.reflectee}, c
      ore.String, dart.dynamic)); |  | 
| 910       } |  | 
| 911       return resultMatches; |  | 
| 912     } |  | 
| 913     describe(description) { |  | 
| 914       description.add(dart.str`has property "${this[_name$]}"`); |  | 
| 915       if (this[_matcher$] != null) { |  | 
| 916         description.add(' which matches ').addDescriptionOf(this[_matcher$]); |  | 
| 917       } |  | 
| 918       return description; |  | 
| 919     } |  | 
| 920     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 921       let reason = matchState == null ? null : matchState[dartx.get]('reason'); |  | 
| 922       if (reason != null) { |  | 
| 923         mismatchDescription.add(core.String._check(reason)); |  | 
| 924       } else { |  | 
| 925         mismatchDescription.add(dart.str`has property "${this[_name$]}" with val
      ue `).addDescriptionOf(matchState[dartx.get]('value')); |  | 
| 926         let innerDescription = new src__description.StringDescription(); |  | 
| 927         this[_matcher$].describeMismatch(matchState[dartx.get]('value'), innerDe
      scription, core.Map._check(matchState[dartx.get]('state')), verbose); |  | 
| 928         if (dart.notNull(innerDescription.length) > 0) { |  | 
| 929           mismatchDescription.add(' which ').add(innerDescription.toString()); |  | 
| 930         } |  | 
| 931       } |  | 
| 932       return mismatchDescription; |  | 
| 933     } |  | 
| 934   }; |  | 
| 935   dart.setSignature(mirror_matchers._HasProperty, { |  | 
| 936     constructors: () => ({new: dart.definiteFunctionType(mirror_matchers._HasPro
      perty, [core.String], [src__interfaces.Matcher])}), |  | 
| 937     methods: () => ({ |  | 
| 938       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 939       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 940     }) |  | 
| 941   }); |  | 
| 942   const _expected = Symbol('_expected'); |  | 
| 943   src__core_matchers._IsSameAs = class _IsSameAs extends src__interfaces.Matcher
       { |  | 
| 944     new(expected) { |  | 
| 945       this[_expected] = expected; |  | 
| 946       super.new(); |  | 
| 947     } |  | 
| 948     matches(item, matchState) { |  | 
| 949       return core.identical(item, this[_expected]); |  | 
| 950     } |  | 
| 951     describe(description) { |  | 
| 952       return description.add('same instance as ').addDescriptionOf(this[_expecte
      d]); |  | 
| 953     } |  | 
| 954   }; |  | 
| 955   dart.setSignature(src__core_matchers._IsSameAs, { |  | 
| 956     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._IsS
      ameAs, [dart.dynamic])}), |  | 
| 957     methods: () => ({ |  | 
| 958       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 959       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 960     }) |  | 
| 961   }); |  | 
| 962   const _limit = Symbol('_limit'); |  | 
| 963   const _compareIterables = Symbol('_compareIterables'); |  | 
| 964   const _compareSets = Symbol('_compareSets'); |  | 
| 965   const _recursiveMatch = Symbol('_recursiveMatch'); |  | 
| 966   const _match = Symbol('_match'); |  | 
| 967   src__core_matchers._DeepMatcher = class _DeepMatcher extends src__interfaces.M
      atcher { |  | 
| 968     new(expected, limit) { |  | 
| 969       if (limit === void 0) limit = 1000; |  | 
| 970       this[_expected] = expected; |  | 
| 971       this[_limit] = limit; |  | 
| 972       this.count = null; |  | 
| 973       super.new(); |  | 
| 974     } |  | 
| 975     [_compareIterables](expected, actual, matcher, depth, location) { |  | 
| 976       if (!core.Iterable.is(actual)) return ['is not Iterable', location]; |  | 
| 977       let expectedIterator = dart.dload(expected, 'iterator'); |  | 
| 978       let actualIterator = dart.dload(actual, 'iterator'); |  | 
| 979       for (let index = 0;; index++) { |  | 
| 980         let expectedNext = dart.dsend(expectedIterator, 'moveNext'); |  | 
| 981         let actualNext = dart.dsend(actualIterator, 'moveNext'); |  | 
| 982         if (!dart.test(expectedNext) && !dart.test(actualNext)) return null; |  | 
| 983         let newLocation = dart.str`${location}[${index}]`; |  | 
| 984         if (!dart.test(expectedNext)) return JSArrayOfString().of(['longer than 
      expected', newLocation]); |  | 
| 985         if (!dart.test(actualNext)) return JSArrayOfString().of(['shorter than e
      xpected', newLocation]); |  | 
| 986         let rp = dart.dcall(matcher, dart.dload(expectedIterator, 'current'), da
      rt.dload(actualIterator, 'current'), newLocation, depth); |  | 
| 987         if (rp != null) return core.List._check(rp); |  | 
| 988       } |  | 
| 989     } |  | 
| 990     [_compareSets](expected, actual, matcher, depth, location) { |  | 
| 991       if (!core.Iterable.is(actual)) return ['is not Iterable', location]; |  | 
| 992       actual = dart.dsend(actual, 'toSet'); |  | 
| 993       for (let expectedElement of expected) { |  | 
| 994         if (dart.test(dart.dsend(actual, 'every', dart.fn(actualElement => dart.
      dcall(matcher, expectedElement, actualElement, location, depth) != null, dynamic
      Tobool$())))) { |  | 
| 995           return [dart.str`does not contain ${expectedElement}`, location]; |  | 
| 996         } |  | 
| 997       } |  | 
| 998       if (dart.test(dart.dsend(dart.dload(actual, 'length'), '>', expected.lengt
      h))) { |  | 
| 999         return ['larger than expected', location]; |  | 
| 1000       } else if (dart.test(dart.dsend(dart.dload(actual, 'length'), '<', expecte
      d.length))) { |  | 
| 1001         return ['smaller than expected', location]; |  | 
| 1002       } else { |  | 
| 1003         return null; |  | 
| 1004       } |  | 
| 1005     } |  | 
| 1006     [_recursiveMatch](expected, actual, location, depth) { |  | 
| 1007       if (src__interfaces.Matcher.is(expected)) { |  | 
| 1008         let matchState = dart.map(); |  | 
| 1009         if (dart.test(expected.matches(actual, matchState))) return null; |  | 
| 1010         let description = new src__description.StringDescription(); |  | 
| 1011         expected.describe(description); |  | 
| 1012         return JSArrayOfString().of([dart.str`does not match ${description}`, lo
      cation]); |  | 
| 1013       } else { |  | 
| 1014         try { |  | 
| 1015           if (dart.equals(expected, actual)) return null; |  | 
| 1016         } catch (e) { |  | 
| 1017           return JSArrayOfString().of([dart.str`== threw "${e}"`, location]); |  | 
| 1018         } |  | 
| 1019 |  | 
| 1020       } |  | 
| 1021       if (dart.notNull(depth) > dart.notNull(this[_limit])) return JSArrayOfStri
      ng().of(['recursion depth limit exceeded', location]); |  | 
| 1022       if (depth == 0 || dart.notNull(this[_limit]) > 1) { |  | 
| 1023         if (core.Set.is(expected)) { |  | 
| 1024           return this[_compareSets](expected, actual, dart.bind(this, _recursive
      Match), dart.notNull(depth) + 1, location); |  | 
| 1025         } else if (core.Iterable.is(expected)) { |  | 
| 1026           return this[_compareIterables](expected, actual, dart.bind(this, _recu
      rsiveMatch), dart.notNull(depth) + 1, location); |  | 
| 1027         } else if (core.Map.is(expected)) { |  | 
| 1028           if (!core.Map.is(actual)) return JSArrayOfString().of(['expected a map
      ', location]); |  | 
| 1029           let err = dart.equals(expected[dartx.length], dart.dload(actual, 'leng
      th')) ? '' : 'has different length and '; |  | 
| 1030           for (let key of expected[dartx.keys]) { |  | 
| 1031             if (!dart.test(dart.dsend(actual, 'containsKey', key))) { |  | 
| 1032               return JSArrayOfString().of([dart.str`${err}is missing map key '${
      key}'`, location]); |  | 
| 1033             } |  | 
| 1034           } |  | 
| 1035           for (let key of core.Iterable._check(dart.dload(actual, 'keys'))) { |  | 
| 1036             if (!dart.test(expected[dartx.containsKey](key))) { |  | 
| 1037               return JSArrayOfString().of([dart.str`${err}has extra map key '${k
      ey}'`, location]); |  | 
| 1038             } |  | 
| 1039           } |  | 
| 1040           for (let key of expected[dartx.keys]) { |  | 
| 1041             let rp = this[_recursiveMatch](expected[dartx.get](key), dart.dindex
      (actual, key), dart.str`${location}['${key}']`, dart.notNull(depth) + 1); |  | 
| 1042             if (rp != null) return rp; |  | 
| 1043           } |  | 
| 1044           return null; |  | 
| 1045         } |  | 
| 1046       } |  | 
| 1047       let description = new src__description.StringDescription(); |  | 
| 1048       if (dart.notNull(depth) > 0) { |  | 
| 1049         description.add('was ').addDescriptionOf(actual).add(' instead of ').add
      DescriptionOf(expected); |  | 
| 1050         return JSArrayOfString().of([description.toString(), location]); |  | 
| 1051       } |  | 
| 1052       return JSArrayOfString().of(["", location]); |  | 
| 1053     } |  | 
| 1054     [_match](expected, actual, matchState) { |  | 
| 1055       let rp = this[_recursiveMatch](expected, actual, '', 0); |  | 
| 1056       if (rp == null) return null; |  | 
| 1057       let reason = null; |  | 
| 1058       if (dart.test(dart.dsend(dart.dload(rp[dartx.get](0), 'length'), '>', 0)))
       { |  | 
| 1059         if (dart.test(dart.dsend(dart.dload(rp[dartx.get](1), 'length'), '>', 0)
      )) { |  | 
| 1060           reason = dart.str`${rp[dartx.get](0)} at location ${rp[dartx.get](1)}`
      ; |  | 
| 1061         } else { |  | 
| 1062           reason = rp[dartx.get](0); |  | 
| 1063         } |  | 
| 1064       } else { |  | 
| 1065         reason = ''; |  | 
| 1066       } |  | 
| 1067       src__util.addStateInfo(matchState, dart.map({reason: reason}, core.String,
       dart.dynamic)); |  | 
| 1068       return core.String._check(reason); |  | 
| 1069     } |  | 
| 1070     matches(item, matchState) { |  | 
| 1071       return this[_match](this[_expected], item, matchState) == null; |  | 
| 1072     } |  | 
| 1073     describe(description) { |  | 
| 1074       return description.addDescriptionOf(this[_expected]); |  | 
| 1075     } |  | 
| 1076     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 1077       let reason = matchState[dartx.get]('reason'); |  | 
| 1078       if (dart.equals(dart.dload(reason, 'length'), 0) && dart.notNull(mismatchD
      escription.length) > 0) { |  | 
| 1079         mismatchDescription.add('is ').addDescriptionOf(item); |  | 
| 1080       } else { |  | 
| 1081         mismatchDescription.add(core.String._check(reason)); |  | 
| 1082       } |  | 
| 1083       return mismatchDescription; |  | 
| 1084     } |  | 
| 1085   }; |  | 
| 1086   dart.setSignature(src__core_matchers._DeepMatcher, { |  | 
| 1087     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._Dee
      pMatcher, [dart.dynamic], [core.int])}), |  | 
| 1088     methods: () => ({ |  | 
| 1089       [_compareIterables]: dart.definiteFunctionType(core.List, [dart.dynamic, d
      art.dynamic, dart.dynamic, dart.dynamic, dart.dynamic]), |  | 
| 1090       [_compareSets]: dart.definiteFunctionType(core.List, [core.Set, dart.dynam
      ic, dart.dynamic, dart.dynamic, dart.dynamic]), |  | 
| 1091       [_recursiveMatch]: dart.definiteFunctionType(core.List, [dart.dynamic, dar
      t.dynamic, core.String, core.int]), |  | 
| 1092       [_match]: dart.definiteFunctionType(core.String, [dart.dynamic, dart.dynam
      ic, core.Map]), |  | 
| 1093       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1094       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1095     }) |  | 
| 1096   }); |  | 
| 1097   const _value$ = Symbol('_value'); |  | 
| 1098   src__core_matchers._StringEqualsMatcher = class _StringEqualsMatcher extends s
      rc__interfaces.Matcher { |  | 
| 1099     new(value) { |  | 
| 1100       this[_value$] = value; |  | 
| 1101       super.new(); |  | 
| 1102     } |  | 
| 1103     get showActualValue() { |  | 
| 1104       return true; |  | 
| 1105     } |  | 
| 1106     matches(item, matchState) { |  | 
| 1107       return dart.equals(this[_value$], item); |  | 
| 1108     } |  | 
| 1109     describe(description) { |  | 
| 1110       return description.addDescriptionOf(this[_value$]); |  | 
| 1111     } |  | 
| 1112     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 1113       if (!(typeof item == 'string')) { |  | 
| 1114         return mismatchDescription.addDescriptionOf(item).add('is not a string')
      ; |  | 
| 1115       } else { |  | 
| 1116         let buff = new core.StringBuffer(); |  | 
| 1117         buff.write('is different.'); |  | 
| 1118         let escapedItem = src__util.escape(core.String._check(item)); |  | 
| 1119         let escapedValue = src__util.escape(this[_value$]); |  | 
| 1120         let minLength = dart.notNull(escapedItem[dartx.length]) < dart.notNull(e
      scapedValue[dartx.length]) ? escapedItem[dartx.length] : escapedValue[dartx.leng
      th]; |  | 
| 1121         let start = 0; |  | 
| 1122         for (; start < dart.notNull(minLength); start++) { |  | 
| 1123           if (escapedValue[dartx.codeUnitAt](start) != escapedItem[dartx.codeUni
      tAt](start)) { |  | 
| 1124             break; |  | 
| 1125           } |  | 
| 1126         } |  | 
| 1127         if (start == minLength) { |  | 
| 1128           if (dart.notNull(escapedValue[dartx.length]) < dart.notNull(escapedIte
      m[dartx.length])) { |  | 
| 1129             buff.write(' Both strings start the same, but the given value also' 
      + ' has the following trailing characters: '); |  | 
| 1130             src__core_matchers._StringEqualsMatcher._writeTrailing(buff, escaped
      Item, escapedValue[dartx.length]); |  | 
| 1131           } else { |  | 
| 1132             buff.write(' Both strings start the same, but the given value is' + 
      ' missing the following trailing characters: '); |  | 
| 1133             src__core_matchers._StringEqualsMatcher._writeTrailing(buff, escaped
      Value, escapedItem[dartx.length]); |  | 
| 1134           } |  | 
| 1135         } else { |  | 
| 1136           buff.write('\nExpected: '); |  | 
| 1137           src__core_matchers._StringEqualsMatcher._writeLeading(buff, escapedVal
      ue, start); |  | 
| 1138           src__core_matchers._StringEqualsMatcher._writeTrailing(buff, escapedVa
      lue, start); |  | 
| 1139           buff.write('\n  Actual: '); |  | 
| 1140           src__core_matchers._StringEqualsMatcher._writeLeading(buff, escapedIte
      m, start); |  | 
| 1141           src__core_matchers._StringEqualsMatcher._writeTrailing(buff, escapedIt
      em, start); |  | 
| 1142           buff.write('\n          '); |  | 
| 1143           for (let i = start > 10 ? 14 : start; i > 0; i--) |  | 
| 1144             buff.write(' '); |  | 
| 1145           buff.write(dart.str`^\n Differ at offset ${start}`); |  | 
| 1146         } |  | 
| 1147         return mismatchDescription.replace(buff.toString()); |  | 
| 1148       } |  | 
| 1149     } |  | 
| 1150     static _writeLeading(buff, s, start) { |  | 
| 1151       if (dart.notNull(start) > 10) { |  | 
| 1152         buff.write('... '); |  | 
| 1153         buff.write(s[dartx.substring](dart.notNull(start) - 10, start)); |  | 
| 1154       } else { |  | 
| 1155         buff.write(s[dartx.substring](0, start)); |  | 
| 1156       } |  | 
| 1157     } |  | 
| 1158     static _writeTrailing(buff, s, start) { |  | 
| 1159       if (dart.notNull(start) + 10 > dart.notNull(s[dartx.length])) { |  | 
| 1160         buff.write(s[dartx.substring](start)); |  | 
| 1161       } else { |  | 
| 1162         buff.write(s[dartx.substring](start, dart.notNull(start) + 10)); |  | 
| 1163         buff.write(' ...'); |  | 
| 1164       } |  | 
| 1165     } |  | 
| 1166   }; |  | 
| 1167   dart.setSignature(src__core_matchers._StringEqualsMatcher, { |  | 
| 1168     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._Str
      ingEqualsMatcher, [core.String])}), |  | 
| 1169     methods: () => ({ |  | 
| 1170       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1171       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1172     }), |  | 
| 1173     statics: () => ({ |  | 
| 1174       _writeLeading: dart.definiteFunctionType(dart.void, [core.StringBuffer, co
      re.String, core.int]), |  | 
| 1175       _writeTrailing: dart.definiteFunctionType(dart.void, [core.StringBuffer, c
      ore.String, core.int]) |  | 
| 1176     }), |  | 
| 1177     names: ['_writeLeading', '_writeTrailing'] |  | 
| 1178   }); |  | 
| 1179   src__core_matchers._HasLength = class _HasLength extends src__interfaces.Match
      er { |  | 
| 1180     new(matcher) { |  | 
| 1181       if (matcher === void 0) matcher = null; |  | 
| 1182       this[_matcher] = matcher; |  | 
| 1183       super.new(); |  | 
| 1184     } |  | 
| 1185     matches(item, matchState) { |  | 
| 1186       try { |  | 
| 1187         if (dart.test(dart.dsend(dart.dsend(dart.dload(item, 'length'), '*', dar
      t.dload(item, 'length')), '>=', 0))) { |  | 
| 1188           return this[_matcher].matches(dart.dload(item, 'length'), matchState); |  | 
| 1189         } |  | 
| 1190       } catch (e) { |  | 
| 1191       } |  | 
| 1192 |  | 
| 1193       return false; |  | 
| 1194     } |  | 
| 1195     describe(description) { |  | 
| 1196       return description.add('an object with length of ').addDescriptionOf(this[
      _matcher]); |  | 
| 1197     } |  | 
| 1198     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 1199       try { |  | 
| 1200         if (dart.test(dart.dsend(dart.dsend(dart.dload(item, 'length'), '*', dar
      t.dload(item, 'length')), '>=', 0))) { |  | 
| 1201           return mismatchDescription.add('has length of ').addDescriptionOf(dart
      .dload(item, 'length')); |  | 
| 1202         } |  | 
| 1203       } catch (e) { |  | 
| 1204       } |  | 
| 1205 |  | 
| 1206       return mismatchDescription.add('has no length property'); |  | 
| 1207     } |  | 
| 1208   }; |  | 
| 1209   dart.setSignature(src__core_matchers._HasLength, { |  | 
| 1210     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._Has
      Length, [], [src__interfaces.Matcher])}), |  | 
| 1211     methods: () => ({ |  | 
| 1212       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1213       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1214     }) |  | 
| 1215   }); |  | 
| 1216   src__core_matchers._Contains = class _Contains extends src__interfaces.Matcher
       { |  | 
| 1217     new(expected) { |  | 
| 1218       this[_expected] = expected; |  | 
| 1219       super.new(); |  | 
| 1220     } |  | 
| 1221     matches(item, matchState) { |  | 
| 1222       if (typeof item == 'string') { |  | 
| 1223         return dart.notNull(item[dartx.indexOf](core.Pattern._check(this[_expect
      ed]))) >= 0; |  | 
| 1224       } else if (core.Iterable.is(item)) { |  | 
| 1225         if (src__interfaces.Matcher.is(this[_expected])) { |  | 
| 1226           return item[dartx.any](dart.fn(e => core.bool._check(dart.dsend(this[_
      expected], 'matches', e, matchState)), dynamicTobool$())); |  | 
| 1227         } else { |  | 
| 1228           return item[dartx.contains](this[_expected]); |  | 
| 1229         } |  | 
| 1230       } else if (core.Map.is(item)) { |  | 
| 1231         return item[dartx.containsKey](this[_expected]); |  | 
| 1232       } |  | 
| 1233       return false; |  | 
| 1234     } |  | 
| 1235     describe(description) { |  | 
| 1236       return description.add('contains ').addDescriptionOf(this[_expected]); |  | 
| 1237     } |  | 
| 1238     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 1239       if (typeof item == 'string' || core.Iterable.is(item) || core.Map.is(item)
      ) { |  | 
| 1240         return super.describeMismatch(item, mismatchDescription, matchState, ver
      bose); |  | 
| 1241       } else { |  | 
| 1242         return mismatchDescription.add('is not a string, map or iterable'); |  | 
| 1243       } |  | 
| 1244     } |  | 
| 1245   }; |  | 
| 1246   dart.setSignature(src__core_matchers._Contains, { |  | 
| 1247     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._Con
      tains, [dart.dynamic])}), |  | 
| 1248     methods: () => ({ |  | 
| 1249       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1250       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1251     }) |  | 
| 1252   }); |  | 
| 1253   src__core_matchers._In = class _In extends src__interfaces.Matcher { |  | 
| 1254     new(expected) { |  | 
| 1255       this[_expected] = expected; |  | 
| 1256       super.new(); |  | 
| 1257     } |  | 
| 1258     matches(item, matchState) { |  | 
| 1259       if (typeof this[_expected] == 'string') { |  | 
| 1260         return core.bool._check(dart.dsend(dart.dsend(this[_expected], 'indexOf'
      , item), '>=', 0)); |  | 
| 1261       } else if (core.Iterable.is(this[_expected])) { |  | 
| 1262         return core.bool._check(dart.dsend(this[_expected], 'any', dart.fn(e => 
      dart.equals(e, item), dynamicTobool$()))); |  | 
| 1263       } else if (core.Map.is(this[_expected])) { |  | 
| 1264         return core.bool._check(dart.dsend(this[_expected], 'containsKey', item)
      ); |  | 
| 1265       } |  | 
| 1266       return false; |  | 
| 1267     } |  | 
| 1268     describe(description) { |  | 
| 1269       return description.add('is in ').addDescriptionOf(this[_expected]); |  | 
| 1270     } |  | 
| 1271   }; |  | 
| 1272   dart.setSignature(src__core_matchers._In, { |  | 
| 1273     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._In,
       [dart.dynamic])}), |  | 
| 1274     methods: () => ({ |  | 
| 1275       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1276       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1277     }) |  | 
| 1278   }); |  | 
| 1279   src__core_matchers._PredicateFunction = dart.typedef('_PredicateFunction', () 
      => dart.functionType(core.bool, [dart.dynamic])); |  | 
| 1280   const _description = Symbol('_description'); |  | 
| 1281   src__core_matchers._Predicate = class _Predicate extends src__interfaces.Match
      er { |  | 
| 1282     new(matcher, description) { |  | 
| 1283       this[_matcher] = matcher; |  | 
| 1284       this[_description] = description; |  | 
| 1285       super.new(); |  | 
| 1286     } |  | 
| 1287     matches(item, matchState) { |  | 
| 1288       return dart.dcall(this[_matcher], item); |  | 
| 1289     } |  | 
| 1290     describe(description) { |  | 
| 1291       return description.add(this[_description]); |  | 
| 1292     } |  | 
| 1293   }; |  | 
| 1294   dart.setSignature(src__core_matchers._Predicate, { |  | 
| 1295     constructors: () => ({new: dart.definiteFunctionType(src__core_matchers._Pre
      dicate, [src__core_matchers._PredicateFunction, core.String])}), |  | 
| 1296     methods: () => ({ |  | 
| 1297       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1298       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1299     }) |  | 
| 1300   }); |  | 
| 1301   const _matcher$0 = Symbol('_matcher'); |  | 
| 1302   src__iterable_matchers._IterableMatcher = class _IterableMatcher extends src__
      interfaces.Matcher { |  | 
| 1303     new() { |  | 
| 1304       super.new(); |  | 
| 1305     } |  | 
| 1306     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 1307       if (!core.Iterable.is(item)) { |  | 
| 1308         return mismatchDescription.addDescriptionOf(item).add(' not an Iterable'
      ); |  | 
| 1309       } else { |  | 
| 1310         return super.describeMismatch(item, mismatchDescription, matchState, ver
      bose); |  | 
| 1311       } |  | 
| 1312     } |  | 
| 1313   }; |  | 
| 1314   dart.setSignature(src__iterable_matchers._IterableMatcher, { |  | 
| 1315     constructors: () => ({new: dart.definiteFunctionType(src__iterable_matchers.
      _IterableMatcher, [])}) |  | 
| 1316   }); |  | 
| 1317   src__iterable_matchers._EveryElement = class _EveryElement extends src__iterab
      le_matchers._IterableMatcher { |  | 
| 1318     new(matcher) { |  | 
| 1319       this[_matcher$0] = matcher; |  | 
| 1320       super.new(); |  | 
| 1321     } |  | 
| 1322     matches(item, matchState) { |  | 
| 1323       if (!core.Iterable.is(item)) { |  | 
| 1324         return false; |  | 
| 1325       } |  | 
| 1326       let i = 0; |  | 
| 1327       for (let element of core.Iterable._check(item)) { |  | 
| 1328         if (!dart.test(this[_matcher$0].matches(element, matchState))) { |  | 
| 1329           src__util.addStateInfo(matchState, dart.map({index: i, element: elemen
      t}, core.String, dart.dynamic)); |  | 
| 1330           return false; |  | 
| 1331         } |  | 
| 1332         ++i; |  | 
| 1333       } |  | 
| 1334       return true; |  | 
| 1335     } |  | 
| 1336     describe(description) { |  | 
| 1337       return description.add('every element(').addDescriptionOf(this[_matcher$0]
      ).add(')'); |  | 
| 1338     } |  | 
| 1339     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 1340       if (matchState[dartx.get]('index') != null) { |  | 
| 1341         let index = matchState[dartx.get]('index'); |  | 
| 1342         let element = matchState[dartx.get]('element'); |  | 
| 1343         mismatchDescription.add('has value ').addDescriptionOf(element).add(' wh
      ich '); |  | 
| 1344         let subDescription = new src__description.StringDescription(); |  | 
| 1345         this[_matcher$0].describeMismatch(element, subDescription, core.Map._che
      ck(matchState[dartx.get]('state')), verbose); |  | 
| 1346         if (dart.notNull(subDescription.length) > 0) { |  | 
| 1347           mismatchDescription.add(subDescription.toString()); |  | 
| 1348         } else { |  | 
| 1349           mismatchDescription.add("doesn't match "); |  | 
| 1350           this[_matcher$0].describe(mismatchDescription); |  | 
| 1351         } |  | 
| 1352         mismatchDescription.add(dart.str` at index ${index}`); |  | 
| 1353         return mismatchDescription; |  | 
| 1354       } |  | 
| 1355       return super.describeMismatch(item, mismatchDescription, matchState, verbo
      se); |  | 
| 1356     } |  | 
| 1357   }; |  | 
| 1358   dart.setSignature(src__iterable_matchers._EveryElement, { |  | 
| 1359     constructors: () => ({new: dart.definiteFunctionType(src__iterable_matchers.
      _EveryElement, [src__interfaces.Matcher])}), |  | 
| 1360     methods: () => ({ |  | 
| 1361       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1362       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1363     }) |  | 
| 1364   }); |  | 
| 1365   src__iterable_matchers._AnyElement = class _AnyElement extends src__iterable_m
      atchers._IterableMatcher { |  | 
| 1366     new(matcher) { |  | 
| 1367       this[_matcher$0] = matcher; |  | 
| 1368       super.new(); |  | 
| 1369     } |  | 
| 1370     matches(item, matchState) { |  | 
| 1371       return core.bool._check(dart.dsend(item, 'any', dart.fn(e => this[_matcher
      $0].matches(e, matchState), dynamicTobool$()))); |  | 
| 1372     } |  | 
| 1373     describe(description) { |  | 
| 1374       return description.add('some element ').addDescriptionOf(this[_matcher$0])
      ; |  | 
| 1375     } |  | 
| 1376   }; |  | 
| 1377   dart.setSignature(src__iterable_matchers._AnyElement, { |  | 
| 1378     constructors: () => ({new: dart.definiteFunctionType(src__iterable_matchers.
      _AnyElement, [src__interfaces.Matcher])}), |  | 
| 1379     methods: () => ({ |  | 
| 1380       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1381       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1382     }) |  | 
| 1383   }); |  | 
| 1384   const _expected$ = Symbol('_expected'); |  | 
| 1385   src__iterable_matchers._OrderedEquals = class _OrderedEquals extends src__inte
      rfaces.Matcher { |  | 
| 1386     new(expected) { |  | 
| 1387       this[_expected$] = expected; |  | 
| 1388       this[_matcher$0] = null; |  | 
| 1389       super.new(); |  | 
| 1390       this[_matcher$0] = src__core_matchers.equals(this[_expected$], 1); |  | 
| 1391     } |  | 
| 1392     matches(item, matchState) { |  | 
| 1393       return core.Iterable.is(item) && dart.test(this[_matcher$0].matches(item, 
      matchState)); |  | 
| 1394     } |  | 
| 1395     describe(description) { |  | 
| 1396       return description.add('equals ').addDescriptionOf(this[_expected$]).add('
       ordered'); |  | 
| 1397     } |  | 
| 1398     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 1399       if (!core.Iterable.is(item)) { |  | 
| 1400         return mismatchDescription.add('is not an Iterable'); |  | 
| 1401       } else { |  | 
| 1402         return this[_matcher$0].describeMismatch(item, mismatchDescription, matc
      hState, verbose); |  | 
| 1403       } |  | 
| 1404     } |  | 
| 1405   }; |  | 
| 1406   dart.setSignature(src__iterable_matchers._OrderedEquals, { |  | 
| 1407     constructors: () => ({new: dart.definiteFunctionType(src__iterable_matchers.
      _OrderedEquals, [core.Iterable])}), |  | 
| 1408     methods: () => ({ |  | 
| 1409       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1410       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1411     }) |  | 
| 1412   }); |  | 
| 1413   const _expectedValues = Symbol('_expectedValues'); |  | 
| 1414   const _test = Symbol('_test'); |  | 
| 1415   src__iterable_matchers._UnorderedMatches = class _UnorderedMatches extends src
      __interfaces.Matcher { |  | 
| 1416     new(expected) { |  | 
| 1417       this[_expected$] = expected[dartx.map](src__interfaces.Matcher)(src__util.
      wrapMatcher)[dartx.toList](); |  | 
| 1418       super.new(); |  | 
| 1419     } |  | 
| 1420     [_test](item) { |  | 
| 1421       if (!core.Iterable.is(item)) return 'not iterable'; |  | 
| 1422       item = dart.dsend(item, 'toList'); |  | 
| 1423       if (dart.notNull(this[_expected$][dartx.length]) > dart.notNull(core.num._
      check(dart.dload(item, 'length')))) { |  | 
| 1424         return dart.str`has too few elements (${dart.dload(item, 'length')} < ${
      this[_expected$][dartx.length]})`; |  | 
| 1425       } else if (dart.notNull(this[_expected$][dartx.length]) < dart.notNull(cor
      e.num._check(dart.dload(item, 'length')))) { |  | 
| 1426         return dart.str`has too many elements (${dart.dload(item, 'length')} > $
      {this[_expected$][dartx.length]})`; |  | 
| 1427       } |  | 
| 1428       let matched = ListOfbool().filled(core.int._check(dart.dload(item, 'length
      ')), false); |  | 
| 1429       let expectedPosition = 0; |  | 
| 1430       for (let expectedMatcher of this[_expected$]) { |  | 
| 1431         let actualPosition = 0; |  | 
| 1432         let gotMatch = false; |  | 
| 1433         for (let actualElement of core.Iterable._check(item)) { |  | 
| 1434           if (!dart.test(matched[dartx.get](actualPosition))) { |  | 
| 1435             if (dart.test(expectedMatcher.matches(actualElement, dart.map()))) { |  | 
| 1436               matched[dartx.set](actualPosition, gotMatch = true); |  | 
| 1437               break; |  | 
| 1438             } |  | 
| 1439           } |  | 
| 1440           ++actualPosition; |  | 
| 1441         } |  | 
| 1442         if (!gotMatch) { |  | 
| 1443           return dart.toString(new src__description.StringDescription().add('has
       no match for ').addDescriptionOf(expectedMatcher).add(dart.str` at index ${expe
      ctedPosition}`)); |  | 
| 1444         } |  | 
| 1445         ++expectedPosition; |  | 
| 1446       } |  | 
| 1447       return null; |  | 
| 1448     } |  | 
| 1449     matches(item, mismatchState) { |  | 
| 1450       return this[_test](item) == null; |  | 
| 1451     } |  | 
| 1452     describe(description) { |  | 
| 1453       return description.add('matches ').addAll('[', ', ', ']', this[_expected$]
      ).add(' unordered'); |  | 
| 1454     } |  | 
| 1455     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 1456       return mismatchDescription.add(this[_test](item)); |  | 
| 1457     } |  | 
| 1458   }; |  | 
| 1459   dart.setSignature(src__iterable_matchers._UnorderedMatches, { |  | 
| 1460     constructors: () => ({new: dart.definiteFunctionType(src__iterable_matchers.
      _UnorderedMatches, [core.Iterable])}), |  | 
| 1461     methods: () => ({ |  | 
| 1462       [_test]: dart.definiteFunctionType(core.String, [dart.dynamic]), |  | 
| 1463       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1464       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1465     }) |  | 
| 1466   }); |  | 
| 1467   src__iterable_matchers._UnorderedEquals = class _UnorderedEquals extends src__
      iterable_matchers._UnorderedMatches { |  | 
| 1468     new(expected) { |  | 
| 1469       this[_expectedValues] = expected[dartx.toList](); |  | 
| 1470       super.new(expected[dartx.map](src__interfaces.Matcher)(src__core_matchers.
      equals)); |  | 
| 1471     } |  | 
| 1472     describe(description) { |  | 
| 1473       return description.add('equals ').addDescriptionOf(this[_expectedValues]).
      add(' unordered'); |  | 
| 1474     } |  | 
| 1475   }; |  | 
| 1476   dart.setSignature(src__iterable_matchers._UnorderedEquals, { |  | 
| 1477     constructors: () => ({new: dart.definiteFunctionType(src__iterable_matchers.
      _UnorderedEquals, [core.Iterable])}) |  | 
| 1478   }); |  | 
| 1479   src__iterable_matchers._Comparator = dart.typedef('_Comparator', () => dart.fu
      nctionType(core.bool, [dart.dynamic, dart.dynamic])); |  | 
| 1480   const _comparator = Symbol('_comparator'); |  | 
| 1481   const _description$ = Symbol('_description'); |  | 
| 1482   src__iterable_matchers._PairwiseCompare = class _PairwiseCompare extends src__
      iterable_matchers._IterableMatcher { |  | 
| 1483     new(expected, comparator, description) { |  | 
| 1484       this[_expected$] = expected; |  | 
| 1485       this[_comparator] = comparator; |  | 
| 1486       this[_description$] = description; |  | 
| 1487       super.new(); |  | 
| 1488     } |  | 
| 1489     matches(item, matchState) { |  | 
| 1490       if (!core.Iterable.is(item)) return false; |  | 
| 1491       if (!dart.equals(dart.dload(item, 'length'), this[_expected$][dartx.length
      ])) return false; |  | 
| 1492       let iterator = dart.dload(item, 'iterator'); |  | 
| 1493       let i = 0; |  | 
| 1494       for (let e of this[_expected$]) { |  | 
| 1495         dart.dsend(iterator, 'moveNext'); |  | 
| 1496         if (!dart.test(dart.dcall(this[_comparator], e, dart.dload(iterator, 'cu
      rrent')))) { |  | 
| 1497           src__util.addStateInfo(matchState, dart.map({index: i, expected: e, ac
      tual: dart.dload(iterator, 'current')}, core.String, dart.dynamic)); |  | 
| 1498           return false; |  | 
| 1499         } |  | 
| 1500         i++; |  | 
| 1501       } |  | 
| 1502       return true; |  | 
| 1503     } |  | 
| 1504     describe(description) { |  | 
| 1505       return description.add(dart.str`pairwise ${this[_description$]} `).addDesc
      riptionOf(this[_expected$]); |  | 
| 1506     } |  | 
| 1507     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 1508       if (!core.Iterable.is(item)) { |  | 
| 1509         return mismatchDescription.add('is not an Iterable'); |  | 
| 1510       } else if (!dart.equals(dart.dload(item, 'length'), this[_expected$][dartx
      .length])) { |  | 
| 1511         return mismatchDescription.add(dart.str`has length ${dart.dload(item, 'l
      ength')} instead of ${this[_expected$][dartx.length]}`); |  | 
| 1512       } else { |  | 
| 1513         return mismatchDescription.add('has ').addDescriptionOf(matchState[dartx
      .get]("actual")).add(dart.str` which is not ${this[_description$]} `).addDescrip
      tionOf(matchState[dartx.get]("expected")).add(dart.str` at index ${matchState[da
      rtx.get]("index")}`); |  | 
| 1514       } |  | 
| 1515     } |  | 
| 1516   }; |  | 
| 1517   dart.setSignature(src__iterable_matchers._PairwiseCompare, { |  | 
| 1518     constructors: () => ({new: dart.definiteFunctionType(src__iterable_matchers.
      _PairwiseCompare, [core.Iterable, src__iterable_matchers._Comparator, core.Strin
      g])}), |  | 
| 1519     methods: () => ({ |  | 
| 1520       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1521       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1522     }) |  | 
| 1523   }); |  | 
| 1524   const _value$0 = Symbol('_value'); |  | 
| 1525   src__map_matchers._ContainsValue = class _ContainsValue extends src__interface
      s.Matcher { |  | 
| 1526     new(value) { |  | 
| 1527       this[_value$0] = value; |  | 
| 1528       super.new(); |  | 
| 1529     } |  | 
| 1530     matches(item, matchState) { |  | 
| 1531       return core.bool._check(dart.dsend(item, 'containsValue', this[_value$0]))
      ; |  | 
| 1532     } |  | 
| 1533     describe(description) { |  | 
| 1534       return description.add('contains value ').addDescriptionOf(this[_value$0])
      ; |  | 
| 1535     } |  | 
| 1536   }; |  | 
| 1537   dart.setSignature(src__map_matchers._ContainsValue, { |  | 
| 1538     constructors: () => ({new: dart.definiteFunctionType(src__map_matchers._Cont
      ainsValue, [dart.dynamic])}), |  | 
| 1539     methods: () => ({ |  | 
| 1540       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1541       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1542     }) |  | 
| 1543   }); |  | 
| 1544   const _key = Symbol('_key'); |  | 
| 1545   const _valueMatcher = Symbol('_valueMatcher'); |  | 
| 1546   src__map_matchers._ContainsMapping = class _ContainsMapping extends src__inter
      faces.Matcher { |  | 
| 1547     new(key, valueMatcher) { |  | 
| 1548       this[_key] = key; |  | 
| 1549       this[_valueMatcher] = valueMatcher; |  | 
| 1550       super.new(); |  | 
| 1551     } |  | 
| 1552     matches(item, matchState) { |  | 
| 1553       return dart.test(dart.dsend(item, 'containsKey', this[_key])) && dart.test
      (this[_valueMatcher].matches(dart.dindex(item, this[_key]), matchState)); |  | 
| 1554     } |  | 
| 1555     describe(description) { |  | 
| 1556       return description.add('contains pair ').addDescriptionOf(this[_key]).add(
      ' => ').addDescriptionOf(this[_valueMatcher]); |  | 
| 1557     } |  | 
| 1558     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 1559       if (!dart.test(dart.dsend(item, 'containsKey', this[_key]))) { |  | 
| 1560         return mismatchDescription.add(" doesn't contain key ").addDescriptionOf
      (this[_key]); |  | 
| 1561       } else { |  | 
| 1562         mismatchDescription.add(' contains key ').addDescriptionOf(this[_key]).a
      dd(' but with value '); |  | 
| 1563         this[_valueMatcher].describeMismatch(dart.dindex(item, this[_key]), mism
      atchDescription, matchState, verbose); |  | 
| 1564         return mismatchDescription; |  | 
| 1565       } |  | 
| 1566     } |  | 
| 1567   }; |  | 
| 1568   dart.setSignature(src__map_matchers._ContainsMapping, { |  | 
| 1569     constructors: () => ({new: dart.definiteFunctionType(src__map_matchers._Cont
      ainsMapping, [dart.dynamic, src__interfaces.Matcher])}), |  | 
| 1570     methods: () => ({ |  | 
| 1571       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1572       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1573     }) |  | 
| 1574   }); |  | 
| 1575   src__numeric_matchers._isNumeric = function(value) { |  | 
| 1576     return typeof value == 'number'; |  | 
| 1577   }; |  | 
| 1578   dart.fn(src__numeric_matchers._isNumeric, dynamicTobool$()); |  | 
| 1579   const _delta = Symbol('_delta'); |  | 
| 1580   src__numeric_matchers._IsCloseTo = class _IsCloseTo extends src__interfaces.Ma
      tcher { |  | 
| 1581     new(value, delta) { |  | 
| 1582       this[_value] = value; |  | 
| 1583       this[_delta] = delta; |  | 
| 1584       super.new(); |  | 
| 1585     } |  | 
| 1586     matches(item, matchState) { |  | 
| 1587       if (!dart.test(src__numeric_matchers._isNumeric(item))) { |  | 
| 1588         return false; |  | 
| 1589       } |  | 
| 1590       let diff = dart.dsend(item, '-', this[_value]); |  | 
| 1591       if (dart.test(dart.dsend(diff, '<', 0))) diff = dart.dsend(diff, 'unary-')
      ; |  | 
| 1592       return core.bool._check(dart.dsend(diff, '<=', this[_delta])); |  | 
| 1593     } |  | 
| 1594     describe(description) { |  | 
| 1595       return description.add('a numeric value within ').addDescriptionOf(this[_d
      elta]).add(' of ').addDescriptionOf(this[_value]); |  | 
| 1596     } |  | 
| 1597     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 1598       if (!(typeof item == 'number')) { |  | 
| 1599         return mismatchDescription.add(' not numeric'); |  | 
| 1600       } else { |  | 
| 1601         let diff = dart.dsend(item, '-', this[_value]); |  | 
| 1602         if (dart.test(dart.dsend(diff, '<', 0))) diff = dart.dsend(diff, 'unary-
      '); |  | 
| 1603         return mismatchDescription.add(' differs by ').addDescriptionOf(diff); |  | 
| 1604       } |  | 
| 1605     } |  | 
| 1606   }; |  | 
| 1607   dart.setSignature(src__numeric_matchers._IsCloseTo, { |  | 
| 1608     constructors: () => ({new: dart.definiteFunctionType(src__numeric_matchers._
      IsCloseTo, [core.num, core.num])}), |  | 
| 1609     methods: () => ({ |  | 
| 1610       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1611       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1612     }) |  | 
| 1613   }); |  | 
| 1614   const _low = Symbol('_low'); |  | 
| 1615   const _high = Symbol('_high'); |  | 
| 1616   const _lowMatchValue = Symbol('_lowMatchValue'); |  | 
| 1617   const _highMatchValue = Symbol('_highMatchValue'); |  | 
| 1618   src__numeric_matchers._InRange = class _InRange extends src__interfaces.Matche
      r { |  | 
| 1619     new(low, high, lowMatchValue, highMatchValue) { |  | 
| 1620       this[_low] = low; |  | 
| 1621       this[_high] = high; |  | 
| 1622       this[_lowMatchValue] = lowMatchValue; |  | 
| 1623       this[_highMatchValue] = highMatchValue; |  | 
| 1624       super.new(); |  | 
| 1625     } |  | 
| 1626     matches(value, matchState) { |  | 
| 1627       if (!(typeof value == 'number')) { |  | 
| 1628         return false; |  | 
| 1629       } |  | 
| 1630       if (dart.test(dart.dsend(value, '<', this[_low])) || dart.test(dart.dsend(
      value, '>', this[_high]))) { |  | 
| 1631         return false; |  | 
| 1632       } |  | 
| 1633       if (dart.equals(value, this[_low])) { |  | 
| 1634         return this[_lowMatchValue]; |  | 
| 1635       } |  | 
| 1636       if (dart.equals(value, this[_high])) { |  | 
| 1637         return this[_highMatchValue]; |  | 
| 1638       } |  | 
| 1639       return true; |  | 
| 1640     } |  | 
| 1641     describe(description) { |  | 
| 1642       return description.add("be in range from " + dart.str`${this[_low]} (${dar
      t.test(this[_lowMatchValue]) ? 'inclusive' : 'exclusive'}) to ` + dart.str`${thi
      s[_high]} (${dart.test(this[_highMatchValue]) ? 'inclusive' : 'exclusive'})`); |  | 
| 1643     } |  | 
| 1644     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 1645       if (!(typeof item == 'number')) { |  | 
| 1646         return mismatchDescription.addDescriptionOf(item).add(' not numeric'); |  | 
| 1647       } else { |  | 
| 1648         return super.describeMismatch(item, mismatchDescription, matchState, ver
      bose); |  | 
| 1649       } |  | 
| 1650     } |  | 
| 1651   }; |  | 
| 1652   dart.setSignature(src__numeric_matchers._InRange, { |  | 
| 1653     constructors: () => ({new: dart.definiteFunctionType(src__numeric_matchers._
      InRange, [core.num, core.num, core.bool, core.bool])}), |  | 
| 1654     methods: () => ({ |  | 
| 1655       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1656       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1657     }) |  | 
| 1658   }); |  | 
| 1659   const _matcher$1 = Symbol('_matcher'); |  | 
| 1660   src__operator_matchers._IsNot = class _IsNot extends src__interfaces.Matcher { |  | 
| 1661     new(matcher) { |  | 
| 1662       this[_matcher$1] = matcher; |  | 
| 1663       super.new(); |  | 
| 1664     } |  | 
| 1665     matches(item, matchState) { |  | 
| 1666       return !dart.test(this[_matcher$1].matches(item, matchState)); |  | 
| 1667     } |  | 
| 1668     describe(description) { |  | 
| 1669       return description.add('not ').addDescriptionOf(this[_matcher$1]); |  | 
| 1670     } |  | 
| 1671   }; |  | 
| 1672   dart.setSignature(src__operator_matchers._IsNot, { |  | 
| 1673     constructors: () => ({new: dart.definiteFunctionType(src__operator_matchers.
      _IsNot, [src__interfaces.Matcher])}), |  | 
| 1674     methods: () => ({ |  | 
| 1675       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1676       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1677     }) |  | 
| 1678   }); |  | 
| 1679   const _matchers = Symbol('_matchers'); |  | 
| 1680   src__operator_matchers._AllOf = class _AllOf extends src__interfaces.Matcher { |  | 
| 1681     new(matchers) { |  | 
| 1682       this[_matchers] = matchers; |  | 
| 1683       super.new(); |  | 
| 1684     } |  | 
| 1685     matches(item, matchState) { |  | 
| 1686       for (let matcher of this[_matchers]) { |  | 
| 1687         if (!dart.test(matcher.matches(item, matchState))) { |  | 
| 1688           src__util.addStateInfo(matchState, dart.map({matcher: matcher}, core.S
      tring, src__interfaces.Matcher)); |  | 
| 1689           return false; |  | 
| 1690         } |  | 
| 1691       } |  | 
| 1692       return true; |  | 
| 1693     } |  | 
| 1694     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 1695       let matcher = matchState[dartx.get]('matcher'); |  | 
| 1696       dart.dsend(matcher, 'describeMismatch', item, mismatchDescription, matchSt
      ate[dartx.get]('state'), verbose); |  | 
| 1697       return mismatchDescription; |  | 
| 1698     } |  | 
| 1699     describe(description) { |  | 
| 1700       return description.addAll('(', ' and ', ')', this[_matchers]); |  | 
| 1701     } |  | 
| 1702   }; |  | 
| 1703   dart.setSignature(src__operator_matchers._AllOf, { |  | 
| 1704     constructors: () => ({new: dart.definiteFunctionType(src__operator_matchers.
      _AllOf, [core.List$(src__interfaces.Matcher)])}), |  | 
| 1705     methods: () => ({ |  | 
| 1706       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1707       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1708     }) |  | 
| 1709   }); |  | 
| 1710   src__operator_matchers._AnyOf = class _AnyOf extends src__interfaces.Matcher { |  | 
| 1711     new(matchers) { |  | 
| 1712       this[_matchers] = matchers; |  | 
| 1713       super.new(); |  | 
| 1714     } |  | 
| 1715     matches(item, matchState) { |  | 
| 1716       for (let matcher of this[_matchers]) { |  | 
| 1717         if (dart.test(matcher.matches(item, matchState))) { |  | 
| 1718           return true; |  | 
| 1719         } |  | 
| 1720       } |  | 
| 1721       return false; |  | 
| 1722     } |  | 
| 1723     describe(description) { |  | 
| 1724       return description.addAll('(', ' or ', ')', this[_matchers]); |  | 
| 1725     } |  | 
| 1726   }; |  | 
| 1727   dart.setSignature(src__operator_matchers._AnyOf, { |  | 
| 1728     constructors: () => ({new: dart.definiteFunctionType(src__operator_matchers.
      _AnyOf, [core.List$(src__interfaces.Matcher)])}), |  | 
| 1729     methods: () => ({ |  | 
| 1730       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1731       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1732     }) |  | 
| 1733   }); |  | 
| 1734   src__operator_matchers._wrapArgs = function(arg0, arg1, arg2, arg3, arg4, arg5
      , arg6) { |  | 
| 1735     let args = null; |  | 
| 1736     if (core.List.is(arg0)) { |  | 
| 1737       if (arg1 != null || arg2 != null || arg3 != null || arg4 != null || arg5 !
      = null || arg6 != null) { |  | 
| 1738         dart.throw(new core.ArgumentError('If arg0 is a List, all other argument
      s must be' + ' null.')); |  | 
| 1739       } |  | 
| 1740       args = arg0; |  | 
| 1741     } else { |  | 
| 1742       args = [arg0, arg1, arg2, arg3, arg4, arg5, arg6][dartx.where](dart.fn(e =
      > e != null, dynamicTobool$())); |  | 
| 1743     } |  | 
| 1744     return args[dartx.map](src__interfaces.Matcher)(dart.fn(e => src__util.wrapM
      atcher(e), dynamicToMatcher()))[dartx.toList](); |  | 
| 1745   }; |  | 
| 1746   dart.fn(src__operator_matchers._wrapArgs, dynamicAnddynamicAnddynamic__ToListO
      fMatcher()); |  | 
| 1747   src__pretty_print.prettyPrint = function(object, opts) { |  | 
| 1748     let maxLineLength = opts && 'maxLineLength' in opts ? opts.maxLineLength : n
      ull; |  | 
| 1749     let maxItems = opts && 'maxItems' in opts ? opts.maxItems : null; |  | 
| 1750     function _prettyPrint(object, indent, seen, top) { |  | 
| 1751       if (src__interfaces.Matcher.is(object)) { |  | 
| 1752         let description = new src__description.StringDescription(); |  | 
| 1753         object.describe(description); |  | 
| 1754         return dart.str`<${description}>`; |  | 
| 1755       } |  | 
| 1756       if (dart.test(seen.contains(object))) return "(recursive)"; |  | 
| 1757       seen = seen.union(core.Set.from([object])); |  | 
| 1758       function pp(child) { |  | 
| 1759         return _prettyPrint(child, dart.notNull(indent) + 2, seen, false); |  | 
| 1760       } |  | 
| 1761       dart.fn(pp, dynamicToString()); |  | 
| 1762       if (core.Iterable.is(object)) { |  | 
| 1763         let type = core.List.is(object) ? "" : dart.notNull(src__pretty_print._t
      ypeName(object)) + ":"; |  | 
| 1764         let strings = object[dartx.map](core.String)(pp)[dartx.toList](); |  | 
| 1765         if (maxItems != null && dart.notNull(strings[dartx.length]) > dart.notNu
      ll(maxItems)) { |  | 
| 1766           strings[dartx.replaceRange](dart.notNull(maxItems) - 1, strings[dartx.
      length], JSArrayOfString().of(['...'])); |  | 
| 1767         } |  | 
| 1768         let singleLine = dart.str`${type}[${strings[dartx.join](', ')}]`; |  | 
| 1769         if ((maxLineLength == null || dart.notNull(singleLine[dartx.length]) + d
      art.notNull(indent) <= dart.notNull(maxLineLength)) && !dart.test(singleLine[dar
      tx.contains]("\n"))) { |  | 
| 1770           return singleLine; |  | 
| 1771         } |  | 
| 1772         return dart.str`${type}[\n` + dart.notNull(strings[dartx.map](core.Strin
      g)(dart.fn(string => dart.notNull(src__pretty_print._indent(dart.notNull(indent)
       + 2)) + dart.notNull(string), StringToString()))[dartx.join](",\n")) + "\n" + d
      art.notNull(src__pretty_print._indent(indent)) + "]"; |  | 
| 1773       } else if (core.Map.is(object)) { |  | 
| 1774         let strings = object[dartx.keys][dartx.map](core.String)(dart.fn(key => 
      dart.str`${pp(key)}: ${pp(object[dartx.get](key))}`, dynamicToString()))[dartx.t
      oList](); |  | 
| 1775         if (maxItems != null && dart.notNull(strings[dartx.length]) > dart.notNu
      ll(maxItems)) { |  | 
| 1776           strings[dartx.replaceRange](dart.notNull(maxItems) - 1, strings[dartx.
      length], JSArrayOfString().of(['...'])); |  | 
| 1777         } |  | 
| 1778         let singleLine = dart.str`{${strings[dartx.join](", ")}}`; |  | 
| 1779         if ((maxLineLength == null || dart.notNull(singleLine[dartx.length]) + d
      art.notNull(indent) <= dart.notNull(maxLineLength)) && !dart.test(singleLine[dar
      tx.contains]("\n"))) { |  | 
| 1780           return singleLine; |  | 
| 1781         } |  | 
| 1782         return "{\n" + dart.notNull(strings[dartx.map](core.String)(dart.fn(stri
      ng => dart.notNull(src__pretty_print._indent(dart.notNull(indent) + 2)) + dart.n
      otNull(string), StringToString()))[dartx.join](",\n")) + "\n" + dart.notNull(src
      __pretty_print._indent(indent)) + "}"; |  | 
| 1783       } else if (typeof object == 'string') { |  | 
| 1784         let lines = object[dartx.split]("\n"); |  | 
| 1785         return "'" + dart.notNull(lines[dartx.map](core.String)(src__pretty_prin
      t._escapeString)[dartx.join](dart.str`\\n'\n${src__pretty_print._indent(dart.not
      Null(indent) + 2)}'`)) + "'"; |  | 
| 1786       } else { |  | 
| 1787         let value = dart.toString(object)[dartx.replaceAll]("\n", dart.notNull(s
      rc__pretty_print._indent(indent)) + "\n"); |  | 
| 1788         let defaultToString = value[dartx.startsWith]("Instance of "); |  | 
| 1789         if (dart.test(top)) value = dart.str`<${value}>`; |  | 
| 1790         if (typeof object == 'number' || typeof object == 'boolean' || core.Func
      tion.is(object) || object == null || dart.test(defaultToString)) { |  | 
| 1791           return value; |  | 
| 1792         } else { |  | 
| 1793           return dart.str`${src__pretty_print._typeName(object)}:${value}`; |  | 
| 1794         } |  | 
| 1795       } |  | 
| 1796     } |  | 
| 1797     dart.fn(_prettyPrint, dynamicAndintAndSet__ToString()); |  | 
| 1798     return _prettyPrint(object, 0, core.Set.new(), true); |  | 
| 1799   }; |  | 
| 1800   dart.fn(src__pretty_print.prettyPrint, dynamic__ToString()); |  | 
| 1801   src__pretty_print._indent = function(length) { |  | 
| 1802     return ListOfString().filled(length, ' ')[dartx.join](''); |  | 
| 1803   }; |  | 
| 1804   dart.fn(src__pretty_print._indent, intToString()); |  | 
| 1805   src__pretty_print._typeName = function(x) { |  | 
| 1806     try { |  | 
| 1807       if (x == null) return "null"; |  | 
| 1808       let type = dart.toString(dart.runtimeType(x)); |  | 
| 1809       return dart.test(type[dartx.startsWith]("_")) ? "?" : type; |  | 
| 1810     } catch (e) { |  | 
| 1811       return "?"; |  | 
| 1812     } |  | 
| 1813 |  | 
| 1814   }; |  | 
| 1815   dart.fn(src__pretty_print._typeName, dynamicToString()); |  | 
| 1816   src__pretty_print._escapeString = function(source) { |  | 
| 1817     return src__util.escape(source)[dartx.replaceAll]("'", "\\'"); |  | 
| 1818   }; |  | 
| 1819   dart.fn(src__pretty_print._escapeString, StringToString()); |  | 
| 1820   const _value$1 = Symbol('_value'); |  | 
| 1821   const _matchValue = Symbol('_matchValue'); |  | 
| 1822   src__string_matchers._StringMatcher = class _StringMatcher extends src__interf
      aces.Matcher { |  | 
| 1823     new() { |  | 
| 1824       super.new(); |  | 
| 1825     } |  | 
| 1826     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 1827       if (!(typeof item == 'string')) { |  | 
| 1828         return mismatchDescription.addDescriptionOf(item).add(' not a string'); |  | 
| 1829       } else { |  | 
| 1830         return super.describeMismatch(item, mismatchDescription, matchState, ver
      bose); |  | 
| 1831       } |  | 
| 1832     } |  | 
| 1833   }; |  | 
| 1834   dart.setSignature(src__string_matchers._StringMatcher, { |  | 
| 1835     constructors: () => ({new: dart.definiteFunctionType(src__string_matchers._S
      tringMatcher, [])}) |  | 
| 1836   }); |  | 
| 1837   src__string_matchers._IsEqualIgnoringCase = class _IsEqualIgnoringCase extends
       src__string_matchers._StringMatcher { |  | 
| 1838     new(value) { |  | 
| 1839       this[_value$1] = value; |  | 
| 1840       this[_matchValue] = value[dartx.toLowerCase](); |  | 
| 1841       super.new(); |  | 
| 1842     } |  | 
| 1843     matches(item, matchState) { |  | 
| 1844       return typeof item == 'string' && this[_matchValue] == item[dartx.toLowerC
      ase](); |  | 
| 1845     } |  | 
| 1846     describe(description) { |  | 
| 1847       return description.addDescriptionOf(this[_value$1]).add(' ignoring case'); |  | 
| 1848     } |  | 
| 1849   }; |  | 
| 1850   dart.setSignature(src__string_matchers._IsEqualIgnoringCase, { |  | 
| 1851     constructors: () => ({new: dart.definiteFunctionType(src__string_matchers._I
      sEqualIgnoringCase, [core.String])}), |  | 
| 1852     methods: () => ({ |  | 
| 1853       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1854       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1855     }) |  | 
| 1856   }); |  | 
| 1857   src__string_matchers._IsEqualIgnoringWhitespace = class _IsEqualIgnoringWhites
      pace extends src__string_matchers._StringMatcher { |  | 
| 1858     new(value) { |  | 
| 1859       this[_value$1] = value; |  | 
| 1860       this[_matchValue] = src__string_matchers.collapseWhitespace(value); |  | 
| 1861       super.new(); |  | 
| 1862     } |  | 
| 1863     matches(item, matchState) { |  | 
| 1864       return typeof item == 'string' && this[_matchValue] == src__string_matcher
      s.collapseWhitespace(item); |  | 
| 1865     } |  | 
| 1866     describe(description) { |  | 
| 1867       return description.addDescriptionOf(this[_matchValue]).add(' ignoring whit
      espace'); |  | 
| 1868     } |  | 
| 1869     describeMismatch(item, mismatchDescription, matchState, verbose) { |  | 
| 1870       if (typeof item == 'string') { |  | 
| 1871         return mismatchDescription.add('is ').addDescriptionOf(src__string_match
      ers.collapseWhitespace(item)).add(' with whitespace compressed'); |  | 
| 1872       } else { |  | 
| 1873         return super.describeMismatch(item, mismatchDescription, matchState, ver
      bose); |  | 
| 1874       } |  | 
| 1875     } |  | 
| 1876   }; |  | 
| 1877   dart.setSignature(src__string_matchers._IsEqualIgnoringWhitespace, { |  | 
| 1878     constructors: () => ({new: dart.definiteFunctionType(src__string_matchers._I
      sEqualIgnoringWhitespace, [core.String])}), |  | 
| 1879     methods: () => ({ |  | 
| 1880       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1881       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1882     }) |  | 
| 1883   }); |  | 
| 1884   const _prefix = Symbol('_prefix'); |  | 
| 1885   src__string_matchers._StringStartsWith = class _StringStartsWith extends src__
      string_matchers._StringMatcher { |  | 
| 1886     new(prefix) { |  | 
| 1887       this[_prefix] = prefix; |  | 
| 1888       super.new(); |  | 
| 1889     } |  | 
| 1890     matches(item, matchState) { |  | 
| 1891       return typeof item == 'string' && dart.test(item[dartx.startsWith](this[_p
      refix])); |  | 
| 1892     } |  | 
| 1893     describe(description) { |  | 
| 1894       return description.add('a string starting with ').addDescriptionOf(this[_p
      refix]); |  | 
| 1895     } |  | 
| 1896   }; |  | 
| 1897   dart.setSignature(src__string_matchers._StringStartsWith, { |  | 
| 1898     constructors: () => ({new: dart.definiteFunctionType(src__string_matchers._S
      tringStartsWith, [core.String])}), |  | 
| 1899     methods: () => ({ |  | 
| 1900       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1901       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1902     }) |  | 
| 1903   }); |  | 
| 1904   const _suffix = Symbol('_suffix'); |  | 
| 1905   src__string_matchers._StringEndsWith = class _StringEndsWith extends src__stri
      ng_matchers._StringMatcher { |  | 
| 1906     new(suffix) { |  | 
| 1907       this[_suffix] = suffix; |  | 
| 1908       super.new(); |  | 
| 1909     } |  | 
| 1910     matches(item, matchState) { |  | 
| 1911       return typeof item == 'string' && dart.test(item[dartx.endsWith](this[_suf
      fix])); |  | 
| 1912     } |  | 
| 1913     describe(description) { |  | 
| 1914       return description.add('a string ending with ').addDescriptionOf(this[_suf
      fix]); |  | 
| 1915     } |  | 
| 1916   }; |  | 
| 1917   dart.setSignature(src__string_matchers._StringEndsWith, { |  | 
| 1918     constructors: () => ({new: dart.definiteFunctionType(src__string_matchers._S
      tringEndsWith, [core.String])}), |  | 
| 1919     methods: () => ({ |  | 
| 1920       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1921       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1922     }) |  | 
| 1923   }); |  | 
| 1924   const _substrings = Symbol('_substrings'); |  | 
| 1925   src__string_matchers._StringContainsInOrder = class _StringContainsInOrder ext
      ends src__string_matchers._StringMatcher { |  | 
| 1926     new(substrings) { |  | 
| 1927       this[_substrings] = substrings; |  | 
| 1928       super.new(); |  | 
| 1929     } |  | 
| 1930     matches(item, matchState) { |  | 
| 1931       if (!(typeof item == 'string')) { |  | 
| 1932         return false; |  | 
| 1933       } |  | 
| 1934       let from_index = 0; |  | 
| 1935       for (let s of this[_substrings]) { |  | 
| 1936         from_index = core.int._check(dart.dsend(item, 'indexOf', s, from_index))
      ; |  | 
| 1937         if (dart.notNull(from_index) < 0) return false; |  | 
| 1938       } |  | 
| 1939       return true; |  | 
| 1940     } |  | 
| 1941     describe(description) { |  | 
| 1942       return description.addAll('a string containing ', ', ', ' in order', this[
      _substrings]); |  | 
| 1943     } |  | 
| 1944   }; |  | 
| 1945   dart.setSignature(src__string_matchers._StringContainsInOrder, { |  | 
| 1946     constructors: () => ({new: dart.definiteFunctionType(src__string_matchers._S
      tringContainsInOrder, [core.List$(core.String)])}), |  | 
| 1947     methods: () => ({ |  | 
| 1948       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1949       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1950     }) |  | 
| 1951   }); |  | 
| 1952   const _regexp = Symbol('_regexp'); |  | 
| 1953   src__string_matchers._MatchesRegExp = class _MatchesRegExp extends src__string
      _matchers._StringMatcher { |  | 
| 1954     new(re) { |  | 
| 1955       this[_regexp] = null; |  | 
| 1956       super.new(); |  | 
| 1957       if (typeof re == 'string') { |  | 
| 1958         this[_regexp] = core.RegExp.new(re); |  | 
| 1959       } else if (core.RegExp.is(re)) { |  | 
| 1960         this[_regexp] = re; |  | 
| 1961       } else { |  | 
| 1962         dart.throw(new core.ArgumentError('matches requires a regexp or string')
      ); |  | 
| 1963       } |  | 
| 1964     } |  | 
| 1965     matches(item, matchState) { |  | 
| 1966       return typeof item == 'string' ? this[_regexp].hasMatch(item) : false; |  | 
| 1967     } |  | 
| 1968     describe(description) { |  | 
| 1969       return description.add(dart.str`match '${this[_regexp].pattern}'`); |  | 
| 1970     } |  | 
| 1971   }; |  | 
| 1972   dart.setSignature(src__string_matchers._MatchesRegExp, { |  | 
| 1973     constructors: () => ({new: dart.definiteFunctionType(src__string_matchers._M
      atchesRegExp, [dart.dynamic])}), |  | 
| 1974     methods: () => ({ |  | 
| 1975       matches: dart.definiteFunctionType(core.bool, [dart.dynamic, core.Map]), |  | 
| 1976       describe: dart.definiteFunctionType(src__interfaces.Description, [src__int
      erfaces.Description]) |  | 
| 1977     }) |  | 
| 1978   }); |  | 
| 1979   src__string_matchers._isWhitespace = function(ch) { |  | 
| 1980     return ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t'; |  | 
| 1981   }; |  | 
| 1982   dart.fn(src__string_matchers._isWhitespace, StringTobool()); |  | 
| 1983   src__util._Predicate = dart.typedef('_Predicate', () => dart.functionType(core
      .bool, [dart.dynamic])); |  | 
| 1984   src__util._escapeMap = dart.const(dart.map({'\n': '\\n', '\r': '\\r', '\f': '\
      \f', '\b': '\\b', '\t': '\\t', '\v': '\\v', '': '\\x7F'}, core.String, core.Str
      ing)); |  | 
| 1985   dart.defineLazy(src__util, { |  | 
| 1986     get _escapeRegExp() { |  | 
| 1987       return core.RegExp.new(dart.str`[\\x00-\\x07\\x0E-\\x1F${src__util._escape
      Map[dartx.keys][dartx.map](core.String)(src__util._getHexLiteral)[dartx.join]()}
      ]`); |  | 
| 1988     } |  | 
| 1989   }); |  | 
| 1990   src__util._getHexLiteral = function(input) { |  | 
| 1991     let rune = input[dartx.runes].single; |  | 
| 1992     return '\\x' + dart.notNull(rune[dartx.toRadixString](16)[dartx.toUpperCase]
      ()[dartx.padLeft](2, '0')); |  | 
| 1993   }; |  | 
| 1994   dart.fn(src__util._getHexLiteral, StringToString()); |  | 
| 1995   // Exports: |  | 
| 1996   exports.matcher = matcher; |  | 
| 1997   exports.mirror_matchers = mirror_matchers; |  | 
| 1998   exports.src__core_matchers = src__core_matchers; |  | 
| 1999   exports.src__description = src__description; |  | 
| 2000   exports.src__error_matchers = src__error_matchers; |  | 
| 2001   exports.src__interfaces = src__interfaces; |  | 
| 2002   exports.src__iterable_matchers = src__iterable_matchers; |  | 
| 2003   exports.src__map_matchers = src__map_matchers; |  | 
| 2004   exports.src__numeric_matchers = src__numeric_matchers; |  | 
| 2005   exports.src__operator_matchers = src__operator_matchers; |  | 
| 2006   exports.src__pretty_print = src__pretty_print; |  | 
| 2007   exports.src__string_matchers = src__string_matchers; |  | 
| 2008   exports.src__util = src__util; |  | 
| 2009 }); |  | 
| OLD | NEW | 
|---|