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

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

Issue 1059583002: Extension method support to move us closer to a valid List implementation. (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: done Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/runtime/dart/async.js ('k') | lib/runtime/dart/convert.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 var collection; 1 var collection;
2 (function(exports) { 2 (function(exports) {
3 'use strict'; 3 'use strict';
4 let _source = Symbol('_source'); 4 let _source = Symbol('_source');
5 let UnmodifiableListView$ = dart.generic(function(E) { 5 let UnmodifiableListView$ = dart.generic(function(E) {
6 class UnmodifiableListView extends _internal.UnmodifiableListBase$(E) { 6 class UnmodifiableListView extends _internal.UnmodifiableListBase$(E) {
7 UnmodifiableListView(source) { 7 UnmodifiableListView(source) {
8 this[_source] = source; 8 this[_source] = source;
9 super.UnmodifiableListBase(); 9 super.UnmodifiableListBase();
10 } 10 }
11 get length() { 11 get [core.$length]() {
12 return this[_source].length; 12 return this[_source][core.$length];
13 } 13 }
14 get(index) { 14 [core.$get](index) {
15 return this[_source].elementAt(index); 15 return this[_source][core.$elementAt](index);
16 } 16 }
17 } 17 }
18 return UnmodifiableListView; 18 return UnmodifiableListView;
19 }); 19 });
20 dart.defineLazyClassGeneric(exports, 'UnmodifiableListView', {get: Unmodifiabl eListView$}); 20 dart.defineLazyClassGeneric(exports, 'UnmodifiableListView', {get: Unmodifiabl eListView$});
21 // Function _defaultEquals: (dynamic, dynamic) → bool 21 // Function _defaultEquals: (dynamic, dynamic) → bool
22 function _defaultEquals(a, b) { 22 function _defaultEquals(a, b) {
23 return dart.equals(a, b); 23 return dart.equals(a, b);
24 } 24 }
25 // Function _defaultHashCode: (dynamic) → int 25 // Function _defaultHashCode: (dynamic) → int
26 function _defaultHashCode(a) { 26 function _defaultHashCode(a) {
27 return dart.as(dart.dload(a, 'hashCode'), core.int); 27 return dart.as(dart.dload(a, 'hashCode'), core.int);
28 } 28 }
29 let _fillMapWithMappedIterable = Symbol('_fillMapWithMappedIterable');
30 let _fillMapWithIterables = Symbol('_fillMapWithIterables');
29 let HashMap$ = dart.generic(function(K, V) { 31 let HashMap$ = dart.generic(function(K, V) {
30 class HashMap extends core.Object { 32 class HashMap extends core.Object {
31 HashMap(opts) { 33 HashMap(opts) {
32 let equals = opts && 'equals' in opts ? opts.equals : null; 34 let equals = opts && 'equals' in opts ? opts.equals : null;
33 let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null; 35 let hashCode = opts && 'hashCode' in opts ? opts.hashCode : null;
34 let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null; 36 let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
35 if (isValidKey == null) { 37 if (isValidKey == null) {
36 if (hashCode == null) { 38 if (hashCode == null) {
37 if (equals == null) { 39 if (equals == null) {
38 return new (_HashMap$(K, V))(); 40 return new (_HashMap$(K, V))();
(...skipping 24 matching lines...) Expand all
63 let result = new (HashMap$(K, V))(); 65 let result = new (HashMap$(K, V))();
64 other.forEach((k, v) => { 66 other.forEach((k, v) => {
65 result.set(k, dart.as(v, V)); 67 result.set(k, dart.as(v, V));
66 }); 68 });
67 return result; 69 return result;
68 } 70 }
69 fromIterable(iterable, opts) { 71 fromIterable(iterable, opts) {
70 let key = opts && 'key' in opts ? opts.key : null; 72 let key = opts && 'key' in opts ? opts.key : null;
71 let value = opts && 'value' in opts ? opts.value : null; 73 let value = opts && 'value' in opts ? opts.value : null;
72 let map = new (HashMap$(K, V))(); 74 let map = new (HashMap$(K, V))();
73 Maps._fillMapWithMappedIterable(map, iterable, key, value); 75 Maps[_fillMapWithMappedIterable](map, iterable, key, value);
74 return map; 76 return map;
75 } 77 }
76 fromIterables(keys, values) { 78 fromIterables(keys, values) {
77 let map = new (HashMap$(K, V))(); 79 let map = new (HashMap$(K, V))();
78 Maps._fillMapWithIterables(map, keys, values); 80 Maps[_fillMapWithIterables](map, keys, values);
79 return map; 81 return map;
80 } 82 }
81 } 83 }
82 HashMap[dart.implements] = () => [core.Map$(K, V)]; 84 HashMap[dart.implements] = () => [core.Map$(K, V)];
83 dart.defineNamedConstructor(HashMap, 'identity'); 85 dart.defineNamedConstructor(HashMap, 'identity');
84 dart.defineNamedConstructor(HashMap, 'from'); 86 dart.defineNamedConstructor(HashMap, 'from');
85 dart.defineNamedConstructor(HashMap, 'fromIterable'); 87 dart.defineNamedConstructor(HashMap, 'fromIterable');
86 dart.defineNamedConstructor(HashMap, 'fromIterables'); 88 dart.defineNamedConstructor(HashMap, 'fromIterables');
87 return HashMap; 89 return HashMap;
88 }); 90 });
89 let HashMap = HashMap$(dart.dynamic, dart.dynamic); 91 let HashMap = HashMap$(dart.dynamic, dart.dynamic);
90 let _newSet = Symbol('_newSet'); 92 let _newSet = Symbol('_newSet');
91 let SetMixin$ = dart.generic(function(E) { 93 let SetMixin$ = dart.generic(function(E) {
92 class SetMixin extends core.Object { 94 class SetMixin extends core.Object {
93 get isEmpty() { 95 get [core.$isEmpty]() {
94 return this.length == 0; 96 return this.length == 0;
95 } 97 }
96 get isNotEmpty() { 98 get [core.$isNotEmpty]() {
97 return this.length != 0; 99 return this.length != 0;
98 } 100 }
99 clear() { 101 clear() {
100 this.removeAll(this.toList()); 102 this.removeAll(this.toList());
101 } 103 }
102 addAll(elements) { 104 addAll(elements) {
103 for (let element of elements) 105 for (let element of elements)
104 this.add(element); 106 this.add(element);
105 } 107 }
106 removeAll(elements) { 108 removeAll(elements) {
107 for (let element of elements) 109 for (let element of elements)
108 this.remove(element); 110 this.remove(element);
109 } 111 }
110 retainAll(elements) { 112 retainAll(elements) {
111 let toRemove = this.toSet(); 113 let toRemove = this.toSet();
112 for (let o of elements) { 114 for (let o of elements) {
113 toRemove.remove(o); 115 toRemove.remove(o);
114 } 116 }
115 this.removeAll(toRemove); 117 this.removeAll(toRemove);
116 } 118 }
117 removeWhere(test) { 119 removeWhere(test) {
118 let toRemove = new core.List.from([]); 120 let toRemove = new core.List.from([]);
119 for (let element of this) { 121 for (let element of this) {
120 if (test(element)) 122 if (test(element))
121 toRemove.add(element); 123 toRemove[core.$add](element);
122 } 124 }
123 this.removeAll(toRemove); 125 this.removeAll(toRemove);
124 } 126 }
125 retainWhere(test) { 127 retainWhere(test) {
126 let toRemove = new core.List.from([]); 128 let toRemove = new core.List.from([]);
127 for (let element of this) { 129 for (let element of this) {
128 if (!dart.notNull(test(element))) 130 if (!dart.notNull(test(element)))
129 toRemove.add(element); 131 toRemove[core.$add](element);
130 } 132 }
131 this.removeAll(toRemove); 133 this.removeAll(toRemove);
132 } 134 }
133 containsAll(other) { 135 containsAll(other) {
134 for (let o of other) { 136 for (let o of other) {
135 if (!dart.notNull(this.contains(o))) 137 if (!dart.notNull(this.contains(o)))
136 return false; 138 return false;
137 } 139 }
138 return true; 140 return true;
139 } 141 }
140 union(other) { 142 union(other) {
141 return ((_) => { 143 return ((_) => {
142 _.addAll(other); 144 _.addAll(other);
143 return _; 145 return _;
144 }).bind(this)(this.toSet()); 146 }).bind(this)(this.toSet());
145 } 147 }
146 intersection(other) { 148 intersection(other) {
147 let result = this.toSet(); 149 let result = this.toSet();
148 for (let element of this) { 150 for (let element of this) {
149 if (!dart.notNull(other.contains(element))) 151 if (!dart.notNull(other[core.$contains](element)))
150 result.remove(element); 152 result.remove(element);
151 } 153 }
152 return result; 154 return result;
153 } 155 }
154 difference(other) { 156 difference(other) {
155 let result = this.toSet(); 157 let result = this.toSet();
156 for (let element of this) { 158 for (let element of this) {
157 if (other.contains(element)) 159 if (other[core.$contains](element))
158 result.remove(element); 160 result.remove(element);
159 } 161 }
160 return result; 162 return result;
161 } 163 }
162 toList(opts) { 164 [core.$toList](opts) {
163 let growable = opts && 'growable' in opts ? opts.growable : true; 165 let growable = opts && 'growable' in opts ? opts.growable : true;
164 let result = growable ? ((_) => { 166 let result = growable ? ((_) => {
165 _.length = this.length; 167 _[core.$length] = this.length;
166 return _; 168 return _;
167 }).bind(this)(new (core.List$(E))()) : new (core.List$(E))(this.length); 169 }).bind(this)(new (core.List$(E))()) : new (core.List$(E))(this.length);
168 let i = 0; 170 let i = 0;
169 for (let element of this) 171 for (let element of this)
170 result.set(((x$) => i = dart.notNull(x$) + 1, x$)(i), element); 172 result[core.$set](((x$) => i = dart.notNull(x$) + 1, x$)(i), element);
171 return result; 173 return result;
172 } 174 }
173 map(f) { 175 [core.$map](f) {
174 return new (_internal.EfficientLengthMappedIterable$(E, dynamic))(this, f); 176 return new (_internal.EfficientLengthMappedIterable$(E, dynamic))(this, f);
175 } 177 }
176 get single() { 178 get [core.$single]() {
177 if (dart.notNull(this.length) > 1) 179 if (dart.notNull(this.length) > 1)
178 throw _internal.IterableElementError.tooMany(); 180 throw _internal.IterableElementError.tooMany();
179 let it = this.iterator; 181 let it = this.iterator;
180 if (!dart.notNull(it.moveNext())) 182 if (!dart.notNull(it.moveNext()))
181 throw _internal.IterableElementError.noElement(); 183 throw _internal.IterableElementError.noElement();
182 let result = dart.as(it.current, E); 184 let result = dart.as(it.current, E);
183 return result; 185 return result;
184 } 186 }
185 toString() { 187 toString() {
186 return IterableBase.iterableToFullString(this, '{', '}'); 188 return IterableBase.iterableToFullString(this, '{', '}');
187 } 189 }
188 where(f) { 190 [core.$where](f) {
189 return new (_internal.WhereIterable$(E))(this, f); 191 return new (_internal.WhereIterable$(E))(this, f);
190 } 192 }
191 expand(f) { 193 [core.$expand](f) {
192 return new (_internal.ExpandIterable$(E, dynamic))(this, f); 194 return new (_internal.ExpandIterable$(E, dynamic))(this, f);
193 } 195 }
194 forEach(f) { 196 [core.$forEach](f) {
195 for (let element of this) 197 for (let element of this)
196 f(element); 198 f(element);
197 } 199 }
198 reduce(combine) { 200 [core.$reduce](combine) {
199 let iterator = this.iterator; 201 let iterator = this[core.$iterator];
200 if (!dart.notNull(iterator.moveNext())) { 202 if (!dart.notNull(iterator.moveNext())) {
201 throw _internal.IterableElementError.noElement(); 203 throw _internal.IterableElementError.noElement();
202 } 204 }
203 let value = iterator.current; 205 let value = iterator.current;
204 while (iterator.moveNext()) { 206 while (iterator.moveNext()) {
205 value = combine(value, iterator.current); 207 value = combine(value, iterator.current);
206 } 208 }
207 return value; 209 return value;
208 } 210 }
209 fold(initialValue, combine) { 211 [core.$fold](initialValue, combine) {
210 let value = initialValue; 212 let value = initialValue;
211 for (let element of this) 213 for (let element of this)
212 value = dart.dinvokef(combine, value, element); 214 value = dart.dinvokef(combine, value, element);
213 return value; 215 return value;
214 } 216 }
215 every(f) { 217 [core.$every](f) {
216 for (let element of this) { 218 for (let element of this) {
217 if (!dart.notNull(f(element))) 219 if (!dart.notNull(f(element)))
218 return false; 220 return false;
219 } 221 }
220 return true; 222 return true;
221 } 223 }
222 join(separator) { 224 [core.$join](separator) {
223 if (separator === void 0) 225 if (separator === void 0)
224 separator = ""; 226 separator = "";
225 let iterator = this.iterator; 227 let iterator = this[core.$iterator];
226 if (!dart.notNull(iterator.moveNext())) 228 if (!dart.notNull(iterator.moveNext()))
227 return ""; 229 return "";
228 let buffer = new core.StringBuffer(); 230 let buffer = new core.StringBuffer();
229 if (dart.notNull(separator == null) || dart.notNull(separator == "")) { 231 if (dart.notNull(separator == null) || dart.notNull(separator == "")) {
230 do { 232 do {
231 buffer.write(`${iterator.current}`); 233 buffer.write(`${iterator.current}`);
232 } while (iterator.moveNext()); 234 } while (iterator.moveNext());
233 } else { 235 } else {
234 buffer.write(`${iterator.current}`); 236 buffer.write(`${iterator.current}`);
235 while (iterator.moveNext()) { 237 while (iterator.moveNext()) {
236 buffer.write(separator); 238 buffer.write(separator);
237 buffer.write(`${iterator.current}`); 239 buffer.write(`${iterator.current}`);
238 } 240 }
239 } 241 }
240 return buffer.toString(); 242 return buffer.toString();
241 } 243 }
242 any(test) { 244 [core.$any](test) {
243 for (let element of this) { 245 for (let element of this) {
244 if (test(element)) 246 if (test(element))
245 return true; 247 return true;
246 } 248 }
247 return false; 249 return false;
248 } 250 }
249 take(n) { 251 [core.$take](n) {
250 return new (_internal.TakeIterable$(E))(this, n); 252 return new (_internal.TakeIterable$(E))(this, n);
251 } 253 }
252 takeWhile(test) { 254 [core.$takeWhile](test) {
253 return new (_internal.TakeWhileIterable$(E))(this, test); 255 return new (_internal.TakeWhileIterable$(E))(this, test);
254 } 256 }
255 skip(n) { 257 [core.$skip](n) {
256 return new (_internal.SkipIterable$(E))(this, n); 258 return new (_internal.SkipIterable$(E))(this, n);
257 } 259 }
258 skipWhile(test) { 260 [core.$skipWhile](test) {
259 return new (_internal.SkipWhileIterable$(E))(this, test); 261 return new (_internal.SkipWhileIterable$(E))(this, test);
260 } 262 }
261 get first() { 263 get [core.$first]() {
262 let it = this.iterator; 264 let it = this.iterator;
263 if (!dart.notNull(it.moveNext())) { 265 if (!dart.notNull(it.moveNext())) {
264 throw _internal.IterableElementError.noElement(); 266 throw _internal.IterableElementError.noElement();
265 } 267 }
266 return dart.as(it.current, E); 268 return dart.as(it.current, E);
267 } 269 }
268 get last() { 270 get [core.$last]() {
269 let it = this.iterator; 271 let it = this.iterator;
270 if (!dart.notNull(it.moveNext())) { 272 if (!dart.notNull(it.moveNext())) {
271 throw _internal.IterableElementError.noElement(); 273 throw _internal.IterableElementError.noElement();
272 } 274 }
273 let result = null; 275 let result = null;
274 do { 276 do {
275 result = dart.as(it.current, E); 277 result = dart.as(it.current, E);
276 } while (it.moveNext()); 278 } while (it.moveNext());
277 return result; 279 return result;
278 } 280 }
279 firstWhere(test, opts) { 281 [core.$firstWhere](test, opts) {
280 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 282 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
281 for (let element of this) { 283 for (let element of this) {
282 if (test(element)) 284 if (test(element))
283 return element; 285 return element;
284 } 286 }
285 if (orElse != null) 287 if (orElse != null)
286 return orElse(); 288 return orElse();
287 throw _internal.IterableElementError.noElement(); 289 throw _internal.IterableElementError.noElement();
288 } 290 }
289 lastWhere(test, opts) { 291 [core.$lastWhere](test, opts) {
290 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 292 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
291 let result = null; 293 let result = null;
292 let foundMatching = false; 294 let foundMatching = false;
293 for (let element of this) { 295 for (let element of this) {
294 if (test(element)) { 296 if (test(element)) {
295 result = element; 297 result = element;
296 foundMatching = true; 298 foundMatching = true;
297 } 299 }
298 } 300 }
299 if (foundMatching) 301 if (foundMatching)
300 return result; 302 return result;
301 if (orElse != null) 303 if (orElse != null)
302 return orElse(); 304 return orElse();
303 throw _internal.IterableElementError.noElement(); 305 throw _internal.IterableElementError.noElement();
304 } 306 }
305 singleWhere(test) { 307 [core.$singleWhere](test) {
306 let result = null; 308 let result = null;
307 let foundMatching = false; 309 let foundMatching = false;
308 for (let element of this) { 310 for (let element of this) {
309 if (test(element)) { 311 if (test(element)) {
310 if (foundMatching) { 312 if (foundMatching) {
311 throw _internal.IterableElementError.tooMany(); 313 throw _internal.IterableElementError.tooMany();
312 } 314 }
313 result = element; 315 result = element;
314 foundMatching = true; 316 foundMatching = true;
315 } 317 }
316 } 318 }
317 if (foundMatching) 319 if (foundMatching)
318 return result; 320 return result;
319 throw _internal.IterableElementError.noElement(); 321 throw _internal.IterableElementError.noElement();
320 } 322 }
321 elementAt(index) { 323 [core.$elementAt](index) {
322 if (!(typeof index == 'number')) 324 if (!(typeof index == 'number'))
323 throw new core.ArgumentError.notNull("index"); 325 throw new core.ArgumentError.notNull("index");
324 core.RangeError.checkNotNegative(index, "index"); 326 core.RangeError.checkNotNegative(index, "index");
325 let elementIndex = 0; 327 let elementIndex = 0;
326 for (let element of this) { 328 for (let element of this) {
327 if (index == elementIndex) 329 if (index == elementIndex)
328 return element; 330 return element;
329 elementIndex = dart.notNull(elementIndex) + 1; 331 elementIndex = dart.notNull(elementIndex) + 1;
330 } 332 }
331 throw new core.RangeError.index(index, this, "index", null, elementIndex ); 333 throw new core.RangeError.index(index, this, "index", null, elementIndex );
(...skipping 10 matching lines...) Expand all
342 } 344 }
343 } 345 }
344 return SetBase; 346 return SetBase;
345 }); 347 });
346 let SetBase = SetBase$(dart.dynamic); 348 let SetBase = SetBase$(dart.dynamic);
347 let _HashSetBase$ = dart.generic(function(E) { 349 let _HashSetBase$ = dart.generic(function(E) {
348 class _HashSetBase extends SetBase$(E) { 350 class _HashSetBase extends SetBase$(E) {
349 difference(other) { 351 difference(other) {
350 let result = this[_newSet](); 352 let result = this[_newSet]();
351 for (let element of this) { 353 for (let element of this) {
352 if (!dart.notNull(other.contains(element))) 354 if (!dart.notNull(other[core.$contains](element)))
353 result.add(element); 355 result.add(element);
354 } 356 }
355 return result; 357 return result;
356 } 358 }
357 intersection(other) { 359 intersection(other) {
358 let result = this[_newSet](); 360 let result = this[_newSet]();
359 for (let element of this) { 361 for (let element of this) {
360 if (other.contains(element)) 362 if (other[core.$contains](element))
361 result.add(element); 363 result.add(element);
362 } 364 }
363 return result; 365 return result;
364 } 366 }
365 toSet() { 367 [core.$toSet]() {
366 return ((_) => { 368 return ((_) => {
367 _.addAll(this); 369 _.addAll(this);
368 return _; 370 return _;
369 }).bind(this)(this[_newSet]()); 371 }).bind(this)(this[_newSet]());
370 } 372 }
371 } 373 }
372 return _HashSetBase; 374 return _HashSetBase;
373 }); 375 });
374 let _HashSetBase = _HashSetBase$(dart.dynamic); 376 let _HashSetBase = _HashSetBase$(dart.dynamic);
375 let HashSet$ = dart.generic(function(E) { 377 let HashSet$ = dart.generic(function(E) {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 } 415 }
414 } 416 }
415 HashSet[dart.implements] = () => [core.Set$(E)]; 417 HashSet[dart.implements] = () => [core.Set$(E)];
416 dart.defineNamedConstructor(HashSet, 'identity'); 418 dart.defineNamedConstructor(HashSet, 'identity');
417 dart.defineNamedConstructor(HashSet, 'from'); 419 dart.defineNamedConstructor(HashSet, 'from');
418 return HashSet; 420 return HashSet;
419 }); 421 });
420 let HashSet = HashSet$(dart.dynamic); 422 let HashSet = HashSet$(dart.dynamic);
421 let IterableMixin$ = dart.generic(function(E) { 423 let IterableMixin$ = dart.generic(function(E) {
422 class IterableMixin extends core.Object { 424 class IterableMixin extends core.Object {
423 map(f) { 425 [core.$map](f) {
424 return new (_internal.MappedIterable$(E, dynamic))(this, f); 426 return new (_internal.MappedIterable$(E, dynamic))(this, f);
425 } 427 }
426 where(f) { 428 [core.$where](f) {
427 return new (_internal.WhereIterable$(E))(this, f); 429 return new (_internal.WhereIterable$(E))(this, f);
428 } 430 }
429 expand(f) { 431 [core.$expand](f) {
430 return new (_internal.ExpandIterable$(E, dynamic))(this, f); 432 return new (_internal.ExpandIterable$(E, dynamic))(this, f);
431 } 433 }
432 contains(element) { 434 [core.$contains](element) {
433 for (let e of this) { 435 for (let e of this) {
434 if (dart.equals(e, element)) 436 if (dart.equals(e, element))
435 return true; 437 return true;
436 } 438 }
437 return false; 439 return false;
438 } 440 }
439 forEach(f) { 441 [core.$forEach](f) {
440 for (let element of this) 442 for (let element of this)
441 f(element); 443 f(element);
442 } 444 }
443 reduce(combine) { 445 [core.$reduce](combine) {
444 let iterator = this.iterator; 446 let iterator = this[core.$iterator];
445 if (!dart.notNull(iterator.moveNext())) { 447 if (!dart.notNull(iterator.moveNext())) {
446 throw _internal.IterableElementError.noElement(); 448 throw _internal.IterableElementError.noElement();
447 } 449 }
448 let value = iterator.current; 450 let value = iterator.current;
449 while (iterator.moveNext()) { 451 while (iterator.moveNext()) {
450 value = combine(value, iterator.current); 452 value = combine(value, iterator.current);
451 } 453 }
452 return value; 454 return value;
453 } 455 }
454 fold(initialValue, combine) { 456 [core.$fold](initialValue, combine) {
455 let value = initialValue; 457 let value = initialValue;
456 for (let element of this) 458 for (let element of this)
457 value = dart.dinvokef(combine, value, element); 459 value = dart.dinvokef(combine, value, element);
458 return value; 460 return value;
459 } 461 }
460 every(f) { 462 [core.$every](f) {
461 for (let element of this) { 463 for (let element of this) {
462 if (!dart.notNull(f(element))) 464 if (!dart.notNull(f(element)))
463 return false; 465 return false;
464 } 466 }
465 return true; 467 return true;
466 } 468 }
467 join(separator) { 469 [core.$join](separator) {
468 if (separator === void 0) 470 if (separator === void 0)
469 separator = ""; 471 separator = "";
470 let iterator = this.iterator; 472 let iterator = this[core.$iterator];
471 if (!dart.notNull(iterator.moveNext())) 473 if (!dart.notNull(iterator.moveNext()))
472 return ""; 474 return "";
473 let buffer = new core.StringBuffer(); 475 let buffer = new core.StringBuffer();
474 if (dart.notNull(separator == null) || dart.notNull(separator == "")) { 476 if (dart.notNull(separator == null) || dart.notNull(separator == "")) {
475 do { 477 do {
476 buffer.write(`${iterator.current}`); 478 buffer.write(`${iterator.current}`);
477 } while (iterator.moveNext()); 479 } while (iterator.moveNext());
478 } else { 480 } else {
479 buffer.write(`${iterator.current}`); 481 buffer.write(`${iterator.current}`);
480 while (iterator.moveNext()) { 482 while (iterator.moveNext()) {
481 buffer.write(separator); 483 buffer.write(separator);
482 buffer.write(`${iterator.current}`); 484 buffer.write(`${iterator.current}`);
483 } 485 }
484 } 486 }
485 return buffer.toString(); 487 return buffer.toString();
486 } 488 }
487 any(f) { 489 [core.$any](f) {
488 for (let element of this) { 490 for (let element of this) {
489 if (f(element)) 491 if (f(element))
490 return true; 492 return true;
491 } 493 }
492 return false; 494 return false;
493 } 495 }
494 toList(opts) { 496 [core.$toList](opts) {
495 let growable = opts && 'growable' in opts ? opts.growable : true; 497 let growable = opts && 'growable' in opts ? opts.growable : true;
496 return new core.List$(E).from(this, {growable: growable}); 498 return new core.List$(E).from(this, {growable: growable});
497 } 499 }
498 toSet() { 500 [core.$toSet]() {
499 return new core.Set$(E).from(this); 501 return new core.Set$(E).from(this);
500 } 502 }
501 get length() { 503 get [core.$length]() {
502 dart.assert(!dart.is(this, _internal.EfficientLength)); 504 dart.assert(!dart.is(this, _internal.EfficientLength));
503 let count = 0; 505 let count = 0;
504 let it = this.iterator; 506 let it = this.iterator;
505 while (it.moveNext()) { 507 while (it.moveNext()) {
506 count = dart.notNull(count) + 1; 508 count = dart.notNull(count) + 1;
507 } 509 }
508 return count; 510 return count;
509 } 511 }
510 get isEmpty() { 512 get [core.$isEmpty]() {
511 return !dart.notNull(this.iterator.moveNext()); 513 return !dart.notNull(this.iterator.moveNext());
512 } 514 }
513 get isNotEmpty() { 515 get [core.$isNotEmpty]() {
514 return !dart.notNull(this.isEmpty); 516 return !dart.notNull(this.isEmpty);
515 } 517 }
516 take(n) { 518 [core.$take](n) {
517 return new (_internal.TakeIterable$(E))(this, n); 519 return new (_internal.TakeIterable$(E))(this, n);
518 } 520 }
519 takeWhile(test) { 521 [core.$takeWhile](test) {
520 return new (_internal.TakeWhileIterable$(E))(this, test); 522 return new (_internal.TakeWhileIterable$(E))(this, test);
521 } 523 }
522 skip(n) { 524 [core.$skip](n) {
523 return new (_internal.SkipIterable$(E))(this, n); 525 return new (_internal.SkipIterable$(E))(this, n);
524 } 526 }
525 skipWhile(test) { 527 [core.$skipWhile](test) {
526 return new (_internal.SkipWhileIterable$(E))(this, test); 528 return new (_internal.SkipWhileIterable$(E))(this, test);
527 } 529 }
528 get first() { 530 get [core.$first]() {
529 let it = this.iterator; 531 let it = this.iterator;
530 if (!dart.notNull(it.moveNext())) { 532 if (!dart.notNull(it.moveNext())) {
531 throw _internal.IterableElementError.noElement(); 533 throw _internal.IterableElementError.noElement();
532 } 534 }
533 return dart.as(it.current, E); 535 return dart.as(it.current, E);
534 } 536 }
535 get last() { 537 get [core.$last]() {
536 let it = this.iterator; 538 let it = this.iterator;
537 if (!dart.notNull(it.moveNext())) { 539 if (!dart.notNull(it.moveNext())) {
538 throw _internal.IterableElementError.noElement(); 540 throw _internal.IterableElementError.noElement();
539 } 541 }
540 let result = null; 542 let result = null;
541 do { 543 do {
542 result = dart.as(it.current, E); 544 result = dart.as(it.current, E);
543 } while (it.moveNext()); 545 } while (it.moveNext());
544 return result; 546 return result;
545 } 547 }
546 get single() { 548 get [core.$single]() {
547 let it = this.iterator; 549 let it = this.iterator;
548 if (!dart.notNull(it.moveNext())) 550 if (!dart.notNull(it.moveNext()))
549 throw _internal.IterableElementError.noElement(); 551 throw _internal.IterableElementError.noElement();
550 let result = dart.as(it.current, E); 552 let result = dart.as(it.current, E);
551 if (it.moveNext()) 553 if (it.moveNext())
552 throw _internal.IterableElementError.tooMany(); 554 throw _internal.IterableElementError.tooMany();
553 return result; 555 return result;
554 } 556 }
555 firstWhere(test, opts) { 557 [core.$firstWhere](test, opts) {
556 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 558 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
557 for (let element of this) { 559 for (let element of this) {
558 if (test(element)) 560 if (test(element))
559 return element; 561 return element;
560 } 562 }
561 if (orElse != null) 563 if (orElse != null)
562 return orElse(); 564 return orElse();
563 throw _internal.IterableElementError.noElement(); 565 throw _internal.IterableElementError.noElement();
564 } 566 }
565 lastWhere(test, opts) { 567 [core.$lastWhere](test, opts) {
566 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 568 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
567 let result = null; 569 let result = null;
568 let foundMatching = false; 570 let foundMatching = false;
569 for (let element of this) { 571 for (let element of this) {
570 if (test(element)) { 572 if (test(element)) {
571 result = element; 573 result = element;
572 foundMatching = true; 574 foundMatching = true;
573 } 575 }
574 } 576 }
575 if (foundMatching) 577 if (foundMatching)
576 return result; 578 return result;
577 if (orElse != null) 579 if (orElse != null)
578 return orElse(); 580 return orElse();
579 throw _internal.IterableElementError.noElement(); 581 throw _internal.IterableElementError.noElement();
580 } 582 }
581 singleWhere(test) { 583 [core.$singleWhere](test) {
582 let result = null; 584 let result = null;
583 let foundMatching = false; 585 let foundMatching = false;
584 for (let element of this) { 586 for (let element of this) {
585 if (test(element)) { 587 if (test(element)) {
586 if (foundMatching) { 588 if (foundMatching) {
587 throw _internal.IterableElementError.tooMany(); 589 throw _internal.IterableElementError.tooMany();
588 } 590 }
589 result = element; 591 result = element;
590 foundMatching = true; 592 foundMatching = true;
591 } 593 }
592 } 594 }
593 if (foundMatching) 595 if (foundMatching)
594 return result; 596 return result;
595 throw _internal.IterableElementError.noElement(); 597 throw _internal.IterableElementError.noElement();
596 } 598 }
597 elementAt(index) { 599 [core.$elementAt](index) {
598 if (!(typeof index == 'number')) 600 if (!(typeof index == 'number'))
599 throw new core.ArgumentError.notNull("index"); 601 throw new core.ArgumentError.notNull("index");
600 core.RangeError.checkNotNegative(index, "index"); 602 core.RangeError.checkNotNegative(index, "index");
601 let elementIndex = 0; 603 let elementIndex = 0;
602 for (let element of this) { 604 for (let element of this) {
603 if (index == elementIndex) 605 if (index == elementIndex)
604 return element; 606 return element;
605 elementIndex = dart.notNull(elementIndex) + 1; 607 elementIndex = dart.notNull(elementIndex) + 1;
606 } 608 }
607 throw new core.RangeError.index(index, this, "index", null, elementIndex ); 609 throw new core.RangeError.index(index, this, "index", null, elementIndex );
608 } 610 }
609 toString() { 611 toString() {
610 return IterableBase.iterableToShortString(this, '(', ')'); 612 return IterableBase.iterableToShortString(this, '(', ')');
611 } 613 }
612 } 614 }
613 IterableMixin[dart.implements] = () => [core.Iterable$(E)]; 615 IterableMixin[dart.implements] = () => [core.Iterable$(E)];
614 return IterableMixin; 616 return IterableMixin;
615 }); 617 });
616 let IterableMixin = IterableMixin$(dart.dynamic); 618 let IterableMixin = IterableMixin$(dart.dynamic);
617 let _isToStringVisiting = Symbol('_isToStringVisiting'); 619 let _isToStringVisiting = Symbol('_isToStringVisiting');
618 let _toStringVisiting = Symbol('_toStringVisiting'); 620 let _toStringVisiting = Symbol('_toStringVisiting');
619 let _iterablePartsToStrings = Symbol('_iterablePartsToStrings'); 621 let _iterablePartsToStrings = Symbol('_iterablePartsToStrings');
620 let IterableBase$ = dart.generic(function(E) { 622 let IterableBase$ = dart.generic(function(E) {
621 class IterableBase extends core.Object { 623 class IterableBase extends core.Object {
622 IterableBase() { 624 IterableBase() {
623 } 625 }
624 map(f) { 626 [core.$map](f) {
625 return new (_internal.MappedIterable$(E, dynamic))(this, f); 627 return new (_internal.MappedIterable$(E, dynamic))(this, f);
626 } 628 }
627 where(f) { 629 [core.$where](f) {
628 return new (_internal.WhereIterable$(E))(this, f); 630 return new (_internal.WhereIterable$(E))(this, f);
629 } 631 }
630 expand(f) { 632 [core.$expand](f) {
631 return new (_internal.ExpandIterable$(E, dynamic))(this, f); 633 return new (_internal.ExpandIterable$(E, dynamic))(this, f);
632 } 634 }
633 contains(element) { 635 [core.$contains](element) {
634 for (let e of this) { 636 for (let e of this) {
635 if (dart.equals(e, element)) 637 if (dart.equals(e, element))
636 return true; 638 return true;
637 } 639 }
638 return false; 640 return false;
639 } 641 }
640 forEach(f) { 642 [core.$forEach](f) {
641 for (let element of this) 643 for (let element of this)
642 f(element); 644 f(element);
643 } 645 }
644 reduce(combine) { 646 [core.$reduce](combine) {
645 let iterator = this.iterator; 647 let iterator = this[core.$iterator];
646 if (!dart.notNull(iterator.moveNext())) { 648 if (!dart.notNull(iterator.moveNext())) {
647 throw _internal.IterableElementError.noElement(); 649 throw _internal.IterableElementError.noElement();
648 } 650 }
649 let value = iterator.current; 651 let value = iterator.current;
650 while (iterator.moveNext()) { 652 while (iterator.moveNext()) {
651 value = combine(value, iterator.current); 653 value = combine(value, iterator.current);
652 } 654 }
653 return value; 655 return value;
654 } 656 }
655 fold(initialValue, combine) { 657 [core.$fold](initialValue, combine) {
656 let value = initialValue; 658 let value = initialValue;
657 for (let element of this) 659 for (let element of this)
658 value = dart.dinvokef(combine, value, element); 660 value = dart.dinvokef(combine, value, element);
659 return value; 661 return value;
660 } 662 }
661 every(f) { 663 [core.$every](f) {
662 for (let element of this) { 664 for (let element of this) {
663 if (!dart.notNull(f(element))) 665 if (!dart.notNull(f(element)))
664 return false; 666 return false;
665 } 667 }
666 return true; 668 return true;
667 } 669 }
668 join(separator) { 670 [core.$join](separator) {
669 if (separator === void 0) 671 if (separator === void 0)
670 separator = ""; 672 separator = "";
671 let iterator = this.iterator; 673 let iterator = this[core.$iterator];
672 if (!dart.notNull(iterator.moveNext())) 674 if (!dart.notNull(iterator.moveNext()))
673 return ""; 675 return "";
674 let buffer = new core.StringBuffer(); 676 let buffer = new core.StringBuffer();
675 if (dart.notNull(separator == null) || dart.notNull(separator == "")) { 677 if (dart.notNull(separator == null) || dart.notNull(separator == "")) {
676 do { 678 do {
677 buffer.write(`${iterator.current}`); 679 buffer.write(`${iterator.current}`);
678 } while (iterator.moveNext()); 680 } while (iterator.moveNext());
679 } else { 681 } else {
680 buffer.write(`${iterator.current}`); 682 buffer.write(`${iterator.current}`);
681 while (iterator.moveNext()) { 683 while (iterator.moveNext()) {
682 buffer.write(separator); 684 buffer.write(separator);
683 buffer.write(`${iterator.current}`); 685 buffer.write(`${iterator.current}`);
684 } 686 }
685 } 687 }
686 return buffer.toString(); 688 return buffer.toString();
687 } 689 }
688 any(f) { 690 [core.$any](f) {
689 for (let element of this) { 691 for (let element of this) {
690 if (f(element)) 692 if (f(element))
691 return true; 693 return true;
692 } 694 }
693 return false; 695 return false;
694 } 696 }
695 toList(opts) { 697 [core.$toList](opts) {
696 let growable = opts && 'growable' in opts ? opts.growable : true; 698 let growable = opts && 'growable' in opts ? opts.growable : true;
697 return new core.List$(E).from(this, {growable: growable}); 699 return new core.List$(E).from(this, {growable: growable});
698 } 700 }
699 toSet() { 701 [core.$toSet]() {
700 return new core.Set$(E).from(this); 702 return new core.Set$(E).from(this);
701 } 703 }
702 get length() { 704 get [core.$length]() {
703 dart.assert(!dart.is(this, _internal.EfficientLength)); 705 dart.assert(!dart.is(this, _internal.EfficientLength));
704 let count = 0; 706 let count = 0;
705 let it = this.iterator; 707 let it = this.iterator;
706 while (it.moveNext()) { 708 while (it.moveNext()) {
707 count = dart.notNull(count) + 1; 709 count = dart.notNull(count) + 1;
708 } 710 }
709 return count; 711 return count;
710 } 712 }
711 get isEmpty() { 713 get [core.$isEmpty]() {
712 return !dart.notNull(this.iterator.moveNext()); 714 return !dart.notNull(this.iterator.moveNext());
713 } 715 }
714 get isNotEmpty() { 716 get [core.$isNotEmpty]() {
715 return !dart.notNull(this.isEmpty); 717 return !dart.notNull(this.isEmpty);
716 } 718 }
717 take(n) { 719 [core.$take](n) {
718 return new (_internal.TakeIterable$(E))(this, n); 720 return new (_internal.TakeIterable$(E))(this, n);
719 } 721 }
720 takeWhile(test) { 722 [core.$takeWhile](test) {
721 return new (_internal.TakeWhileIterable$(E))(this, test); 723 return new (_internal.TakeWhileIterable$(E))(this, test);
722 } 724 }
723 skip(n) { 725 [core.$skip](n) {
724 return new (_internal.SkipIterable$(E))(this, n); 726 return new (_internal.SkipIterable$(E))(this, n);
725 } 727 }
726 skipWhile(test) { 728 [core.$skipWhile](test) {
727 return new (_internal.SkipWhileIterable$(E))(this, test); 729 return new (_internal.SkipWhileIterable$(E))(this, test);
728 } 730 }
729 get first() { 731 get [core.$first]() {
730 let it = this.iterator; 732 let it = this.iterator;
731 if (!dart.notNull(it.moveNext())) { 733 if (!dart.notNull(it.moveNext())) {
732 throw _internal.IterableElementError.noElement(); 734 throw _internal.IterableElementError.noElement();
733 } 735 }
734 return dart.as(it.current, E); 736 return dart.as(it.current, E);
735 } 737 }
736 get last() { 738 get [core.$last]() {
737 let it = this.iterator; 739 let it = this.iterator;
738 if (!dart.notNull(it.moveNext())) { 740 if (!dart.notNull(it.moveNext())) {
739 throw _internal.IterableElementError.noElement(); 741 throw _internal.IterableElementError.noElement();
740 } 742 }
741 let result = null; 743 let result = null;
742 do { 744 do {
743 result = dart.as(it.current, E); 745 result = dart.as(it.current, E);
744 } while (it.moveNext()); 746 } while (it.moveNext());
745 return result; 747 return result;
746 } 748 }
747 get single() { 749 get [core.$single]() {
748 let it = this.iterator; 750 let it = this.iterator;
749 if (!dart.notNull(it.moveNext())) 751 if (!dart.notNull(it.moveNext()))
750 throw _internal.IterableElementError.noElement(); 752 throw _internal.IterableElementError.noElement();
751 let result = dart.as(it.current, E); 753 let result = dart.as(it.current, E);
752 if (it.moveNext()) 754 if (it.moveNext())
753 throw _internal.IterableElementError.tooMany(); 755 throw _internal.IterableElementError.tooMany();
754 return result; 756 return result;
755 } 757 }
756 firstWhere(test, opts) { 758 [core.$firstWhere](test, opts) {
757 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 759 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
758 for (let element of this) { 760 for (let element of this) {
759 if (test(element)) 761 if (test(element))
760 return element; 762 return element;
761 } 763 }
762 if (orElse != null) 764 if (orElse != null)
763 return orElse(); 765 return orElse();
764 throw _internal.IterableElementError.noElement(); 766 throw _internal.IterableElementError.noElement();
765 } 767 }
766 lastWhere(test, opts) { 768 [core.$lastWhere](test, opts) {
767 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 769 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
768 let result = null; 770 let result = null;
769 let foundMatching = false; 771 let foundMatching = false;
770 for (let element of this) { 772 for (let element of this) {
771 if (test(element)) { 773 if (test(element)) {
772 result = element; 774 result = element;
773 foundMatching = true; 775 foundMatching = true;
774 } 776 }
775 } 777 }
776 if (foundMatching) 778 if (foundMatching)
777 return result; 779 return result;
778 if (orElse != null) 780 if (orElse != null)
779 return orElse(); 781 return orElse();
780 throw _internal.IterableElementError.noElement(); 782 throw _internal.IterableElementError.noElement();
781 } 783 }
782 singleWhere(test) { 784 [core.$singleWhere](test) {
783 let result = null; 785 let result = null;
784 let foundMatching = false; 786 let foundMatching = false;
785 for (let element of this) { 787 for (let element of this) {
786 if (test(element)) { 788 if (test(element)) {
787 if (foundMatching) { 789 if (foundMatching) {
788 throw _internal.IterableElementError.tooMany(); 790 throw _internal.IterableElementError.tooMany();
789 } 791 }
790 result = element; 792 result = element;
791 foundMatching = true; 793 foundMatching = true;
792 } 794 }
793 } 795 }
794 if (foundMatching) 796 if (foundMatching)
795 return result; 797 return result;
796 throw _internal.IterableElementError.noElement(); 798 throw _internal.IterableElementError.noElement();
797 } 799 }
798 elementAt(index) { 800 [core.$elementAt](index) {
799 if (!(typeof index == 'number')) 801 if (!(typeof index == 'number'))
800 throw new core.ArgumentError.notNull("index"); 802 throw new core.ArgumentError.notNull("index");
801 core.RangeError.checkNotNegative(index, "index"); 803 core.RangeError.checkNotNegative(index, "index");
802 let elementIndex = 0; 804 let elementIndex = 0;
803 for (let element of this) { 805 for (let element of this) {
804 if (index == elementIndex) 806 if (index == elementIndex)
805 return element; 807 return element;
806 elementIndex = dart.notNull(elementIndex) + 1; 808 elementIndex = dart.notNull(elementIndex) + 1;
807 } 809 }
808 throw new core.RangeError.index(index, this, "index", null, elementIndex ); 810 throw new core.RangeError.index(index, this, "index", null, elementIndex );
809 } 811 }
810 toString() { 812 toString() {
811 return IterableBase.iterableToShortString(this, '(', ')'); 813 return IterableBase.iterableToShortString(this, '(', ')');
812 } 814 }
813 static iterableToShortString(iterable, leftDelimiter, rightDelimiter) { 815 static iterableToShortString(iterable, leftDelimiter, rightDelimiter) {
814 if (leftDelimiter === void 0) 816 if (leftDelimiter === void 0)
815 leftDelimiter = '('; 817 leftDelimiter = '(';
816 if (rightDelimiter === void 0) 818 if (rightDelimiter === void 0)
817 rightDelimiter = ')'; 819 rightDelimiter = ')';
818 if (IterableBase[_isToStringVisiting](iterable)) { 820 if (IterableBase[_isToStringVisiting](iterable)) {
819 if (dart.notNull(leftDelimiter == "(") && dart.notNull(rightDelimiter == ")")) { 821 if (dart.notNull(leftDelimiter == "(") && dart.notNull(rightDelimiter == ")")) {
820 return "(...)"; 822 return "(...)";
821 } 823 }
822 return `${leftDelimiter}...${rightDelimiter}`; 824 return `${leftDelimiter}...${rightDelimiter}`;
823 } 825 }
824 let parts = new core.List.from([]); 826 let parts = new core.List.from([]);
825 IterableBase[_toStringVisiting].add(iterable); 827 IterableBase[_toStringVisiting][core.$add](iterable);
826 try { 828 try {
827 IterableBase[_iterablePartsToStrings](iterable, parts); 829 IterableBase[_iterablePartsToStrings](iterable, parts);
828 } finally { 830 } finally {
829 dart.assert(core.identical(IterableBase[_toStringVisiting].last, itera ble)); 831 dart.assert(core.identical(IterableBase[_toStringVisiting][core.$last] , iterable));
830 IterableBase[_toStringVisiting].removeLast(); 832 IterableBase[_toStringVisiting][core.$removeLast]();
831 } 833 }
832 return ((_) => { 834 return ((_) => {
833 _.writeAll(parts, ", "); 835 _.writeAll(parts, ", ");
834 _.write(rightDelimiter); 836 _.write(rightDelimiter);
835 return _; 837 return _;
836 }).bind(this)(new core.StringBuffer(leftDelimiter)).toString(); 838 }).bind(this)(new core.StringBuffer(leftDelimiter)).toString();
837 } 839 }
838 static iterableToFullString(iterable, leftDelimiter, rightDelimiter) { 840 static iterableToFullString(iterable, leftDelimiter, rightDelimiter) {
839 if (leftDelimiter === void 0) 841 if (leftDelimiter === void 0)
840 leftDelimiter = '('; 842 leftDelimiter = '(';
841 if (rightDelimiter === void 0) 843 if (rightDelimiter === void 0)
842 rightDelimiter = ')'; 844 rightDelimiter = ')';
843 if (IterableBase[_isToStringVisiting](iterable)) { 845 if (IterableBase[_isToStringVisiting](iterable)) {
844 return `${leftDelimiter}...${rightDelimiter}`; 846 return `${leftDelimiter}...${rightDelimiter}`;
845 } 847 }
846 let buffer = new core.StringBuffer(leftDelimiter); 848 let buffer = new core.StringBuffer(leftDelimiter);
847 IterableBase[_toStringVisiting].add(iterable); 849 IterableBase[_toStringVisiting][core.$add](iterable);
848 try { 850 try {
849 buffer.writeAll(iterable, ", "); 851 buffer.writeAll(iterable, ", ");
850 } finally { 852 } finally {
851 dart.assert(core.identical(IterableBase[_toStringVisiting].last, itera ble)); 853 dart.assert(core.identical(IterableBase[_toStringVisiting][core.$last] , iterable));
852 IterableBase[_toStringVisiting].removeLast(); 854 IterableBase[_toStringVisiting][core.$removeLast]();
853 } 855 }
854 buffer.write(rightDelimiter); 856 buffer.write(rightDelimiter);
855 return buffer.toString(); 857 return buffer.toString();
856 } 858 }
857 static [_isToStringVisiting](o) { 859 static [_isToStringVisiting](o) {
858 for (let i = 0; dart.notNull(i) < dart.notNull(IterableBase[_toStringVis iting].length); i = dart.notNull(i) + 1) { 860 for (let i = 0; dart.notNull(i) < dart.notNull(IterableBase[_toStringVis iting][core.$length]); i = dart.notNull(i) + 1) {
859 if (core.identical(o, IterableBase[_toStringVisiting].get(i))) 861 if (core.identical(o, IterableBase[_toStringVisiting][core.$get](i)))
860 return true; 862 return true;
861 } 863 }
862 return false; 864 return false;
863 } 865 }
864 static [_iterablePartsToStrings](iterable, parts) { 866 static [_iterablePartsToStrings](iterable, parts) {
865 let LENGTH_LIMIT = 80; 867 let LENGTH_LIMIT = 80;
866 let HEAD_COUNT = 3; 868 let HEAD_COUNT = 3;
867 let TAIL_COUNT = 2; 869 let TAIL_COUNT = 2;
868 let MAX_COUNT = 100; 870 let MAX_COUNT = 100;
869 let OVERHEAD = 2; 871 let OVERHEAD = 2;
870 let ELLIPSIS_SIZE = 3; 872 let ELLIPSIS_SIZE = 3;
871 let length = 0; 873 let length = 0;
872 let count = 0; 874 let count = 0;
873 let it = iterable.iterator; 875 let it = iterable[core.$iterator];
874 while (dart.notNull(length) < dart.notNull(LENGTH_LIMIT) || dart.notNull (count) < dart.notNull(HEAD_COUNT)) { 876 while (dart.notNull(length) < dart.notNull(LENGTH_LIMIT) || dart.notNull (count) < dart.notNull(HEAD_COUNT)) {
875 if (!dart.notNull(it.moveNext())) 877 if (!dart.notNull(it.moveNext()))
876 return; 878 return;
877 let next = `${it.current}`; 879 let next = `${it.current}`;
878 parts.add(next); 880 parts[core.$add](next);
879 length = dart.notNull(next.length) + dart.notNull(OVERHEAD); 881 length = dart.notNull(next.length) + dart.notNull(OVERHEAD);
880 count = dart.notNull(count) + 1; 882 count = dart.notNull(count) + 1;
881 } 883 }
882 let penultimateString = null; 884 let penultimateString = null;
883 let ultimateString = null; 885 let ultimateString = null;
884 let penultimate = null; 886 let penultimate = null;
885 let ultimate = null; 887 let ultimate = null;
886 if (!dart.notNull(it.moveNext())) { 888 if (!dart.notNull(it.moveNext())) {
887 if (dart.notNull(count) <= dart.notNull(HEAD_COUNT) + dart.notNull(TAI L_COUNT)) 889 if (dart.notNull(count) <= dart.notNull(HEAD_COUNT) + dart.notNull(TAI L_COUNT))
888 return; 890 return;
889 ultimateString = dart.as(parts.removeLast(), core.String); 891 ultimateString = dart.as(parts[core.$removeLast](), core.String);
890 penultimateString = dart.as(parts.removeLast(), core.String); 892 penultimateString = dart.as(parts[core.$removeLast](), core.String);
891 } else { 893 } else {
892 penultimate = it.current; 894 penultimate = it.current;
893 count = dart.notNull(count) + 1; 895 count = dart.notNull(count) + 1;
894 if (!dart.notNull(it.moveNext())) { 896 if (!dart.notNull(it.moveNext())) {
895 if (dart.notNull(count) <= dart.notNull(HEAD_COUNT) + 1) { 897 if (dart.notNull(count) <= dart.notNull(HEAD_COUNT) + 1) {
896 parts.add(`${penultimate}`); 898 parts[core.$add](`${penultimate}`);
897 return; 899 return;
898 } 900 }
899 ultimateString = `${penultimate}`; 901 ultimateString = `${penultimate}`;
900 penultimateString = dart.as(parts.removeLast(), core.String); 902 penultimateString = dart.as(parts[core.$removeLast](), core.String);
901 length = dart.notNull(ultimateString.length) + dart.notNull(OVERHEAD ); 903 length = dart.notNull(ultimateString.length) + dart.notNull(OVERHEAD );
902 } else { 904 } else {
903 ultimate = it.current; 905 ultimate = it.current;
904 count = dart.notNull(count) + 1; 906 count = dart.notNull(count) + 1;
905 dart.assert(dart.notNull(count) < dart.notNull(MAX_COUNT)); 907 dart.assert(dart.notNull(count) < dart.notNull(MAX_COUNT));
906 while (it.moveNext()) { 908 while (it.moveNext()) {
907 penultimate = ultimate; 909 penultimate = ultimate;
908 ultimate = it.current; 910 ultimate = it.current;
909 count = dart.notNull(count) + 1; 911 count = dart.notNull(count) + 1;
910 if (dart.notNull(count) > dart.notNull(MAX_COUNT)) { 912 if (dart.notNull(count) > dart.notNull(MAX_COUNT)) {
911 while (dart.notNull(length) > dart.notNull(LENGTH_LIMIT) - dart. notNull(ELLIPSIS_SIZE) - dart.notNull(OVERHEAD) && dart.notNull(count) > dart.no tNull(HEAD_COUNT)) { 913 while (dart.notNull(length) > dart.notNull(LENGTH_LIMIT) - dart. notNull(ELLIPSIS_SIZE) - dart.notNull(OVERHEAD) && dart.notNull(count) > dart.no tNull(HEAD_COUNT)) {
912 length = dart.as(dart.dbinary(dart.dload(parts.removeLast(), ' length'), '+', OVERHEAD), core.int); 914 length = dart.as(dart.dbinary(dart.dload(parts[core.$removeLas t](), 'length'), '+', OVERHEAD), core.int);
913 count = dart.notNull(count) - 1; 915 count = dart.notNull(count) - 1;
914 } 916 }
915 parts.add("..."); 917 parts[core.$add]("...");
916 return; 918 return;
917 } 919 }
918 } 920 }
919 penultimateString = `${penultimate}`; 921 penultimateString = `${penultimate}`;
920 ultimateString = `${ultimate}`; 922 ultimateString = `${ultimate}`;
921 length = dart.notNull(ultimateString.length) + dart.notNull(penultim ateString.length) + 2 * dart.notNull(OVERHEAD); 923 length = dart.notNull(ultimateString.length) + dart.notNull(penultim ateString.length) + 2 * dart.notNull(OVERHEAD);
922 } 924 }
923 } 925 }
924 let elision = null; 926 let elision = null;
925 if (dart.notNull(count) > dart.notNull(parts.length) + dart.notNull(TAIL _COUNT)) { 927 if (dart.notNull(count) > dart.notNull(parts[core.$length]) + dart.notNu ll(TAIL_COUNT)) {
926 elision = "..."; 928 elision = "...";
927 length = dart.notNull(ELLIPSIS_SIZE) + dart.notNull(OVERHEAD); 929 length = dart.notNull(ELLIPSIS_SIZE) + dart.notNull(OVERHEAD);
928 } 930 }
929 while (dart.notNull(length) > dart.notNull(LENGTH_LIMIT) && dart.notNull (parts.length) > dart.notNull(HEAD_COUNT)) { 931 while (dart.notNull(length) > dart.notNull(LENGTH_LIMIT) && dart.notNull (parts[core.$length]) > dart.notNull(HEAD_COUNT)) {
930 length = dart.as(dart.dbinary(dart.dload(parts.removeLast(), 'length') , '+', OVERHEAD), core.int); 932 length = dart.as(dart.dbinary(dart.dload(parts[core.$removeLast](), 'l ength'), '+', OVERHEAD), core.int);
931 if (elision == null) { 933 if (elision == null) {
932 elision = "..."; 934 elision = "...";
933 length = dart.notNull(ELLIPSIS_SIZE) + dart.notNull(OVERHEAD); 935 length = dart.notNull(ELLIPSIS_SIZE) + dart.notNull(OVERHEAD);
934 } 936 }
935 } 937 }
936 if (elision != null) { 938 if (elision != null) {
937 parts.add(elision); 939 parts[core.$add](elision);
938 } 940 }
939 parts.add(penultimateString); 941 parts[core.$add](penultimateString);
940 parts.add(ultimateString); 942 parts[core.$add](ultimateString);
941 } 943 }
942 } 944 }
943 IterableBase[dart.implements] = () => [core.Iterable$(E)]; 945 IterableBase[dart.implements] = () => [core.Iterable$(E)];
944 dart.defineLazyProperties(IterableBase, { 946 dart.defineLazyProperties(IterableBase, {
945 get _toStringVisiting() { 947 get _toStringVisiting() {
946 return new core.List.from([]); 948 return new core.List.from([]);
947 } 949 }
948 }); 950 });
949 return IterableBase; 951 return IterableBase;
950 }); 952 });
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 let result = new (LinkedHashMap$(K, V))(); 1029 let result = new (LinkedHashMap$(K, V))();
1028 other.forEach((k, v) => { 1030 other.forEach((k, v) => {
1029 result.set(k, dart.as(v, V)); 1031 result.set(k, dart.as(v, V));
1030 }); 1032 });
1031 return result; 1033 return result;
1032 } 1034 }
1033 fromIterable(iterable, opts) { 1035 fromIterable(iterable, opts) {
1034 let key = opts && 'key' in opts ? opts.key : null; 1036 let key = opts && 'key' in opts ? opts.key : null;
1035 let value = opts && 'value' in opts ? opts.value : null; 1037 let value = opts && 'value' in opts ? opts.value : null;
1036 let map = new (LinkedHashMap$(K, V))(); 1038 let map = new (LinkedHashMap$(K, V))();
1037 Maps._fillMapWithMappedIterable(map, iterable, key, value); 1039 Maps[_fillMapWithMappedIterable](map, iterable, key, value);
1038 return map; 1040 return map;
1039 } 1041 }
1040 fromIterables(keys, values) { 1042 fromIterables(keys, values) {
1041 let map = new (LinkedHashMap$(K, V))(); 1043 let map = new (LinkedHashMap$(K, V))();
1042 Maps._fillMapWithIterables(map, keys, values); 1044 Maps[_fillMapWithIterables](map, keys, values);
1043 return map; 1045 return map;
1044 } 1046 }
1045 [_literal](keyValuePairs) { 1047 [_literal](keyValuePairs) {
1046 return dart.as(_js_helper.fillLiteralMap(keyValuePairs, new (_LinkedHash Map$(K, V))()), LinkedHashMap$(K, V)); 1048 return dart.as(_js_helper.fillLiteralMap(keyValuePairs, new (_LinkedHash Map$(K, V))()), LinkedHashMap$(K, V));
1047 } 1049 }
1048 [_empty]() { 1050 [_empty]() {
1049 return new (_LinkedHashMap$(K, V))(); 1051 return new (_LinkedHashMap$(K, V))();
1050 } 1052 }
1051 } 1053 }
1052 LinkedHashMap[dart.implements] = () => [HashMap$(K, V)]; 1054 LinkedHashMap[dart.implements] = () => [HashMap$(K, V)];
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1123 super.IterableBase(); 1125 super.IterableBase();
1124 this[_next] = this[_previous] = this; 1126 this[_next] = this[_previous] = this;
1125 } 1127 }
1126 addFirst(entry) { 1128 addFirst(entry) {
1127 this[_insertAfter](this, entry); 1129 this[_insertAfter](this, entry);
1128 } 1130 }
1129 add(entry) { 1131 add(entry) {
1130 this[_insertAfter](this[_previous], entry); 1132 this[_insertAfter](this[_previous], entry);
1131 } 1133 }
1132 addAll(entries) { 1134 addAll(entries) {
1133 entries.forEach(dart.closureWrap(((entry) => this[_insertAfter](this[_pr evious], dart.as(entry, E))).bind(this), "(E) → void")); 1135 entries[core.$forEach](dart.closureWrap(((entry) => this[_insertAfter](t his[_previous], dart.as(entry, E))).bind(this), "(E) → void"));
1134 } 1136 }
1135 remove(entry) { 1137 remove(entry) {
1136 if (!dart.equals(entry[_list], this)) 1138 if (!dart.equals(entry[_list], this))
1137 return false; 1139 return false;
1138 this[_unlink](entry); 1140 this[_unlink](entry);
1139 return true; 1141 return true;
1140 } 1142 }
1141 get iterator() { 1143 get [core.$iterator]() {
1142 return new (_LinkedListIterator$(E))(this); 1144 return new (_LinkedListIterator$(E))(this);
1143 } 1145 }
1144 get length() { 1146 get [core.$length]() {
1145 return this[_length]; 1147 return this[_length];
1146 } 1148 }
1147 clear() { 1149 clear() {
1148 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 1150 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
1149 let next = this[_next]; 1151 let next = this[_next];
1150 while (!dart.notNull(core.identical(next, this))) { 1152 while (!dart.notNull(core.identical(next, this))) {
1151 let entry = dart.as(next, E); 1153 let entry = dart.as(next, E);
1152 next = entry[_next]; 1154 next = entry[_next];
1153 entry[_next] = entry[_previous] = entry[_list] = null; 1155 entry[_next] = entry[_previous] = entry[_list] = null;
1154 } 1156 }
1155 this[_next] = this[_previous] = this; 1157 this[_next] = this[_previous] = this;
1156 this[_length] = 0; 1158 this[_length] = 0;
1157 } 1159 }
1158 get first() { 1160 get [core.$first]() {
1159 if (core.identical(this[_next], this)) { 1161 if (core.identical(this[_next], this)) {
1160 throw new core.StateError('No such element'); 1162 throw new core.StateError('No such element');
1161 } 1163 }
1162 return dart.as(this[_next], E); 1164 return dart.as(this[_next], E);
1163 } 1165 }
1164 get last() { 1166 get [core.$last]() {
1165 if (core.identical(this[_previous], this)) { 1167 if (core.identical(this[_previous], this)) {
1166 throw new core.StateError('No such element'); 1168 throw new core.StateError('No such element');
1167 } 1169 }
1168 return dart.as(this[_previous], E); 1170 return dart.as(this[_previous], E);
1169 } 1171 }
1170 get single() { 1172 get [core.$single]() {
1171 if (core.identical(this[_previous], this)) { 1173 if (core.identical(this[_previous], this)) {
1172 throw new core.StateError('No such element'); 1174 throw new core.StateError('No such element');
1173 } 1175 }
1174 if (!dart.notNull(core.identical(this[_previous], this[_next]))) { 1176 if (!dart.notNull(core.identical(this[_previous], this[_next]))) {
1175 throw new core.StateError('Too many elements'); 1177 throw new core.StateError('Too many elements');
1176 } 1178 }
1177 return dart.as(this[_next], E); 1179 return dart.as(this[_next], E);
1178 } 1180 }
1179 forEach(action) { 1181 [core.$forEach](action) {
1180 let modificationCount = this[_modificationCount]; 1182 let modificationCount = this[_modificationCount];
1181 let current = this[_next]; 1183 let current = this[_next];
1182 while (!dart.notNull(core.identical(current, this))) { 1184 while (!dart.notNull(core.identical(current, this))) {
1183 action(dart.as(current, E)); 1185 action(dart.as(current, E));
1184 if (modificationCount != this[_modificationCount]) { 1186 if (modificationCount != this[_modificationCount]) {
1185 throw new core.ConcurrentModificationError(this); 1187 throw new core.ConcurrentModificationError(this);
1186 } 1188 }
1187 current = current[_next]; 1189 current = current[_next];
1188 } 1190 }
1189 } 1191 }
1190 get isEmpty() { 1192 get [core.$isEmpty]() {
1191 return this[_length] == 0; 1193 return this[_length] == 0;
1192 } 1194 }
1193 [_insertAfter](entry, newEntry) { 1195 [_insertAfter](entry, newEntry) {
1194 if (newEntry.list != null) { 1196 if (newEntry.list != null) {
1195 throw new core.StateError('LinkedListEntry is already in a LinkedList' ); 1197 throw new core.StateError('LinkedListEntry is already in a LinkedList' );
1196 } 1198 }
1197 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 1199 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
1198 newEntry[_list] = this; 1200 newEntry[_list] = this;
1199 let predecessor = entry; 1201 let predecessor = entry;
1200 let successor = entry[_next]; 1202 let successor = entry[_next];
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1255 class LinkedListEntry extends core.Object { 1257 class LinkedListEntry extends core.Object {
1256 LinkedListEntry() { 1258 LinkedListEntry() {
1257 this[_list] = null; 1259 this[_list] = null;
1258 this[_next] = null; 1260 this[_next] = null;
1259 this[_previous] = null; 1261 this[_previous] = null;
1260 } 1262 }
1261 get list() { 1263 get list() {
1262 return this[_list]; 1264 return this[_list];
1263 } 1265 }
1264 unlink() { 1266 unlink() {
1265 this[_list]._unlink(this); 1267 this[_list][_unlink](this);
1266 } 1268 }
1267 get next() { 1269 get next() {
1268 if (core.identical(this[_next], this[_list])) 1270 if (core.identical(this[_next], this[_list]))
1269 return null; 1271 return null;
1270 let result = dart.as(this[_next], E); 1272 let result = dart.as(this[_next], E);
1271 return result; 1273 return result;
1272 } 1274 }
1273 get previous() { 1275 get previous() {
1274 if (core.identical(this[_previous], this[_list])) 1276 if (core.identical(this[_previous], this[_list]))
1275 return null; 1277 return null;
1276 return dart.as(this[_previous], E); 1278 return dart.as(this[_previous], E);
1277 } 1279 }
1278 insertAfter(entry) { 1280 insertAfter(entry) {
1279 this[_list]._insertAfter(this, entry); 1281 this[_list][_insertAfter](this, entry);
1280 } 1282 }
1281 insertBefore(entry) { 1283 insertBefore(entry) {
1282 this[_list]._insertAfter(this[_previous], entry); 1284 this[_list][_insertAfter](this[_previous], entry);
1283 } 1285 }
1284 } 1286 }
1285 LinkedListEntry[dart.implements] = () => [_LinkedListLink]; 1287 LinkedListEntry[dart.implements] = () => [_LinkedListLink];
1286 return LinkedListEntry; 1288 return LinkedListEntry;
1287 }); 1289 });
1288 let LinkedListEntry = LinkedListEntry$(dart.dynamic); 1290 let LinkedListEntry = LinkedListEntry$(dart.dynamic);
1289 let _filter = Symbol('_filter'); 1291 let _filter = Symbol('_filter');
1290 let ListMixin$ = dart.generic(function(E) { 1292 let ListMixin$ = dart.generic(function(E) {
1291 class ListMixin extends core.Object { 1293 class ListMixin extends core.Object {
1292 get iterator() { 1294 get [core.$iterator]() {
1293 return new (_internal.ListIterator$(E))(this); 1295 return new (_internal.ListIterator$(E))(this);
1294 } 1296 }
1295 elementAt(index) { 1297 [core.$elementAt](index) {
1296 return this.get(index); 1298 return this[core.$get](index);
1297 } 1299 }
1298 forEach(action) { 1300 [core.$forEach](action) {
1299 let length = this.length; 1301 let length = this[core.$length];
1300 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1302 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1301 action(this.get(i)); 1303 action(this[core.$get](i));
1302 if (length != this.length) { 1304 if (length != this[core.$length]) {
1303 throw new core.ConcurrentModificationError(this); 1305 throw new core.ConcurrentModificationError(this);
1304 } 1306 }
1305 } 1307 }
1306 } 1308 }
1307 get isEmpty() { 1309 get [core.$isEmpty]() {
1308 return this.length == 0; 1310 return this.length == 0;
1309 } 1311 }
1310 get isNotEmpty() { 1312 get [core.$isNotEmpty]() {
1311 return !dart.notNull(this.isEmpty); 1313 return !dart.notNull(this.isEmpty);
1312 } 1314 }
1313 get first() { 1315 get [core.$first]() {
1314 if (this.length == 0) 1316 if (this.length == 0)
1315 throw _internal.IterableElementError.noElement(); 1317 throw _internal.IterableElementError.noElement();
1316 return this.get(0); 1318 return this[core.$get](0);
1317 } 1319 }
1318 get last() { 1320 get [core.$last]() {
1319 if (this.length == 0) 1321 if (this.length == 0)
1320 throw _internal.IterableElementError.noElement(); 1322 throw _internal.IterableElementError.noElement();
1321 return this.get(dart.notNull(this.length) - 1); 1323 return this[core.$get](dart.notNull(this.length) - 1);
1322 } 1324 }
1323 get single() { 1325 get [core.$single]() {
1324 if (this.length == 0) 1326 if (this.length == 0)
1325 throw _internal.IterableElementError.noElement(); 1327 throw _internal.IterableElementError.noElement();
1326 if (dart.notNull(this.length) > 1) 1328 if (dart.notNull(this.length) > 1)
1327 throw _internal.IterableElementError.tooMany(); 1329 throw _internal.IterableElementError.tooMany();
1328 return this.get(0); 1330 return this[core.$get](0);
1329 } 1331 }
1330 contains(element) { 1332 [core.$contains](element) {
1331 let length = this.length; 1333 let length = this[core.$length];
1332 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no tNull(i) + 1) { 1334 for (let i = 0; dart.notNull(i) < dart.notNull(this[core.$length]); i = dart.notNull(i) + 1) {
1333 if (dart.equals(this.get(i), element)) 1335 if (dart.equals(this[core.$get](i), element))
1334 return true; 1336 return true;
1335 if (length != this.length) { 1337 if (length != this[core.$length]) {
1336 throw new core.ConcurrentModificationError(this); 1338 throw new core.ConcurrentModificationError(this);
1337 } 1339 }
1338 } 1340 }
1339 return false; 1341 return false;
1340 } 1342 }
1341 every(test) { 1343 [core.$every](test) {
1342 let length = this.length; 1344 let length = this[core.$length];
1343 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1345 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1344 if (!dart.notNull(test(this.get(i)))) 1346 if (!dart.notNull(test(this[core.$get](i))))
1345 return false; 1347 return false;
1346 if (length != this.length) { 1348 if (length != this[core.$length]) {
1347 throw new core.ConcurrentModificationError(this); 1349 throw new core.ConcurrentModificationError(this);
1348 } 1350 }
1349 } 1351 }
1350 return true; 1352 return true;
1351 } 1353 }
1352 any(test) { 1354 [core.$any](test) {
1353 let length = this.length; 1355 let length = this[core.$length];
1354 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1356 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1355 if (test(this.get(i))) 1357 if (test(this[core.$get](i)))
1356 return true; 1358 return true;
1357 if (length != this.length) { 1359 if (length != this[core.$length]) {
1358 throw new core.ConcurrentModificationError(this); 1360 throw new core.ConcurrentModificationError(this);
1359 } 1361 }
1360 } 1362 }
1361 return false; 1363 return false;
1362 } 1364 }
1363 firstWhere(test, opts) { 1365 [core.$firstWhere](test, opts) {
1364 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 1366 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
1365 let length = this.length; 1367 let length = this[core.$length];
1366 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1368 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1367 let element = this.get(i); 1369 let element = this[core.$get](i);
1368 if (test(element)) 1370 if (test(element))
1369 return element; 1371 return element;
1370 if (length != this.length) { 1372 if (length != this[core.$length]) {
1371 throw new core.ConcurrentModificationError(this); 1373 throw new core.ConcurrentModificationError(this);
1372 } 1374 }
1373 } 1375 }
1374 if (orElse != null) 1376 if (orElse != null)
1375 return orElse(); 1377 return orElse();
1376 throw _internal.IterableElementError.noElement(); 1378 throw _internal.IterableElementError.noElement();
1377 } 1379 }
1378 lastWhere(test, opts) { 1380 [core.$lastWhere](test, opts) {
1379 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 1381 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
1380 let length = this.length; 1382 let length = this[core.$length];
1381 for (let i = dart.notNull(length) - 1; dart.notNull(i) >= 0; i = dart.no tNull(i) - 1) { 1383 for (let i = dart.notNull(length) - 1; dart.notNull(i) >= 0; i = dart.no tNull(i) - 1) {
1382 let element = this.get(i); 1384 let element = this[core.$get](i);
1383 if (test(element)) 1385 if (test(element))
1384 return element; 1386 return element;
1385 if (length != this.length) { 1387 if (length != this[core.$length]) {
1386 throw new core.ConcurrentModificationError(this); 1388 throw new core.ConcurrentModificationError(this);
1387 } 1389 }
1388 } 1390 }
1389 if (orElse != null) 1391 if (orElse != null)
1390 return orElse(); 1392 return orElse();
1391 throw _internal.IterableElementError.noElement(); 1393 throw _internal.IterableElementError.noElement();
1392 } 1394 }
1393 singleWhere(test) { 1395 [core.$singleWhere](test) {
1394 let length = this.length; 1396 let length = this[core.$length];
1395 let match = null; 1397 let match = null;
1396 let matchFound = false; 1398 let matchFound = false;
1397 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1399 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1398 let element = this.get(i); 1400 let element = this[core.$get](i);
1399 if (test(element)) { 1401 if (test(element)) {
1400 if (matchFound) { 1402 if (matchFound) {
1401 throw _internal.IterableElementError.tooMany(); 1403 throw _internal.IterableElementError.tooMany();
1402 } 1404 }
1403 matchFound = true; 1405 matchFound = true;
1404 match = element; 1406 match = element;
1405 } 1407 }
1406 if (length != this.length) { 1408 if (length != this[core.$length]) {
1407 throw new core.ConcurrentModificationError(this); 1409 throw new core.ConcurrentModificationError(this);
1408 } 1410 }
1409 } 1411 }
1410 if (matchFound) 1412 if (matchFound)
1411 return match; 1413 return match;
1412 throw _internal.IterableElementError.noElement(); 1414 throw _internal.IterableElementError.noElement();
1413 } 1415 }
1414 join(separator) { 1416 [core.$join](separator) {
1415 if (separator === void 0) 1417 if (separator === void 0)
1416 separator = ""; 1418 separator = "";
1417 if (this.length == 0) 1419 if (this.length == 0)
1418 return ""; 1420 return "";
1419 let buffer = new core.StringBuffer(); 1421 let buffer = new core.StringBuffer();
1420 buffer.writeAll(this, separator); 1422 buffer.writeAll(this, separator);
1421 return buffer.toString(); 1423 return buffer.toString();
1422 } 1424 }
1423 where(test) { 1425 [core.$where](test) {
1424 return new (_internal.WhereIterable$(E))(this, test); 1426 return new (_internal.WhereIterable$(E))(this, test);
1425 } 1427 }
1426 map(f) { 1428 [core.$map](f) {
1427 return new _internal.MappedListIterable(this, f); 1429 return new _internal.MappedListIterable(this, f);
1428 } 1430 }
1429 expand(f) { 1431 [core.$expand](f) {
1430 return new (_internal.ExpandIterable$(E, dynamic))(this, f); 1432 return new (_internal.ExpandIterable$(E, dynamic))(this, f);
1431 } 1433 }
1432 reduce(combine) { 1434 [core.$reduce](combine) {
1433 let length = this.length; 1435 let length = this[core.$length];
1434 if (length == 0) 1436 if (length == 0)
1435 throw _internal.IterableElementError.noElement(); 1437 throw _internal.IterableElementError.noElement();
1436 let value = this.get(0); 1438 let value = this[core.$get](0);
1437 for (let i = 1; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1439 for (let i = 1; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1438 value = combine(value, this.get(i)); 1440 value = combine(value, this[core.$get](i));
1439 if (length != this.length) { 1441 if (length != this[core.$length]) {
1440 throw new core.ConcurrentModificationError(this); 1442 throw new core.ConcurrentModificationError(this);
1441 } 1443 }
1442 } 1444 }
1443 return value; 1445 return value;
1444 } 1446 }
1445 fold(initialValue, combine) { 1447 [core.$fold](initialValue, combine) {
1446 let value = initialValue; 1448 let value = initialValue;
1447 let length = this.length; 1449 let length = this[core.$length];
1448 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1450 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1449 value = dart.dinvokef(combine, value, this.get(i)); 1451 value = dart.dinvokef(combine, value, this[core.$get](i));
1450 if (length != this.length) { 1452 if (length != this[core.$length]) {
1451 throw new core.ConcurrentModificationError(this); 1453 throw new core.ConcurrentModificationError(this);
1452 } 1454 }
1453 } 1455 }
1454 return value; 1456 return value;
1455 } 1457 }
1456 skip(count) { 1458 [core.$skip](count) {
1457 return new (_internal.SubListIterable$(E))(this, count, null); 1459 return new (_internal.SubListIterable$(E))(this, count, null);
1458 } 1460 }
1459 skipWhile(test) { 1461 [core.$skipWhile](test) {
1460 return new (_internal.SkipWhileIterable$(E))(this, test); 1462 return new (_internal.SkipWhileIterable$(E))(this, test);
1461 } 1463 }
1462 take(count) { 1464 [core.$take](count) {
1463 return new (_internal.SubListIterable$(E))(this, 0, count); 1465 return new (_internal.SubListIterable$(E))(this, 0, count);
1464 } 1466 }
1465 takeWhile(test) { 1467 [core.$takeWhile](test) {
1466 return new (_internal.TakeWhileIterable$(E))(this, test); 1468 return new (_internal.TakeWhileIterable$(E))(this, test);
1467 } 1469 }
1468 toList(opts) { 1470 [core.$toList](opts) {
1469 let growable = opts && 'growable' in opts ? opts.growable : true; 1471 let growable = opts && 'growable' in opts ? opts.growable : true;
1470 let result = null; 1472 let result = null;
1471 if (growable) { 1473 if (growable) {
1472 result = ((_) => { 1474 result = ((_) => {
1473 _.length = this.length; 1475 _[core.$length] = this.length;
1474 return _; 1476 return _;
1475 }).bind(this)(new (core.List$(E))()); 1477 }).bind(this)(new (core.List$(E))());
1476 } else { 1478 } else {
1477 result = new (core.List$(E))(this.length); 1479 result = new (core.List$(E))(this.length);
1478 } 1480 }
1479 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no tNull(i) + 1) { 1481 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no tNull(i) + 1) {
1480 result.set(i, this.get(i)); 1482 result[core.$set](i, this[core.$get](i));
1481 } 1483 }
1482 return result; 1484 return result;
1483 } 1485 }
1484 toSet() { 1486 [core.$toSet]() {
1485 let result = new (core.Set$(E))(); 1487 let result = new (core.Set$(E))();
1486 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no tNull(i) + 1) { 1488 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no tNull(i) + 1) {
1487 result.add(this.get(i)); 1489 result.add(this[core.$get](i));
1488 } 1490 }
1489 return result; 1491 return result;
1490 } 1492 }
1491 add(element) { 1493 [core.$add](element) {
1492 this.set(((x$) => this.length = dart.notNull(x$) + 1, x$).bind(this)(thi s.length), element); 1494 this[core.$set](((x$) => this[core.$length] = dart.notNull(x$) + 1, x$). bind(this)(this[core.$length]), element);
1493 } 1495 }
1494 addAll(iterable) { 1496 [core.$addAll](iterable) {
1495 for (let element of iterable) { 1497 for (let element of iterable) {
1496 this.set(((x$) => this.length = dart.notNull(x$) + 1, x$).bind(this)(t his.length), element); 1498 this[core.$set](((x$) => this[core.$length] = dart.notNull(x$) + 1, x$ ).bind(this)(this[core.$length]), element);
1497 } 1499 }
1498 } 1500 }
1499 remove(element) { 1501 [core.$remove](element) {
1500 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no tNull(i) + 1) { 1502 for (let i = 0; dart.notNull(i) < dart.notNull(this[core.$length]); i = dart.notNull(i) + 1) {
1501 if (dart.equals(this.get(i), element)) { 1503 if (dart.equals(this[core.$get](i), element)) {
1502 this.setRange(i, dart.notNull(this.length) - 1, this, dart.notNull(i ) + 1); 1504 this[core.$setRange](i, dart.notNull(this[core.$length]) - 1, this, dart.notNull(i) + 1);
1503 this.length = 1; 1505 this[core.$length] = 1;
1504 return true; 1506 return true;
1505 } 1507 }
1506 } 1508 }
1507 return false; 1509 return false;
1508 } 1510 }
1509 removeWhere(test) { 1511 [core.$removeWhere](test) {
1510 ListMixin[_filter](this, test, false); 1512 ListMixin[_filter](this, test, false);
1511 } 1513 }
1512 retainWhere(test) { 1514 [core.$retainWhere](test) {
1513 ListMixin[_filter](this, test, true); 1515 ListMixin[_filter](this, test, true);
1514 } 1516 }
1515 static [_filter](source, test, retainMatching) { 1517 static [_filter](source, test, retainMatching) {
1516 let retained = new core.List.from([]); 1518 let retained = new core.List.from([]);
1517 let length = source.length; 1519 let length = source[core.$length];
1518 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1520 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1519 let element = source.get(i); 1521 let element = source[core.$get](i);
1520 if (dart.dinvokef(test, element) == retainMatching) { 1522 if (dart.dinvokef(test, element) == retainMatching) {
1521 retained.add(element); 1523 retained[core.$add](element);
1522 } 1524 }
1523 if (length != source.length) { 1525 if (length != source[core.$length]) {
1524 throw new core.ConcurrentModificationError(source); 1526 throw new core.ConcurrentModificationError(source);
1525 } 1527 }
1526 } 1528 }
1527 if (retained.length != source.length) { 1529 if (retained[core.$length] != source[core.$length]) {
1528 source.setRange(0, retained.length, retained); 1530 source[core.$setRange](0, retained[core.$length], retained);
1529 source.length = retained.length; 1531 source[core.$length] = retained[core.$length];
1530 } 1532 }
1531 } 1533 }
1532 clear() { 1534 [core.$clear]() {
1533 this.length = 0; 1535 this[core.$length] = 0;
1534 } 1536 }
1535 removeLast() { 1537 [core.$removeLast]() {
1536 if (this.length == 0) { 1538 if (this.length == 0) {
1537 throw _internal.IterableElementError.noElement(); 1539 throw _internal.IterableElementError.noElement();
1538 } 1540 }
1539 let result = this.get(dart.notNull(this.length) - 1); 1541 let result = this[core.$get](dart.notNull(this.length) - 1);
1540 this.length = dart.notNull(this.length) - 1; 1542 this.length = dart.notNull(this.length) - 1;
1541 return result; 1543 return result;
1542 } 1544 }
1543 sort(compare) { 1545 [core.$sort](compare) {
1544 if (compare === void 0) 1546 if (compare === void 0)
1545 compare = null; 1547 compare = null;
1546 if (compare == null) { 1548 if (compare == null) {
1547 let defaultCompare = core.Comparable.compare; 1549 let defaultCompare = core.Comparable.compare;
1548 compare = defaultCompare; 1550 compare = defaultCompare;
1549 } 1551 }
1550 _internal.Sort.sort(this, compare); 1552 _internal.Sort.sort(this, compare);
1551 } 1553 }
1552 shuffle(random) { 1554 [core.$shuffle](random) {
1553 if (random === void 0) 1555 if (random === void 0)
1554 random = null; 1556 random = null;
1555 if (random == null) 1557 if (random == null)
1556 random = new math.Random(); 1558 random = new math.Random();
1557 let length = this.length; 1559 let length = this[core.$length];
1558 while (dart.notNull(length) > 1) { 1560 while (dart.notNull(length) > 1) {
1559 let pos = random.nextInt(length); 1561 let pos = random.nextInt(length);
1560 length = 1; 1562 length = 1;
1561 let tmp = this.get(length); 1563 let tmp = this[core.$get](length);
1562 this.set(length, this.get(pos)); 1564 this[core.$set](length, this[core.$get](pos));
1563 this.set(pos, tmp); 1565 this[core.$set](pos, tmp);
1564 } 1566 }
1565 } 1567 }
1566 asMap() { 1568 [core.$asMap]() {
1567 return new (_internal.ListMapView$(E))(this); 1569 return new (_internal.ListMapView$(E))(this);
1568 } 1570 }
1569 sublist(start, end) { 1571 [core.$sublist](start, end) {
1570 if (end === void 0) 1572 if (end === void 0)
1571 end = null; 1573 end = null;
1572 let listLength = this.length; 1574 let listLength = this[core.$length];
1573 if (end == null) 1575 if (end == null)
1574 end = listLength; 1576 end = listLength;
1575 core.RangeError.checkValidRange(start, end, listLength); 1577 core.RangeError.checkValidRange(start, end, listLength);
1576 let length = dart.notNull(end) - dart.notNull(start); 1578 let length = dart.notNull(end) - dart.notNull(start);
1577 let result = new (core.List$(E))(); 1579 let result = new (core.List$(E))();
1578 result.length = length; 1580 result[core.$length] = length;
1579 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1581 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1580 result.set(i, this.get(dart.notNull(start) + dart.notNull(i))); 1582 result[core.$set](i, this[core.$get](dart.notNull(start) + dart.notNul l(i)));
1581 } 1583 }
1582 return result; 1584 return result;
1583 } 1585 }
1584 getRange(start, end) { 1586 [core.$getRange](start, end) {
1585 core.RangeError.checkValidRange(start, end, this.length); 1587 core.RangeError.checkValidRange(start, end, this[core.$length]);
1586 return new (_internal.SubListIterable$(E))(this, start, end); 1588 return new (_internal.SubListIterable$(E))(this, start, end);
1587 } 1589 }
1588 removeRange(start, end) { 1590 [core.$removeRange](start, end) {
1589 core.RangeError.checkValidRange(start, end, this.length); 1591 core.RangeError.checkValidRange(start, end, this[core.$length]);
1590 let length = dart.notNull(end) - dart.notNull(start); 1592 let length = dart.notNull(end) - dart.notNull(start);
1591 this.setRange(start, dart.notNull(this.length) - dart.notNull(length), t his, end); 1593 this.setRange(start, dart.notNull(this[core.$length]) - dart.notNull(len gth), this, end);
1592 this.length = length; 1594 this[core.$length] = length;
1593 } 1595 }
1594 fillRange(start, end, fill) { 1596 [core.$fillRange](start, end, fill) {
1595 if (fill === void 0) 1597 if (fill === void 0)
1596 fill = null; 1598 fill = null;
1597 core.RangeError.checkValidRange(start, end, this.length); 1599 core.RangeError.checkValidRange(start, end, this[core.$length]);
1598 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul l(i) + 1) { 1600 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul l(i) + 1) {
1599 this.set(i, fill); 1601 this[core.$set](i, fill);
1600 } 1602 }
1601 } 1603 }
1602 setRange(start, end, iterable, skipCount) { 1604 [core.$setRange](start, end, iterable, skipCount) {
1603 if (skipCount === void 0) 1605 if (skipCount === void 0)
1604 skipCount = 0; 1606 skipCount = 0;
1605 core.RangeError.checkValidRange(start, end, this.length); 1607 core.RangeError.checkValidRange(start, end, this[core.$length]);
1606 let length = dart.notNull(end) - dart.notNull(start); 1608 let length = dart.notNull(end) - dart.notNull(start);
1607 if (length == 0) 1609 if (length == 0)
1608 return; 1610 return;
1609 core.RangeError.checkNotNegative(skipCount, "skipCount"); 1611 core.RangeError.checkNotNegative(skipCount, "skipCount");
1610 let otherList = null; 1612 let otherList = null;
1611 let otherStart = null; 1613 let otherStart = null;
1612 if (dart.is(iterable, core.List)) { 1614 if (dart.is(iterable, core.List)) {
1613 otherList = dart.as(iterable, core.List); 1615 otherList = dart.as(iterable, core.List);
1614 otherStart = skipCount; 1616 otherStart = skipCount;
1615 } else { 1617 } else {
1616 otherList = iterable.skip(skipCount).toList({growable: false}); 1618 otherList = iterable[core.$skip](skipCount)[core.$toList]({growable: f alse});
1617 otherStart = 0; 1619 otherStart = 0;
1618 } 1620 }
1619 if (dart.notNull(otherStart) + dart.notNull(length) > dart.notNull(other List.length)) { 1621 if (dart.notNull(otherStart) + dart.notNull(length) > dart.notNull(other List[core.$length])) {
1620 throw _internal.IterableElementError.tooFew(); 1622 throw _internal.IterableElementError.tooFew();
1621 } 1623 }
1622 if (dart.notNull(otherStart) < dart.notNull(start)) { 1624 if (dart.notNull(otherStart) < dart.notNull(start)) {
1623 for (let i = dart.notNull(length) - 1; dart.notNull(i) >= 0; i = dart. notNull(i) - 1) { 1625 for (let i = dart.notNull(length) - 1; dart.notNull(i) >= 0; i = dart. notNull(i) - 1) {
1624 this.set(dart.notNull(start) + dart.notNull(i), dart.as(otherList.ge t(dart.notNull(otherStart) + dart.notNull(i)), E)); 1626 this[core.$set](dart.notNull(start) + dart.notNull(i), dart.as(other List[core.$get](dart.notNull(otherStart) + dart.notNull(i)), E));
1625 } 1627 }
1626 } else { 1628 } else {
1627 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNu ll(i) + 1) { 1629 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNu ll(i) + 1) {
1628 this.set(dart.notNull(start) + dart.notNull(i), dart.as(otherList.ge t(dart.notNull(otherStart) + dart.notNull(i)), E)); 1630 this[core.$set](dart.notNull(start) + dart.notNull(i), dart.as(other List[core.$get](dart.notNull(otherStart) + dart.notNull(i)), E));
1629 } 1631 }
1630 } 1632 }
1631 } 1633 }
1632 replaceRange(start, end, newContents) { 1634 [core.$replaceRange](start, end, newContents) {
1633 core.RangeError.checkValidRange(start, end, this.length); 1635 core.RangeError.checkValidRange(start, end, this[core.$length]);
1634 if (!dart.is(newContents, _internal.EfficientLength)) { 1636 if (!dart.is(newContents, _internal.EfficientLength)) {
1635 newContents = newContents.toList(); 1637 newContents = newContents[core.$toList]();
1636 } 1638 }
1637 let removeLength = dart.notNull(end) - dart.notNull(start); 1639 let removeLength = dart.notNull(end) - dart.notNull(start);
1638 let insertLength = newContents.length; 1640 let insertLength = newContents[core.$length];
1639 if (dart.notNull(removeLength) >= dart.notNull(insertLength)) { 1641 if (dart.notNull(removeLength) >= dart.notNull(insertLength)) {
1640 let delta = dart.notNull(removeLength) - dart.notNull(insertLength); 1642 let delta = dart.notNull(removeLength) - dart.notNull(insertLength);
1641 let insertEnd = dart.notNull(start) + dart.notNull(insertLength); 1643 let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
1642 let newLength = dart.notNull(this.length) - dart.notNull(delta); 1644 let newLength = dart.notNull(this[core.$length]) - dart.notNull(delta) ;
1643 this.setRange(start, insertEnd, newContents); 1645 this[core.$setRange](start, insertEnd, newContents);
1644 if (delta != 0) { 1646 if (delta != 0) {
1645 this.setRange(insertEnd, newLength, this, end); 1647 this[core.$setRange](insertEnd, newLength, this, end);
1646 this.length = newLength; 1648 this[core.$length] = newLength;
1647 } 1649 }
1648 } else { 1650 } else {
1649 let delta = dart.notNull(insertLength) - dart.notNull(removeLength); 1651 let delta = dart.notNull(insertLength) - dart.notNull(removeLength);
1650 let newLength = dart.notNull(this.length) + dart.notNull(delta); 1652 let newLength = dart.notNull(this[core.$length]) + dart.notNull(delta) ;
1651 let insertEnd = dart.notNull(start) + dart.notNull(insertLength); 1653 let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
1652 this.length = newLength; 1654 this[core.$length] = newLength;
1653 this.setRange(insertEnd, newLength, this, end); 1655 this[core.$setRange](insertEnd, newLength, this, end);
1654 this.setRange(start, insertEnd, newContents); 1656 this[core.$setRange](start, insertEnd, newContents);
1655 } 1657 }
1656 } 1658 }
1657 indexOf(element, startIndex) { 1659 [core.$indexOf](element, startIndex) {
1658 if (startIndex === void 0) 1660 if (startIndex === void 0)
1659 startIndex = 0; 1661 startIndex = 0;
1660 if (dart.notNull(startIndex) >= dart.notNull(this.length)) { 1662 if (dart.notNull(startIndex) >= dart.notNull(this[core.$length])) {
1661 return -1; 1663 return -1;
1662 } 1664 }
1663 if (dart.notNull(startIndex) < 0) { 1665 if (dart.notNull(startIndex) < 0) {
1664 startIndex = 0; 1666 startIndex = 0;
1665 } 1667 }
1666 for (let i = startIndex; dart.notNull(i) < dart.notNull(this.length); i = dart.notNull(i) + 1) { 1668 for (let i = startIndex; dart.notNull(i) < dart.notNull(this[core.$lengt h]); i = dart.notNull(i) + 1) {
1667 if (dart.equals(this.get(i), element)) { 1669 if (dart.equals(this[core.$get](i), element)) {
1668 return i; 1670 return i;
1669 } 1671 }
1670 } 1672 }
1671 return -1; 1673 return -1;
1672 } 1674 }
1673 lastIndexOf(element, startIndex) { 1675 [core.$lastIndexOf](element, startIndex) {
1674 if (startIndex === void 0) 1676 if (startIndex === void 0)
1675 startIndex = null; 1677 startIndex = null;
1676 if (startIndex == null) { 1678 if (startIndex == null) {
1677 startIndex = dart.notNull(this.length) - 1; 1679 startIndex = dart.notNull(this[core.$length]) - 1;
1678 } else { 1680 } else {
1679 if (dart.notNull(startIndex) < 0) { 1681 if (dart.notNull(startIndex) < 0) {
1680 return -1; 1682 return -1;
1681 } 1683 }
1682 if (dart.notNull(startIndex) >= dart.notNull(this.length)) { 1684 if (dart.notNull(startIndex) >= dart.notNull(this[core.$length])) {
1683 startIndex = dart.notNull(this.length) - 1; 1685 startIndex = dart.notNull(this[core.$length]) - 1;
1684 } 1686 }
1685 } 1687 }
1686 for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) { 1688 for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
1687 if (dart.equals(this.get(i), element)) { 1689 if (dart.equals(this[core.$get](i), element)) {
1688 return i; 1690 return i;
1689 } 1691 }
1690 } 1692 }
1691 return -1; 1693 return -1;
1692 } 1694 }
1693 insert(index, element) { 1695 [core.$insert](index, element) {
1694 core.RangeError.checkValueInInterval(index, 0, this.length, "index"); 1696 core.RangeError.checkValueInInterval(index, 0, this.length, "index");
1695 if (index == this.length) { 1697 if (index == this[core.$length]) {
1696 this.add(element); 1698 this.add(element);
1697 return; 1699 return;
1698 } 1700 }
1699 if (!(typeof index == 'number')) 1701 if (!(typeof index == 'number'))
1700 throw new core.ArgumentError(index); 1702 throw new core.ArgumentError(index);
1701 this.length = dart.notNull(this.length) + 1; 1703 this[core.$length] = dart.notNull(this[core.$length]) + 1;
1702 this.setRange(dart.notNull(index) + 1, this.length, this, index); 1704 this.setRange(dart.notNull(index) + 1, this[core.$length], this, index);
1703 this.set(index, element); 1705 this[core.$set](index, element);
1704 } 1706 }
1705 removeAt(index) { 1707 [core.$removeAt](index) {
1706 let result = this.get(index); 1708 let result = this[core.$get](index);
1707 this.setRange(index, dart.notNull(this.length) - 1, this, dart.notNull(i ndex) + 1); 1709 this.setRange(index, dart.notNull(this[core.$length]) - 1, this, dart.no tNull(index) + 1);
1708 this.length = dart.notNull(this.length) - 1; 1710 this.length = dart.notNull(this.length) - 1;
1709 return result; 1711 return result;
1710 } 1712 }
1711 insertAll(index, iterable) { 1713 [core.$insertAll](index, iterable) {
1712 core.RangeError.checkValueInInterval(index, 0, this.length, "index"); 1714 core.RangeError.checkValueInInterval(index, 0, this.length, "index");
1713 if (dart.is(iterable, _internal.EfficientLength)) { 1715 if (dart.is(iterable, _internal.EfficientLength)) {
1714 iterable = iterable.toList(); 1716 iterable = iterable[core.$toList]();
1715 } 1717 }
1716 let insertionLength = iterable.length; 1718 let insertionLength = iterable[core.$length];
1717 this.length = insertionLength; 1719 this[core.$length] = insertionLength;
1718 this.setRange(dart.notNull(index) + dart.notNull(insertionLength), this. length, this, index); 1720 this.setRange(dart.notNull(index) + dart.notNull(insertionLength), this[ core.$length], this, index);
1719 this.setAll(index, iterable); 1721 this.setAll(index, iterable);
1720 } 1722 }
1721 setAll(index, iterable) { 1723 [core.$setAll](index, iterable) {
1722 if (dart.is(iterable, core.List)) { 1724 if (dart.is(iterable, core.List)) {
1723 this.setRange(index, dart.notNull(index) + dart.notNull(iterable.lengt h), iterable); 1725 this.setRange(index, dart.notNull(index) + dart.notNull(iterable[core. $length]), iterable);
1724 } else { 1726 } else {
1725 for (let element of iterable) { 1727 for (let element of iterable) {
1726 this.set(((x$) => index = dart.notNull(x$) + 1, x$)(index), element) ; 1728 this[core.$set](((x$) => index = dart.notNull(x$) + 1, x$)(index), e lement);
1727 } 1729 }
1728 } 1730 }
1729 } 1731 }
1730 get reversed() { 1732 get [core.$reversed]() {
1731 return new (_internal.ReversedListIterable$(E))(this); 1733 return new (_internal.ReversedListIterable$(E))(this);
1732 } 1734 }
1733 toString() { 1735 toString() {
1734 return IterableBase.iterableToFullString(this, '[', ']'); 1736 return IterableBase.iterableToFullString(this, '[', ']');
1735 } 1737 }
1736 } 1738 }
1737 ListMixin[dart.implements] = () => [core.List$(E)]; 1739 ListMixin[dart.implements] = () => [core.List$(E)];
1738 return ListMixin; 1740 return ListMixin;
1739 }); 1741 });
1740 let ListMixin = ListMixin$(dart.dynamic); 1742 let ListMixin = ListMixin$(dart.dynamic);
(...skipping 19 matching lines...) Expand all
1760 } 1762 }
1761 } 1763 }
1762 containsValue(value) { 1764 containsValue(value) {
1763 for (let key of this.keys) { 1765 for (let key of this.keys) {
1764 if (dart.equals(this.get(key), value)) 1766 if (dart.equals(this.get(key), value))
1765 return true; 1767 return true;
1766 } 1768 }
1767 return false; 1769 return false;
1768 } 1770 }
1769 putIfAbsent(key, ifAbsent) { 1771 putIfAbsent(key, ifAbsent) {
1770 if (this.keys.contains(key)) { 1772 if (this.keys[core.$contains](key)) {
1771 return this.get(key); 1773 return this.get(key);
1772 } 1774 }
1773 return this.set(key, ifAbsent()); 1775 return this.set(key, ifAbsent());
1774 } 1776 }
1775 containsKey(key) { 1777 containsKey(key) {
1776 return this.keys.contains(key); 1778 return this.keys[core.$contains](key);
1777 } 1779 }
1778 get length() { 1780 get length() {
1779 return this.keys.length; 1781 return this.keys[core.$length];
1780 } 1782 }
1781 get isEmpty() { 1783 get isEmpty() {
1782 return this.keys.isEmpty; 1784 return this.keys[core.$isEmpty];
1783 } 1785 }
1784 get isNotEmpty() { 1786 get isNotEmpty() {
1785 return this.keys.isNotEmpty; 1787 return this.keys[core.$isNotEmpty];
1786 } 1788 }
1787 get values() { 1789 get values() {
1788 return new (_MapBaseValueIterable$(V))(this); 1790 return new (_MapBaseValueIterable$(V))(this);
1789 } 1791 }
1790 toString() { 1792 toString() {
1791 return Maps.mapToString(this); 1793 return Maps.mapToString(this);
1792 } 1794 }
1793 } 1795 }
1794 MapMixin[dart.implements] = () => [core.Map$(K, V)]; 1796 MapMixin[dart.implements] = () => [core.Map$(K, V)];
1795 return MapMixin; 1797 return MapMixin;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
1829 return UnmodifiableMapBase; 1831 return UnmodifiableMapBase;
1830 }); 1832 });
1831 let UnmodifiableMapBase = UnmodifiableMapBase$(dart.dynamic, dart.dynamic); 1833 let UnmodifiableMapBase = UnmodifiableMapBase$(dart.dynamic, dart.dynamic);
1832 let _map = Symbol('_map'); 1834 let _map = Symbol('_map');
1833 let _MapBaseValueIterable$ = dart.generic(function(V) { 1835 let _MapBaseValueIterable$ = dart.generic(function(V) {
1834 class _MapBaseValueIterable extends IterableBase$(V) { 1836 class _MapBaseValueIterable extends IterableBase$(V) {
1835 _MapBaseValueIterable(map$) { 1837 _MapBaseValueIterable(map$) {
1836 this[_map] = map$; 1838 this[_map] = map$;
1837 super.IterableBase(); 1839 super.IterableBase();
1838 } 1840 }
1839 get length() { 1841 get [core.$length]() {
1840 return this[_map].length; 1842 return this[_map].length;
1841 } 1843 }
1842 get isEmpty() { 1844 get [core.$isEmpty]() {
1843 return this[_map].isEmpty; 1845 return this[_map].isEmpty;
1844 } 1846 }
1845 get isNotEmpty() { 1847 get [core.$isNotEmpty]() {
1846 return this[_map].isNotEmpty; 1848 return this[_map].isNotEmpty;
1847 } 1849 }
1848 get first() { 1850 get [core.$first]() {
1849 return dart.as(this[_map].get(this[_map].keys.first), V); 1851 return dart.as(this[_map].get(this[_map].keys[core.$first]), V);
1850 } 1852 }
1851 get single() { 1853 get [core.$single]() {
1852 return dart.as(this[_map].get(this[_map].keys.single), V); 1854 return dart.as(this[_map].get(this[_map].keys[core.$single]), V);
1853 } 1855 }
1854 get last() { 1856 get [core.$last]() {
1855 return dart.as(this[_map].get(this[_map].keys.last), V); 1857 return dart.as(this[_map].get(this[_map].keys[core.$last]), V);
1856 } 1858 }
1857 get iterator() { 1859 get [core.$iterator]() {
1858 return new (_MapBaseValueIterator$(V))(this[_map]); 1860 return new (_MapBaseValueIterator$(V))(this[_map]);
1859 } 1861 }
1860 } 1862 }
1861 _MapBaseValueIterable[dart.implements] = () => [_internal.EfficientLength]; 1863 _MapBaseValueIterable[dart.implements] = () => [_internal.EfficientLength];
1862 return _MapBaseValueIterable; 1864 return _MapBaseValueIterable;
1863 }); 1865 });
1864 let _MapBaseValueIterable = _MapBaseValueIterable$(dart.dynamic); 1866 let _MapBaseValueIterable = _MapBaseValueIterable$(dart.dynamic);
1865 let _keys = Symbol('_keys'); 1867 let _keys = Symbol('_keys');
1866 let _MapBaseValueIterator$ = dart.generic(function(V) { 1868 let _MapBaseValueIterator$ = dart.generic(function(V) {
1867 class _MapBaseValueIterator extends core.Object { 1869 class _MapBaseValueIterator extends core.Object {
1868 _MapBaseValueIterator(map) { 1870 _MapBaseValueIterator(map) {
1869 this[_map] = map; 1871 this[_map] = map;
1870 this[_keys] = map.keys.iterator; 1872 this[_keys] = map.keys[core.$iterator];
1871 this[_current] = null; 1873 this[_current] = null;
1872 } 1874 }
1873 moveNext() { 1875 moveNext() {
1874 if (this[_keys].moveNext()) { 1876 if (this[_keys].moveNext()) {
1875 this[_current] = dart.as(this[_map].get(this[_keys].current), V); 1877 this[_current] = dart.as(this[_map].get(this[_keys].current), V);
1876 return true; 1878 return true;
1877 } 1879 }
1878 this[_current] = null; 1880 this[_current] = null;
1879 return false; 1881 return false;
1880 } 1882 }
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1941 return MapView; 1943 return MapView;
1942 }); 1944 });
1943 let MapView = MapView$(dart.dynamic, dart.dynamic); 1945 let MapView = MapView$(dart.dynamic, dart.dynamic);
1944 let UnmodifiableMapView$ = dart.generic(function(K, V) { 1946 let UnmodifiableMapView$ = dart.generic(function(K, V) {
1945 class UnmodifiableMapView extends dart.mixin(_UnmodifiableMapMixin$(K, V)) { 1947 class UnmodifiableMapView extends dart.mixin(_UnmodifiableMapMixin$(K, V)) {
1946 } 1948 }
1947 return UnmodifiableMapView; 1949 return UnmodifiableMapView;
1948 }); 1950 });
1949 let UnmodifiableMapView = UnmodifiableMapView$(dart.dynamic, dart.dynamic); 1951 let UnmodifiableMapView = UnmodifiableMapView$(dart.dynamic, dart.dynamic);
1950 let _id = Symbol('_id'); 1952 let _id = Symbol('_id');
1951 let _fillMapWithMappedIterable = Symbol('_fillMapWithMappedIterable');
1952 let _fillMapWithIterables = Symbol('_fillMapWithIterables');
1953 class Maps extends core.Object { 1953 class Maps extends core.Object {
1954 static containsValue(map, value) { 1954 static containsValue(map, value) {
1955 for (let v of map.values) { 1955 for (let v of map.values) {
1956 if (dart.equals(value, v)) { 1956 if (dart.equals(value, v)) {
1957 return true; 1957 return true;
1958 } 1958 }
1959 } 1959 }
1960 return false; 1960 return false;
1961 } 1961 }
1962 static containsKey(map, key) { 1962 static containsKey(map, key) {
1963 for (let k of map.keys) { 1963 for (let k of map.keys) {
1964 if (dart.equals(key, k)) { 1964 if (dart.equals(key, k)) {
1965 return true; 1965 return true;
1966 } 1966 }
1967 } 1967 }
1968 return false; 1968 return false;
1969 } 1969 }
1970 static putIfAbsent(map, key, ifAbsent) { 1970 static putIfAbsent(map, key, ifAbsent) {
1971 if (map.containsKey(key)) { 1971 if (map.containsKey(key)) {
1972 return map.get(key); 1972 return map.get(key);
1973 } 1973 }
1974 let v = ifAbsent(); 1974 let v = ifAbsent();
1975 map.set(key, v); 1975 map.set(key, v);
1976 return v; 1976 return v;
1977 } 1977 }
1978 static clear(map) { 1978 static clear(map) {
1979 for (let k of map.keys.toList()) { 1979 for (let k of map.keys[core.$toList]()) {
1980 map.remove(k); 1980 map.remove(k);
1981 } 1981 }
1982 } 1982 }
1983 static forEach(map, f) { 1983 static forEach(map, f) {
1984 for (let k of map.keys) { 1984 for (let k of map.keys) {
1985 dart.dinvokef(f, k, map.get(k)); 1985 dart.dinvokef(f, k, map.get(k));
1986 } 1986 }
1987 } 1987 }
1988 static getValues(map) { 1988 static getValues(map) {
1989 return map.keys.map((key) => map.get(key)); 1989 return map.keys[core.$map]((key) => map.get(key));
1990 } 1990 }
1991 static length(map) { 1991 static length(map) {
1992 return map.keys.length; 1992 return map.keys[core.$length];
1993 } 1993 }
1994 static isEmpty(map) { 1994 static isEmpty(map) {
1995 return map.keys.isEmpty; 1995 return map.keys[core.$isEmpty];
1996 } 1996 }
1997 static isNotEmpty(map) { 1997 static isNotEmpty(map) {
1998 return map.keys.isNotEmpty; 1998 return map.keys[core.$isNotEmpty];
1999 } 1999 }
2000 static mapToString(m) { 2000 static mapToString(m) {
2001 if (IterableBase._isToStringVisiting(m)) { 2001 if (IterableBase[_isToStringVisiting](m)) {
2002 return '{...}'; 2002 return '{...}';
2003 } 2003 }
2004 let result = new core.StringBuffer(); 2004 let result = new core.StringBuffer();
2005 try { 2005 try {
2006 IterableBase[_toStringVisiting].add(m); 2006 IterableBase[_toStringVisiting][core.$add](m);
2007 result.write('{'); 2007 result.write('{');
2008 let first = true; 2008 let first = true;
2009 m.forEach(((k, v) => { 2009 m.forEach(((k, v) => {
2010 if (!dart.notNull(first)) { 2010 if (!dart.notNull(first)) {
2011 result.write(', '); 2011 result.write(', ');
2012 } 2012 }
2013 first = false; 2013 first = false;
2014 result.write(k); 2014 result.write(k);
2015 result.write(': '); 2015 result.write(': ');
2016 result.write(v); 2016 result.write(v);
2017 }).bind(this)); 2017 }).bind(this));
2018 result.write('}'); 2018 result.write('}');
2019 } finally { 2019 } finally {
2020 dart.assert(core.identical(IterableBase[_toStringVisiting].last, m)); 2020 dart.assert(core.identical(IterableBase[_toStringVisiting][core.$last], m));
2021 IterableBase[_toStringVisiting].removeLast(); 2021 IterableBase[_toStringVisiting][core.$removeLast]();
2022 } 2022 }
2023 return result.toString(); 2023 return result.toString();
2024 } 2024 }
2025 static [_id](x) { 2025 static [_id](x) {
2026 return x; 2026 return x;
2027 } 2027 }
2028 static [_fillMapWithMappedIterable](map, iterable, key, value) { 2028 static [_fillMapWithMappedIterable](map, iterable, key, value) {
2029 if (key == null) 2029 if (key == null)
2030 key = Maps[_id]; 2030 key = Maps[_id];
2031 if (value == null) 2031 if (value == null)
2032 value = Maps[_id]; 2032 value = Maps[_id];
2033 for (let element of iterable) { 2033 for (let element of iterable) {
2034 map.set(dart.dinvokef(key, element), dart.dinvokef(value, element)); 2034 map.set(dart.dinvokef(key, element), dart.dinvokef(value, element));
2035 } 2035 }
2036 } 2036 }
2037 static [_fillMapWithIterables](map, keys, values) { 2037 static [_fillMapWithIterables](map, keys, values) {
2038 let keyIterator = keys.iterator; 2038 let keyIterator = keys[core.$iterator];
2039 let valueIterator = values.iterator; 2039 let valueIterator = values[core.$iterator];
2040 let hasNextKey = keyIterator.moveNext(); 2040 let hasNextKey = keyIterator.moveNext();
2041 let hasNextValue = valueIterator.moveNext(); 2041 let hasNextValue = valueIterator.moveNext();
2042 while (dart.notNull(hasNextKey) && dart.notNull(hasNextValue)) { 2042 while (dart.notNull(hasNextKey) && dart.notNull(hasNextValue)) {
2043 map.set(keyIterator.current, valueIterator.current); 2043 map.set(keyIterator.current, valueIterator.current);
2044 hasNextKey = keyIterator.moveNext(); 2044 hasNextKey = keyIterator.moveNext();
2045 hasNextValue = valueIterator.moveNext(); 2045 hasNextValue = valueIterator.moveNext();
2046 } 2046 }
2047 if (dart.notNull(hasNextKey) || dart.notNull(hasNextValue)) { 2047 if (dart.notNull(hasNextKey) || dart.notNull(hasNextValue)) {
2048 throw new core.ArgumentError("Iterables do not have same length."); 2048 throw new core.ArgumentError("Iterables do not have same length.");
2049 } 2049 }
(...skipping 23 matching lines...) Expand all
2073 this[_previous] = null; 2073 this[_previous] = null;
2074 this[_next] = null; 2074 this[_next] = null;
2075 } 2075 }
2076 [_link](previous, next) { 2076 [_link](previous, next) {
2077 this[_next] = next; 2077 this[_next] = next;
2078 this[_previous] = previous; 2078 this[_previous] = previous;
2079 previous[_next] = this; 2079 previous[_next] = this;
2080 next[_previous] = this; 2080 next[_previous] = this;
2081 } 2081 }
2082 append(e) { 2082 append(e) {
2083 new (DoubleLinkedQueueEntry$(E))(e)._link(this, this[_next]); 2083 new (DoubleLinkedQueueEntry$(E))(e)[_link](this, this[_next]);
2084 } 2084 }
2085 prepend(e) { 2085 prepend(e) {
2086 new (DoubleLinkedQueueEntry$(E))(e)._link(this[_previous], this); 2086 new (DoubleLinkedQueueEntry$(E))(e)[_link](this[_previous], this);
2087 } 2087 }
2088 remove() { 2088 remove() {
2089 this[_previous][_next] = this[_next]; 2089 this[_previous][_next] = this[_next];
2090 this[_next][_previous] = this[_previous]; 2090 this[_next][_previous] = this[_previous];
2091 this[_next] = null; 2091 this[_next] = null;
2092 this[_previous] = null; 2092 this[_previous] = null;
2093 return this[_element]; 2093 return this[_element];
2094 } 2094 }
2095 [_asNonSentinelEntry]() { 2095 [_asNonSentinelEntry]() {
2096 return this; 2096 return this;
2097 } 2097 }
2098 previousEntry() { 2098 previousEntry() {
2099 return this[_previous]._asNonSentinelEntry(); 2099 return this[_previous][_asNonSentinelEntry]();
2100 } 2100 }
2101 nextEntry() { 2101 nextEntry() {
2102 return this[_next]._asNonSentinelEntry(); 2102 return this[_next][_asNonSentinelEntry]();
2103 } 2103 }
2104 get element() { 2104 get element() {
2105 return this[_element]; 2105 return this[_element];
2106 } 2106 }
2107 set element(e) { 2107 set element(e) {
2108 this[_element] = e; 2108 this[_element] = e;
2109 } 2109 }
2110 } 2110 }
2111 return DoubleLinkedQueueEntry; 2111 return DoubleLinkedQueueEntry;
2112 }); 2112 });
(...skipping 30 matching lines...) Expand all
2143 super.IterableBase(); 2143 super.IterableBase();
2144 this[_sentinel] = new (_DoubleLinkedQueueEntrySentinel$(E))(); 2144 this[_sentinel] = new (_DoubleLinkedQueueEntrySentinel$(E))();
2145 } 2145 }
2146 from(elements) { 2146 from(elements) {
2147 let list = dart.as(new DoubleLinkedQueue(), Queue$(E)); 2147 let list = dart.as(new DoubleLinkedQueue(), Queue$(E));
2148 for (let e of dart.as(elements, core.Iterable$(E))) { 2148 for (let e of dart.as(elements, core.Iterable$(E))) {
2149 list.addLast(e); 2149 list.addLast(e);
2150 } 2150 }
2151 return dart.as(list, DoubleLinkedQueue$(E)); 2151 return dart.as(list, DoubleLinkedQueue$(E));
2152 } 2152 }
2153 get length() { 2153 get [core.$length]() {
2154 return this[_elementCount]; 2154 return this[_elementCount];
2155 } 2155 }
2156 addLast(value) { 2156 addLast(value) {
2157 this[_sentinel].prepend(value); 2157 this[_sentinel].prepend(value);
2158 this[_elementCount] = dart.notNull(this[_elementCount]) + 1; 2158 this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
2159 } 2159 }
2160 addFirst(value) { 2160 addFirst(value) {
2161 this[_sentinel].append(value); 2161 this[_sentinel].append(value);
2162 this[_elementCount] = dart.notNull(this[_elementCount]) + 1; 2162 this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
2163 } 2163 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
2203 } 2203 }
2204 entry = next; 2204 entry = next;
2205 } 2205 }
2206 } 2206 }
2207 removeWhere(test) { 2207 removeWhere(test) {
2208 this[_filter](test, true); 2208 this[_filter](test, true);
2209 } 2209 }
2210 retainWhere(test) { 2210 retainWhere(test) {
2211 this[_filter](test, false); 2211 this[_filter](test, false);
2212 } 2212 }
2213 get first() { 2213 get [core.$first]() {
2214 return this[_sentinel][_next].element; 2214 return this[_sentinel][_next].element;
2215 } 2215 }
2216 get last() { 2216 get [core.$last]() {
2217 return this[_sentinel][_previous].element; 2217 return this[_sentinel][_previous].element;
2218 } 2218 }
2219 get single() { 2219 get [core.$single]() {
2220 if (core.identical(this[_sentinel][_next], this[_sentinel][_previous])) { 2220 if (core.identical(this[_sentinel][_next], this[_sentinel][_previous])) {
2221 return this[_sentinel][_next].element; 2221 return this[_sentinel][_next].element;
2222 } 2222 }
2223 throw _internal.IterableElementError.tooMany(); 2223 throw _internal.IterableElementError.tooMany();
2224 } 2224 }
2225 lastEntry() { 2225 lastEntry() {
2226 return this[_sentinel].previousEntry(); 2226 return this[_sentinel].previousEntry();
2227 } 2227 }
2228 firstEntry() { 2228 firstEntry() {
2229 return this[_sentinel].nextEntry(); 2229 return this[_sentinel].nextEntry();
2230 } 2230 }
2231 get isEmpty() { 2231 get [core.$isEmpty]() {
2232 return core.identical(this[_sentinel][_next], this[_sentinel]); 2232 return core.identical(this[_sentinel][_next], this[_sentinel]);
2233 } 2233 }
2234 clear() { 2234 clear() {
2235 this[_sentinel][_next] = this[_sentinel]; 2235 this[_sentinel][_next] = this[_sentinel];
2236 this[_sentinel][_previous] = this[_sentinel]; 2236 this[_sentinel][_previous] = this[_sentinel];
2237 this[_elementCount] = 0; 2237 this[_elementCount] = 0;
2238 } 2238 }
2239 forEachEntry(f) { 2239 forEachEntry(f) {
2240 let entry = this[_sentinel][_next]; 2240 let entry = this[_sentinel][_next];
2241 while (!dart.notNull(core.identical(entry, this[_sentinel]))) { 2241 while (!dart.notNull(core.identical(entry, this[_sentinel]))) {
2242 let nextEntry = entry[_next]; 2242 let nextEntry = entry[_next];
2243 f(entry); 2243 f(entry);
2244 entry = nextEntry; 2244 entry = nextEntry;
2245 } 2245 }
2246 } 2246 }
2247 get iterator() { 2247 get [core.$iterator]() {
2248 return new (_DoubleLinkedQueueIterator$(E))(this[_sentinel]); 2248 return new (_DoubleLinkedQueueIterator$(E))(this[_sentinel]);
2249 } 2249 }
2250 toString() { 2250 toString() {
2251 return IterableBase.iterableToFullString(this, '{', '}'); 2251 return IterableBase.iterableToFullString(this, '{', '}');
2252 } 2252 }
2253 } 2253 }
2254 DoubleLinkedQueue[dart.implements] = () => [Queue$(E)]; 2254 DoubleLinkedQueue[dart.implements] = () => [Queue$(E)];
2255 dart.defineNamedConstructor(DoubleLinkedQueue, 'from'); 2255 dart.defineNamedConstructor(DoubleLinkedQueue, 'from');
2256 return DoubleLinkedQueue; 2256 return DoubleLinkedQueue;
2257 }); 2257 });
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
2308 if (initialCapacity == null || dart.notNull(initialCapacity) < dart.notN ull(ListQueue[_INITIAL_CAPACITY])) { 2308 if (initialCapacity == null || dart.notNull(initialCapacity) < dart.notN ull(ListQueue[_INITIAL_CAPACITY])) {
2309 initialCapacity = ListQueue[_INITIAL_CAPACITY]; 2309 initialCapacity = ListQueue[_INITIAL_CAPACITY];
2310 } else if (!dart.notNull(ListQueue[_isPowerOf2](initialCapacity))) { 2310 } else if (!dart.notNull(ListQueue[_isPowerOf2](initialCapacity))) {
2311 initialCapacity = ListQueue[_nextPowerOf2](initialCapacity); 2311 initialCapacity = ListQueue[_nextPowerOf2](initialCapacity);
2312 } 2312 }
2313 dart.assert(ListQueue[_isPowerOf2](initialCapacity)); 2313 dart.assert(ListQueue[_isPowerOf2](initialCapacity));
2314 this[_table] = new (core.List$(E))(initialCapacity); 2314 this[_table] = new (core.List$(E))(initialCapacity);
2315 } 2315 }
2316 from(elements) { 2316 from(elements) {
2317 if (dart.is(elements, core.List)) { 2317 if (dart.is(elements, core.List)) {
2318 let length = elements.length; 2318 let length = elements[core.$length];
2319 let queue = dart.as(new ListQueue(dart.notNull(length) + 1), ListQueue $(E)); 2319 let queue = dart.as(new ListQueue(dart.notNull(length) + 1), ListQueue $(E));
2320 dart.assert(dart.notNull(queue[_table].length) > dart.notNull(length)) ; 2320 dart.assert(dart.notNull(queue[_table][core.$length]) > dart.notNull(l ength));
2321 let sourceList = elements; 2321 let sourceList = elements;
2322 queue[_table].setRange(0, length, dart.as(sourceList, core.Iterable$(E )), 0); 2322 queue[_table][core.$setRange](0, length, dart.as(sourceList, core.Iter able$(E)), 0);
2323 queue[_tail] = length; 2323 queue[_tail] = length;
2324 return queue; 2324 return queue;
2325 } else { 2325 } else {
2326 let capacity = ListQueue[_INITIAL_CAPACITY]; 2326 let capacity = ListQueue[_INITIAL_CAPACITY];
2327 if (dart.is(elements, _internal.EfficientLength)) { 2327 if (dart.is(elements, _internal.EfficientLength)) {
2328 capacity = elements.length; 2328 capacity = elements[core.$length];
2329 } 2329 }
2330 let result = new (ListQueue$(E))(capacity); 2330 let result = new (ListQueue$(E))(capacity);
2331 for (let element of dart.as(elements, core.Iterable$(E))) { 2331 for (let element of dart.as(elements, core.Iterable$(E))) {
2332 result.addLast(element); 2332 result.addLast(element);
2333 } 2333 }
2334 return result; 2334 return result;
2335 } 2335 }
2336 } 2336 }
2337 get iterator() { 2337 get [core.$iterator]() {
2338 return new (_ListQueueIterator$(E))(this); 2338 return new (_ListQueueIterator$(E))(this);
2339 } 2339 }
2340 forEach(action) { 2340 [core.$forEach](action) {
2341 let modificationCount = this[_modificationCount]; 2341 let modificationCount = this[_modificationCount];
2342 for (let i = this[_head]; i != this[_tail]; i = dart.notNull(i) + 1 & da rt.notNull(this[_table].length) - 1) { 2342 for (let i = this[_head]; i != this[_tail]; i = dart.notNull(i) + 1 & da rt.notNull(this[_table][core.$length]) - 1) {
2343 action(this[_table].get(i)); 2343 action(this[_table][core.$get](i));
2344 this[_checkModification](modificationCount); 2344 this[_checkModification](modificationCount);
2345 } 2345 }
2346 } 2346 }
2347 get isEmpty() { 2347 get [core.$isEmpty]() {
2348 return this[_head] == this[_tail]; 2348 return this[_head] == this[_tail];
2349 } 2349 }
2350 get length() { 2350 get [core.$length]() {
2351 return dart.notNull(this[_tail]) - dart.notNull(this[_head]) & dart.notN ull(this[_table].length) - 1; 2351 return dart.notNull(this[_tail]) - dart.notNull(this[_head]) & dart.notN ull(this[_table][core.$length]) - 1;
2352 } 2352 }
2353 get first() { 2353 get [core.$first]() {
2354 if (this[_head] == this[_tail]) 2354 if (this[_head] == this[_tail])
2355 throw _internal.IterableElementError.noElement(); 2355 throw _internal.IterableElementError.noElement();
2356 return this[_table].get(this[_head]); 2356 return this[_table][core.$get](this[_head]);
2357 } 2357 }
2358 get last() { 2358 get [core.$last]() {
2359 if (this[_head] == this[_tail]) 2359 if (this[_head] == this[_tail])
2360 throw _internal.IterableElementError.noElement(); 2360 throw _internal.IterableElementError.noElement();
2361 return this[_table].get(dart.notNull(this[_tail]) - 1 & dart.notNull(thi s[_table].length) - 1); 2361 return this[_table][core.$get](dart.notNull(this[_tail]) - 1 & dart.notN ull(this[_table][core.$length]) - 1);
2362 } 2362 }
2363 get single() { 2363 get [core.$single]() {
2364 if (this[_head] == this[_tail]) 2364 if (this[_head] == this[_tail])
2365 throw _internal.IterableElementError.noElement(); 2365 throw _internal.IterableElementError.noElement();
2366 if (dart.notNull(this.length) > 1) 2366 if (dart.notNull(this.length) > 1)
2367 throw _internal.IterableElementError.tooMany(); 2367 throw _internal.IterableElementError.tooMany();
2368 return this[_table].get(this[_head]); 2368 return this[_table][core.$get](this[_head]);
2369 } 2369 }
2370 elementAt(index) { 2370 [core.$elementAt](index) {
2371 core.RangeError.checkValidIndex(index, this); 2371 core.RangeError.checkValidIndex(index, this);
2372 return this[_table].get(dart.notNull(this[_head]) + dart.notNull(index) & dart.notNull(this[_table].length) - 1); 2372 return this[_table][core.$get](dart.notNull(this[_head]) + dart.notNull( index) & dart.notNull(this[_table][core.$length]) - 1);
2373 } 2373 }
2374 toList(opts) { 2374 [core.$toList](opts) {
2375 let growable = opts && 'growable' in opts ? opts.growable : true; 2375 let growable = opts && 'growable' in opts ? opts.growable : true;
2376 let list = null; 2376 let list = null;
2377 if (growable) { 2377 if (growable) {
2378 list = ((_) => { 2378 list = ((_) => {
2379 _.length = this.length; 2379 _[core.$length] = this.length;
2380 return _; 2380 return _;
2381 }).bind(this)(new (core.List$(E))()); 2381 }).bind(this)(new (core.List$(E))());
2382 } else { 2382 } else {
2383 list = new (core.List$(E))(this.length); 2383 list = new (core.List$(E))(this.length);
2384 } 2384 }
2385 this[_writeToList](list); 2385 this[_writeToList](list);
2386 return list; 2386 return list;
2387 } 2387 }
2388 add(element) { 2388 add(element) {
2389 this[_add](element); 2389 this[_add](element);
2390 } 2390 }
2391 addAll(elements) { 2391 addAll(elements) {
2392 if (dart.is(elements, core.List)) { 2392 if (dart.is(elements, core.List)) {
2393 let list = dart.as(elements, core.List); 2393 let list = dart.as(elements, core.List);
2394 let addCount = list.length; 2394 let addCount = list[core.$length];
2395 let length = this.length; 2395 let length = this[core.$length];
2396 if (dart.notNull(length) + dart.notNull(addCount) >= dart.notNull(this [_table].length)) { 2396 if (dart.notNull(length) + dart.notNull(addCount) >= dart.notNull(this [_table][core.$length])) {
2397 this[_preGrow](dart.notNull(length) + dart.notNull(addCount)); 2397 this[_preGrow](dart.notNull(length) + dart.notNull(addCount));
2398 this[_table].setRange(length, dart.notNull(length) + dart.notNull(ad dCount), dart.as(list, core.Iterable$(E)), 0); 2398 this[_table][core.$setRange](length, dart.notNull(length) + dart.not Null(addCount), dart.as(list, core.Iterable$(E)), 0);
2399 this[_tail] = addCount; 2399 this[_tail] = addCount;
2400 } else { 2400 } else {
2401 let endSpace = dart.notNull(this[_table].length) - dart.notNull(this [_tail]); 2401 let endSpace = dart.notNull(this[_table][core.$length]) - dart.notNu ll(this[_tail]);
2402 if (dart.notNull(addCount) < dart.notNull(endSpace)) { 2402 if (dart.notNull(addCount) < dart.notNull(endSpace)) {
2403 this[_table].setRange(this[_tail], dart.notNull(this[_tail]) + dar t.notNull(addCount), dart.as(list, core.Iterable$(E)), 0); 2403 this[_table][core.$setRange](this[_tail], dart.notNull(this[_tail] ) + dart.notNull(addCount), dart.as(list, core.Iterable$(E)), 0);
2404 this[_tail] = addCount; 2404 this[_tail] = addCount;
2405 } else { 2405 } else {
2406 let preSpace = dart.notNull(addCount) - dart.notNull(endSpace); 2406 let preSpace = dart.notNull(addCount) - dart.notNull(endSpace);
2407 this[_table].setRange(this[_tail], dart.notNull(this[_tail]) + dar t.notNull(endSpace), dart.as(list, core.Iterable$(E)), 0); 2407 this[_table][core.$setRange](this[_tail], dart.notNull(this[_tail] ) + dart.notNull(endSpace), dart.as(list, core.Iterable$(E)), 0);
2408 this[_table].setRange(0, preSpace, dart.as(list, core.Iterable$(E) ), endSpace); 2408 this[_table][core.$setRange](0, preSpace, dart.as(list, core.Itera ble$(E)), endSpace);
2409 this[_tail] = preSpace; 2409 this[_tail] = preSpace;
2410 } 2410 }
2411 } 2411 }
2412 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 2412 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
2413 } else { 2413 } else {
2414 for (let element of elements) 2414 for (let element of elements)
2415 this[_add](element); 2415 this[_add](element);
2416 } 2416 }
2417 } 2417 }
2418 remove(object) { 2418 remove(object) {
2419 for (let i = this[_head]; i != this[_tail]; i = dart.notNull(i) + 1 & da rt.notNull(this[_table].length) - 1) { 2419 for (let i = this[_head]; i != this[_tail]; i = dart.notNull(i) + 1 & da rt.notNull(this[_table][core.$length]) - 1) {
2420 let element = this[_table].get(i); 2420 let element = this[_table][core.$get](i);
2421 if (dart.equals(element, object)) { 2421 if (dart.equals(element, object)) {
2422 this[_remove](i); 2422 this[_remove](i);
2423 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 2423 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
2424 return true; 2424 return true;
2425 } 2425 }
2426 } 2426 }
2427 return false; 2427 return false;
2428 } 2428 }
2429 [_filterWhere](test, removeMatching) { 2429 [_filterWhere](test, removeMatching) {
2430 let index = this[_head]; 2430 let index = this[_head];
2431 let modificationCount = this[_modificationCount]; 2431 let modificationCount = this[_modificationCount];
2432 let i = this[_head]; 2432 let i = this[_head];
2433 while (i != this[_tail]) { 2433 while (i != this[_tail]) {
2434 let element = this[_table].get(i); 2434 let element = this[_table][core.$get](i);
2435 let remove = core.identical(removeMatching, test(element)); 2435 let remove = core.identical(removeMatching, test(element));
2436 this[_checkModification](modificationCount); 2436 this[_checkModification](modificationCount);
2437 if (remove) { 2437 if (remove) {
2438 i = this[_remove](i); 2438 i = this[_remove](i);
2439 modificationCount = this[_modificationCount] = dart.notNull(this[_mo dificationCount]) + 1; 2439 modificationCount = this[_modificationCount] = dart.notNull(this[_mo dificationCount]) + 1;
2440 } else { 2440 } else {
2441 i = dart.notNull(i) + 1 & dart.notNull(this[_table].length) - 1; 2441 i = dart.notNull(i) + 1 & dart.notNull(this[_table][core.$length]) - 1;
2442 } 2442 }
2443 } 2443 }
2444 } 2444 }
2445 removeWhere(test) { 2445 removeWhere(test) {
2446 this[_filterWhere](test, true); 2446 this[_filterWhere](test, true);
2447 } 2447 }
2448 retainWhere(test) { 2448 retainWhere(test) {
2449 this[_filterWhere](test, false); 2449 this[_filterWhere](test, false);
2450 } 2450 }
2451 clear() { 2451 clear() {
2452 if (this[_head] != this[_tail]) { 2452 if (this[_head] != this[_tail]) {
2453 for (let i = this[_head]; i != this[_tail]; i = dart.notNull(i) + 1 & dart.notNull(this[_table].length) - 1) { 2453 for (let i = this[_head]; i != this[_tail]; i = dart.notNull(i) + 1 & dart.notNull(this[_table][core.$length]) - 1) {
2454 this[_table].set(i, null); 2454 this[_table][core.$set](i, null);
2455 } 2455 }
2456 this[_head] = this[_tail] = 0; 2456 this[_head] = this[_tail] = 0;
2457 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 2457 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
2458 } 2458 }
2459 } 2459 }
2460 toString() { 2460 toString() {
2461 return IterableBase.iterableToFullString(this, "{", "}"); 2461 return IterableBase.iterableToFullString(this, "{", "}");
2462 } 2462 }
2463 addLast(element) { 2463 addLast(element) {
2464 this[_add](element); 2464 this[_add](element);
2465 } 2465 }
2466 addFirst(element) { 2466 addFirst(element) {
2467 this[_head] = dart.notNull(this[_head]) - 1 & dart.notNull(this[_table]. length) - 1; 2467 this[_head] = dart.notNull(this[_head]) - 1 & dart.notNull(this[_table][ core.$length]) - 1;
2468 this[_table].set(this[_head], element); 2468 this[_table][core.$set](this[_head], element);
2469 if (this[_head] == this[_tail]) 2469 if (this[_head] == this[_tail])
2470 this[_grow](); 2470 this[_grow]();
2471 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 2471 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
2472 } 2472 }
2473 removeFirst() { 2473 removeFirst() {
2474 if (this[_head] == this[_tail]) 2474 if (this[_head] == this[_tail])
2475 throw _internal.IterableElementError.noElement(); 2475 throw _internal.IterableElementError.noElement();
2476 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 2476 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
2477 let result = this[_table].get(this[_head]); 2477 let result = this[_table][core.$get](this[_head]);
2478 this[_table].set(this[_head], null); 2478 this[_table][core.$set](this[_head], null);
2479 this[_head] = dart.notNull(this[_head]) + 1 & dart.notNull(this[_table]. length) - 1; 2479 this[_head] = dart.notNull(this[_head]) + 1 & dart.notNull(this[_table][ core.$length]) - 1;
2480 return result; 2480 return result;
2481 } 2481 }
2482 removeLast() { 2482 removeLast() {
2483 if (this[_head] == this[_tail]) 2483 if (this[_head] == this[_tail])
2484 throw _internal.IterableElementError.noElement(); 2484 throw _internal.IterableElementError.noElement();
2485 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 2485 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
2486 this[_tail] = dart.notNull(this[_tail]) - 1 & dart.notNull(this[_table]. length) - 1; 2486 this[_tail] = dart.notNull(this[_tail]) - 1 & dart.notNull(this[_table][ core.$length]) - 1;
2487 let result = this[_table].get(this[_tail]); 2487 let result = this[_table][core.$get](this[_tail]);
2488 this[_table].set(this[_tail], null); 2488 this[_table][core.$set](this[_tail], null);
2489 return result; 2489 return result;
2490 } 2490 }
2491 static [_isPowerOf2](number) { 2491 static [_isPowerOf2](number) {
2492 return (dart.notNull(number) & dart.notNull(number) - 1) == 0; 2492 return (dart.notNull(number) & dart.notNull(number) - 1) == 0;
2493 } 2493 }
2494 static [_nextPowerOf2](number) { 2494 static [_nextPowerOf2](number) {
2495 dart.assert(dart.notNull(number) > 0); 2495 dart.assert(dart.notNull(number) > 0);
2496 number = (dart.notNull(number) << 1) - 1; 2496 number = (dart.notNull(number) << 1) - 1;
2497 for (;;) { 2497 for (;;) {
2498 let nextNumber = dart.notNull(number) & dart.notNull(number) - 1; 2498 let nextNumber = dart.notNull(number) & dart.notNull(number) - 1;
2499 if (nextNumber == 0) 2499 if (nextNumber == 0)
2500 return number; 2500 return number;
2501 number = nextNumber; 2501 number = nextNumber;
2502 } 2502 }
2503 } 2503 }
2504 [_checkModification](expectedModificationCount) { 2504 [_checkModification](expectedModificationCount) {
2505 if (expectedModificationCount != this[_modificationCount]) { 2505 if (expectedModificationCount != this[_modificationCount]) {
2506 throw new core.ConcurrentModificationError(this); 2506 throw new core.ConcurrentModificationError(this);
2507 } 2507 }
2508 } 2508 }
2509 [_add](element) { 2509 [_add](element) {
2510 this[_table].set(this[_tail], element); 2510 this[_table][core.$set](this[_tail], element);
2511 this[_tail] = dart.notNull(this[_tail]) + 1 & dart.notNull(this[_table]. length) - 1; 2511 this[_tail] = dart.notNull(this[_tail]) + 1 & dart.notNull(this[_table][ core.$length]) - 1;
2512 if (this[_head] == this[_tail]) 2512 if (this[_head] == this[_tail])
2513 this[_grow](); 2513 this[_grow]();
2514 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 2514 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
2515 } 2515 }
2516 [_remove](offset) { 2516 [_remove](offset) {
2517 let mask = dart.notNull(this[_table].length) - 1; 2517 let mask = dart.notNull(this[_table][core.$length]) - 1;
2518 let startDistance = dart.notNull(offset) - dart.notNull(this[_head]) & d art.notNull(mask); 2518 let startDistance = dart.notNull(offset) - dart.notNull(this[_head]) & d art.notNull(mask);
2519 let endDistance = dart.notNull(this[_tail]) - dart.notNull(offset) & dar t.notNull(mask); 2519 let endDistance = dart.notNull(this[_tail]) - dart.notNull(offset) & dar t.notNull(mask);
2520 if (dart.notNull(startDistance) < dart.notNull(endDistance)) { 2520 if (dart.notNull(startDistance) < dart.notNull(endDistance)) {
2521 let i = offset; 2521 let i = offset;
2522 while (i != this[_head]) { 2522 while (i != this[_head]) {
2523 let prevOffset = dart.notNull(i) - 1 & dart.notNull(mask); 2523 let prevOffset = dart.notNull(i) - 1 & dart.notNull(mask);
2524 this[_table].set(i, this[_table].get(prevOffset)); 2524 this[_table][core.$set](i, this[_table][core.$get](prevOffset));
2525 i = prevOffset; 2525 i = prevOffset;
2526 } 2526 }
2527 this[_table].set(this[_head], null); 2527 this[_table][core.$set](this[_head], null);
2528 this[_head] = dart.notNull(this[_head]) + 1 & dart.notNull(mask); 2528 this[_head] = dart.notNull(this[_head]) + 1 & dart.notNull(mask);
2529 return dart.notNull(offset) + 1 & dart.notNull(mask); 2529 return dart.notNull(offset) + 1 & dart.notNull(mask);
2530 } else { 2530 } else {
2531 this[_tail] = dart.notNull(this[_tail]) - 1 & dart.notNull(mask); 2531 this[_tail] = dart.notNull(this[_tail]) - 1 & dart.notNull(mask);
2532 let i = offset; 2532 let i = offset;
2533 while (i != this[_tail]) { 2533 while (i != this[_tail]) {
2534 let nextOffset = dart.notNull(i) + 1 & dart.notNull(mask); 2534 let nextOffset = dart.notNull(i) + 1 & dart.notNull(mask);
2535 this[_table].set(i, this[_table].get(nextOffset)); 2535 this[_table][core.$set](i, this[_table][core.$get](nextOffset));
2536 i = nextOffset; 2536 i = nextOffset;
2537 } 2537 }
2538 this[_table].set(this[_tail], null); 2538 this[_table][core.$set](this[_tail], null);
2539 return offset; 2539 return offset;
2540 } 2540 }
2541 } 2541 }
2542 [_grow]() { 2542 [_grow]() {
2543 let newTable = new (core.List$(E))(dart.notNull(this[_table].length) * 2 ); 2543 let newTable = new (core.List$(E))(dart.notNull(this[_table][core.$lengt h]) * 2);
2544 let split = dart.notNull(this[_table].length) - dart.notNull(this[_head] ); 2544 let split = dart.notNull(this[_table][core.$length]) - dart.notNull(this [_head]);
2545 newTable.setRange(0, split, this[_table], this[_head]); 2545 newTable[core.$setRange](0, split, this[_table], this[_head]);
2546 newTable.setRange(split, dart.notNull(split) + dart.notNull(this[_head]) , this[_table], 0); 2546 newTable[core.$setRange](split, dart.notNull(split) + dart.notNull(this[ _head]), this[_table], 0);
2547 this[_head] = 0; 2547 this[_head] = 0;
2548 this[_tail] = this[_table].length; 2548 this[_tail] = this[_table][core.$length];
2549 this[_table] = newTable; 2549 this[_table] = newTable;
2550 } 2550 }
2551 [_writeToList](target) { 2551 [_writeToList](target) {
2552 dart.assert(dart.notNull(target.length) >= dart.notNull(this.length)); 2552 dart.assert(dart.notNull(target[core.$length]) >= dart.notNull(this.leng th));
2553 if (dart.notNull(this[_head]) <= dart.notNull(this[_tail])) { 2553 if (dart.notNull(this[_head]) <= dart.notNull(this[_tail])) {
2554 let length = dart.notNull(this[_tail]) - dart.notNull(this[_head]); 2554 let length = dart.notNull(this[_tail]) - dart.notNull(this[_head]);
2555 target.setRange(0, length, this[_table], this[_head]); 2555 target[core.$setRange](0, length, this[_table], this[_head]);
2556 return length; 2556 return length;
2557 } else { 2557 } else {
2558 let firstPartSize = dart.notNull(this[_table].length) - dart.notNull(t his[_head]); 2558 let firstPartSize = dart.notNull(this[_table][core.$length]) - dart.no tNull(this[_head]);
2559 target.setRange(0, firstPartSize, this[_table], this[_head]); 2559 target[core.$setRange](0, firstPartSize, this[_table], this[_head]);
2560 target.setRange(firstPartSize, dart.notNull(firstPartSize) + dart.notN ull(this[_tail]), this[_table], 0); 2560 target[core.$setRange](firstPartSize, dart.notNull(firstPartSize) + da rt.notNull(this[_tail]), this[_table], 0);
2561 return dart.notNull(this[_tail]) + dart.notNull(firstPartSize); 2561 return dart.notNull(this[_tail]) + dart.notNull(firstPartSize);
2562 } 2562 }
2563 } 2563 }
2564 [_preGrow](newElementCount) { 2564 [_preGrow](newElementCount) {
2565 dart.assert(dart.notNull(newElementCount) >= dart.notNull(this.length)); 2565 dart.assert(dart.notNull(newElementCount) >= dart.notNull(this.length));
2566 newElementCount = dart.notNull(newElementCount) >> 1; 2566 newElementCount = dart.notNull(newElementCount) >> 1;
2567 let newCapacity = ListQueue[_nextPowerOf2](newElementCount); 2567 let newCapacity = ListQueue[_nextPowerOf2](newElementCount);
2568 let newTable = new (core.List$(E))(newCapacity); 2568 let newTable = new (core.List$(E))(newCapacity);
2569 this[_tail] = this[_writeToList](newTable); 2569 this[_tail] = this[_writeToList](newTable);
2570 this[_table] = newTable; 2570 this[_table] = newTable;
(...skipping 15 matching lines...) Expand all
2586 this[_queue] = queue; 2586 this[_queue] = queue;
2587 this[_end] = queue[_tail]; 2587 this[_end] = queue[_tail];
2588 this[_modificationCount] = queue[_modificationCount]; 2588 this[_modificationCount] = queue[_modificationCount];
2589 this[_position] = queue[_head]; 2589 this[_position] = queue[_head];
2590 this[_current] = null; 2590 this[_current] = null;
2591 } 2591 }
2592 get current() { 2592 get current() {
2593 return this[_current]; 2593 return this[_current];
2594 } 2594 }
2595 moveNext() { 2595 moveNext() {
2596 this[_queue]._checkModification(this[_modificationCount]); 2596 this[_queue][_checkModification](this[_modificationCount]);
2597 if (this[_position] == this[_end]) { 2597 if (this[_position] == this[_end]) {
2598 this[_current] = null; 2598 this[_current] = null;
2599 return false; 2599 return false;
2600 } 2600 }
2601 this[_current] = dart.as(this[_queue][_table].get(this[_position]), E); 2601 this[_current] = dart.as(this[_queue][_table][core.$get](this[_position] ), E);
2602 this[_position] = dart.notNull(this[_position]) + 1 & dart.notNull(this[ _queue][_table].length) - 1; 2602 this[_position] = dart.notNull(this[_position]) + 1 & dart.notNull(this[ _queue][_table][core.$length]) - 1;
2603 return true; 2603 return true;
2604 } 2604 }
2605 } 2605 }
2606 _ListQueueIterator[dart.implements] = () => [core.Iterator$(E)]; 2606 _ListQueueIterator[dart.implements] = () => [core.Iterator$(E)];
2607 return _ListQueueIterator; 2607 return _ListQueueIterator;
2608 }); 2608 });
2609 let _ListQueueIterator = _ListQueueIterator$(dart.dynamic); 2609 let _ListQueueIterator = _ListQueueIterator$(dart.dynamic);
2610 let _SplayTreeNode$ = dart.generic(function(K) { 2610 let _SplayTreeNode$ = dart.generic(function(K) {
2611 class _SplayTreeNode extends core.Object { 2611 class _SplayTreeNode extends core.Object {
2612 _SplayTreeNode(key) { 2612 _SplayTreeNode(key) {
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
2812 result.set(k, dart.as(v, V)); 2812 result.set(k, dart.as(v, V));
2813 }); 2813 });
2814 return result; 2814 return result;
2815 } 2815 }
2816 fromIterable(iterable, opts) { 2816 fromIterable(iterable, opts) {
2817 let key = opts && 'key' in opts ? opts.key : null; 2817 let key = opts && 'key' in opts ? opts.key : null;
2818 let value = opts && 'value' in opts ? opts.value : null; 2818 let value = opts && 'value' in opts ? opts.value : null;
2819 let compare = opts && 'compare' in opts ? opts.compare : null; 2819 let compare = opts && 'compare' in opts ? opts.compare : null;
2820 let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null; 2820 let isValidKey = opts && 'isValidKey' in opts ? opts.isValidKey : null;
2821 let map = new (SplayTreeMap$(K, V))(compare, isValidKey); 2821 let map = new (SplayTreeMap$(K, V))(compare, isValidKey);
2822 Maps._fillMapWithMappedIterable(map, iterable, key, value); 2822 Maps[_fillMapWithMappedIterable](map, iterable, key, value);
2823 return map; 2823 return map;
2824 } 2824 }
2825 fromIterables(keys, values, compare, isValidKey) { 2825 fromIterables(keys, values, compare, isValidKey) {
2826 if (compare === void 0) 2826 if (compare === void 0)
2827 compare = null; 2827 compare = null;
2828 if (isValidKey === void 0) 2828 if (isValidKey === void 0)
2829 isValidKey = null; 2829 isValidKey = null;
2830 let map = new (SplayTreeMap$(K, V))(compare, isValidKey); 2830 let map = new (SplayTreeMap$(K, V))(compare, isValidKey);
2831 Maps._fillMapWithIterables(map, keys, values); 2831 Maps[_fillMapWithIterables](map, keys, values);
2832 return map; 2832 return map;
2833 } 2833 }
2834 [_compare](key1, key2) { 2834 [_compare](key1, key2) {
2835 return this[_comparator](key1, key2); 2835 return this[_comparator](key1, key2);
2836 } 2836 }
2837 [_internal$]() { 2837 [_internal$]() {
2838 this[_comparator] = null; 2838 this[_comparator] = null;
2839 this[_validKey] = null; 2839 this[_validKey] = null;
2840 super._SplayTree(); 2840 super._SplayTree();
2841 } 2841 }
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
3016 this[_findLeftMostDescendent](tree[_root]); 3016 this[_findLeftMostDescendent](tree[_root]);
3017 } 3017 }
3018 startAt(tree, startKey) { 3018 startAt(tree, startKey) {
3019 this[_workList] = new core.List$(_SplayTreeNode).from([]); 3019 this[_workList] = new core.List$(_SplayTreeNode).from([]);
3020 this[_tree] = tree; 3020 this[_tree] = tree;
3021 this[_modificationCount] = tree[_modificationCount]; 3021 this[_modificationCount] = tree[_modificationCount];
3022 this[_splayCount] = null; 3022 this[_splayCount] = null;
3023 this[_currentNode] = null; 3023 this[_currentNode] = null;
3024 if (tree[_root] == null) 3024 if (tree[_root] == null)
3025 return; 3025 return;
3026 let compare = tree._splay(startKey); 3026 let compare = tree[_splay](startKey);
3027 this[_splayCount] = tree[_splayCount]; 3027 this[_splayCount] = tree[_splayCount];
3028 if (dart.notNull(compare) < 0) { 3028 if (dart.notNull(compare) < 0) {
3029 this[_findLeftMostDescendent](tree[_root].right); 3029 this[_findLeftMostDescendent](tree[_root].right);
3030 } else { 3030 } else {
3031 this[_workList].add(tree[_root]); 3031 this[_workList][core.$add](tree[_root]);
3032 } 3032 }
3033 } 3033 }
3034 get current() { 3034 get current() {
3035 if (this[_currentNode] == null) 3035 if (this[_currentNode] == null)
3036 return null; 3036 return null;
3037 return this[_getValue](this[_currentNode]); 3037 return this[_getValue](this[_currentNode]);
3038 } 3038 }
3039 [_findLeftMostDescendent](node) { 3039 [_findLeftMostDescendent](node) {
3040 while (node != null) { 3040 while (node != null) {
3041 this[_workList].add(node); 3041 this[_workList][core.$add](node);
3042 node = node.left; 3042 node = node.left;
3043 } 3043 }
3044 } 3044 }
3045 [_rebuildWorkList](currentNode) { 3045 [_rebuildWorkList](currentNode) {
3046 dart.assert(!dart.notNull(this[_workList].isEmpty)); 3046 dart.assert(!dart.notNull(this[_workList][core.$isEmpty]));
3047 this[_workList].clear(); 3047 this[_workList][core.$clear]();
3048 if (currentNode == null) { 3048 if (currentNode == null) {
3049 this[_findLeftMostDescendent](this[_tree][_root]); 3049 this[_findLeftMostDescendent](this[_tree][_root]);
3050 } else { 3050 } else {
3051 this[_tree]._splay(currentNode.key); 3051 this[_tree][_splay](currentNode.key);
3052 this[_findLeftMostDescendent](this[_tree][_root].right); 3052 this[_findLeftMostDescendent](this[_tree][_root].right);
3053 dart.assert(!dart.notNull(this[_workList].isEmpty)); 3053 dart.assert(!dart.notNull(this[_workList][core.$isEmpty]));
3054 } 3054 }
3055 } 3055 }
3056 moveNext() { 3056 moveNext() {
3057 if (this[_modificationCount] != this[_tree][_modificationCount]) { 3057 if (this[_modificationCount] != this[_tree][_modificationCount]) {
3058 throw new core.ConcurrentModificationError(this[_tree]); 3058 throw new core.ConcurrentModificationError(this[_tree]);
3059 } 3059 }
3060 if (this[_workList].isEmpty) { 3060 if (this[_workList][core.$isEmpty]) {
3061 this[_currentNode] = null; 3061 this[_currentNode] = null;
3062 return false; 3062 return false;
3063 } 3063 }
3064 if (this[_tree][_splayCount] != this[_splayCount] && dart.notNull(this[_ currentNode] != null)) { 3064 if (this[_tree][_splayCount] != this[_splayCount] && dart.notNull(this[_ currentNode] != null)) {
3065 this[_rebuildWorkList](this[_currentNode]); 3065 this[_rebuildWorkList](this[_currentNode]);
3066 } 3066 }
3067 this[_currentNode] = this[_workList].removeLast(); 3067 this[_currentNode] = this[_workList][core.$removeLast]();
3068 this[_findLeftMostDescendent](this[_currentNode].right); 3068 this[_findLeftMostDescendent](this[_currentNode].right);
3069 return true; 3069 return true;
3070 } 3070 }
3071 } 3071 }
3072 _SplayTreeIterator[dart.implements] = () => [core.Iterator$(T)]; 3072 _SplayTreeIterator[dart.implements] = () => [core.Iterator$(T)];
3073 dart.defineNamedConstructor(_SplayTreeIterator, 'startAt'); 3073 dart.defineNamedConstructor(_SplayTreeIterator, 'startAt');
3074 return _SplayTreeIterator; 3074 return _SplayTreeIterator;
3075 }); 3075 });
3076 let _SplayTreeIterator = _SplayTreeIterator$(dart.dynamic); 3076 let _SplayTreeIterator = _SplayTreeIterator$(dart.dynamic);
3077 let _copyNode = Symbol('_copyNode');
3077 let _SplayTreeKeyIterable$ = dart.generic(function(K) { 3078 let _SplayTreeKeyIterable$ = dart.generic(function(K) {
3078 class _SplayTreeKeyIterable extends IterableBase$(K) { 3079 class _SplayTreeKeyIterable extends IterableBase$(K) {
3079 _SplayTreeKeyIterable(tree$) { 3080 _SplayTreeKeyIterable(tree$) {
3080 this[_tree] = tree$; 3081 this[_tree] = tree$;
3081 super.IterableBase(); 3082 super.IterableBase();
3082 } 3083 }
3083 get length() { 3084 get [core.$length]() {
3084 return this[_tree][_count]; 3085 return this[_tree][_count];
3085 } 3086 }
3086 get isEmpty() { 3087 get [core.$isEmpty]() {
3087 return this[_tree][_count] == 0; 3088 return this[_tree][_count] == 0;
3088 } 3089 }
3089 get iterator() { 3090 get [core.$iterator]() {
3090 return new (_SplayTreeKeyIterator$(K))(this[_tree]); 3091 return new (_SplayTreeKeyIterator$(K))(this[_tree]);
3091 } 3092 }
3092 toSet() { 3093 [core.$toSet]() {
3093 let setOrMap = this[_tree]; 3094 let setOrMap = this[_tree];
3094 let set = new (SplayTreeSet$(K))(dart.as(setOrMap[_comparator], dart.thr ow_("Unimplemented type (K, K) → int")), dart.as(setOrMap[_validKey], dart.throw _("Unimplemented type (dynamic) → bool"))); 3095 let set = new (SplayTreeSet$(K))(dart.as(setOrMap[_comparator], dart.thr ow_("Unimplemented type (K, K) → int")), dart.as(setOrMap[_validKey], dart.throw _("Unimplemented type (dynamic) → bool")));
3095 set[_count] = this[_tree][_count]; 3096 set[_count] = this[_tree][_count];
3096 set[_root] = set._copyNode(this[_tree][_root]); 3097 set[_root] = set[_copyNode](this[_tree][_root]);
3097 return set; 3098 return set;
3098 } 3099 }
3099 } 3100 }
3100 _SplayTreeKeyIterable[dart.implements] = () => [_internal.EfficientLength]; 3101 _SplayTreeKeyIterable[dart.implements] = () => [_internal.EfficientLength];
3101 return _SplayTreeKeyIterable; 3102 return _SplayTreeKeyIterable;
3102 }); 3103 });
3103 let _SplayTreeKeyIterable = _SplayTreeKeyIterable$(dart.dynamic); 3104 let _SplayTreeKeyIterable = _SplayTreeKeyIterable$(dart.dynamic);
3104 let _SplayTreeValueIterable$ = dart.generic(function(K, V) { 3105 let _SplayTreeValueIterable$ = dart.generic(function(K, V) {
3105 class _SplayTreeValueIterable extends IterableBase$(V) { 3106 class _SplayTreeValueIterable extends IterableBase$(V) {
3106 _SplayTreeValueIterable(map$) { 3107 _SplayTreeValueIterable(map$) {
3107 this[_map] = map$; 3108 this[_map] = map$;
3108 super.IterableBase(); 3109 super.IterableBase();
3109 } 3110 }
3110 get length() { 3111 get [core.$length]() {
3111 return this[_map][_count]; 3112 return this[_map][_count];
3112 } 3113 }
3113 get isEmpty() { 3114 get [core.$isEmpty]() {
3114 return this[_map][_count] == 0; 3115 return this[_map][_count] == 0;
3115 } 3116 }
3116 get iterator() { 3117 get [core.$iterator]() {
3117 return new (_SplayTreeValueIterator$(K, V))(this[_map]); 3118 return new (_SplayTreeValueIterator$(K, V))(this[_map]);
3118 } 3119 }
3119 } 3120 }
3120 _SplayTreeValueIterable[dart.implements] = () => [_internal.EfficientLength] ; 3121 _SplayTreeValueIterable[dart.implements] = () => [_internal.EfficientLength] ;
3121 return _SplayTreeValueIterable; 3122 return _SplayTreeValueIterable;
3122 }); 3123 });
3123 let _SplayTreeValueIterable = _SplayTreeValueIterable$(dart.dynamic, dart.dyna mic); 3124 let _SplayTreeValueIterable = _SplayTreeValueIterable$(dart.dynamic, dart.dyna mic);
3124 let _SplayTreeKeyIterator$ = dart.generic(function(K) { 3125 let _SplayTreeKeyIterator$ = dart.generic(function(K) {
3125 class _SplayTreeKeyIterator extends _SplayTreeIterator$(K) { 3126 class _SplayTreeKeyIterator extends _SplayTreeIterator$(K) {
3126 _SplayTreeKeyIterator(map) { 3127 _SplayTreeKeyIterator(map) {
(...skipping 28 matching lines...) Expand all
3155 } 3156 }
3156 [_getValue](node) { 3157 [_getValue](node) {
3157 return dart.as(node, _SplayTreeNode$(K)); 3158 return dart.as(node, _SplayTreeNode$(K));
3158 } 3159 }
3159 } 3160 }
3160 dart.defineNamedConstructor(_SplayTreeNodeIterator, 'startAt'); 3161 dart.defineNamedConstructor(_SplayTreeNodeIterator, 'startAt');
3161 return _SplayTreeNodeIterator; 3162 return _SplayTreeNodeIterator;
3162 }); 3163 });
3163 let _SplayTreeNodeIterator = _SplayTreeNodeIterator$(dart.dynamic); 3164 let _SplayTreeNodeIterator = _SplayTreeNodeIterator$(dart.dynamic);
3164 let _clone = Symbol('_clone'); 3165 let _clone = Symbol('_clone');
3165 let _copyNode = Symbol('_copyNode');
3166 let SplayTreeSet$ = dart.generic(function(E) { 3166 let SplayTreeSet$ = dart.generic(function(E) {
3167 class SplayTreeSet extends dart.mixin(_SplayTree$(E), IterableMixin$(E), Set Mixin$(E)) { 3167 class SplayTreeSet extends dart.mixin(_SplayTree$(E), IterableMixin$(E), Set Mixin$(E)) {
3168 SplayTreeSet(compare, isValidKey) { 3168 SplayTreeSet(compare, isValidKey) {
3169 if (compare === void 0) 3169 if (compare === void 0)
3170 compare = null; 3170 compare = null;
3171 if (isValidKey === void 0) 3171 if (isValidKey === void 0)
3172 isValidKey = null; 3172 isValidKey = null;
3173 this[_comparator] = dart.as(compare == null ? core.Comparable.compare : compare, core.Comparator); 3173 this[_comparator] = dart.as(compare == null ? core.Comparable.compare : compare, core.Comparator);
3174 this[_validKey] = dart.as(isValidKey != null ? isValidKey : (v) => dart. is(v, E), _Predicate); 3174 this[_validKey] = dart.as(isValidKey != null ? isValidKey : (v) => dart. is(v, E), _Predicate);
3175 super._SplayTree(); 3175 super._SplayTree();
3176 } 3176 }
3177 from(elements, compare, isValidKey) { 3177 from(elements, compare, isValidKey) {
3178 if (compare === void 0) 3178 if (compare === void 0)
3179 compare = null; 3179 compare = null;
3180 if (isValidKey === void 0) 3180 if (isValidKey === void 0)
3181 isValidKey = null; 3181 isValidKey = null;
3182 let result = new (SplayTreeSet$(E))(compare, isValidKey); 3182 let result = new (SplayTreeSet$(E))(compare, isValidKey);
3183 for (let element of dart.as(elements, core.Iterable$(E))) { 3183 for (let element of dart.as(elements, core.Iterable$(E))) {
3184 result.add(element); 3184 result.add(element);
3185 } 3185 }
3186 return result; 3186 return result;
3187 } 3187 }
3188 [_compare](e1, e2) { 3188 [_compare](e1, e2) {
3189 return dart.dinvokef(this[_comparator], e1, e2); 3189 return dart.dinvokef(this[_comparator], e1, e2);
3190 } 3190 }
3191 get iterator() { 3191 get [core.$iterator]() {
3192 return new (_SplayTreeKeyIterator$(E))(this); 3192 return new (_SplayTreeKeyIterator$(E))(this);
3193 } 3193 }
3194 get length() { 3194 get [core.$length]() {
3195 return this[_count]; 3195 return this[_count];
3196 } 3196 }
3197 get isEmpty() { 3197 get [core.$isEmpty]() {
3198 return this[_root] == null; 3198 return this[_root] == null;
3199 } 3199 }
3200 get isNotEmpty() { 3200 get [core.$isNotEmpty]() {
3201 return this[_root] != null; 3201 return this[_root] != null;
3202 } 3202 }
3203 get first() { 3203 get [core.$first]() {
3204 if (this[_count] == 0) 3204 if (this[_count] == 0)
3205 throw _internal.IterableElementError.noElement(); 3205 throw _internal.IterableElementError.noElement();
3206 return dart.as(this[_first].key, E); 3206 return dart.as(this[_first].key, E);
3207 } 3207 }
3208 get last() { 3208 get [core.$last]() {
3209 if (this[_count] == 0) 3209 if (this[_count] == 0)
3210 throw _internal.IterableElementError.noElement(); 3210 throw _internal.IterableElementError.noElement();
3211 return dart.as(this[_last].key, E); 3211 return dart.as(this[_last].key, E);
3212 } 3212 }
3213 get single() { 3213 get [core.$single]() {
3214 if (this[_count] == 0) 3214 if (this[_count] == 0)
3215 throw _internal.IterableElementError.noElement(); 3215 throw _internal.IterableElementError.noElement();
3216 if (dart.notNull(this[_count]) > 1) 3216 if (dart.notNull(this[_count]) > 1)
3217 throw _internal.IterableElementError.tooMany(); 3217 throw _internal.IterableElementError.tooMany();
3218 return this[_root].key; 3218 return this[_root].key;
3219 } 3219 }
3220 contains(object) { 3220 [core.$contains](object) {
3221 return dart.notNull(dart.dinvokef(this[_validKey], object)) && this[_spl ay](dart.as(object, E)) == 0; 3221 return dart.notNull(dart.dinvokef(this[_validKey], object)) && this[_spl ay](dart.as(object, E)) == 0;
3222 } 3222 }
3223 add(element) { 3223 add(element) {
3224 let compare = this[_splay](element); 3224 let compare = this[_splay](element);
3225 if (compare == 0) 3225 if (compare == 0)
3226 return false; 3226 return false;
3227 this[_addNewRoot](dart.as(new _SplayTreeNode(element), _SplayTreeNode$(E )), compare); 3227 this[_addNewRoot](dart.as(new _SplayTreeNode(element), _SplayTreeNode$(E )), compare);
3228 return true; 3228 return true;
3229 } 3229 }
3230 remove(object) { 3230 remove(object) {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
3266 if (!dart.notNull(dart.dinvokef(this[_validKey], object))) 3266 if (!dart.notNull(dart.dinvokef(this[_validKey], object)))
3267 return null; 3267 return null;
3268 let comp = this[_splay](dart.as(object, E)); 3268 let comp = this[_splay](dart.as(object, E));
3269 if (comp != 0) 3269 if (comp != 0)
3270 return null; 3270 return null;
3271 return this[_root].key; 3271 return this[_root].key;
3272 } 3272 }
3273 intersection(other) { 3273 intersection(other) {
3274 let result = new (SplayTreeSet$(E))(dart.closureWrap(this[_comparator], "(E, E) → int"), this[_validKey]); 3274 let result = new (SplayTreeSet$(E))(dart.closureWrap(this[_comparator], "(E, E) → int"), this[_validKey]);
3275 for (let element of this) { 3275 for (let element of this) {
3276 if (other.contains(element)) 3276 if (other[core.$contains](element))
3277 result.add(element); 3277 result.add(element);
3278 } 3278 }
3279 return result; 3279 return result;
3280 } 3280 }
3281 difference(other) { 3281 difference(other) {
3282 let result = new (SplayTreeSet$(E))(dart.closureWrap(this[_comparator], "(E, E) → int"), this[_validKey]); 3282 let result = new (SplayTreeSet$(E))(dart.closureWrap(this[_comparator], "(E, E) → int"), this[_validKey]);
3283 for (let element of this) { 3283 for (let element of this) {
3284 if (!dart.notNull(other.contains(element))) 3284 if (!dart.notNull(other[core.$contains](element)))
3285 result.add(element); 3285 result.add(element);
3286 } 3286 }
3287 return result; 3287 return result;
3288 } 3288 }
3289 union(other) { 3289 union(other) {
3290 return ((_) => { 3290 return ((_) => {
3291 _.addAll(other); 3291 _.addAll(other);
3292 return _; 3292 return _;
3293 }).bind(this)(this[_clone]()); 3293 }).bind(this)(this[_clone]());
3294 } 3294 }
3295 [_clone]() { 3295 [_clone]() {
3296 let set = new (SplayTreeSet$(E))(dart.closureWrap(this[_comparator], "(E , E) → int"), this[_validKey]); 3296 let set = new (SplayTreeSet$(E))(dart.closureWrap(this[_comparator], "(E , E) → int"), this[_validKey]);
3297 set[_count] = this[_count]; 3297 set[_count] = this[_count];
3298 set[_root] = this[_copyNode](this[_root]); 3298 set[_root] = this[_copyNode](this[_root]);
3299 return set; 3299 return set;
3300 } 3300 }
3301 [_copyNode](node) { 3301 [_copyNode](node) {
3302 if (node == null) 3302 if (node == null)
3303 return null; 3303 return null;
3304 return ((_) => { 3304 return ((_) => {
3305 _.left = this[_copyNode](node.left); 3305 _.left = this[_copyNode](node.left);
3306 _.right = this[_copyNode](node.right); 3306 _.right = this[_copyNode](node.right);
3307 return _; 3307 return _;
3308 }).bind(this)(new (_SplayTreeNode$(E))(node.key)); 3308 }).bind(this)(new (_SplayTreeNode$(E))(node.key));
3309 } 3309 }
3310 clear() { 3310 clear() {
3311 this[_clear](); 3311 this[_clear]();
3312 } 3312 }
3313 toSet() { 3313 [core.$toSet]() {
3314 return this[_clone](); 3314 return this[_clone]();
3315 } 3315 }
3316 toString() { 3316 toString() {
3317 return IterableBase.iterableToFullString(this, '{', '}'); 3317 return IterableBase.iterableToFullString(this, '{', '}');
3318 } 3318 }
3319 } 3319 }
3320 dart.defineNamedConstructor(SplayTreeSet, 'from'); 3320 dart.defineNamedConstructor(SplayTreeSet, 'from');
3321 return SplayTreeSet; 3321 return SplayTreeSet;
3322 }); 3322 });
3323 let SplayTreeSet = SplayTreeSet$(dart.dynamic); 3323 let SplayTreeSet = SplayTreeSet$(dart.dynamic);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
3376 } 3376 }
3377 } 3377 }
3378 [_containsKey](key) { 3378 [_containsKey](key) {
3379 let rest = this[_rest]; 3379 let rest = this[_rest];
3380 if (rest == null) 3380 if (rest == null)
3381 return false; 3381 return false;
3382 let bucket = this[_getBucket](rest, key); 3382 let bucket = this[_getBucket](rest, key);
3383 return dart.notNull(this[_findBucketIndex](bucket, key)) >= 0; 3383 return dart.notNull(this[_findBucketIndex](bucket, key)) >= 0;
3384 } 3384 }
3385 containsValue(value) { 3385 containsValue(value) {
3386 return this[_computeKeys]().any(((each) => dart.equals(this.get(each), v alue)).bind(this)); 3386 return this[_computeKeys]()[core.$any](((each) => dart.equals(this.get(e ach), value)).bind(this));
3387 } 3387 }
3388 addAll(other) { 3388 addAll(other) {
3389 other.forEach(((key, value) => { 3389 other.forEach(((key, value) => {
3390 this.set(key, value); 3390 this.set(key, value);
3391 }).bind(this)); 3391 }).bind(this));
3392 } 3392 }
3393 get(key) { 3393 get(key) {
3394 if (_HashMap[_isStringKey](key)) { 3394 if (_HashMap[_isStringKey](key)) {
3395 let strings = this[_strings]; 3395 let strings = this[_strings];
3396 return dart.as(strings == null ? null : _HashMap[_getTableEntry](strin gs, key), V); 3396 return dart.as(strings == null ? null : _HashMap[_getTableEntry](strin gs, key), V);
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
3474 return dart.as(bucket.splice(index, 2)[1], V); 3474 return dart.as(bucket.splice(index, 2)[1], V);
3475 } 3475 }
3476 clear() { 3476 clear() {
3477 if (dart.notNull(this[_length]) > 0) { 3477 if (dart.notNull(this[_length]) > 0) {
3478 this[_strings] = this[_nums] = this[_rest] = this[_keys] = null; 3478 this[_strings] = this[_nums] = this[_rest] = this[_keys] = null;
3479 this[_length] = 0; 3479 this[_length] = 0;
3480 } 3480 }
3481 } 3481 }
3482 forEach(action) { 3482 forEach(action) {
3483 let keys = this[_computeKeys](); 3483 let keys = this[_computeKeys]();
3484 for (let i = 0, length = keys.length; dart.notNull(i) < dart.notNull(len gth); i = dart.notNull(i) + 1) { 3484 for (let i = 0, length = keys[core.$length]; dart.notNull(i) < dart.notN ull(length); i = dart.notNull(i) + 1) {
3485 let key = keys[i]; 3485 let key = keys[i];
3486 action(dart.as(key, K), this.get(key)); 3486 action(dart.as(key, K), this.get(key));
3487 if (keys !== this[_keys]) { 3487 if (keys !== this[_keys]) {
3488 throw new core.ConcurrentModificationError(this); 3488 throw new core.ConcurrentModificationError(this);
3489 } 3489 }
3490 } 3490 }
3491 } 3491 }
3492 [_computeKeys]() { 3492 [_computeKeys]() {
3493 if (this[_keys] != null) 3493 if (this[_keys] != null)
3494 return this[_keys]; 3494 return this[_keys];
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
3628 class _CustomHashMap extends _HashMap$(K, V) { 3628 class _CustomHashMap extends _HashMap$(K, V) {
3629 _CustomHashMap(equals$, hashCode$, validKey) { 3629 _CustomHashMap(equals$, hashCode$, validKey) {
3630 this[_equals] = equals$; 3630 this[_equals] = equals$;
3631 this[_hashCode] = hashCode$; 3631 this[_hashCode] = hashCode$;
3632 this[_validKey] = dart.as(validKey != null ? validKey : (v) => dart.is(v , K), _Predicate); 3632 this[_validKey] = dart.as(validKey != null ? validKey : (v) => dart.is(v , K), _Predicate);
3633 super._HashMap(); 3633 super._HashMap();
3634 } 3634 }
3635 get(key) { 3635 get(key) {
3636 if (!dart.notNull(dart.dinvokef(this[_validKey], key))) 3636 if (!dart.notNull(dart.dinvokef(this[_validKey], key)))
3637 return null; 3637 return null;
3638 return super._get(key); 3638 return super[_get](key);
3639 } 3639 }
3640 set(key, value) { 3640 set(key, value) {
3641 super._set(key, value); 3641 super[_set](key, value);
3642 } 3642 }
3643 containsKey(key) { 3643 containsKey(key) {
3644 if (!dart.notNull(dart.dinvokef(this[_validKey], key))) 3644 if (!dart.notNull(dart.dinvokef(this[_validKey], key)))
3645 return false; 3645 return false;
3646 return super._containsKey(key); 3646 return super[_containsKey](key);
3647 } 3647 }
3648 remove(key) { 3648 remove(key) {
3649 if (!dart.notNull(dart.dinvokef(this[_validKey], key))) 3649 if (!dart.notNull(dart.dinvokef(this[_validKey], key)))
3650 return null; 3650 return null;
3651 return super._remove(key); 3651 return super[_remove](key);
3652 } 3652 }
3653 [_computeHashCode](key) { 3653 [_computeHashCode](key) {
3654 return this[_hashCode](dart.as(key, K)) & 0x3ffffff; 3654 return this[_hashCode](dart.as(key, K)) & 0x3ffffff;
3655 } 3655 }
3656 [_findBucketIndex](bucket, key) { 3656 [_findBucketIndex](bucket, key) {
3657 if (bucket == null) 3657 if (bucket == null)
3658 return -1; 3658 return -1;
3659 let length = bucket.length; 3659 let length = bucket.length;
3660 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = 2) { 3660 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = 2) {
3661 if (this[_equals](dart.as(bucket[i], K), dart.as(key, K))) 3661 if (this[_equals](dart.as(bucket[i], K), dart.as(key, K)))
3662 return i; 3662 return i;
3663 } 3663 }
3664 return -1; 3664 return -1;
3665 } 3665 }
3666 toString() { 3666 toString() {
3667 return Maps.mapToString(this); 3667 return Maps.mapToString(this);
3668 } 3668 }
3669 } 3669 }
3670 return _CustomHashMap; 3670 return _CustomHashMap;
3671 }); 3671 });
3672 let _CustomHashMap = _CustomHashMap$(dart.dynamic, dart.dynamic); 3672 let _CustomHashMap = _CustomHashMap$(dart.dynamic, dart.dynamic);
3673 let HashMapKeyIterable$ = dart.generic(function(E) { 3673 let HashMapKeyIterable$ = dart.generic(function(E) {
3674 class HashMapKeyIterable extends IterableBase$(E) { 3674 class HashMapKeyIterable extends IterableBase$(E) {
3675 HashMapKeyIterable(map$) { 3675 HashMapKeyIterable(map$) {
3676 this[_map] = map$; 3676 this[_map] = map$;
3677 super.IterableBase(); 3677 super.IterableBase();
3678 } 3678 }
3679 get length() { 3679 get [core.$length]() {
3680 return dart.as(dart.dload(this[_map], '_length'), core.int); 3680 return dart.as(dart.dload(this[_map], '_length'), core.int);
3681 } 3681 }
3682 get isEmpty() { 3682 get [core.$isEmpty]() {
3683 return dart.equals(dart.dload(this[_map], '_length'), 0); 3683 return dart.equals(dart.dload(this[_map], '_length'), 0);
3684 } 3684 }
3685 get iterator() { 3685 get [core.$iterator]() {
3686 return new (HashMapKeyIterator$(E))(this[_map], dart.as(dart.dinvoke(thi s[_map], '_computeKeys'), core.List)); 3686 return new (HashMapKeyIterator$(E))(this[_map], dart.as(dart.dinvoke(thi s[_map], '_computeKeys'), core.List));
3687 } 3687 }
3688 contains(element) { 3688 [core.$contains](element) {
3689 return dart.as(dart.dinvoke(this[_map], 'containsKey', element), core.bo ol); 3689 return dart.as(dart.dinvoke(this[_map], 'containsKey', element), core.bo ol);
3690 } 3690 }
3691 forEach(f) { 3691 [core.$forEach](f) {
3692 let keys = dart.as(dart.dinvoke(this[_map], '_computeKeys'), core.List); 3692 let keys = dart.as(dart.dinvoke(this[_map], '_computeKeys'), core.List);
3693 for (let i = 0, length = keys.length; dart.notNull(i) < dart.notNull(len gth); i = dart.notNull(i) + 1) { 3693 for (let i = 0, length = keys.length; dart.notNull(i) < dart.notNull(len gth); i = dart.notNull(i) + 1) {
3694 f(dart.as(keys[i], E)); 3694 f(dart.as(keys[i], E));
3695 if (keys !== dart.dload(this[_map], '_keys')) { 3695 if (keys !== dart.dload(this[_map], '_keys')) {
3696 throw new core.ConcurrentModificationError(this[_map]); 3696 throw new core.ConcurrentModificationError(this[_map]);
3697 } 3697 }
3698 } 3698 }
3699 } 3699 }
3700 } 3700 }
3701 HashMapKeyIterable[dart.implements] = () => [_internal.EfficientLength]; 3701 HashMapKeyIterable[dart.implements] = () => [_internal.EfficientLength];
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
3783 } 3783 }
3784 } 3784 }
3785 [_containsKey](key) { 3785 [_containsKey](key) {
3786 let rest = this[_rest]; 3786 let rest = this[_rest];
3787 if (rest == null) 3787 if (rest == null)
3788 return false; 3788 return false;
3789 let bucket = this[_getBucket](rest, key); 3789 let bucket = this[_getBucket](rest, key);
3790 return dart.notNull(this[_findBucketIndex](bucket, key)) >= 0; 3790 return dart.notNull(this[_findBucketIndex](bucket, key)) >= 0;
3791 } 3791 }
3792 containsValue(value) { 3792 containsValue(value) {
3793 return this.keys.any(dart.closureWrap(((each) => dart.equals(this.get(ea ch), value)).bind(this), "(K) → bool")); 3793 return this.keys[core.$any](dart.closureWrap(((each) => dart.equals(this .get(each), value)).bind(this), "(K) → bool"));
3794 } 3794 }
3795 addAll(other) { 3795 addAll(other) {
3796 other.forEach(((key, value) => { 3796 other.forEach(((key, value) => {
3797 this.set(key, value); 3797 this.set(key, value);
3798 }).bind(this)); 3798 }).bind(this));
3799 } 3799 }
3800 get(key) { 3800 get(key) {
3801 if (_LinkedHashMap[_isStringKey](key)) { 3801 if (_LinkedHashMap[_isStringKey](key)) {
3802 let strings = this[_strings]; 3802 let strings = this[_strings];
3803 if (strings == null) 3803 if (strings == null)
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
4031 class _LinkedCustomHashMap extends _LinkedHashMap$(K, V) { 4031 class _LinkedCustomHashMap extends _LinkedHashMap$(K, V) {
4032 _LinkedCustomHashMap(equals$, hashCode$, validKey) { 4032 _LinkedCustomHashMap(equals$, hashCode$, validKey) {
4033 this[_equals] = equals$; 4033 this[_equals] = equals$;
4034 this[_hashCode] = hashCode$; 4034 this[_hashCode] = hashCode$;
4035 this[_validKey] = dart.as(validKey != null ? validKey : (v) => dart.is(v , K), _Predicate); 4035 this[_validKey] = dart.as(validKey != null ? validKey : (v) => dart.is(v , K), _Predicate);
4036 super._LinkedHashMap(); 4036 super._LinkedHashMap();
4037 } 4037 }
4038 get(key) { 4038 get(key) {
4039 if (!dart.notNull(dart.dinvokef(this[_validKey], key))) 4039 if (!dart.notNull(dart.dinvokef(this[_validKey], key)))
4040 return null; 4040 return null;
4041 return super._get(key); 4041 return super[_get](key);
4042 } 4042 }
4043 set(key, value) { 4043 set(key, value) {
4044 super._set(key, value); 4044 super[_set](key, value);
4045 } 4045 }
4046 containsKey(key) { 4046 containsKey(key) {
4047 if (!dart.notNull(dart.dinvokef(this[_validKey], key))) 4047 if (!dart.notNull(dart.dinvokef(this[_validKey], key)))
4048 return false; 4048 return false;
4049 return super._containsKey(key); 4049 return super[_containsKey](key);
4050 } 4050 }
4051 remove(key) { 4051 remove(key) {
4052 if (!dart.notNull(dart.dinvokef(this[_validKey], key))) 4052 if (!dart.notNull(dart.dinvokef(this[_validKey], key)))
4053 return null; 4053 return null;
4054 return super._remove(key); 4054 return super[_remove](key);
4055 } 4055 }
4056 [_computeHashCode](key) { 4056 [_computeHashCode](key) {
4057 return this[_hashCode](dart.as(key, K)) & 0x3ffffff; 4057 return this[_hashCode](dart.as(key, K)) & 0x3ffffff;
4058 } 4058 }
4059 [_findBucketIndex](bucket, key) { 4059 [_findBucketIndex](bucket, key) {
4060 if (bucket == null) 4060 if (bucket == null)
4061 return -1; 4061 return -1;
4062 let length = bucket.length; 4062 let length = bucket.length;
4063 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 4063 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
4064 let cell = dart.as(bucket[i], LinkedHashMapCell); 4064 let cell = dart.as(bucket[i], LinkedHashMapCell);
(...skipping 13 matching lines...) Expand all
4078 this[_next] = null; 4078 this[_next] = null;
4079 this[_previous] = null; 4079 this[_previous] = null;
4080 } 4080 }
4081 } 4081 }
4082 let LinkedHashMapKeyIterable$ = dart.generic(function(E) { 4082 let LinkedHashMapKeyIterable$ = dart.generic(function(E) {
4083 class LinkedHashMapKeyIterable extends IterableBase$(E) { 4083 class LinkedHashMapKeyIterable extends IterableBase$(E) {
4084 LinkedHashMapKeyIterable(map$) { 4084 LinkedHashMapKeyIterable(map$) {
4085 this[_map] = map$; 4085 this[_map] = map$;
4086 super.IterableBase(); 4086 super.IterableBase();
4087 } 4087 }
4088 get length() { 4088 get [core.$length]() {
4089 return dart.as(dart.dload(this[_map], '_length'), core.int); 4089 return dart.as(dart.dload(this[_map], '_length'), core.int);
4090 } 4090 }
4091 get isEmpty() { 4091 get [core.$isEmpty]() {
4092 return dart.equals(dart.dload(this[_map], '_length'), 0); 4092 return dart.equals(dart.dload(this[_map], '_length'), 0);
4093 } 4093 }
4094 get iterator() { 4094 get [core.$iterator]() {
4095 return new (LinkedHashMapKeyIterator$(E))(this[_map], dart.as(dart.dload (this[_map], '_modifications'), core.int)); 4095 return new (LinkedHashMapKeyIterator$(E))(this[_map], dart.as(dart.dload (this[_map], '_modifications'), core.int));
4096 } 4096 }
4097 contains(element) { 4097 [core.$contains](element) {
4098 return dart.as(dart.dinvoke(this[_map], 'containsKey', element), core.bo ol); 4098 return dart.as(dart.dinvoke(this[_map], 'containsKey', element), core.bo ol);
4099 } 4099 }
4100 forEach(f) { 4100 [core.$forEach](f) {
4101 let cell = dart.as(dart.dload(this[_map], '_first'), LinkedHashMapCell); 4101 let cell = dart.as(dart.dload(this[_map], '_first'), LinkedHashMapCell);
4102 let modifications = dart.as(dart.dload(this[_map], '_modifications'), co re.int); 4102 let modifications = dart.as(dart.dload(this[_map], '_modifications'), co re.int);
4103 while (cell != null) { 4103 while (cell != null) {
4104 f(dart.as(cell[_key], E)); 4104 f(dart.as(cell[_key], E));
4105 if (!dart.equals(modifications, dart.dload(this[_map], '_modifications '))) { 4105 if (!dart.equals(modifications, dart.dload(this[_map], '_modifications '))) {
4106 throw new core.ConcurrentModificationError(this[_map]); 4106 throw new core.ConcurrentModificationError(this[_map]);
4107 } 4107 }
4108 cell = cell[_next]; 4108 cell = cell[_next];
4109 } 4109 }
4110 } 4110 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
4155 this[_length] = 0; 4155 this[_length] = 0;
4156 this[_strings] = null; 4156 this[_strings] = null;
4157 this[_nums] = null; 4157 this[_nums] = null;
4158 this[_rest] = null; 4158 this[_rest] = null;
4159 this[_elements] = null; 4159 this[_elements] = null;
4160 super._HashSetBase(); 4160 super._HashSetBase();
4161 } 4161 }
4162 [_newSet]() { 4162 [_newSet]() {
4163 return new (_HashSet$(E))(); 4163 return new (_HashSet$(E))();
4164 } 4164 }
4165 get iterator() { 4165 get [core.$iterator]() {
4166 return new (HashSetIterator$(E))(this, this[_computeElements]()); 4166 return new (HashSetIterator$(E))(this, this[_computeElements]());
4167 } 4167 }
4168 get length() { 4168 get [core.$length]() {
4169 return this[_length]; 4169 return this[_length];
4170 } 4170 }
4171 get isEmpty() { 4171 get [core.$isEmpty]() {
4172 return this[_length] == 0; 4172 return this[_length] == 0;
4173 } 4173 }
4174 get isNotEmpty() { 4174 get [core.$isNotEmpty]() {
4175 return !dart.notNull(this.isEmpty); 4175 return !dart.notNull(this.isEmpty);
4176 } 4176 }
4177 contains(object) { 4177 [core.$contains](object) {
4178 if (_HashSet[_isStringElement](object)) { 4178 if (_HashSet[_isStringElement](object)) {
4179 let strings = this[_strings]; 4179 let strings = this[_strings];
4180 return strings == null ? false : _HashSet[_hasTableEntry](strings, obj ect); 4180 return strings == null ? false : _HashSet[_hasTableEntry](strings, obj ect);
4181 } else if (_HashSet[_isNumericElement](object)) { 4181 } else if (_HashSet[_isNumericElement](object)) {
4182 let nums = this[_nums]; 4182 let nums = this[_nums];
4183 return nums == null ? false : _HashSet[_hasTableEntry](nums, object); 4183 return nums == null ? false : _HashSet[_hasTableEntry](nums, object);
4184 } else { 4184 } else {
4185 return this[_contains](object); 4185 return this[_contains](object);
4186 } 4186 }
4187 } 4187 }
4188 [_contains](object) { 4188 [_contains](object) {
4189 let rest = this[_rest]; 4189 let rest = this[_rest];
4190 if (rest == null) 4190 if (rest == null)
4191 return false; 4191 return false;
4192 let bucket = this[_getBucket](rest, object); 4192 let bucket = this[_getBucket](rest, object);
4193 return dart.notNull(this[_findBucketIndex](bucket, object)) >= 0; 4193 return dart.notNull(this[_findBucketIndex](bucket, object)) >= 0;
4194 } 4194 }
4195 lookup(object) { 4195 lookup(object) {
4196 if (dart.notNull(_HashSet[_isStringElement](object)) || dart.notNull(_Ha shSet[_isNumericElement](object))) { 4196 if (dart.notNull(_HashSet[_isStringElement](object)) || dart.notNull(_Ha shSet[_isNumericElement](object))) {
4197 return dart.as(this.contains(object) ? object : null, E); 4197 return dart.as(this[core.$contains](object) ? object : null, E);
4198 } 4198 }
4199 return this[_lookup](object); 4199 return this[_lookup](object);
4200 } 4200 }
4201 [_lookup](object) { 4201 [_lookup](object) {
4202 let rest = this[_rest]; 4202 let rest = this[_rest];
4203 if (rest == null) 4203 if (rest == null)
4204 return null; 4204 return null;
4205 let bucket = this[_getBucket](rest, object); 4205 let bucket = this[_getBucket](rest, object);
4206 let index = this[_findBucketIndex](bucket, object); 4206 let index = this[_findBucketIndex](bucket, object);
4207 if (dart.notNull(index) < 0) 4207 if (dart.notNull(index) < 0)
4208 return null; 4208 return null;
4209 return dart.as(bucket.get(index), E); 4209 return dart.as(bucket[core.$get](index), E);
4210 } 4210 }
4211 add(element) { 4211 add(element) {
4212 if (_HashSet[_isStringElement](element)) { 4212 if (_HashSet[_isStringElement](element)) {
4213 let strings = this[_strings]; 4213 let strings = this[_strings];
4214 if (strings == null) 4214 if (strings == null)
4215 this[_strings] = strings = _HashSet[_newHashTable](); 4215 this[_strings] = strings = _HashSet[_newHashTable]();
4216 return this[_addHashTableEntry](strings, element); 4216 return this[_addHashTableEntry](strings, element);
4217 } else if (_HashSet[_isNumericElement](element)) { 4217 } else if (_HashSet[_isNumericElement](element)) {
4218 let nums = this[_nums]; 4218 let nums = this[_nums];
4219 if (nums == null) 4219 if (nums == null)
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
4422 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 4422 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
4423 if (this[_equality](dart.as(bucket[i], E), dart.as(element, E))) 4423 if (this[_equality](dart.as(bucket[i], E), dart.as(element, E)))
4424 return i; 4424 return i;
4425 } 4425 }
4426 return -1; 4426 return -1;
4427 } 4427 }
4428 [_computeHashCode](element) { 4428 [_computeHashCode](element) {
4429 return this[_hasher](dart.as(element, E)) & 0x3ffffff; 4429 return this[_hasher](dart.as(element, E)) & 0x3ffffff;
4430 } 4430 }
4431 add(object) { 4431 add(object) {
4432 return super._add(object); 4432 return super[_add](object);
4433 } 4433 }
4434 contains(object) { 4434 [core.$contains](object) {
4435 if (!dart.notNull(dart.dinvokef(this[_validKey], object))) 4435 if (!dart.notNull(dart.dinvokef(this[_validKey], object)))
4436 return false; 4436 return false;
4437 return super._contains(object); 4437 return super[_contains](object);
4438 } 4438 }
4439 lookup(object) { 4439 lookup(object) {
4440 if (!dart.notNull(dart.dinvokef(this[_validKey], object))) 4440 if (!dart.notNull(dart.dinvokef(this[_validKey], object)))
4441 return null; 4441 return null;
4442 return super._lookup(object); 4442 return super[_lookup](object);
4443 } 4443 }
4444 remove(object) { 4444 remove(object) {
4445 if (!dart.notNull(dart.dinvokef(this[_validKey], object))) 4445 if (!dart.notNull(dart.dinvokef(this[_validKey], object)))
4446 return false; 4446 return false;
4447 return super._remove(object); 4447 return super[_remove](object);
4448 } 4448 }
4449 } 4449 }
4450 return _CustomHashSet; 4450 return _CustomHashSet;
4451 }); 4451 });
4452 let _CustomHashSet = _CustomHashSet$(dart.dynamic); 4452 let _CustomHashSet = _CustomHashSet$(dart.dynamic);
4453 let HashSetIterator$ = dart.generic(function(E) { 4453 let HashSetIterator$ = dart.generic(function(E) {
4454 class HashSetIterator extends core.Object { 4454 class HashSetIterator extends core.Object {
4455 HashSetIterator(set$, elements$) { 4455 HashSetIterator(set$, elements$) {
4456 this[_set] = set$; 4456 this[_set] = set$;
4457 this[_elements] = elements$; 4457 this[_elements] = elements$;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
4492 this[_last] = null; 4492 this[_last] = null;
4493 this[_modifications] = 0; 4493 this[_modifications] = 0;
4494 super._HashSetBase(); 4494 super._HashSetBase();
4495 } 4495 }
4496 [_newSet]() { 4496 [_newSet]() {
4497 return new (_LinkedHashSet$(E))(); 4497 return new (_LinkedHashSet$(E))();
4498 } 4498 }
4499 [_unsupported](operation) { 4499 [_unsupported](operation) {
4500 throw `LinkedHashSet: unsupported ${operation}`; 4500 throw `LinkedHashSet: unsupported ${operation}`;
4501 } 4501 }
4502 get iterator() { 4502 get [core.$iterator]() {
4503 return dart.as(new LinkedHashSetIterator(this, this[_modifications]), co re.Iterator$(E)); 4503 return dart.as(new LinkedHashSetIterator(this, this[_modifications]), co re.Iterator$(E));
4504 } 4504 }
4505 get length() { 4505 get [core.$length]() {
4506 return this[_length]; 4506 return this[_length];
4507 } 4507 }
4508 get isEmpty() { 4508 get [core.$isEmpty]() {
4509 return this[_length] == 0; 4509 return this[_length] == 0;
4510 } 4510 }
4511 get isNotEmpty() { 4511 get [core.$isNotEmpty]() {
4512 return !dart.notNull(this.isEmpty); 4512 return !dart.notNull(this.isEmpty);
4513 } 4513 }
4514 contains(object) { 4514 [core.$contains](object) {
4515 if (_LinkedHashSet[_isStringElement](object)) { 4515 if (_LinkedHashSet[_isStringElement](object)) {
4516 let strings = this[_strings]; 4516 let strings = this[_strings];
4517 if (strings == null) 4517 if (strings == null)
4518 return false; 4518 return false;
4519 let cell = dart.as(_LinkedHashSet[_getTableEntry](strings, object), Li nkedHashSetCell); 4519 let cell = dart.as(_LinkedHashSet[_getTableEntry](strings, object), Li nkedHashSetCell);
4520 return cell != null; 4520 return cell != null;
4521 } else if (_LinkedHashSet[_isNumericElement](object)) { 4521 } else if (_LinkedHashSet[_isNumericElement](object)) {
4522 let nums = this[_nums]; 4522 let nums = this[_nums];
4523 if (nums == null) 4523 if (nums == null)
4524 return false; 4524 return false;
4525 let cell = dart.as(_LinkedHashSet[_getTableEntry](nums, object), Linke dHashSetCell); 4525 let cell = dart.as(_LinkedHashSet[_getTableEntry](nums, object), Linke dHashSetCell);
4526 return cell != null; 4526 return cell != null;
4527 } else { 4527 } else {
4528 return this[_contains](object); 4528 return this[_contains](object);
4529 } 4529 }
4530 } 4530 }
4531 [_contains](object) { 4531 [_contains](object) {
4532 let rest = this[_rest]; 4532 let rest = this[_rest];
4533 if (rest == null) 4533 if (rest == null)
4534 return false; 4534 return false;
4535 let bucket = this[_getBucket](rest, object); 4535 let bucket = this[_getBucket](rest, object);
4536 return dart.notNull(this[_findBucketIndex](bucket, object)) >= 0; 4536 return dart.notNull(this[_findBucketIndex](bucket, object)) >= 0;
4537 } 4537 }
4538 lookup(object) { 4538 lookup(object) {
4539 if (dart.notNull(_LinkedHashSet[_isStringElement](object)) || dart.notNu ll(_LinkedHashSet[_isNumericElement](object))) { 4539 if (dart.notNull(_LinkedHashSet[_isStringElement](object)) || dart.notNu ll(_LinkedHashSet[_isNumericElement](object))) {
4540 return dart.as(this.contains(object) ? object : null, E); 4540 return dart.as(this[core.$contains](object) ? object : null, E);
4541 } else { 4541 } else {
4542 return this[_lookup](object); 4542 return this[_lookup](object);
4543 } 4543 }
4544 } 4544 }
4545 [_lookup](object) { 4545 [_lookup](object) {
4546 let rest = this[_rest]; 4546 let rest = this[_rest];
4547 if (rest == null) 4547 if (rest == null)
4548 return null; 4548 return null;
4549 let bucket = this[_getBucket](rest, object); 4549 let bucket = this[_getBucket](rest, object);
4550 let index = this[_findBucketIndex](bucket, object); 4550 let index = this[_findBucketIndex](bucket, object);
4551 if (dart.notNull(index) < 0) 4551 if (dart.notNull(index) < 0)
4552 return null; 4552 return null;
4553 return dart.as(dart.dload(bucket.get(index), '_element'), E); 4553 return dart.as(dart.dload(bucket[core.$get](index), '_element'), E);
4554 } 4554 }
4555 forEach(action) { 4555 [core.$forEach](action) {
4556 let cell = this[_first]; 4556 let cell = this[_first];
4557 let modifications = this[_modifications]; 4557 let modifications = this[_modifications];
4558 while (cell != null) { 4558 while (cell != null) {
4559 action(dart.as(cell[_element], E)); 4559 action(dart.as(cell[_element], E));
4560 if (modifications != this[_modifications]) { 4560 if (modifications != this[_modifications]) {
4561 throw new core.ConcurrentModificationError(this); 4561 throw new core.ConcurrentModificationError(this);
4562 } 4562 }
4563 cell = cell[_next]; 4563 cell = cell[_next];
4564 } 4564 }
4565 } 4565 }
4566 get first() { 4566 get [core.$first]() {
4567 if (this[_first] == null) 4567 if (this[_first] == null)
4568 throw new core.StateError("No elements"); 4568 throw new core.StateError("No elements");
4569 return dart.as(this[_first][_element], E); 4569 return dart.as(this[_first][_element], E);
4570 } 4570 }
4571 get last() { 4571 get [core.$last]() {
4572 if (this[_last] == null) 4572 if (this[_last] == null)
4573 throw new core.StateError("No elements"); 4573 throw new core.StateError("No elements");
4574 return dart.as(this[_last][_element], E); 4574 return dart.as(this[_last][_element], E);
4575 } 4575 }
4576 add(element) { 4576 add(element) {
4577 if (_LinkedHashSet[_isStringElement](element)) { 4577 if (_LinkedHashSet[_isStringElement](element)) {
4578 let strings = this[_strings]; 4578 let strings = this[_strings];
4579 if (strings == null) 4579 if (strings == null)
4580 this[_strings] = strings = _LinkedHashSet[_newHashTable](); 4580 this[_strings] = strings = _LinkedHashSet[_newHashTable]();
4581 return this[_addHashTableEntry](strings, element); 4581 return this[_addHashTableEntry](strings, element);
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
4794 let cell = dart.as(bucket[i], LinkedHashSetCell); 4794 let cell = dart.as(bucket[i], LinkedHashSetCell);
4795 if (this[_equality](dart.as(cell[_element], E), dart.as(element, E))) 4795 if (this[_equality](dart.as(cell[_element], E), dart.as(element, E)))
4796 return i; 4796 return i;
4797 } 4797 }
4798 return -1; 4798 return -1;
4799 } 4799 }
4800 [_computeHashCode](element) { 4800 [_computeHashCode](element) {
4801 return this[_hasher](dart.as(element, E)) & 0x3ffffff; 4801 return this[_hasher](dart.as(element, E)) & 0x3ffffff;
4802 } 4802 }
4803 add(element) { 4803 add(element) {
4804 return super._add(element); 4804 return super[_add](element);
4805 } 4805 }
4806 contains(object) { 4806 [core.$contains](object) {
4807 if (!dart.notNull(dart.dinvokef(this[_validKey], object))) 4807 if (!dart.notNull(dart.dinvokef(this[_validKey], object)))
4808 return false; 4808 return false;
4809 return super._contains(object); 4809 return super[_contains](object);
4810 } 4810 }
4811 lookup(object) { 4811 lookup(object) {
4812 if (!dart.notNull(dart.dinvokef(this[_validKey], object))) 4812 if (!dart.notNull(dart.dinvokef(this[_validKey], object)))
4813 return null; 4813 return null;
4814 return super._lookup(object); 4814 return super[_lookup](object);
4815 } 4815 }
4816 remove(object) { 4816 remove(object) {
4817 if (!dart.notNull(dart.dinvokef(this[_validKey], object))) 4817 if (!dart.notNull(dart.dinvokef(this[_validKey], object)))
4818 return false; 4818 return false;
4819 return super._remove(object); 4819 return super[_remove](object);
4820 } 4820 }
4821 containsAll(elements) { 4821 containsAll(elements) {
4822 for (let element of elements) { 4822 for (let element of elements) {
4823 if (!dart.notNull(dart.dinvokef(this[_validKey], element)) || !dart.no tNull(this.contains(element))) 4823 if (!dart.notNull(dart.dinvokef(this[_validKey], element)) || !dart.no tNull(this[core.$contains](element)))
4824 return false; 4824 return false;
4825 } 4825 }
4826 return true; 4826 return true;
4827 } 4827 }
4828 removeAll(elements) { 4828 removeAll(elements) {
4829 for (let element of elements) { 4829 for (let element of elements) {
4830 if (dart.dinvokef(this[_validKey], element)) { 4830 if (dart.dinvokef(this[_validKey], element)) {
4831 super._remove(element); 4831 super[_remove](element);
4832 } 4832 }
4833 } 4833 }
4834 } 4834 }
4835 } 4835 }
4836 return _LinkedCustomHashSet; 4836 return _LinkedCustomHashSet;
4837 }); 4837 });
4838 let _LinkedCustomHashSet = _LinkedCustomHashSet$(dart.dynamic); 4838 let _LinkedCustomHashSet = _LinkedCustomHashSet$(dart.dynamic);
4839 class LinkedHashSetCell extends core.Object { 4839 class LinkedHashSetCell extends core.Object {
4840 LinkedHashSetCell(element$) { 4840 LinkedHashSetCell(element$) {
4841 this[_element] = element$; 4841 this[_element] = element$;
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
4930 exports.LinkedHashMapKeyIterable = LinkedHashMapKeyIterable; 4930 exports.LinkedHashMapKeyIterable = LinkedHashMapKeyIterable;
4931 exports.LinkedHashMapKeyIterable$ = LinkedHashMapKeyIterable$; 4931 exports.LinkedHashMapKeyIterable$ = LinkedHashMapKeyIterable$;
4932 exports.LinkedHashMapKeyIterator = LinkedHashMapKeyIterator; 4932 exports.LinkedHashMapKeyIterator = LinkedHashMapKeyIterator;
4933 exports.LinkedHashMapKeyIterator$ = LinkedHashMapKeyIterator$; 4933 exports.LinkedHashMapKeyIterator$ = LinkedHashMapKeyIterator$;
4934 exports.HashSetIterator = HashSetIterator; 4934 exports.HashSetIterator = HashSetIterator;
4935 exports.HashSetIterator$ = HashSetIterator$; 4935 exports.HashSetIterator$ = HashSetIterator$;
4936 exports.LinkedHashSetCell = LinkedHashSetCell; 4936 exports.LinkedHashSetCell = LinkedHashSetCell;
4937 exports.LinkedHashSetIterator = LinkedHashSetIterator; 4937 exports.LinkedHashSetIterator = LinkedHashSetIterator;
4938 exports.LinkedHashSetIterator$ = LinkedHashSetIterator$; 4938 exports.LinkedHashSetIterator$ = LinkedHashSetIterator$;
4939 })(collection || (collection = {})); 4939 })(collection || (collection = {}));
OLDNEW
« no previous file with comments | « lib/runtime/dart/async.js ('k') | lib/runtime/dart/convert.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698