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

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

Issue 1117793002: add checks needed for covariant generics, and List<E> (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 7 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 } 9 }
10 get [core.$length]() { 10 get [core.$length]() {
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 get [core.$isEmpty]() { 112 get [core.$isEmpty]() {
113 return this[core.$length] == 0; 113 return this[core.$length] == 0;
114 } 114 }
115 get [core.$isNotEmpty]() { 115 get [core.$isNotEmpty]() {
116 return this[core.$length] != 0; 116 return this[core.$length] != 0;
117 } 117 }
118 clear() { 118 clear() {
119 this.removeAll(this[core.$toList]()); 119 this.removeAll(this[core.$toList]());
120 } 120 }
121 addAll(elements) { 121 addAll(elements) {
122 dart.as(elements, core.Iterable$(E));
122 for (let element of elements) 123 for (let element of elements)
123 this.add(element); 124 this.add(element);
124 } 125 }
125 removeAll(elements) { 126 removeAll(elements) {
126 for (let element of elements) 127 for (let element of elements)
127 this.remove(element); 128 this.remove(element);
128 } 129 }
129 retainAll(elements) { 130 retainAll(elements) {
130 let toRemove = this[core.$toSet](); 131 let toRemove = this[core.$toSet]();
131 for (let o of elements) { 132 for (let o of elements) {
132 toRemove.remove(o); 133 toRemove.remove(o);
133 } 134 }
134 this.removeAll(toRemove); 135 this.removeAll(toRemove);
135 } 136 }
136 removeWhere(test) { 137 removeWhere(test) {
138 dart.as(test, dart.functionType(core.bool, [E]));
137 let toRemove = []; 139 let toRemove = [];
138 for (let element of this) { 140 for (let element of this) {
139 if (test(element)) 141 if (test(element))
140 toRemove[core.$add](element); 142 toRemove[core.$add](element);
141 } 143 }
142 this.removeAll(toRemove); 144 this.removeAll(toRemove);
143 } 145 }
144 retainWhere(test) { 146 retainWhere(test) {
147 dart.as(test, dart.functionType(core.bool, [E]));
145 let toRemove = []; 148 let toRemove = [];
146 for (let element of this) { 149 for (let element of this) {
147 if (!dart.notNull(test(element))) 150 if (!dart.notNull(test(element)))
148 toRemove[core.$add](element); 151 toRemove[core.$add](element);
149 } 152 }
150 this.removeAll(toRemove); 153 this.removeAll(toRemove);
151 } 154 }
152 containsAll(other) { 155 containsAll(other) {
153 for (let o of other) { 156 for (let o of other) {
154 if (!dart.notNull(this[core.$contains](o))) 157 if (!dart.notNull(this[core.$contains](o)))
155 return false; 158 return false;
156 } 159 }
157 return true; 160 return true;
158 } 161 }
159 union(other) { 162 union(other) {
163 dart.as(other, core.Set$(E));
160 let _ = this[core.$toSet](); 164 let _ = this[core.$toSet]();
161 _.addAll(other); 165 _.addAll(other);
162 return _; 166 return _;
163 } 167 }
164 intersection(other) { 168 intersection(other) {
165 let result = this[core.$toSet](); 169 let result = this[core.$toSet]();
166 for (let element of this) { 170 for (let element of this) {
167 if (!dart.notNull(other[core.$contains](element))) 171 if (!dart.notNull(other[core.$contains](element)))
168 result.remove(element); 172 result.remove(element);
169 } 173 }
(...skipping 17 matching lines...) Expand all
187 let i = 0; 191 let i = 0;
188 for (let element of this) 192 for (let element of this)
189 result[core.$set]((() => { 193 result[core.$set]((() => {
190 let x = i; 194 let x = i;
191 i = dart.notNull(x) + 1; 195 i = dart.notNull(x) + 1;
192 return x; 196 return x;
193 })(), element); 197 })(), element);
194 return result; 198 return result;
195 } 199 }
196 [core.$map](f) { 200 [core.$map](f) {
201 dart.as(f, dart.functionType(dart.dynamic, [E]));
197 return new (_internal.EfficientLengthMappedIterable$(E, dart.dynamic))(t his, f); 202 return new (_internal.EfficientLengthMappedIterable$(E, dart.dynamic))(t his, f);
198 } 203 }
199 get [core.$single]() { 204 get [core.$single]() {
200 if (dart.notNull(this[core.$length]) > 1) 205 if (dart.notNull(this[core.$length]) > 1)
201 throw _internal.IterableElementError.tooMany(); 206 throw _internal.IterableElementError.tooMany();
202 let it = this[core.$iterator]; 207 let it = this[core.$iterator];
203 if (!dart.notNull(it.moveNext())) 208 if (!dart.notNull(it.moveNext()))
204 throw _internal.IterableElementError.noElement(); 209 throw _internal.IterableElementError.noElement();
205 let result = dart.as(it.current, E); 210 let result = dart.as(it.current, E);
206 return result; 211 return result;
207 } 212 }
208 toString() { 213 toString() {
209 return IterableBase.iterableToFullString(this, '{', '}'); 214 return IterableBase.iterableToFullString(this, '{', '}');
210 } 215 }
211 [core.$where](f) { 216 [core.$where](f) {
217 dart.as(f, dart.functionType(core.bool, [E]));
212 return new (_internal.WhereIterable$(E))(this, f); 218 return new (_internal.WhereIterable$(E))(this, f);
213 } 219 }
214 [core.$expand](f) { 220 [core.$expand](f) {
221 dart.as(f, dart.functionType(core.Iterable, [E]));
215 return new (_internal.ExpandIterable$(E, dart.dynamic))(this, f); 222 return new (_internal.ExpandIterable$(E, dart.dynamic))(this, f);
216 } 223 }
217 [core.$forEach](f) { 224 [core.$forEach](f) {
225 dart.as(f, dart.functionType(dart.void, [E]));
218 for (let element of this) 226 for (let element of this)
219 f(element); 227 f(element);
220 } 228 }
221 [core.$reduce](combine) { 229 [core.$reduce](combine) {
230 dart.as(combine, dart.functionType(E, [E, E]));
222 let iterator = this[core.$iterator]; 231 let iterator = this[core.$iterator];
223 if (!dart.notNull(iterator.moveNext())) { 232 if (!dart.notNull(iterator.moveNext())) {
224 throw _internal.IterableElementError.noElement(); 233 throw _internal.IterableElementError.noElement();
225 } 234 }
226 let value = iterator.current; 235 let value = iterator.current;
227 while (iterator.moveNext()) { 236 while (iterator.moveNext()) {
228 value = combine(value, iterator.current); 237 value = combine(value, iterator.current);
229 } 238 }
230 return value; 239 return value;
231 } 240 }
232 [core.$fold](initialValue, combine) { 241 [core.$fold](initialValue, combine) {
242 dart.as(combine, dart.functionType(dart.dynamic, [dart.dynamic, E]));
233 let value = initialValue; 243 let value = initialValue;
234 for (let element of this) 244 for (let element of this)
235 value = dart.dcall(combine, value, element); 245 value = dart.dcall(combine, value, element);
236 return value; 246 return value;
237 } 247 }
238 [core.$every](f) { 248 [core.$every](f) {
249 dart.as(f, dart.functionType(core.bool, [E]));
239 for (let element of this) { 250 for (let element of this) {
240 if (!dart.notNull(f(element))) 251 if (!dart.notNull(f(element)))
241 return false; 252 return false;
242 } 253 }
243 return true; 254 return true;
244 } 255 }
245 [core.$join](separator) { 256 [core.$join](separator) {
246 if (separator === void 0) 257 if (separator === void 0)
247 separator = ""; 258 separator = "";
248 let iterator = this[core.$iterator]; 259 let iterator = this[core.$iterator];
249 if (!dart.notNull(iterator.moveNext())) 260 if (!dart.notNull(iterator.moveNext()))
250 return ""; 261 return "";
251 let buffer = new core.StringBuffer(); 262 let buffer = new core.StringBuffer();
252 if (separator == null || separator == "") { 263 if (separator == null || separator == "") {
253 do { 264 do {
254 buffer.write(`${iterator.current}`); 265 buffer.write(`${iterator.current}`);
255 } while (iterator.moveNext()); 266 } while (iterator.moveNext());
256 } else { 267 } else {
257 buffer.write(`${iterator.current}`); 268 buffer.write(`${iterator.current}`);
258 while (iterator.moveNext()) { 269 while (iterator.moveNext()) {
259 buffer.write(separator); 270 buffer.write(separator);
260 buffer.write(`${iterator.current}`); 271 buffer.write(`${iterator.current}`);
261 } 272 }
262 } 273 }
263 return dart.toString(buffer); 274 return dart.toString(buffer);
264 } 275 }
265 [core.$any](test) { 276 [core.$any](test) {
277 dart.as(test, dart.functionType(core.bool, [E]));
266 for (let element of this) { 278 for (let element of this) {
267 if (test(element)) 279 if (test(element))
268 return true; 280 return true;
269 } 281 }
270 return false; 282 return false;
271 } 283 }
272 [core.$take](n) { 284 [core.$take](n) {
273 return new (_internal.TakeIterable$(E))(this, n); 285 return new (_internal.TakeIterable$(E))(this, n);
274 } 286 }
275 [core.$takeWhile](test) { 287 [core.$takeWhile](test) {
288 dart.as(test, dart.functionType(core.bool, [E]));
276 return new (_internal.TakeWhileIterable$(E))(this, test); 289 return new (_internal.TakeWhileIterable$(E))(this, test);
277 } 290 }
278 [core.$skip](n) { 291 [core.$skip](n) {
279 return new (_internal.SkipIterable$(E))(this, n); 292 return new (_internal.SkipIterable$(E))(this, n);
280 } 293 }
281 [core.$skipWhile](test) { 294 [core.$skipWhile](test) {
295 dart.as(test, dart.functionType(core.bool, [E]));
282 return new (_internal.SkipWhileIterable$(E))(this, test); 296 return new (_internal.SkipWhileIterable$(E))(this, test);
283 } 297 }
284 get [core.$first]() { 298 get [core.$first]() {
285 let it = this[core.$iterator]; 299 let it = this[core.$iterator];
286 if (!dart.notNull(it.moveNext())) { 300 if (!dart.notNull(it.moveNext())) {
287 throw _internal.IterableElementError.noElement(); 301 throw _internal.IterableElementError.noElement();
288 } 302 }
289 return dart.as(it.current, E); 303 return dart.as(it.current, E);
290 } 304 }
291 get [core.$last]() { 305 get [core.$last]() {
292 let it = this[core.$iterator]; 306 let it = this[core.$iterator];
293 if (!dart.notNull(it.moveNext())) { 307 if (!dart.notNull(it.moveNext())) {
294 throw _internal.IterableElementError.noElement(); 308 throw _internal.IterableElementError.noElement();
295 } 309 }
296 let result = null; 310 let result = null;
297 do { 311 do {
298 result = dart.as(it.current, E); 312 result = dart.as(it.current, E);
299 } while (it.moveNext()); 313 } while (it.moveNext());
300 return result; 314 return result;
301 } 315 }
302 [core.$firstWhere](test, opts) { 316 [core.$firstWhere](test, opts) {
317 dart.as(test, dart.functionType(core.bool, [E]));
303 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 318 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
319 dart.as(orElse, dart.functionType(E, []));
304 for (let element of this) { 320 for (let element of this) {
305 if (test(element)) 321 if (test(element))
306 return element; 322 return element;
307 } 323 }
308 if (orElse != null) 324 if (orElse != null)
309 return orElse(); 325 return orElse();
310 throw _internal.IterableElementError.noElement(); 326 throw _internal.IterableElementError.noElement();
311 } 327 }
312 [core.$lastWhere](test, opts) { 328 [core.$lastWhere](test, opts) {
329 dart.as(test, dart.functionType(core.bool, [E]));
313 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 330 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
331 dart.as(orElse, dart.functionType(E, []));
314 let result = null; 332 let result = null;
315 let foundMatching = false; 333 let foundMatching = false;
316 for (let element of this) { 334 for (let element of this) {
317 if (test(element)) { 335 if (test(element)) {
318 result = element; 336 result = element;
319 foundMatching = true; 337 foundMatching = true;
320 } 338 }
321 } 339 }
322 if (foundMatching) 340 if (foundMatching)
323 return result; 341 return result;
324 if (orElse != null) 342 if (orElse != null)
325 return orElse(); 343 return orElse();
326 throw _internal.IterableElementError.noElement(); 344 throw _internal.IterableElementError.noElement();
327 } 345 }
328 [core.$singleWhere](test) { 346 [core.$singleWhere](test) {
347 dart.as(test, dart.functionType(core.bool, [E]));
329 let result = null; 348 let result = null;
330 let foundMatching = false; 349 let foundMatching = false;
331 for (let element of this) { 350 for (let element of this) {
332 if (test(element)) { 351 if (test(element)) {
333 if (foundMatching) { 352 if (foundMatching) {
334 throw _internal.IterableElementError.tooMany(); 353 throw _internal.IterableElementError.tooMany();
335 } 354 }
336 result = element; 355 result = element;
337 foundMatching = true; 356 foundMatching = true;
338 } 357 }
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 }); 467 });
449 let __CastType5 = __CastType5$(); 468 let __CastType5 = __CastType5$();
450 let __CastType7$ = dart.generic(function(E) { 469 let __CastType7$ = dart.generic(function(E) {
451 let __CastType7 = dart.typedef('__CastType7', () => dart.functionType(core.b ool, [E, E])); 470 let __CastType7 = dart.typedef('__CastType7', () => dart.functionType(core.b ool, [E, E]));
452 return __CastType7; 471 return __CastType7;
453 }); 472 });
454 let __CastType7 = __CastType7$(); 473 let __CastType7 = __CastType7$();
455 let IterableMixin$ = dart.generic(function(E) { 474 let IterableMixin$ = dart.generic(function(E) {
456 class IterableMixin extends core.Object { 475 class IterableMixin extends core.Object {
457 [core.$map](f) { 476 [core.$map](f) {
477 dart.as(f, dart.functionType(dart.dynamic, [E]));
458 return new (_internal.MappedIterable$(E, dart.dynamic))(this, f); 478 return new (_internal.MappedIterable$(E, dart.dynamic))(this, f);
459 } 479 }
460 [core.$where](f) { 480 [core.$where](f) {
481 dart.as(f, dart.functionType(core.bool, [E]));
461 return new (_internal.WhereIterable$(E))(this, f); 482 return new (_internal.WhereIterable$(E))(this, f);
462 } 483 }
463 [core.$expand](f) { 484 [core.$expand](f) {
485 dart.as(f, dart.functionType(core.Iterable, [E]));
464 return new (_internal.ExpandIterable$(E, dart.dynamic))(this, f); 486 return new (_internal.ExpandIterable$(E, dart.dynamic))(this, f);
465 } 487 }
466 [core.$contains](element) { 488 [core.$contains](element) {
467 for (let e of this) { 489 for (let e of this) {
468 if (dart.equals(e, element)) 490 if (dart.equals(e, element))
469 return true; 491 return true;
470 } 492 }
471 return false; 493 return false;
472 } 494 }
473 [core.$forEach](f) { 495 [core.$forEach](f) {
496 dart.as(f, dart.functionType(dart.void, [E]));
474 for (let element of this) 497 for (let element of this)
475 f(element); 498 f(element);
476 } 499 }
477 [core.$reduce](combine) { 500 [core.$reduce](combine) {
501 dart.as(combine, dart.functionType(E, [E, E]));
478 let iterator = this[core.$iterator]; 502 let iterator = this[core.$iterator];
479 if (!dart.notNull(iterator.moveNext())) { 503 if (!dart.notNull(iterator.moveNext())) {
480 throw _internal.IterableElementError.noElement(); 504 throw _internal.IterableElementError.noElement();
481 } 505 }
482 let value = iterator.current; 506 let value = iterator.current;
483 while (iterator.moveNext()) { 507 while (iterator.moveNext()) {
484 value = combine(value, iterator.current); 508 value = combine(value, iterator.current);
485 } 509 }
486 return value; 510 return value;
487 } 511 }
488 [core.$fold](initialValue, combine) { 512 [core.$fold](initialValue, combine) {
513 dart.as(combine, dart.functionType(dart.dynamic, [dart.dynamic, E]));
489 let value = initialValue; 514 let value = initialValue;
490 for (let element of this) 515 for (let element of this)
491 value = dart.dcall(combine, value, element); 516 value = dart.dcall(combine, value, element);
492 return value; 517 return value;
493 } 518 }
494 [core.$every](f) { 519 [core.$every](f) {
520 dart.as(f, dart.functionType(core.bool, [E]));
495 for (let element of this) { 521 for (let element of this) {
496 if (!dart.notNull(f(element))) 522 if (!dart.notNull(f(element)))
497 return false; 523 return false;
498 } 524 }
499 return true; 525 return true;
500 } 526 }
501 [core.$join](separator) { 527 [core.$join](separator) {
502 if (separator === void 0) 528 if (separator === void 0)
503 separator = ""; 529 separator = "";
504 let iterator = this[core.$iterator]; 530 let iterator = this[core.$iterator];
505 if (!dart.notNull(iterator.moveNext())) 531 if (!dart.notNull(iterator.moveNext()))
506 return ""; 532 return "";
507 let buffer = new core.StringBuffer(); 533 let buffer = new core.StringBuffer();
508 if (separator == null || separator == "") { 534 if (separator == null || separator == "") {
509 do { 535 do {
510 buffer.write(`${iterator.current}`); 536 buffer.write(`${iterator.current}`);
511 } while (iterator.moveNext()); 537 } while (iterator.moveNext());
512 } else { 538 } else {
513 buffer.write(`${iterator.current}`); 539 buffer.write(`${iterator.current}`);
514 while (iterator.moveNext()) { 540 while (iterator.moveNext()) {
515 buffer.write(separator); 541 buffer.write(separator);
516 buffer.write(`${iterator.current}`); 542 buffer.write(`${iterator.current}`);
517 } 543 }
518 } 544 }
519 return dart.toString(buffer); 545 return dart.toString(buffer);
520 } 546 }
521 [core.$any](f) { 547 [core.$any](f) {
548 dart.as(f, dart.functionType(core.bool, [E]));
522 for (let element of this) { 549 for (let element of this) {
523 if (f(element)) 550 if (f(element))
524 return true; 551 return true;
525 } 552 }
526 return false; 553 return false;
527 } 554 }
528 [core.$toList](opts) { 555 [core.$toList](opts) {
529 let growable = opts && 'growable' in opts ? opts.growable : true; 556 let growable = opts && 'growable' in opts ? opts.growable : true;
530 return new core.List$(E).from(this, {growable: growable}); 557 return new core.List$(E).from(this, {growable: growable});
531 } 558 }
(...skipping 12 matching lines...) Expand all
544 get [core.$isEmpty]() { 571 get [core.$isEmpty]() {
545 return !dart.notNull(this[core.$iterator].moveNext()); 572 return !dart.notNull(this[core.$iterator].moveNext());
546 } 573 }
547 get [core.$isNotEmpty]() { 574 get [core.$isNotEmpty]() {
548 return !dart.notNull(this[core.$isEmpty]); 575 return !dart.notNull(this[core.$isEmpty]);
549 } 576 }
550 [core.$take](n) { 577 [core.$take](n) {
551 return new (_internal.TakeIterable$(E))(this, n); 578 return new (_internal.TakeIterable$(E))(this, n);
552 } 579 }
553 [core.$takeWhile](test) { 580 [core.$takeWhile](test) {
581 dart.as(test, dart.functionType(core.bool, [E]));
554 return new (_internal.TakeWhileIterable$(E))(this, test); 582 return new (_internal.TakeWhileIterable$(E))(this, test);
555 } 583 }
556 [core.$skip](n) { 584 [core.$skip](n) {
557 return new (_internal.SkipIterable$(E))(this, n); 585 return new (_internal.SkipIterable$(E))(this, n);
558 } 586 }
559 [core.$skipWhile](test) { 587 [core.$skipWhile](test) {
588 dart.as(test, dart.functionType(core.bool, [E]));
560 return new (_internal.SkipWhileIterable$(E))(this, test); 589 return new (_internal.SkipWhileIterable$(E))(this, test);
561 } 590 }
562 get [core.$first]() { 591 get [core.$first]() {
563 let it = this[core.$iterator]; 592 let it = this[core.$iterator];
564 if (!dart.notNull(it.moveNext())) { 593 if (!dart.notNull(it.moveNext())) {
565 throw _internal.IterableElementError.noElement(); 594 throw _internal.IterableElementError.noElement();
566 } 595 }
567 return dart.as(it.current, E); 596 return dart.as(it.current, E);
568 } 597 }
569 get [core.$last]() { 598 get [core.$last]() {
(...skipping 10 matching lines...) Expand all
580 get [core.$single]() { 609 get [core.$single]() {
581 let it = this[core.$iterator]; 610 let it = this[core.$iterator];
582 if (!dart.notNull(it.moveNext())) 611 if (!dart.notNull(it.moveNext()))
583 throw _internal.IterableElementError.noElement(); 612 throw _internal.IterableElementError.noElement();
584 let result = dart.as(it.current, E); 613 let result = dart.as(it.current, E);
585 if (it.moveNext()) 614 if (it.moveNext())
586 throw _internal.IterableElementError.tooMany(); 615 throw _internal.IterableElementError.tooMany();
587 return result; 616 return result;
588 } 617 }
589 [core.$firstWhere](test, opts) { 618 [core.$firstWhere](test, opts) {
619 dart.as(test, dart.functionType(core.bool, [E]));
590 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 620 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
621 dart.as(orElse, dart.functionType(E, []));
591 for (let element of this) { 622 for (let element of this) {
592 if (test(element)) 623 if (test(element))
593 return element; 624 return element;
594 } 625 }
595 if (orElse != null) 626 if (orElse != null)
596 return orElse(); 627 return orElse();
597 throw _internal.IterableElementError.noElement(); 628 throw _internal.IterableElementError.noElement();
598 } 629 }
599 [core.$lastWhere](test, opts) { 630 [core.$lastWhere](test, opts) {
631 dart.as(test, dart.functionType(core.bool, [E]));
600 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 632 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
633 dart.as(orElse, dart.functionType(E, []));
601 let result = null; 634 let result = null;
602 let foundMatching = false; 635 let foundMatching = false;
603 for (let element of this) { 636 for (let element of this) {
604 if (test(element)) { 637 if (test(element)) {
605 result = element; 638 result = element;
606 foundMatching = true; 639 foundMatching = true;
607 } 640 }
608 } 641 }
609 if (foundMatching) 642 if (foundMatching)
610 return result; 643 return result;
611 if (orElse != null) 644 if (orElse != null)
612 return orElse(); 645 return orElse();
613 throw _internal.IterableElementError.noElement(); 646 throw _internal.IterableElementError.noElement();
614 } 647 }
615 [core.$singleWhere](test) { 648 [core.$singleWhere](test) {
649 dart.as(test, dart.functionType(core.bool, [E]));
616 let result = null; 650 let result = null;
617 let foundMatching = false; 651 let foundMatching = false;
618 for (let element of this) { 652 for (let element of this) {
619 if (test(element)) { 653 if (test(element)) {
620 if (foundMatching) { 654 if (foundMatching) {
621 throw _internal.IterableElementError.tooMany(); 655 throw _internal.IterableElementError.tooMany();
622 } 656 }
623 result = element; 657 result = element;
624 foundMatching = true; 658 foundMatching = true;
625 } 659 }
(...skipping 20 matching lines...) Expand all
646 } 680 }
647 IterableMixin[dart.implements] = () => [core.Iterable$(E)]; 681 IterableMixin[dart.implements] = () => [core.Iterable$(E)];
648 return IterableMixin; 682 return IterableMixin;
649 }); 683 });
650 let IterableMixin = IterableMixin$(); 684 let IterableMixin = IterableMixin$();
651 let IterableBase$ = dart.generic(function(E) { 685 let IterableBase$ = dart.generic(function(E) {
652 class IterableBase extends core.Object { 686 class IterableBase extends core.Object {
653 IterableBase() { 687 IterableBase() {
654 } 688 }
655 [core.$map](f) { 689 [core.$map](f) {
690 dart.as(f, dart.functionType(dart.dynamic, [E]));
656 return new (_internal.MappedIterable$(E, dart.dynamic))(this, f); 691 return new (_internal.MappedIterable$(E, dart.dynamic))(this, f);
657 } 692 }
658 [core.$where](f) { 693 [core.$where](f) {
694 dart.as(f, dart.functionType(core.bool, [E]));
659 return new (_internal.WhereIterable$(E))(this, f); 695 return new (_internal.WhereIterable$(E))(this, f);
660 } 696 }
661 [core.$expand](f) { 697 [core.$expand](f) {
698 dart.as(f, dart.functionType(core.Iterable, [E]));
662 return new (_internal.ExpandIterable$(E, dart.dynamic))(this, f); 699 return new (_internal.ExpandIterable$(E, dart.dynamic))(this, f);
663 } 700 }
664 [core.$contains](element) { 701 [core.$contains](element) {
665 for (let e of this) { 702 for (let e of this) {
666 if (dart.equals(e, element)) 703 if (dart.equals(e, element))
667 return true; 704 return true;
668 } 705 }
669 return false; 706 return false;
670 } 707 }
671 [core.$forEach](f) { 708 [core.$forEach](f) {
709 dart.as(f, dart.functionType(dart.void, [E]));
672 for (let element of this) 710 for (let element of this)
673 f(element); 711 f(element);
674 } 712 }
675 [core.$reduce](combine) { 713 [core.$reduce](combine) {
714 dart.as(combine, dart.functionType(E, [E, E]));
676 let iterator = this[core.$iterator]; 715 let iterator = this[core.$iterator];
677 if (!dart.notNull(iterator.moveNext())) { 716 if (!dart.notNull(iterator.moveNext())) {
678 throw _internal.IterableElementError.noElement(); 717 throw _internal.IterableElementError.noElement();
679 } 718 }
680 let value = iterator.current; 719 let value = iterator.current;
681 while (iterator.moveNext()) { 720 while (iterator.moveNext()) {
682 value = combine(value, iterator.current); 721 value = combine(value, iterator.current);
683 } 722 }
684 return value; 723 return value;
685 } 724 }
686 [core.$fold](initialValue, combine) { 725 [core.$fold](initialValue, combine) {
726 dart.as(combine, dart.functionType(dart.dynamic, [dart.dynamic, E]));
687 let value = initialValue; 727 let value = initialValue;
688 for (let element of this) 728 for (let element of this)
689 value = dart.dcall(combine, value, element); 729 value = dart.dcall(combine, value, element);
690 return value; 730 return value;
691 } 731 }
692 [core.$every](f) { 732 [core.$every](f) {
733 dart.as(f, dart.functionType(core.bool, [E]));
693 for (let element of this) { 734 for (let element of this) {
694 if (!dart.notNull(f(element))) 735 if (!dart.notNull(f(element)))
695 return false; 736 return false;
696 } 737 }
697 return true; 738 return true;
698 } 739 }
699 [core.$join](separator) { 740 [core.$join](separator) {
700 if (separator === void 0) 741 if (separator === void 0)
701 separator = ""; 742 separator = "";
702 let iterator = this[core.$iterator]; 743 let iterator = this[core.$iterator];
703 if (!dart.notNull(iterator.moveNext())) 744 if (!dart.notNull(iterator.moveNext()))
704 return ""; 745 return "";
705 let buffer = new core.StringBuffer(); 746 let buffer = new core.StringBuffer();
706 if (separator == null || separator == "") { 747 if (separator == null || separator == "") {
707 do { 748 do {
708 buffer.write(`${iterator.current}`); 749 buffer.write(`${iterator.current}`);
709 } while (iterator.moveNext()); 750 } while (iterator.moveNext());
710 } else { 751 } else {
711 buffer.write(`${iterator.current}`); 752 buffer.write(`${iterator.current}`);
712 while (iterator.moveNext()) { 753 while (iterator.moveNext()) {
713 buffer.write(separator); 754 buffer.write(separator);
714 buffer.write(`${iterator.current}`); 755 buffer.write(`${iterator.current}`);
715 } 756 }
716 } 757 }
717 return dart.toString(buffer); 758 return dart.toString(buffer);
718 } 759 }
719 [core.$any](f) { 760 [core.$any](f) {
761 dart.as(f, dart.functionType(core.bool, [E]));
720 for (let element of this) { 762 for (let element of this) {
721 if (f(element)) 763 if (f(element))
722 return true; 764 return true;
723 } 765 }
724 return false; 766 return false;
725 } 767 }
726 [core.$toList](opts) { 768 [core.$toList](opts) {
727 let growable = opts && 'growable' in opts ? opts.growable : true; 769 let growable = opts && 'growable' in opts ? opts.growable : true;
728 return new core.List$(E).from(this, {growable: growable}); 770 return new core.List$(E).from(this, {growable: growable});
729 } 771 }
(...skipping 12 matching lines...) Expand all
742 get [core.$isEmpty]() { 784 get [core.$isEmpty]() {
743 return !dart.notNull(this[core.$iterator].moveNext()); 785 return !dart.notNull(this[core.$iterator].moveNext());
744 } 786 }
745 get [core.$isNotEmpty]() { 787 get [core.$isNotEmpty]() {
746 return !dart.notNull(this[core.$isEmpty]); 788 return !dart.notNull(this[core.$isEmpty]);
747 } 789 }
748 [core.$take](n) { 790 [core.$take](n) {
749 return new (_internal.TakeIterable$(E))(this, n); 791 return new (_internal.TakeIterable$(E))(this, n);
750 } 792 }
751 [core.$takeWhile](test) { 793 [core.$takeWhile](test) {
794 dart.as(test, dart.functionType(core.bool, [E]));
752 return new (_internal.TakeWhileIterable$(E))(this, test); 795 return new (_internal.TakeWhileIterable$(E))(this, test);
753 } 796 }
754 [core.$skip](n) { 797 [core.$skip](n) {
755 return new (_internal.SkipIterable$(E))(this, n); 798 return new (_internal.SkipIterable$(E))(this, n);
756 } 799 }
757 [core.$skipWhile](test) { 800 [core.$skipWhile](test) {
801 dart.as(test, dart.functionType(core.bool, [E]));
758 return new (_internal.SkipWhileIterable$(E))(this, test); 802 return new (_internal.SkipWhileIterable$(E))(this, test);
759 } 803 }
760 get [core.$first]() { 804 get [core.$first]() {
761 let it = this[core.$iterator]; 805 let it = this[core.$iterator];
762 if (!dart.notNull(it.moveNext())) { 806 if (!dart.notNull(it.moveNext())) {
763 throw _internal.IterableElementError.noElement(); 807 throw _internal.IterableElementError.noElement();
764 } 808 }
765 return dart.as(it.current, E); 809 return dart.as(it.current, E);
766 } 810 }
767 get [core.$last]() { 811 get [core.$last]() {
(...skipping 10 matching lines...) Expand all
778 get [core.$single]() { 822 get [core.$single]() {
779 let it = this[core.$iterator]; 823 let it = this[core.$iterator];
780 if (!dart.notNull(it.moveNext())) 824 if (!dart.notNull(it.moveNext()))
781 throw _internal.IterableElementError.noElement(); 825 throw _internal.IterableElementError.noElement();
782 let result = dart.as(it.current, E); 826 let result = dart.as(it.current, E);
783 if (it.moveNext()) 827 if (it.moveNext())
784 throw _internal.IterableElementError.tooMany(); 828 throw _internal.IterableElementError.tooMany();
785 return result; 829 return result;
786 } 830 }
787 [core.$firstWhere](test, opts) { 831 [core.$firstWhere](test, opts) {
832 dart.as(test, dart.functionType(core.bool, [E]));
788 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 833 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
834 dart.as(orElse, dart.functionType(E, []));
789 for (let element of this) { 835 for (let element of this) {
790 if (test(element)) 836 if (test(element))
791 return element; 837 return element;
792 } 838 }
793 if (orElse != null) 839 if (orElse != null)
794 return orElse(); 840 return orElse();
795 throw _internal.IterableElementError.noElement(); 841 throw _internal.IterableElementError.noElement();
796 } 842 }
797 [core.$lastWhere](test, opts) { 843 [core.$lastWhere](test, opts) {
844 dart.as(test, dart.functionType(core.bool, [E]));
798 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 845 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
846 dart.as(orElse, dart.functionType(E, []));
799 let result = null; 847 let result = null;
800 let foundMatching = false; 848 let foundMatching = false;
801 for (let element of this) { 849 for (let element of this) {
802 if (test(element)) { 850 if (test(element)) {
803 result = element; 851 result = element;
804 foundMatching = true; 852 foundMatching = true;
805 } 853 }
806 } 854 }
807 if (foundMatching) 855 if (foundMatching)
808 return result; 856 return result;
809 if (orElse != null) 857 if (orElse != null)
810 return orElse(); 858 return orElse();
811 throw _internal.IterableElementError.noElement(); 859 throw _internal.IterableElementError.noElement();
812 } 860 }
813 [core.$singleWhere](test) { 861 [core.$singleWhere](test) {
862 dart.as(test, dart.functionType(core.bool, [E]));
814 let result = null; 863 let result = null;
815 let foundMatching = false; 864 let foundMatching = false;
816 for (let element of this) { 865 for (let element of this) {
817 if (test(element)) { 866 if (test(element)) {
818 if (foundMatching) { 867 if (foundMatching) {
819 throw _internal.IterableElementError.tooMany(); 868 throw _internal.IterableElementError.tooMany();
820 } 869 }
821 result = element; 870 result = element;
822 foundMatching = true; 871 foundMatching = true;
823 } 872 }
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
1164 class LinkedList extends IterableBase$(E) { 1213 class LinkedList extends IterableBase$(E) {
1165 LinkedList() { 1214 LinkedList() {
1166 this[_modificationCount] = 0; 1215 this[_modificationCount] = 0;
1167 this[_length] = 0; 1216 this[_length] = 0;
1168 this[_next] = null; 1217 this[_next] = null;
1169 this[_previous] = null; 1218 this[_previous] = null;
1170 super.IterableBase(); 1219 super.IterableBase();
1171 this[_next] = this[_previous] = this; 1220 this[_next] = this[_previous] = this;
1172 } 1221 }
1173 addFirst(entry) { 1222 addFirst(entry) {
1223 dart.as(entry, E);
1174 this[_insertAfter](this, entry); 1224 this[_insertAfter](this, entry);
1175 } 1225 }
1176 add(entry) { 1226 add(entry) {
1227 dart.as(entry, E);
1177 this[_insertAfter](this[_previous], entry); 1228 this[_insertAfter](this[_previous], entry);
1178 } 1229 }
1179 addAll(entries) { 1230 addAll(entries) {
1231 dart.as(entries, core.Iterable$(E));
1180 entries[core.$forEach]((entry => this[_insertAfter](this[_previous], dar t.as(entry, E))).bind(this)); 1232 entries[core.$forEach]((entry => this[_insertAfter](this[_previous], dar t.as(entry, E))).bind(this));
1181 } 1233 }
1182 remove(entry) { 1234 remove(entry) {
1235 dart.as(entry, E);
1183 if (!dart.equals(entry[_list], this)) 1236 if (!dart.equals(entry[_list], this))
1184 return false; 1237 return false;
1185 this[_unlink](entry); 1238 this[_unlink](entry);
1186 return true; 1239 return true;
1187 } 1240 }
1188 get [core.$iterator]() { 1241 get [core.$iterator]() {
1189 return new (_LinkedListIterator$(E))(this); 1242 return new (_LinkedListIterator$(E))(this);
1190 } 1243 }
1191 get [core.$length]() { 1244 get [core.$length]() {
1192 return this[_length]; 1245 return this[_length];
(...skipping 24 matching lines...) Expand all
1217 get [core.$single]() { 1270 get [core.$single]() {
1218 if (core.identical(this[_previous], this)) { 1271 if (core.identical(this[_previous], this)) {
1219 throw new core.StateError('No such element'); 1272 throw new core.StateError('No such element');
1220 } 1273 }
1221 if (!dart.notNull(core.identical(this[_previous], this[_next]))) { 1274 if (!dart.notNull(core.identical(this[_previous], this[_next]))) {
1222 throw new core.StateError('Too many elements'); 1275 throw new core.StateError('Too many elements');
1223 } 1276 }
1224 return dart.as(this[_next], E); 1277 return dart.as(this[_next], E);
1225 } 1278 }
1226 [core.$forEach](action) { 1279 [core.$forEach](action) {
1280 dart.as(action, dart.functionType(dart.void, [E]));
1227 let modificationCount = this[_modificationCount]; 1281 let modificationCount = this[_modificationCount];
1228 let current = this[_next]; 1282 let current = this[_next];
1229 while (!dart.notNull(core.identical(current, this))) { 1283 while (!dart.notNull(core.identical(current, this))) {
1230 action(dart.as(current, E)); 1284 action(dart.as(current, E));
1231 if (modificationCount != this[_modificationCount]) { 1285 if (modificationCount != this[_modificationCount]) {
1232 throw new core.ConcurrentModificationError(this); 1286 throw new core.ConcurrentModificationError(this);
1233 } 1287 }
1234 current = current[_next]; 1288 current = current[_next];
1235 } 1289 }
1236 } 1290 }
1237 get [core.$isEmpty]() { 1291 get [core.$isEmpty]() {
1238 return this[_length] == 0; 1292 return this[_length] == 0;
1239 } 1293 }
1240 [_insertAfter](entry, newEntry) { 1294 [_insertAfter](entry, newEntry) {
1295 dart.as(newEntry, E);
1241 if (newEntry.list != null) { 1296 if (newEntry.list != null) {
1242 throw new core.StateError('LinkedListEntry is already in a LinkedList' ); 1297 throw new core.StateError('LinkedListEntry is already in a LinkedList' );
1243 } 1298 }
1244 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 1299 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
1245 newEntry[_list] = this; 1300 newEntry[_list] = this;
1246 let predecessor = entry; 1301 let predecessor = entry;
1247 let successor = entry[_next]; 1302 let successor = entry[_next];
1248 successor[_previous] = newEntry; 1303 successor[_previous] = newEntry;
1249 newEntry[_previous] = predecessor; 1304 newEntry[_previous] = predecessor;
1250 newEntry[_next] = successor; 1305 newEntry[_next] = successor;
1251 predecessor[_next] = newEntry; 1306 predecessor[_next] = newEntry;
1252 this[_length] = dart.notNull(this[_length]) + 1; 1307 this[_length] = dart.notNull(this[_length]) + 1;
1253 } 1308 }
1254 [_unlink](entry) { 1309 [_unlink](entry) {
1310 dart.as(entry, LinkedListEntry$(E));
1255 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 1311 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
1256 entry[_next][_previous] = entry[_previous]; 1312 entry[_next][_previous] = entry[_previous];
1257 entry[_previous][_next] = entry[_next]; 1313 entry[_previous][_next] = entry[_next];
1258 this[_length] = dart.notNull(this[_length]) - 1; 1314 this[_length] = dart.notNull(this[_length]) - 1;
1259 entry[_list] = entry[_next] = entry[_previous] = null; 1315 entry[_list] = entry[_next] = entry[_previous] = null;
1260 } 1316 }
1261 } 1317 }
1262 LinkedList[dart.implements] = () => [_LinkedListLink]; 1318 LinkedList[dart.implements] = () => [_LinkedListLink];
1263 return LinkedList; 1319 return LinkedList;
1264 }); 1320 });
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
1316 return null; 1372 return null;
1317 let result = dart.as(this[_next], E); 1373 let result = dart.as(this[_next], E);
1318 return result; 1374 return result;
1319 } 1375 }
1320 get previous() { 1376 get previous() {
1321 if (core.identical(this[_previous], this[_list])) 1377 if (core.identical(this[_previous], this[_list]))
1322 return null; 1378 return null;
1323 return dart.as(this[_previous], E); 1379 return dart.as(this[_previous], E);
1324 } 1380 }
1325 insertAfter(entry) { 1381 insertAfter(entry) {
1382 dart.as(entry, E);
1326 this[_list][_insertAfter](this, entry); 1383 this[_list][_insertAfter](this, entry);
1327 } 1384 }
1328 insertBefore(entry) { 1385 insertBefore(entry) {
1386 dart.as(entry, E);
1329 this[_list][_insertAfter](this[_previous], entry); 1387 this[_list][_insertAfter](this[_previous], entry);
1330 } 1388 }
1331 } 1389 }
1332 LinkedListEntry[dart.implements] = () => [_LinkedListLink]; 1390 LinkedListEntry[dart.implements] = () => [_LinkedListLink];
1333 return LinkedListEntry; 1391 return LinkedListEntry;
1334 }); 1392 });
1335 let LinkedListEntry = LinkedListEntry$(); 1393 let LinkedListEntry = LinkedListEntry$();
1336 let ListMixin$ = dart.generic(function(E) { 1394 let ListMixin$ = dart.generic(function(E) {
1337 class ListMixin extends core.Object { 1395 class ListMixin extends core.Object {
1338 get [core.$iterator]() { 1396 get [core.$iterator]() {
1339 return new (_internal.ListIterator$(E))(this); 1397 return new (_internal.ListIterator$(E))(this);
1340 } 1398 }
1341 [core.$elementAt](index) { 1399 [core.$elementAt](index) {
1342 return this[core.$get](index); 1400 return this[core.$get](index);
1343 } 1401 }
1344 [core.$forEach](action) { 1402 [core.$forEach](action) {
1403 dart.as(action, dart.functionType(dart.void, [E]));
1345 let length = this[core.$length]; 1404 let length = this[core.$length];
1346 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1405 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1347 action(this[core.$get](i)); 1406 action(this[core.$get](i));
1348 if (length != this[core.$length]) { 1407 if (length != this[core.$length]) {
1349 throw new core.ConcurrentModificationError(this); 1408 throw new core.ConcurrentModificationError(this);
1350 } 1409 }
1351 } 1410 }
1352 } 1411 }
1353 get [core.$isEmpty]() { 1412 get [core.$isEmpty]() {
1354 return this[core.$length] == 0; 1413 return this[core.$length] == 0;
(...skipping 23 matching lines...) Expand all
1378 for (let i = 0; dart.notNull(i) < dart.notNull(this[core.$length]); i = dart.notNull(i) + 1) { 1437 for (let i = 0; dart.notNull(i) < dart.notNull(this[core.$length]); i = dart.notNull(i) + 1) {
1379 if (dart.equals(this[core.$get](i), element)) 1438 if (dart.equals(this[core.$get](i), element))
1380 return true; 1439 return true;
1381 if (length != this[core.$length]) { 1440 if (length != this[core.$length]) {
1382 throw new core.ConcurrentModificationError(this); 1441 throw new core.ConcurrentModificationError(this);
1383 } 1442 }
1384 } 1443 }
1385 return false; 1444 return false;
1386 } 1445 }
1387 [core.$every](test) { 1446 [core.$every](test) {
1447 dart.as(test, dart.functionType(core.bool, [E]));
1388 let length = this[core.$length]; 1448 let length = this[core.$length];
1389 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1449 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1390 if (!dart.notNull(test(this[core.$get](i)))) 1450 if (!dart.notNull(test(this[core.$get](i))))
1391 return false; 1451 return false;
1392 if (length != this[core.$length]) { 1452 if (length != this[core.$length]) {
1393 throw new core.ConcurrentModificationError(this); 1453 throw new core.ConcurrentModificationError(this);
1394 } 1454 }
1395 } 1455 }
1396 return true; 1456 return true;
1397 } 1457 }
1398 [core.$any](test) { 1458 [core.$any](test) {
1459 dart.as(test, dart.functionType(core.bool, [E]));
1399 let length = this[core.$length]; 1460 let length = this[core.$length];
1400 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1461 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1401 if (test(this[core.$get](i))) 1462 if (test(this[core.$get](i)))
1402 return true; 1463 return true;
1403 if (length != this[core.$length]) { 1464 if (length != this[core.$length]) {
1404 throw new core.ConcurrentModificationError(this); 1465 throw new core.ConcurrentModificationError(this);
1405 } 1466 }
1406 } 1467 }
1407 return false; 1468 return false;
1408 } 1469 }
1409 [core.$firstWhere](test, opts) { 1470 [core.$firstWhere](test, opts) {
1471 dart.as(test, dart.functionType(core.bool, [E]));
1410 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 1472 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
1473 dart.as(orElse, dart.functionType(E, []));
1411 let length = this[core.$length]; 1474 let length = this[core.$length];
1412 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1475 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1413 let element = this[core.$get](i); 1476 let element = this[core.$get](i);
1414 if (test(element)) 1477 if (test(element))
1415 return element; 1478 return element;
1416 if (length != this[core.$length]) { 1479 if (length != this[core.$length]) {
1417 throw new core.ConcurrentModificationError(this); 1480 throw new core.ConcurrentModificationError(this);
1418 } 1481 }
1419 } 1482 }
1420 if (orElse != null) 1483 if (orElse != null)
1421 return orElse(); 1484 return orElse();
1422 throw _internal.IterableElementError.noElement(); 1485 throw _internal.IterableElementError.noElement();
1423 } 1486 }
1424 [core.$lastWhere](test, opts) { 1487 [core.$lastWhere](test, opts) {
1488 dart.as(test, dart.functionType(core.bool, [E]));
1425 let orElse = opts && 'orElse' in opts ? opts.orElse : null; 1489 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
1490 dart.as(orElse, dart.functionType(E, []));
1426 let length = this[core.$length]; 1491 let length = this[core.$length];
1427 for (let i = dart.notNull(length) - 1; dart.notNull(i) >= 0; i = dart.no tNull(i) - 1) { 1492 for (let i = dart.notNull(length) - 1; dart.notNull(i) >= 0; i = dart.no tNull(i) - 1) {
1428 let element = this[core.$get](i); 1493 let element = this[core.$get](i);
1429 if (test(element)) 1494 if (test(element))
1430 return element; 1495 return element;
1431 if (length != this[core.$length]) { 1496 if (length != this[core.$length]) {
1432 throw new core.ConcurrentModificationError(this); 1497 throw new core.ConcurrentModificationError(this);
1433 } 1498 }
1434 } 1499 }
1435 if (orElse != null) 1500 if (orElse != null)
1436 return orElse(); 1501 return orElse();
1437 throw _internal.IterableElementError.noElement(); 1502 throw _internal.IterableElementError.noElement();
1438 } 1503 }
1439 [core.$singleWhere](test) { 1504 [core.$singleWhere](test) {
1505 dart.as(test, dart.functionType(core.bool, [E]));
1440 let length = this[core.$length]; 1506 let length = this[core.$length];
1441 let match = null; 1507 let match = null;
1442 let matchFound = false; 1508 let matchFound = false;
1443 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1509 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1444 let element = this[core.$get](i); 1510 let element = this[core.$get](i);
1445 if (test(element)) { 1511 if (test(element)) {
1446 if (matchFound) { 1512 if (matchFound) {
1447 throw _internal.IterableElementError.tooMany(); 1513 throw _internal.IterableElementError.tooMany();
1448 } 1514 }
1449 matchFound = true; 1515 matchFound = true;
(...skipping 10 matching lines...) Expand all
1460 [core.$join](separator) { 1526 [core.$join](separator) {
1461 if (separator === void 0) 1527 if (separator === void 0)
1462 separator = ""; 1528 separator = "";
1463 if (this[core.$length] == 0) 1529 if (this[core.$length] == 0)
1464 return ""; 1530 return "";
1465 let buffer = new core.StringBuffer(); 1531 let buffer = new core.StringBuffer();
1466 buffer.writeAll(this, separator); 1532 buffer.writeAll(this, separator);
1467 return dart.toString(buffer); 1533 return dart.toString(buffer);
1468 } 1534 }
1469 [core.$where](test) { 1535 [core.$where](test) {
1536 dart.as(test, dart.functionType(core.bool, [E]));
1470 return new (_internal.WhereIterable$(E))(this, test); 1537 return new (_internal.WhereIterable$(E))(this, test);
1471 } 1538 }
1472 [core.$map](f) { 1539 [core.$map](f) {
1540 dart.as(f, dart.functionType(dart.dynamic, [E]));
1473 return new _internal.MappedListIterable(this, f); 1541 return new _internal.MappedListIterable(this, f);
1474 } 1542 }
1475 [core.$expand](f) { 1543 [core.$expand](f) {
1544 dart.as(f, dart.functionType(core.Iterable, [E]));
1476 return new (_internal.ExpandIterable$(E, dart.dynamic))(this, f); 1545 return new (_internal.ExpandIterable$(E, dart.dynamic))(this, f);
1477 } 1546 }
1478 [core.$reduce](combine) { 1547 [core.$reduce](combine) {
1548 dart.as(combine, dart.functionType(E, [E, E]));
1479 let length = this[core.$length]; 1549 let length = this[core.$length];
1480 if (length == 0) 1550 if (length == 0)
1481 throw _internal.IterableElementError.noElement(); 1551 throw _internal.IterableElementError.noElement();
1482 let value = this[core.$get](0); 1552 let value = this[core.$get](0);
1483 for (let i = 1; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1553 for (let i = 1; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1484 value = combine(value, this[core.$get](i)); 1554 value = combine(value, this[core.$get](i));
1485 if (length != this[core.$length]) { 1555 if (length != this[core.$length]) {
1486 throw new core.ConcurrentModificationError(this); 1556 throw new core.ConcurrentModificationError(this);
1487 } 1557 }
1488 } 1558 }
1489 return value; 1559 return value;
1490 } 1560 }
1491 [core.$fold](initialValue, combine) { 1561 [core.$fold](initialValue, combine) {
1562 dart.as(combine, dart.functionType(dart.dynamic, [dart.dynamic, E]));
1492 let value = initialValue; 1563 let value = initialValue;
1493 let length = this[core.$length]; 1564 let length = this[core.$length];
1494 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1565 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1495 value = dart.dcall(combine, value, this[core.$get](i)); 1566 value = dart.dcall(combine, value, this[core.$get](i));
1496 if (length != this[core.$length]) { 1567 if (length != this[core.$length]) {
1497 throw new core.ConcurrentModificationError(this); 1568 throw new core.ConcurrentModificationError(this);
1498 } 1569 }
1499 } 1570 }
1500 return value; 1571 return value;
1501 } 1572 }
1502 [core.$skip](count) { 1573 [core.$skip](count) {
1503 return new (_internal.SubListIterable$(E))(this, count, null); 1574 return new (_internal.SubListIterable$(E))(this, count, null);
1504 } 1575 }
1505 [core.$skipWhile](test) { 1576 [core.$skipWhile](test) {
1577 dart.as(test, dart.functionType(core.bool, [E]));
1506 return new (_internal.SkipWhileIterable$(E))(this, test); 1578 return new (_internal.SkipWhileIterable$(E))(this, test);
1507 } 1579 }
1508 [core.$take](count) { 1580 [core.$take](count) {
1509 return new (_internal.SubListIterable$(E))(this, 0, count); 1581 return new (_internal.SubListIterable$(E))(this, 0, count);
1510 } 1582 }
1511 [core.$takeWhile](test) { 1583 [core.$takeWhile](test) {
1584 dart.as(test, dart.functionType(core.bool, [E]));
1512 return new (_internal.TakeWhileIterable$(E))(this, test); 1585 return new (_internal.TakeWhileIterable$(E))(this, test);
1513 } 1586 }
1514 [core.$toList](opts) { 1587 [core.$toList](opts) {
1515 let growable = opts && 'growable' in opts ? opts.growable : true; 1588 let growable = opts && 'growable' in opts ? opts.growable : true;
1516 let result = null; 1589 let result = null;
1517 if (growable) { 1590 if (growable) {
1518 result = new (core.List$(E))(); 1591 result = new (core.List$(E))();
1519 result[core.$length] = this[core.$length]; 1592 result[core.$length] = this[core.$length];
1520 } else { 1593 } else {
1521 result = new (core.List$(E))(this[core.$length]); 1594 result = new (core.List$(E))(this[core.$length]);
1522 } 1595 }
1523 for (let i = 0; dart.notNull(i) < dart.notNull(this[core.$length]); i = dart.notNull(i) + 1) { 1596 for (let i = 0; dart.notNull(i) < dart.notNull(this[core.$length]); i = dart.notNull(i) + 1) {
1524 result[core.$set](i, this[core.$get](i)); 1597 result[core.$set](i, this[core.$get](i));
1525 } 1598 }
1526 return result; 1599 return result;
1527 } 1600 }
1528 [core.$toSet]() { 1601 [core.$toSet]() {
1529 let result = new (core.Set$(E))(); 1602 let result = new (core.Set$(E))();
1530 for (let i = 0; dart.notNull(i) < dart.notNull(this[core.$length]); i = dart.notNull(i) + 1) { 1603 for (let i = 0; dart.notNull(i) < dart.notNull(this[core.$length]); i = dart.notNull(i) + 1) {
1531 result.add(this[core.$get](i)); 1604 result.add(this[core.$get](i));
1532 } 1605 }
1533 return result; 1606 return result;
1534 } 1607 }
1535 [core.$add](element) { 1608 [core.$add](element) {
1609 dart.as(element, E);
1536 this[core.$set]((() => { 1610 this[core.$set]((() => {
1537 let o = this, x = o[core.$length]; 1611 let o = this, x = o[core.$length];
1538 o[core.$length] = dart.notNull(x) + 1; 1612 o[core.$length] = dart.notNull(x) + 1;
1539 return x; 1613 return x;
1540 }).bind(this)(), element); 1614 }).bind(this)(), element);
1541 } 1615 }
1542 [core.$addAll](iterable) { 1616 [core.$addAll](iterable) {
1617 dart.as(iterable, core.Iterable$(E));
1543 for (let element of iterable) { 1618 for (let element of iterable) {
1544 this[core.$set]((() => { 1619 this[core.$set]((() => {
1545 let o = this, x = o[core.$length]; 1620 let o = this, x = o[core.$length];
1546 o[core.$length] = dart.notNull(x) + 1; 1621 o[core.$length] = dart.notNull(x) + 1;
1547 return x; 1622 return x;
1548 }).bind(this)(), element); 1623 }).bind(this)(), element);
1549 } 1624 }
1550 } 1625 }
1551 [core.$remove](element) { 1626 [core.$remove](element) {
1552 for (let i = 0; dart.notNull(i) < dart.notNull(this[core.$length]); i = dart.notNull(i) + 1) { 1627 for (let i = 0; dart.notNull(i) < dart.notNull(this[core.$length]); i = dart.notNull(i) + 1) {
1553 if (dart.equals(this[core.$get](i), element)) { 1628 if (dart.equals(this[core.$get](i), element)) {
1554 this[core.$setRange](i, dart.notNull(this[core.$length]) - 1, this, dart.notNull(i) + 1); 1629 this[core.$setRange](i, dart.notNull(this[core.$length]) - 1, this, dart.notNull(i) + 1);
1555 let o = this; 1630 let o = this;
1556 o[core.$length] = dart.notNull(o[core.$length]) - 1; 1631 o[core.$length] = dart.notNull(o[core.$length]) - 1;
1557 return true; 1632 return true;
1558 } 1633 }
1559 } 1634 }
1560 return false; 1635 return false;
1561 } 1636 }
1562 [core.$removeWhere](test) { 1637 [core.$removeWhere](test) {
1638 dart.as(test, dart.functionType(core.bool, [E]));
1563 ListMixin._filter(this, test, false); 1639 ListMixin._filter(this, test, false);
1564 } 1640 }
1565 [core.$retainWhere](test) { 1641 [core.$retainWhere](test) {
1642 dart.as(test, dart.functionType(core.bool, [E]));
1566 ListMixin._filter(this, test, true); 1643 ListMixin._filter(this, test, true);
1567 } 1644 }
1568 static _filter(source, test, retainMatching) { 1645 static _filter(source, test, retainMatching) {
1646 dart.as(test, dart.functionType(core.bool, [dart.dynamic]));
1569 let retained = []; 1647 let retained = [];
1570 let length = source[core.$length]; 1648 let length = source[core.$length];
1571 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 1649 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
1572 let element = source[core.$get](i); 1650 let element = source[core.$get](i);
1573 if (dart.dcall(test, element) == retainMatching) { 1651 if (dart.dcall(test, element) == retainMatching) {
1574 retained[core.$add](element); 1652 retained[core.$add](element);
1575 } 1653 }
1576 if (length != source[core.$length]) { 1654 if (length != source[core.$length]) {
1577 throw new core.ConcurrentModificationError(source); 1655 throw new core.ConcurrentModificationError(source);
1578 } 1656 }
(...skipping 10 matching lines...) Expand all
1589 if (this[core.$length] == 0) { 1667 if (this[core.$length] == 0) {
1590 throw _internal.IterableElementError.noElement(); 1668 throw _internal.IterableElementError.noElement();
1591 } 1669 }
1592 let result = this[core.$get](dart.notNull(this[core.$length]) - 1); 1670 let result = this[core.$get](dart.notNull(this[core.$length]) - 1);
1593 this[core.$length] = dart.notNull(this[core.$length]) - 1; 1671 this[core.$length] = dart.notNull(this[core.$length]) - 1;
1594 return result; 1672 return result;
1595 } 1673 }
1596 [core.$sort](compare) { 1674 [core.$sort](compare) {
1597 if (compare === void 0) 1675 if (compare === void 0)
1598 compare = null; 1676 compare = null;
1677 dart.as(compare, dart.functionType(core.int, [E, E]));
1599 if (compare == null) { 1678 if (compare == null) {
1600 let defaultCompare = dart.bind(core.Comparable, 'compare'); 1679 let defaultCompare = dart.bind(core.Comparable, 'compare');
1601 compare = defaultCompare; 1680 compare = defaultCompare;
1602 } 1681 }
1603 _internal.Sort.sort(this, compare); 1682 _internal.Sort.sort(this, compare);
1604 } 1683 }
1605 [core.$shuffle](random) { 1684 [core.$shuffle](random) {
1606 if (random === void 0) 1685 if (random === void 0)
1607 random = null; 1686 random = null;
1608 if (random == null) 1687 if (random == null)
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1641 [core.$removeRange](start, end) { 1720 [core.$removeRange](start, end) {
1642 core.RangeError.checkValidRange(start, end, this[core.$length]); 1721 core.RangeError.checkValidRange(start, end, this[core.$length]);
1643 let length = dart.notNull(end) - dart.notNull(start); 1722 let length = dart.notNull(end) - dart.notNull(start);
1644 this[core.$setRange](start, dart.notNull(this[core.$length]) - dart.notN ull(length), this, end); 1723 this[core.$setRange](start, dart.notNull(this[core.$length]) - dart.notN ull(length), this, end);
1645 let o = this; 1724 let o = this;
1646 o[core.$length] = dart.notNull(o[core.$length]) - dart.notNull(length); 1725 o[core.$length] = dart.notNull(o[core.$length]) - dart.notNull(length);
1647 } 1726 }
1648 [core.$fillRange](start, end, fill) { 1727 [core.$fillRange](start, end, fill) {
1649 if (fill === void 0) 1728 if (fill === void 0)
1650 fill = null; 1729 fill = null;
1730 dart.as(fill, E);
1651 core.RangeError.checkValidRange(start, end, this[core.$length]); 1731 core.RangeError.checkValidRange(start, end, this[core.$length]);
1652 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul l(i) + 1) { 1732 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul l(i) + 1) {
1653 this[core.$set](i, fill); 1733 this[core.$set](i, fill);
1654 } 1734 }
1655 } 1735 }
1656 [core.$setRange](start, end, iterable, skipCount) { 1736 [core.$setRange](start, end, iterable, skipCount) {
1737 dart.as(iterable, core.Iterable$(E));
1657 if (skipCount === void 0) 1738 if (skipCount === void 0)
1658 skipCount = 0; 1739 skipCount = 0;
1659 core.RangeError.checkValidRange(start, end, this[core.$length]); 1740 core.RangeError.checkValidRange(start, end, this[core.$length]);
1660 let length = dart.notNull(end) - dart.notNull(start); 1741 let length = dart.notNull(end) - dart.notNull(start);
1661 if (length == 0) 1742 if (length == 0)
1662 return; 1743 return;
1663 core.RangeError.checkNotNegative(skipCount, "skipCount"); 1744 core.RangeError.checkNotNegative(skipCount, "skipCount");
1664 let otherList = null; 1745 let otherList = null;
1665 let otherStart = null; 1746 let otherStart = null;
1666 if (dart.is(iterable, core.List)) { 1747 if (dart.is(iterable, core.List)) {
(...skipping 10 matching lines...) Expand all
1677 for (let i = dart.notNull(length) - 1; dart.notNull(i) >= 0; i = dart. notNull(i) - 1) { 1758 for (let i = dart.notNull(length) - 1; dart.notNull(i) >= 0; i = dart. notNull(i) - 1) {
1678 this[core.$set](dart.notNull(start) + dart.notNull(i), dart.as(other List[core.$get](dart.notNull(otherStart) + dart.notNull(i)), E)); 1759 this[core.$set](dart.notNull(start) + dart.notNull(i), dart.as(other List[core.$get](dart.notNull(otherStart) + dart.notNull(i)), E));
1679 } 1760 }
1680 } else { 1761 } else {
1681 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNu ll(i) + 1) { 1762 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNu ll(i) + 1) {
1682 this[core.$set](dart.notNull(start) + dart.notNull(i), dart.as(other List[core.$get](dart.notNull(otherStart) + dart.notNull(i)), E)); 1763 this[core.$set](dart.notNull(start) + dart.notNull(i), dart.as(other List[core.$get](dart.notNull(otherStart) + dart.notNull(i)), E));
1683 } 1764 }
1684 } 1765 }
1685 } 1766 }
1686 [core.$replaceRange](start, end, newContents) { 1767 [core.$replaceRange](start, end, newContents) {
1768 dart.as(newContents, core.Iterable$(E));
1687 core.RangeError.checkValidRange(start, end, this[core.$length]); 1769 core.RangeError.checkValidRange(start, end, this[core.$length]);
1688 if (!dart.is(newContents, _internal.EfficientLength)) { 1770 if (!dart.is(newContents, _internal.EfficientLength)) {
1689 newContents = newContents[core.$toList](); 1771 newContents = newContents[core.$toList]();
1690 } 1772 }
1691 let removeLength = dart.notNull(end) - dart.notNull(start); 1773 let removeLength = dart.notNull(end) - dart.notNull(start);
1692 let insertLength = newContents[core.$length]; 1774 let insertLength = newContents[core.$length];
1693 if (dart.notNull(removeLength) >= dart.notNull(insertLength)) { 1775 if (dart.notNull(removeLength) >= dart.notNull(insertLength)) {
1694 let delta = dart.notNull(removeLength) - dart.notNull(insertLength); 1776 let delta = dart.notNull(removeLength) - dart.notNull(insertLength);
1695 let insertEnd = dart.notNull(start) + dart.notNull(insertLength); 1777 let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
1696 let newLength = dart.notNull(this[core.$length]) - dart.notNull(delta) ; 1778 let newLength = dart.notNull(this[core.$length]) - dart.notNull(delta) ;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
1738 } 1820 }
1739 } 1821 }
1740 for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) { 1822 for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
1741 if (dart.equals(this[core.$get](i), element)) { 1823 if (dart.equals(this[core.$get](i), element)) {
1742 return i; 1824 return i;
1743 } 1825 }
1744 } 1826 }
1745 return -1; 1827 return -1;
1746 } 1828 }
1747 [core.$insert](index, element) { 1829 [core.$insert](index, element) {
1830 dart.as(element, E);
1748 core.RangeError.checkValueInInterval(index, 0, this[core.$length], "inde x"); 1831 core.RangeError.checkValueInInterval(index, 0, this[core.$length], "inde x");
1749 if (index == this[core.$length]) { 1832 if (index == this[core.$length]) {
1750 this[core.$add](element); 1833 this[core.$add](element);
1751 return; 1834 return;
1752 } 1835 }
1753 if (!(typeof index == 'number')) 1836 if (!(typeof index == 'number'))
1754 throw new core.ArgumentError(index); 1837 throw new core.ArgumentError(index);
1755 let o = this; 1838 let o = this;
1756 o[core.$length] = dart.notNull(o[core.$length]) + 1; 1839 o[core.$length] = dart.notNull(o[core.$length]) + 1;
1757 this[core.$setRange](dart.notNull(index) + 1, this[core.$length], this, index); 1840 this[core.$setRange](dart.notNull(index) + 1, this[core.$length], this, index);
1758 this[core.$set](index, element); 1841 this[core.$set](index, element);
1759 } 1842 }
1760 [core.$removeAt](index) { 1843 [core.$removeAt](index) {
1761 let result = this[core.$get](index); 1844 let result = this[core.$get](index);
1762 this[core.$setRange](index, dart.notNull(this[core.$length]) - 1, this, dart.notNull(index) + 1); 1845 this[core.$setRange](index, dart.notNull(this[core.$length]) - 1, this, dart.notNull(index) + 1);
1763 this[core.$length] = dart.notNull(this[core.$length]) - 1; 1846 this[core.$length] = dart.notNull(this[core.$length]) - 1;
1764 return result; 1847 return result;
1765 } 1848 }
1766 [core.$insertAll](index, iterable) { 1849 [core.$insertAll](index, iterable) {
1850 dart.as(iterable, core.Iterable$(E));
1767 core.RangeError.checkValueInInterval(index, 0, this[core.$length], "inde x"); 1851 core.RangeError.checkValueInInterval(index, 0, this[core.$length], "inde x");
1768 if (dart.is(iterable, _internal.EfficientLength)) { 1852 if (dart.is(iterable, _internal.EfficientLength)) {
1769 iterable = iterable[core.$toList](); 1853 iterable = iterable[core.$toList]();
1770 } 1854 }
1771 let insertionLength = iterable[core.$length]; 1855 let insertionLength = iterable[core.$length];
1772 let o = this; 1856 let o = this;
1773 o[core.$length] = dart.notNull(o[core.$length]) + dart.notNull(insertion Length); 1857 o[core.$length] = dart.notNull(o[core.$length]) + dart.notNull(insertion Length);
1774 this[core.$setRange](dart.notNull(index) + dart.notNull(insertionLength) , this[core.$length], this, index); 1858 this[core.$setRange](dart.notNull(index) + dart.notNull(insertionLength) , this[core.$length], this, index);
1775 this[core.$setAll](index, iterable); 1859 this[core.$setAll](index, iterable);
1776 } 1860 }
1777 [core.$setAll](index, iterable) { 1861 [core.$setAll](index, iterable) {
1862 dart.as(iterable, core.Iterable$(E));
1778 if (dart.is(iterable, core.List)) { 1863 if (dart.is(iterable, core.List)) {
1779 this[core.$setRange](index, dart.notNull(index) + dart.notNull(iterabl e[core.$length]), iterable); 1864 this[core.$setRange](index, dart.notNull(index) + dart.notNull(iterabl e[core.$length]), iterable);
1780 } else { 1865 } else {
1781 for (let element of iterable) { 1866 for (let element of iterable) {
1782 this[core.$set]((() => { 1867 this[core.$set]((() => {
1783 let x = index; 1868 let x = index;
1784 index = dart.notNull(x) + 1; 1869 index = dart.notNull(x) + 1;
1785 return x; 1870 return x;
1786 })(), element); 1871 })(), element);
1787 } 1872 }
(...skipping 15 matching lines...) Expand all
1803 static listToString(list) { 1888 static listToString(list) {
1804 return IterableBase.iterableToFullString(list, '[', ']'); 1889 return IterableBase.iterableToFullString(list, '[', ']');
1805 } 1890 }
1806 } 1891 }
1807 return ListBase; 1892 return ListBase;
1808 }); 1893 });
1809 let ListBase = ListBase$(); 1894 let ListBase = ListBase$();
1810 let MapMixin$ = dart.generic(function(K, V) { 1895 let MapMixin$ = dart.generic(function(K, V) {
1811 class MapMixin extends core.Object { 1896 class MapMixin extends core.Object {
1812 forEach(action) { 1897 forEach(action) {
1898 dart.as(action, dart.functionType(dart.void, [K, V]));
1813 for (let key of this.keys) { 1899 for (let key of this.keys) {
1814 action(key, this.get(key)); 1900 action(key, this.get(key));
1815 } 1901 }
1816 } 1902 }
1817 addAll(other) { 1903 addAll(other) {
1904 dart.as(other, core.Map$(K, V));
1818 for (let key of other.keys) { 1905 for (let key of other.keys) {
1819 this.set(key, other.get(key)); 1906 this.set(key, other.get(key));
1820 } 1907 }
1821 } 1908 }
1822 containsValue(value) { 1909 containsValue(value) {
1910 dart.as(value, V);
1823 for (let key of this.keys) { 1911 for (let key of this.keys) {
1824 if (dart.equals(this.get(key), value)) 1912 if (dart.equals(this.get(key), value))
1825 return true; 1913 return true;
1826 } 1914 }
1827 return false; 1915 return false;
1828 } 1916 }
1829 putIfAbsent(key, ifAbsent) { 1917 putIfAbsent(key, ifAbsent) {
1918 dart.as(key, K);
1919 dart.as(ifAbsent, dart.functionType(V, []));
1830 if (this.keys[core.$contains](key)) { 1920 if (this.keys[core.$contains](key)) {
1831 return this.get(key); 1921 return this.get(key);
1832 } 1922 }
1833 return this.set(key, ifAbsent()); 1923 return this.set(key, ifAbsent());
1834 } 1924 }
1835 containsKey(key) { 1925 containsKey(key) {
1836 return this.keys[core.$contains](key); 1926 return this.keys[core.$contains](key);
1837 } 1927 }
1838 get length() { 1928 get length() {
1839 return this.keys[core.$length]; 1929 return this.keys[core.$length];
(...skipping 16 matching lines...) Expand all
1856 }); 1946 });
1857 let MapMixin = MapMixin$(); 1947 let MapMixin = MapMixin$();
1858 let MapBase$ = dart.generic(function(K, V) { 1948 let MapBase$ = dart.generic(function(K, V) {
1859 class MapBase extends dart.mixin(core.Object, MapMixin$(K, V)) {} 1949 class MapBase extends dart.mixin(core.Object, MapMixin$(K, V)) {}
1860 return MapBase; 1950 return MapBase;
1861 }); 1951 });
1862 let MapBase = MapBase$(); 1952 let MapBase = MapBase$();
1863 let _UnmodifiableMapMixin$ = dart.generic(function(K, V) { 1953 let _UnmodifiableMapMixin$ = dart.generic(function(K, V) {
1864 class _UnmodifiableMapMixin extends core.Object { 1954 class _UnmodifiableMapMixin extends core.Object {
1865 set(key, value) { 1955 set(key, value) {
1956 dart.as(key, K);
1957 dart.as(value, V);
1866 throw new core.UnsupportedError("Cannot modify unmodifiable map"); 1958 throw new core.UnsupportedError("Cannot modify unmodifiable map");
1867 } 1959 }
1868 addAll(other) { 1960 addAll(other) {
1961 dart.as(other, core.Map$(K, V));
1869 throw new core.UnsupportedError("Cannot modify unmodifiable map"); 1962 throw new core.UnsupportedError("Cannot modify unmodifiable map");
1870 } 1963 }
1871 clear() { 1964 clear() {
1872 throw new core.UnsupportedError("Cannot modify unmodifiable map"); 1965 throw new core.UnsupportedError("Cannot modify unmodifiable map");
1873 } 1966 }
1874 remove(key) { 1967 remove(key) {
1875 throw new core.UnsupportedError("Cannot modify unmodifiable map"); 1968 throw new core.UnsupportedError("Cannot modify unmodifiable map");
1876 } 1969 }
1877 putIfAbsent(key, ifAbsent) { 1970 putIfAbsent(key, ifAbsent) {
1971 dart.as(key, K);
1972 dart.as(ifAbsent, dart.functionType(V, []));
1878 throw new core.UnsupportedError("Cannot modify unmodifiable map"); 1973 throw new core.UnsupportedError("Cannot modify unmodifiable map");
1879 } 1974 }
1880 } 1975 }
1881 _UnmodifiableMapMixin[dart.implements] = () => [core.Map$(K, V)]; 1976 _UnmodifiableMapMixin[dart.implements] = () => [core.Map$(K, V)];
1882 return _UnmodifiableMapMixin; 1977 return _UnmodifiableMapMixin;
1883 }); 1978 });
1884 let _UnmodifiableMapMixin = _UnmodifiableMapMixin$(); 1979 let _UnmodifiableMapMixin = _UnmodifiableMapMixin$();
1885 let UnmodifiableMapBase$ = dart.generic(function(K, V) { 1980 let UnmodifiableMapBase$ = dart.generic(function(K, V) {
1886 class UnmodifiableMapBase extends dart.mixin(MapBase$(K, V), _UnmodifiableMa pMixin$(K, V)) {} 1981 class UnmodifiableMapBase extends dart.mixin(MapBase$(K, V), _UnmodifiableMa pMixin$(K, V)) {}
1887 return UnmodifiableMapBase; 1982 return UnmodifiableMapBase;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
1946 let _MapBaseValueIterator = _MapBaseValueIterator$(); 2041 let _MapBaseValueIterator = _MapBaseValueIterator$();
1947 let MapView$ = dart.generic(function(K, V) { 2042 let MapView$ = dart.generic(function(K, V) {
1948 class MapView extends core.Object { 2043 class MapView extends core.Object {
1949 MapView(map) { 2044 MapView(map) {
1950 this[_map] = map; 2045 this[_map] = map;
1951 } 2046 }
1952 get(key) { 2047 get(key) {
1953 return this[_map].get(key); 2048 return this[_map].get(key);
1954 } 2049 }
1955 set(key, value) { 2050 set(key, value) {
2051 dart.as(key, K);
2052 dart.as(value, V);
1956 this[_map].set(key, value); 2053 this[_map].set(key, value);
1957 } 2054 }
1958 addAll(other) { 2055 addAll(other) {
2056 dart.as(other, core.Map$(K, V));
1959 this[_map].addAll(other); 2057 this[_map].addAll(other);
1960 } 2058 }
1961 clear() { 2059 clear() {
1962 this[_map].clear(); 2060 this[_map].clear();
1963 } 2061 }
1964 putIfAbsent(key, ifAbsent) { 2062 putIfAbsent(key, ifAbsent) {
2063 dart.as(key, K);
2064 dart.as(ifAbsent, dart.functionType(V, []));
1965 return this[_map].putIfAbsent(key, ifAbsent); 2065 return this[_map].putIfAbsent(key, ifAbsent);
1966 } 2066 }
1967 containsKey(key) { 2067 containsKey(key) {
1968 return this[_map].containsKey(key); 2068 return this[_map].containsKey(key);
1969 } 2069 }
1970 containsValue(value) { 2070 containsValue(value) {
1971 return this[_map].containsValue(value); 2071 return this[_map].containsValue(value);
1972 } 2072 }
1973 forEach(action) { 2073 forEach(action) {
2074 dart.as(action, dart.functionType(dart.void, [K, V]));
1974 this[_map].forEach(action); 2075 this[_map].forEach(action);
1975 } 2076 }
1976 get isEmpty() { 2077 get isEmpty() {
1977 return this[_map].isEmpty; 2078 return this[_map].isEmpty;
1978 } 2079 }
1979 get isNotEmpty() { 2080 get isNotEmpty() {
1980 return this[_map].isNotEmpty; 2081 return this[_map].isNotEmpty;
1981 } 2082 }
1982 get length() { 2083 get length() {
1983 return this[_map].length; 2084 return this[_map].length;
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
2121 let _link = Symbol('_link'); 2222 let _link = Symbol('_link');
2122 let _asNonSentinelEntry = Symbol('_asNonSentinelEntry'); 2223 let _asNonSentinelEntry = Symbol('_asNonSentinelEntry');
2123 let DoubleLinkedQueueEntry$ = dart.generic(function(E) { 2224 let DoubleLinkedQueueEntry$ = dart.generic(function(E) {
2124 class DoubleLinkedQueueEntry extends core.Object { 2225 class DoubleLinkedQueueEntry extends core.Object {
2125 DoubleLinkedQueueEntry(e) { 2226 DoubleLinkedQueueEntry(e) {
2126 this[_element] = e; 2227 this[_element] = e;
2127 this[_previous] = null; 2228 this[_previous] = null;
2128 this[_next] = null; 2229 this[_next] = null;
2129 } 2230 }
2130 [_link](previous, next) { 2231 [_link](previous, next) {
2232 dart.as(previous, DoubleLinkedQueueEntry$(E));
2233 dart.as(next, DoubleLinkedQueueEntry$(E));
2131 this[_next] = next; 2234 this[_next] = next;
2132 this[_previous] = previous; 2235 this[_previous] = previous;
2133 previous[_next] = this; 2236 previous[_next] = this;
2134 next[_previous] = this; 2237 next[_previous] = this;
2135 } 2238 }
2136 append(e) { 2239 append(e) {
2240 dart.as(e, E);
2137 new (DoubleLinkedQueueEntry$(E))(e)[_link](this, this[_next]); 2241 new (DoubleLinkedQueueEntry$(E))(e)[_link](this, this[_next]);
2138 } 2242 }
2139 prepend(e) { 2243 prepend(e) {
2244 dart.as(e, E);
2140 new (DoubleLinkedQueueEntry$(E))(e)[_link](this[_previous], this); 2245 new (DoubleLinkedQueueEntry$(E))(e)[_link](this[_previous], this);
2141 } 2246 }
2142 remove() { 2247 remove() {
2143 this[_previous][_next] = this[_next]; 2248 this[_previous][_next] = this[_next];
2144 this[_next][_previous] = this[_previous]; 2249 this[_next][_previous] = this[_previous];
2145 this[_next] = null; 2250 this[_next] = null;
2146 this[_previous] = null; 2251 this[_previous] = null;
2147 return this[_element]; 2252 return this[_element];
2148 } 2253 }
2149 [_asNonSentinelEntry]() { 2254 [_asNonSentinelEntry]() {
2150 return this; 2255 return this;
2151 } 2256 }
2152 previousEntry() { 2257 previousEntry() {
2153 return this[_previous][_asNonSentinelEntry](); 2258 return this[_previous][_asNonSentinelEntry]();
2154 } 2259 }
2155 nextEntry() { 2260 nextEntry() {
2156 return this[_next][_asNonSentinelEntry](); 2261 return this[_next][_asNonSentinelEntry]();
2157 } 2262 }
2158 get element() { 2263 get element() {
2159 return this[_element]; 2264 return this[_element];
2160 } 2265 }
2161 set element(e) { 2266 set element(e) {
2267 dart.as(e, E);
2162 this[_element] = e; 2268 this[_element] = e;
2163 } 2269 }
2164 } 2270 }
2165 return DoubleLinkedQueueEntry; 2271 return DoubleLinkedQueueEntry;
2166 }); 2272 });
2167 let DoubleLinkedQueueEntry = DoubleLinkedQueueEntry$(); 2273 let DoubleLinkedQueueEntry = DoubleLinkedQueueEntry$();
2168 let _DoubleLinkedQueueEntrySentinel$ = dart.generic(function(E) { 2274 let _DoubleLinkedQueueEntrySentinel$ = dart.generic(function(E) {
2169 class _DoubleLinkedQueueEntrySentinel extends DoubleLinkedQueueEntry$(E) { 2275 class _DoubleLinkedQueueEntrySentinel extends DoubleLinkedQueueEntry$(E) {
2170 _DoubleLinkedQueueEntrySentinel() { 2276 _DoubleLinkedQueueEntrySentinel() {
2171 super.DoubleLinkedQueueEntry(null); 2277 super.DoubleLinkedQueueEntry(null);
2172 this[_link](this, this); 2278 this[_link](this, this);
2173 } 2279 }
2174 remove() { 2280 remove() {
2175 throw _internal.IterableElementError.noElement(); 2281 throw _internal.IterableElementError.noElement();
2176 } 2282 }
2177 [_asNonSentinelEntry]() { 2283 [_asNonSentinelEntry]() {
2178 return null; 2284 return null;
2179 } 2285 }
2180 set element(e) { 2286 set element(e) {
2287 dart.as(e, E);
2181 dart.assert(false); 2288 dart.assert(false);
2182 } 2289 }
2183 get element() { 2290 get element() {
2184 throw _internal.IterableElementError.noElement(); 2291 throw _internal.IterableElementError.noElement();
2185 } 2292 }
2186 } 2293 }
2187 return _DoubleLinkedQueueEntrySentinel; 2294 return _DoubleLinkedQueueEntrySentinel;
2188 }); 2295 });
2189 let _DoubleLinkedQueueEntrySentinel = _DoubleLinkedQueueEntrySentinel$(); 2296 let _DoubleLinkedQueueEntrySentinel = _DoubleLinkedQueueEntrySentinel$();
2190 let _sentinel = Symbol('_sentinel'); 2297 let _sentinel = Symbol('_sentinel');
(...skipping 11 matching lines...) Expand all
2202 let list = new (DoubleLinkedQueue$(E))(); 2309 let list = new (DoubleLinkedQueue$(E))();
2203 for (let e of dart.as(elements, core.Iterable$(E))) { 2310 for (let e of dart.as(elements, core.Iterable$(E))) {
2204 list.addLast(e); 2311 list.addLast(e);
2205 } 2312 }
2206 return dart.as(list, DoubleLinkedQueue$(E)); 2313 return dart.as(list, DoubleLinkedQueue$(E));
2207 } 2314 }
2208 get [core.$length]() { 2315 get [core.$length]() {
2209 return this[_elementCount]; 2316 return this[_elementCount];
2210 } 2317 }
2211 addLast(value) { 2318 addLast(value) {
2319 dart.as(value, E);
2212 this[_sentinel].prepend(value); 2320 this[_sentinel].prepend(value);
2213 this[_elementCount] = dart.notNull(this[_elementCount]) + 1; 2321 this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
2214 } 2322 }
2215 addFirst(value) { 2323 addFirst(value) {
2324 dart.as(value, E);
2216 this[_sentinel].append(value); 2325 this[_sentinel].append(value);
2217 this[_elementCount] = dart.notNull(this[_elementCount]) + 1; 2326 this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
2218 } 2327 }
2219 add(value) { 2328 add(value) {
2329 dart.as(value, E);
2220 this[_sentinel].prepend(value); 2330 this[_sentinel].prepend(value);
2221 this[_elementCount] = dart.notNull(this[_elementCount]) + 1; 2331 this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
2222 } 2332 }
2223 addAll(iterable) { 2333 addAll(iterable) {
2334 dart.as(iterable, core.Iterable$(E));
2224 for (let value of iterable) { 2335 for (let value of iterable) {
2225 this[_sentinel].prepend(value); 2336 this[_sentinel].prepend(value);
2226 this[_elementCount] = dart.notNull(this[_elementCount]) + 1; 2337 this[_elementCount] = dart.notNull(this[_elementCount]) + 1;
2227 } 2338 }
2228 } 2339 }
2229 removeLast() { 2340 removeLast() {
2230 let result = this[_sentinel][_previous].remove(); 2341 let result = this[_sentinel][_previous].remove();
2231 this[_elementCount] = dart.notNull(this[_elementCount]) - 1; 2342 this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
2232 return result; 2343 return result;
2233 } 2344 }
2234 removeFirst() { 2345 removeFirst() {
2235 let result = this[_sentinel][_next].remove(); 2346 let result = this[_sentinel][_next].remove();
2236 this[_elementCount] = dart.notNull(this[_elementCount]) - 1; 2347 this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
2237 return result; 2348 return result;
2238 } 2349 }
2239 remove(o) { 2350 remove(o) {
2240 let entry = this[_sentinel][_next]; 2351 let entry = this[_sentinel][_next];
2241 while (!dart.notNull(core.identical(entry, this[_sentinel]))) { 2352 while (!dart.notNull(core.identical(entry, this[_sentinel]))) {
2242 if (dart.equals(entry.element, o)) { 2353 if (dart.equals(entry.element, o)) {
2243 entry.remove(); 2354 entry.remove();
2244 this[_elementCount] = dart.notNull(this[_elementCount]) - 1; 2355 this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
2245 return true; 2356 return true;
2246 } 2357 }
2247 entry = entry[_next]; 2358 entry = entry[_next];
2248 } 2359 }
2249 return false; 2360 return false;
2250 } 2361 }
2251 [_filter](test, removeMatching) { 2362 [_filter](test, removeMatching) {
2363 dart.as(test, dart.functionType(core.bool, [E]));
2252 let entry = this[_sentinel][_next]; 2364 let entry = this[_sentinel][_next];
2253 while (!dart.notNull(core.identical(entry, this[_sentinel]))) { 2365 while (!dart.notNull(core.identical(entry, this[_sentinel]))) {
2254 let next = entry[_next]; 2366 let next = entry[_next];
2255 if (core.identical(removeMatching, test(entry.element))) { 2367 if (core.identical(removeMatching, test(entry.element))) {
2256 entry.remove(); 2368 entry.remove();
2257 this[_elementCount] = dart.notNull(this[_elementCount]) - 1; 2369 this[_elementCount] = dart.notNull(this[_elementCount]) - 1;
2258 } 2370 }
2259 entry = next; 2371 entry = next;
2260 } 2372 }
2261 } 2373 }
2262 removeWhere(test) { 2374 removeWhere(test) {
2375 dart.as(test, dart.functionType(core.bool, [E]));
2263 this[_filter](test, true); 2376 this[_filter](test, true);
2264 } 2377 }
2265 retainWhere(test) { 2378 retainWhere(test) {
2379 dart.as(test, dart.functionType(core.bool, [E]));
2266 this[_filter](test, false); 2380 this[_filter](test, false);
2267 } 2381 }
2268 get [core.$first]() { 2382 get [core.$first]() {
2269 return this[_sentinel][_next].element; 2383 return this[_sentinel][_next].element;
2270 } 2384 }
2271 get [core.$last]() { 2385 get [core.$last]() {
2272 return this[_sentinel][_previous].element; 2386 return this[_sentinel][_previous].element;
2273 } 2387 }
2274 get [core.$single]() { 2388 get [core.$single]() {
2275 if (core.identical(this[_sentinel][_next], this[_sentinel][_previous])) { 2389 if (core.identical(this[_sentinel][_next], this[_sentinel][_previous])) {
2276 return this[_sentinel][_next].element; 2390 return this[_sentinel][_next].element;
2277 } 2391 }
2278 throw _internal.IterableElementError.tooMany(); 2392 throw _internal.IterableElementError.tooMany();
2279 } 2393 }
2280 lastEntry() { 2394 lastEntry() {
2281 return this[_sentinel].previousEntry(); 2395 return this[_sentinel].previousEntry();
2282 } 2396 }
2283 firstEntry() { 2397 firstEntry() {
2284 return this[_sentinel].nextEntry(); 2398 return this[_sentinel].nextEntry();
2285 } 2399 }
2286 get [core.$isEmpty]() { 2400 get [core.$isEmpty]() {
2287 return core.identical(this[_sentinel][_next], this[_sentinel]); 2401 return core.identical(this[_sentinel][_next], this[_sentinel]);
2288 } 2402 }
2289 clear() { 2403 clear() {
2290 this[_sentinel][_next] = this[_sentinel]; 2404 this[_sentinel][_next] = this[_sentinel];
2291 this[_sentinel][_previous] = this[_sentinel]; 2405 this[_sentinel][_previous] = this[_sentinel];
2292 this[_elementCount] = 0; 2406 this[_elementCount] = 0;
2293 } 2407 }
2294 forEachEntry(f) { 2408 forEachEntry(f) {
2409 dart.as(f, dart.functionType(dart.void, [DoubleLinkedQueueEntry$(E)]));
2295 let entry = this[_sentinel][_next]; 2410 let entry = this[_sentinel][_next];
2296 while (!dart.notNull(core.identical(entry, this[_sentinel]))) { 2411 while (!dart.notNull(core.identical(entry, this[_sentinel]))) {
2297 let nextEntry = entry[_next]; 2412 let nextEntry = entry[_next];
2298 f(entry); 2413 f(entry);
2299 entry = nextEntry; 2414 entry = nextEntry;
2300 } 2415 }
2301 } 2416 }
2302 get [core.$iterator]() { 2417 get [core.$iterator]() {
2303 return new (_DoubleLinkedQueueIterator$(E))(this[_sentinel]); 2418 return new (_DoubleLinkedQueueIterator$(E))(this[_sentinel]);
2304 } 2419 }
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
2383 for (let element of dart.as(elements, core.Iterable$(E))) { 2498 for (let element of dart.as(elements, core.Iterable$(E))) {
2384 result.addLast(element); 2499 result.addLast(element);
2385 } 2500 }
2386 return result; 2501 return result;
2387 } 2502 }
2388 } 2503 }
2389 get [core.$iterator]() { 2504 get [core.$iterator]() {
2390 return new (_ListQueueIterator$(E))(this); 2505 return new (_ListQueueIterator$(E))(this);
2391 } 2506 }
2392 [core.$forEach](action) { 2507 [core.$forEach](action) {
2508 dart.as(action, dart.functionType(dart.void, [E]));
2393 let modificationCount = this[_modificationCount]; 2509 let modificationCount = this[_modificationCount];
2394 for (let i = this[_head]; i != this[_tail]; i = dart.notNull(i) + 1 & da rt.notNull(this[_table][core.$length]) - 1) { 2510 for (let i = this[_head]; i != this[_tail]; i = dart.notNull(i) + 1 & da rt.notNull(this[_table][core.$length]) - 1) {
2395 action(this[_table][core.$get](i)); 2511 action(this[_table][core.$get](i));
2396 this[_checkModification](modificationCount); 2512 this[_checkModification](modificationCount);
2397 } 2513 }
2398 } 2514 }
2399 get [core.$isEmpty]() { 2515 get [core.$isEmpty]() {
2400 return this[_head] == this[_tail]; 2516 return this[_head] == this[_tail];
2401 } 2517 }
2402 get [core.$length]() { 2518 get [core.$length]() {
(...skipping 26 matching lines...) Expand all
2429 if (growable) { 2545 if (growable) {
2430 list = new (core.List$(E))(); 2546 list = new (core.List$(E))();
2431 list[core.$length] = this[core.$length]; 2547 list[core.$length] = this[core.$length];
2432 } else { 2548 } else {
2433 list = new (core.List$(E))(this[core.$length]); 2549 list = new (core.List$(E))(this[core.$length]);
2434 } 2550 }
2435 this[_writeToList](list); 2551 this[_writeToList](list);
2436 return list; 2552 return list;
2437 } 2553 }
2438 add(element) { 2554 add(element) {
2555 dart.as(element, E);
2439 this[_add](element); 2556 this[_add](element);
2440 } 2557 }
2441 addAll(elements) { 2558 addAll(elements) {
2559 dart.as(elements, core.Iterable$(E));
2442 if (dart.is(elements, core.List)) { 2560 if (dart.is(elements, core.List)) {
2443 let list = dart.as(elements, core.List); 2561 let list = dart.as(elements, core.List);
2444 let addCount = list[core.$length]; 2562 let addCount = list[core.$length];
2445 let length = this[core.$length]; 2563 let length = this[core.$length];
2446 if (dart.notNull(length) + dart.notNull(addCount) >= dart.notNull(this [_table][core.$length])) { 2564 if (dart.notNull(length) + dart.notNull(addCount) >= dart.notNull(this [_table][core.$length])) {
2447 this[_preGrow](dart.notNull(length) + dart.notNull(addCount)); 2565 this[_preGrow](dart.notNull(length) + dart.notNull(addCount));
2448 this[_table][core.$setRange](length, dart.notNull(length) + dart.not Null(addCount), dart.as(list, core.Iterable$(E)), 0); 2566 this[_table][core.$setRange](length, dart.notNull(length) + dart.not Null(addCount), dart.as(list, core.Iterable$(E)), 0);
2449 this[_tail] = dart.notNull(this[_tail]) + dart.notNull(addCount); 2567 this[_tail] = dart.notNull(this[_tail]) + dart.notNull(addCount);
2450 } else { 2568 } else {
2451 let endSpace = dart.notNull(this[_table][core.$length]) - dart.notNu ll(this[_tail]); 2569 let endSpace = dart.notNull(this[_table][core.$length]) - dart.notNu ll(this[_tail]);
(...skipping 18 matching lines...) Expand all
2470 let element = this[_table][core.$get](i); 2588 let element = this[_table][core.$get](i);
2471 if (dart.equals(element, object)) { 2589 if (dart.equals(element, object)) {
2472 this[_remove](i); 2590 this[_remove](i);
2473 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 2591 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
2474 return true; 2592 return true;
2475 } 2593 }
2476 } 2594 }
2477 return false; 2595 return false;
2478 } 2596 }
2479 [_filterWhere](test, removeMatching) { 2597 [_filterWhere](test, removeMatching) {
2598 dart.as(test, dart.functionType(core.bool, [E]));
2480 let index = this[_head]; 2599 let index = this[_head];
2481 let modificationCount = this[_modificationCount]; 2600 let modificationCount = this[_modificationCount];
2482 let i = this[_head]; 2601 let i = this[_head];
2483 while (i != this[_tail]) { 2602 while (i != this[_tail]) {
2484 let element = this[_table][core.$get](i); 2603 let element = this[_table][core.$get](i);
2485 let remove = core.identical(removeMatching, test(element)); 2604 let remove = core.identical(removeMatching, test(element));
2486 this[_checkModification](modificationCount); 2605 this[_checkModification](modificationCount);
2487 if (remove) { 2606 if (remove) {
2488 i = this[_remove](i); 2607 i = this[_remove](i);
2489 modificationCount = this[_modificationCount] = dart.notNull(this[_mo dificationCount]) + 1; 2608 modificationCount = this[_modificationCount] = dart.notNull(this[_mo dificationCount]) + 1;
2490 } else { 2609 } else {
2491 i = dart.notNull(i) + 1 & dart.notNull(this[_table][core.$length]) - 1; 2610 i = dart.notNull(i) + 1 & dart.notNull(this[_table][core.$length]) - 1;
2492 } 2611 }
2493 } 2612 }
2494 } 2613 }
2495 removeWhere(test) { 2614 removeWhere(test) {
2615 dart.as(test, dart.functionType(core.bool, [E]));
2496 this[_filterWhere](test, true); 2616 this[_filterWhere](test, true);
2497 } 2617 }
2498 retainWhere(test) { 2618 retainWhere(test) {
2619 dart.as(test, dart.functionType(core.bool, [E]));
2499 this[_filterWhere](test, false); 2620 this[_filterWhere](test, false);
2500 } 2621 }
2501 clear() { 2622 clear() {
2502 if (this[_head] != this[_tail]) { 2623 if (this[_head] != this[_tail]) {
2503 for (let i = this[_head]; i != this[_tail]; i = dart.notNull(i) + 1 & dart.notNull(this[_table][core.$length]) - 1) { 2624 for (let i = this[_head]; i != this[_tail]; i = dart.notNull(i) + 1 & dart.notNull(this[_table][core.$length]) - 1) {
2504 this[_table][core.$set](i, null); 2625 this[_table][core.$set](i, null);
2505 } 2626 }
2506 this[_head] = this[_tail] = 0; 2627 this[_head] = this[_tail] = 0;
2507 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 2628 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
2508 } 2629 }
2509 } 2630 }
2510 toString() { 2631 toString() {
2511 return IterableBase.iterableToFullString(this, "{", "}"); 2632 return IterableBase.iterableToFullString(this, "{", "}");
2512 } 2633 }
2513 addLast(element) { 2634 addLast(element) {
2635 dart.as(element, E);
2514 this[_add](element); 2636 this[_add](element);
2515 } 2637 }
2516 addFirst(element) { 2638 addFirst(element) {
2639 dart.as(element, E);
2517 this[_head] = dart.notNull(this[_head]) - 1 & dart.notNull(this[_table][ core.$length]) - 1; 2640 this[_head] = dart.notNull(this[_head]) - 1 & dart.notNull(this[_table][ core.$length]) - 1;
2518 this[_table][core.$set](this[_head], element); 2641 this[_table][core.$set](this[_head], element);
2519 if (this[_head] == this[_tail]) 2642 if (this[_head] == this[_tail])
2520 this[_grow](); 2643 this[_grow]();
2521 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 2644 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
2522 } 2645 }
2523 removeFirst() { 2646 removeFirst() {
2524 if (this[_head] == this[_tail]) 2647 if (this[_head] == this[_tail])
2525 throw _internal.IterableElementError.noElement(); 2648 throw _internal.IterableElementError.noElement();
2526 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 2649 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
(...skipping 23 matching lines...) Expand all
2550 return number; 2673 return number;
2551 number = nextNumber; 2674 number = nextNumber;
2552 } 2675 }
2553 } 2676 }
2554 [_checkModification](expectedModificationCount) { 2677 [_checkModification](expectedModificationCount) {
2555 if (expectedModificationCount != this[_modificationCount]) { 2678 if (expectedModificationCount != this[_modificationCount]) {
2556 throw new core.ConcurrentModificationError(this); 2679 throw new core.ConcurrentModificationError(this);
2557 } 2680 }
2558 } 2681 }
2559 [_add](element) { 2682 [_add](element) {
2683 dart.as(element, E);
2560 this[_table][core.$set](this[_tail], element); 2684 this[_table][core.$set](this[_tail], element);
2561 this[_tail] = dart.notNull(this[_tail]) + 1 & dart.notNull(this[_table][ core.$length]) - 1; 2685 this[_tail] = dart.notNull(this[_tail]) + 1 & dart.notNull(this[_table][ core.$length]) - 1;
2562 if (this[_head] == this[_tail]) 2686 if (this[_head] == this[_tail])
2563 this[_grow](); 2687 this[_grow]();
2564 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 2688 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
2565 } 2689 }
2566 [_remove](offset) { 2690 [_remove](offset) {
2567 let mask = dart.notNull(this[_table][core.$length]) - 1; 2691 let mask = dart.notNull(this[_table][core.$length]) - 1;
2568 let startDistance = dart.notNull(offset) - dart.notNull(this[_head]) & d art.notNull(mask); 2692 let startDistance = dart.notNull(offset) - dart.notNull(this[_head]) & d art.notNull(mask);
2569 let endDistance = dart.notNull(this[_tail]) - dart.notNull(offset) & dar t.notNull(mask); 2693 let endDistance = dart.notNull(this[_tail]) - dart.notNull(offset) & dar t.notNull(mask);
(...skipping 22 matching lines...) Expand all
2592 [_grow]() { 2716 [_grow]() {
2593 let newTable = new (core.List$(E))(dart.notNull(this[_table][core.$lengt h]) * 2); 2717 let newTable = new (core.List$(E))(dart.notNull(this[_table][core.$lengt h]) * 2);
2594 let split = dart.notNull(this[_table][core.$length]) - dart.notNull(this [_head]); 2718 let split = dart.notNull(this[_table][core.$length]) - dart.notNull(this [_head]);
2595 newTable[core.$setRange](0, split, this[_table], this[_head]); 2719 newTable[core.$setRange](0, split, this[_table], this[_head]);
2596 newTable[core.$setRange](split, dart.notNull(split) + dart.notNull(this[ _head]), this[_table], 0); 2720 newTable[core.$setRange](split, dart.notNull(split) + dart.notNull(this[ _head]), this[_table], 0);
2597 this[_head] = 0; 2721 this[_head] = 0;
2598 this[_tail] = this[_table][core.$length]; 2722 this[_tail] = this[_table][core.$length];
2599 this[_table] = newTable; 2723 this[_table] = newTable;
2600 } 2724 }
2601 [_writeToList](target) { 2725 [_writeToList](target) {
2726 dart.as(target, core.List$(E));
2602 dart.assert(dart.notNull(target[core.$length]) >= dart.notNull(this[core .$length])); 2727 dart.assert(dart.notNull(target[core.$length]) >= dart.notNull(this[core .$length]));
2603 if (dart.notNull(this[_head]) <= dart.notNull(this[_tail])) { 2728 if (dart.notNull(this[_head]) <= dart.notNull(this[_tail])) {
2604 let length = dart.notNull(this[_tail]) - dart.notNull(this[_head]); 2729 let length = dart.notNull(this[_tail]) - dart.notNull(this[_head]);
2605 target[core.$setRange](0, length, this[_table], this[_head]); 2730 target[core.$setRange](0, length, this[_table], this[_head]);
2606 return length; 2731 return length;
2607 } else { 2732 } else {
2608 let firstPartSize = dart.notNull(this[_table][core.$length]) - dart.no tNull(this[_head]); 2733 let firstPartSize = dart.notNull(this[_table][core.$length]) - dart.no tNull(this[_head]);
2609 target[core.$setRange](0, firstPartSize, this[_table], this[_head]); 2734 target[core.$setRange](0, firstPartSize, this[_table], this[_head]);
2610 target[core.$setRange](firstPartSize, dart.notNull(firstPartSize) + da rt.notNull(this[_tail]), this[_table], 0); 2735 target[core.$setRange](firstPartSize, dart.notNull(firstPartSize) + da rt.notNull(this[_tail]), this[_table], 0);
2611 return dart.notNull(this[_tail]) + dart.notNull(firstPartSize); 2736 return dart.notNull(this[_tail]) + dart.notNull(firstPartSize);
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
2698 let _SplayTree$ = dart.generic(function(K) { 2823 let _SplayTree$ = dart.generic(function(K) {
2699 class _SplayTree extends core.Object { 2824 class _SplayTree extends core.Object {
2700 _SplayTree() { 2825 _SplayTree() {
2701 this[_dummy] = new (_SplayTreeNode$(K))(null); 2826 this[_dummy] = new (_SplayTreeNode$(K))(null);
2702 this[_root] = null; 2827 this[_root] = null;
2703 this[_count] = 0; 2828 this[_count] = 0;
2704 this[_modificationCount] = 0; 2829 this[_modificationCount] = 0;
2705 this[_splayCount] = 0; 2830 this[_splayCount] = 0;
2706 } 2831 }
2707 [_splay](key) { 2832 [_splay](key) {
2833 dart.as(key, K);
2708 if (this[_root] == null) 2834 if (this[_root] == null)
2709 return -1; 2835 return -1;
2710 let left = this[_dummy]; 2836 let left = this[_dummy];
2711 let right = this[_dummy]; 2837 let right = this[_dummy];
2712 let current = this[_root]; 2838 let current = this[_root];
2713 let comp = null; 2839 let comp = null;
2714 while (true) { 2840 while (true) {
2715 comp = this[_compare](current.key, key); 2841 comp = this[_compare](current.key, key);
2716 if (dart.notNull(comp) > 0) { 2842 if (dart.notNull(comp) > 0) {
2717 if (current.left == null) 2843 if (current.left == null)
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
2751 right.left = current.right; 2877 right.left = current.right;
2752 current.left = this[_dummy].right; 2878 current.left = this[_dummy].right;
2753 current.right = this[_dummy].left; 2879 current.right = this[_dummy].left;
2754 this[_root] = current; 2880 this[_root] = current;
2755 this[_dummy].right = null; 2881 this[_dummy].right = null;
2756 this[_dummy].left = null; 2882 this[_dummy].left = null;
2757 this[_splayCount] = dart.notNull(this[_splayCount]) + 1; 2883 this[_splayCount] = dart.notNull(this[_splayCount]) + 1;
2758 return comp; 2884 return comp;
2759 } 2885 }
2760 [_splayMin](node) { 2886 [_splayMin](node) {
2887 dart.as(node, _SplayTreeNode$(K));
2761 let current = node; 2888 let current = node;
2762 while (current.left != null) { 2889 while (current.left != null) {
2763 let left = current.left; 2890 let left = current.left;
2764 current.left = left.right; 2891 current.left = left.right;
2765 left.right = current; 2892 left.right = current;
2766 current = left; 2893 current = left;
2767 } 2894 }
2768 return dart.as(current, _SplayTreeNode$(K)); 2895 return dart.as(current, _SplayTreeNode$(K));
2769 } 2896 }
2770 [_splayMax](node) { 2897 [_splayMax](node) {
2898 dart.as(node, _SplayTreeNode$(K));
2771 let current = node; 2899 let current = node;
2772 while (current.right != null) { 2900 while (current.right != null) {
2773 let right = current.right; 2901 let right = current.right;
2774 current.right = right.left; 2902 current.right = right.left;
2775 right.left = current; 2903 right.left = current;
2776 current = right; 2904 current = right;
2777 } 2905 }
2778 return dart.as(current, _SplayTreeNode$(K)); 2906 return dart.as(current, _SplayTreeNode$(K));
2779 } 2907 }
2780 [_remove](key) { 2908 [_remove](key) {
2909 dart.as(key, K);
2781 if (this[_root] == null) 2910 if (this[_root] == null)
2782 return null; 2911 return null;
2783 let comp = this[_splay](key); 2912 let comp = this[_splay](key);
2784 if (comp != 0) 2913 if (comp != 0)
2785 return null; 2914 return null;
2786 let result = this[_root]; 2915 let result = this[_root];
2787 this[_count] = dart.notNull(this[_count]) - 1; 2916 this[_count] = dart.notNull(this[_count]) - 1;
2788 if (this[_root].left == null) { 2917 if (this[_root].left == null) {
2789 this[_root] = this[_root].right; 2918 this[_root] = this[_root].right;
2790 } else { 2919 } else {
2791 let right = this[_root].right; 2920 let right = this[_root].right;
2792 this[_root] = this[_splayMax](this[_root].left); 2921 this[_root] = this[_splayMax](this[_root].left);
2793 this[_root].right = right; 2922 this[_root].right = right;
2794 } 2923 }
2795 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 2924 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
2796 return result; 2925 return result;
2797 } 2926 }
2798 [_addNewRoot](node, comp) { 2927 [_addNewRoot](node, comp) {
2928 dart.as(node, _SplayTreeNode$(K));
2799 this[_count] = dart.notNull(this[_count]) + 1; 2929 this[_count] = dart.notNull(this[_count]) + 1;
2800 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1; 2930 this[_modificationCount] = dart.notNull(this[_modificationCount]) + 1;
2801 if (this[_root] == null) { 2931 if (this[_root] == null) {
2802 this[_root] = node; 2932 this[_root] = node;
2803 return; 2933 return;
2804 } 2934 }
2805 if (dart.notNull(comp) < 0) { 2935 if (dart.notNull(comp) < 0) {
2806 node.left = this[_root]; 2936 node.left = this[_root];
2807 node.right = this[_root].right; 2937 node.right = this[_root].right;
2808 this[_root].right = null; 2938 this[_root].right = null;
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
2879 fromIterables(keys, values, compare, isValidKey) { 3009 fromIterables(keys, values, compare, isValidKey) {
2880 if (compare === void 0) 3010 if (compare === void 0)
2881 compare = null; 3011 compare = null;
2882 if (isValidKey === void 0) 3012 if (isValidKey === void 0)
2883 isValidKey = null; 3013 isValidKey = null;
2884 let map = new (SplayTreeMap$(K, V))(compare, isValidKey); 3014 let map = new (SplayTreeMap$(K, V))(compare, isValidKey);
2885 Maps._fillMapWithIterables(map, keys, values); 3015 Maps._fillMapWithIterables(map, keys, values);
2886 return map; 3016 return map;
2887 } 3017 }
2888 [_compare](key1, key2) { 3018 [_compare](key1, key2) {
3019 dart.as(key1, K);
3020 dart.as(key2, K);
2889 return this[_comparator](key1, key2); 3021 return this[_comparator](key1, key2);
2890 } 3022 }
2891 _internal() { 3023 _internal() {
2892 this[_comparator] = null; 3024 this[_comparator] = null;
2893 this[_validKey] = null; 3025 this[_validKey] = null;
2894 super._SplayTree(); 3026 super._SplayTree();
2895 } 3027 }
2896 get(key) { 3028 get(key) {
2897 if (key == null) 3029 if (key == null)
2898 throw new core.ArgumentError(key); 3030 throw new core.ArgumentError(key);
(...skipping 10 matching lines...) Expand all
2909 } 3041 }
2910 remove(key) { 3042 remove(key) {
2911 if (!dart.notNull(dart.dcall(this[_validKey], key))) 3043 if (!dart.notNull(dart.dcall(this[_validKey], key)))
2912 return null; 3044 return null;
2913 let mapRoot = dart.as(this[_remove](dart.as(key, K)), _SplayTreeMapNode) ; 3045 let mapRoot = dart.as(this[_remove](dart.as(key, K)), _SplayTreeMapNode) ;
2914 if (mapRoot != null) 3046 if (mapRoot != null)
2915 return dart.as(mapRoot.value, V); 3047 return dart.as(mapRoot.value, V);
2916 return null; 3048 return null;
2917 } 3049 }
2918 set(key, value) { 3050 set(key, value) {
3051 dart.as(key, K);
3052 dart.as(value, V);
2919 if (key == null) 3053 if (key == null)
2920 throw new core.ArgumentError(key); 3054 throw new core.ArgumentError(key);
2921 let comp = this[_splay](key); 3055 let comp = this[_splay](key);
2922 if (comp == 0) { 3056 if (comp == 0) {
2923 let mapRoot = dart.as(this[_root], _SplayTreeMapNode); 3057 let mapRoot = dart.as(this[_root], _SplayTreeMapNode);
2924 mapRoot.value = value; 3058 mapRoot.value = value;
2925 return; 3059 return;
2926 } 3060 }
2927 this[_addNewRoot](new (_SplayTreeMapNode$(K, dart.dynamic))(key, value), comp); 3061 this[_addNewRoot](new (_SplayTreeMapNode$(K, dart.dynamic))(key, value), comp);
2928 } 3062 }
2929 putIfAbsent(key, ifAbsent) { 3063 putIfAbsent(key, ifAbsent) {
3064 dart.as(key, K);
3065 dart.as(ifAbsent, dart.functionType(V, []));
2930 if (key == null) 3066 if (key == null)
2931 throw new core.ArgumentError(key); 3067 throw new core.ArgumentError(key);
2932 let comp = this[_splay](key); 3068 let comp = this[_splay](key);
2933 if (comp == 0) { 3069 if (comp == 0) {
2934 let mapRoot = dart.as(this[_root], _SplayTreeMapNode); 3070 let mapRoot = dart.as(this[_root], _SplayTreeMapNode);
2935 return dart.as(mapRoot.value, V); 3071 return dart.as(mapRoot.value, V);
2936 } 3072 }
2937 let modificationCount = this[_modificationCount]; 3073 let modificationCount = this[_modificationCount];
2938 let splayCount = this[_splayCount]; 3074 let splayCount = this[_splayCount];
2939 let value = ifAbsent(); 3075 let value = ifAbsent();
2940 if (modificationCount != this[_modificationCount]) { 3076 if (modificationCount != this[_modificationCount]) {
2941 throw new core.ConcurrentModificationError(this); 3077 throw new core.ConcurrentModificationError(this);
2942 } 3078 }
2943 if (splayCount != this[_splayCount]) { 3079 if (splayCount != this[_splayCount]) {
2944 comp = this[_splay](key); 3080 comp = this[_splay](key);
2945 dart.assert(comp != 0); 3081 dart.assert(comp != 0);
2946 } 3082 }
2947 this[_addNewRoot](new (_SplayTreeMapNode$(K, dart.dynamic))(key, value), comp); 3083 this[_addNewRoot](new (_SplayTreeMapNode$(K, dart.dynamic))(key, value), comp);
2948 return value; 3084 return value;
2949 } 3085 }
2950 addAll(other) { 3086 addAll(other) {
3087 dart.as(other, core.Map$(K, V));
2951 other.forEach(((key, value) => { 3088 other.forEach(((key, value) => {
3089 dart.as(key, K);
3090 dart.as(value, V);
2952 this.set(key, value); 3091 this.set(key, value);
2953 }).bind(this)); 3092 }).bind(this));
2954 } 3093 }
2955 get isEmpty() { 3094 get isEmpty() {
2956 return this[_root] == null; 3095 return this[_root] == null;
2957 } 3096 }
2958 get isNotEmpty() { 3097 get isNotEmpty() {
2959 return !dart.notNull(this.isEmpty); 3098 return !dart.notNull(this.isEmpty);
2960 } 3099 }
2961 forEach(f) { 3100 forEach(f) {
3101 dart.as(f, dart.functionType(dart.void, [K, V]));
2962 let nodes = new (_SplayTreeNodeIterator$(K))(this); 3102 let nodes = new (_SplayTreeNodeIterator$(K))(this);
2963 while (nodes.moveNext()) { 3103 while (nodes.moveNext()) {
2964 let node = dart.as(nodes.current, _SplayTreeMapNode$(K, V)); 3104 let node = dart.as(nodes.current, _SplayTreeMapNode$(K, V));
2965 f(node.key, node.value); 3105 f(node.key, node.value);
2966 } 3106 }
2967 } 3107 }
2968 get length() { 3108 get length() {
2969 return this[_count]; 3109 return this[_count];
2970 } 3110 }
2971 clear() { 3111 clear() {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
3006 if (this[_root] == null) 3146 if (this[_root] == null)
3007 return null; 3147 return null;
3008 return dart.as(this[_first].key, K); 3148 return dart.as(this[_first].key, K);
3009 } 3149 }
3010 lastKey() { 3150 lastKey() {
3011 if (this[_root] == null) 3151 if (this[_root] == null)
3012 return null; 3152 return null;
3013 return dart.as(this[_last].key, K); 3153 return dart.as(this[_last].key, K);
3014 } 3154 }
3015 lastKeyBefore(key) { 3155 lastKeyBefore(key) {
3156 dart.as(key, K);
3016 if (key == null) 3157 if (key == null)
3017 throw new core.ArgumentError(key); 3158 throw new core.ArgumentError(key);
3018 if (this[_root] == null) 3159 if (this[_root] == null)
3019 return null; 3160 return null;
3020 let comp = this[_splay](key); 3161 let comp = this[_splay](key);
3021 if (dart.notNull(comp) < 0) 3162 if (dart.notNull(comp) < 0)
3022 return this[_root].key; 3163 return this[_root].key;
3023 let node = this[_root].left; 3164 let node = this[_root].left;
3024 if (node == null) 3165 if (node == null)
3025 return null; 3166 return null;
3026 while (node.right != null) { 3167 while (node.right != null) {
3027 node = node.right; 3168 node = node.right;
3028 } 3169 }
3029 return node.key; 3170 return node.key;
3030 } 3171 }
3031 firstKeyAfter(key) { 3172 firstKeyAfter(key) {
3173 dart.as(key, K);
3032 if (key == null) 3174 if (key == null)
3033 throw new core.ArgumentError(key); 3175 throw new core.ArgumentError(key);
3034 if (this[_root] == null) 3176 if (this[_root] == null)
3035 return null; 3177 return null;
3036 let comp = this[_splay](key); 3178 let comp = this[_splay](key);
3037 if (dart.notNull(comp) > 0) 3179 if (dart.notNull(comp) > 0)
3038 return this[_root].key; 3180 return this[_root].key;
3039 let node = this[_root].right; 3181 let node = this[_root].right;
3040 if (node == null) 3182 if (node == null)
3041 return null; 3183 return null;
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
3233 compare = null; 3375 compare = null;
3234 if (isValidKey === void 0) 3376 if (isValidKey === void 0)
3235 isValidKey = null; 3377 isValidKey = null;
3236 let result = new (SplayTreeSet$(E))(compare, isValidKey); 3378 let result = new (SplayTreeSet$(E))(compare, isValidKey);
3237 for (let element of dart.as(elements, core.Iterable$(E))) { 3379 for (let element of dart.as(elements, core.Iterable$(E))) {
3238 result.add(element); 3380 result.add(element);
3239 } 3381 }
3240 return result; 3382 return result;
3241 } 3383 }
3242 [_compare](e1, e2) { 3384 [_compare](e1, e2) {
3385 dart.as(e1, E);
3386 dart.as(e2, E);
3243 return dart.dcall(this[_comparator], e1, e2); 3387 return dart.dcall(this[_comparator], e1, e2);
3244 } 3388 }
3245 get [core.$iterator]() { 3389 get [core.$iterator]() {
3246 return new (_SplayTreeKeyIterator$(E))(this); 3390 return new (_SplayTreeKeyIterator$(E))(this);
3247 } 3391 }
3248 get [core.$length]() { 3392 get [core.$length]() {
3249 return this[_count]; 3393 return this[_count];
3250 } 3394 }
3251 get [core.$isEmpty]() { 3395 get [core.$isEmpty]() {
3252 return this[_root] == null; 3396 return this[_root] == null;
(...skipping 15 matching lines...) Expand all
3268 if (this[_count] == 0) 3412 if (this[_count] == 0)
3269 throw _internal.IterableElementError.noElement(); 3413 throw _internal.IterableElementError.noElement();
3270 if (dart.notNull(this[_count]) > 1) 3414 if (dart.notNull(this[_count]) > 1)
3271 throw _internal.IterableElementError.tooMany(); 3415 throw _internal.IterableElementError.tooMany();
3272 return this[_root].key; 3416 return this[_root].key;
3273 } 3417 }
3274 [core.$contains](object) { 3418 [core.$contains](object) {
3275 return dart.notNull(dart.dcall(this[_validKey], object)) && this[_splay] (dart.as(object, E)) == 0; 3419 return dart.notNull(dart.dcall(this[_validKey], object)) && this[_splay] (dart.as(object, E)) == 0;
3276 } 3420 }
3277 add(element) { 3421 add(element) {
3422 dart.as(element, E);
3278 let compare = this[_splay](element); 3423 let compare = this[_splay](element);
3279 if (compare == 0) 3424 if (compare == 0)
3280 return false; 3425 return false;
3281 this[_addNewRoot](new (_SplayTreeNode$(E))(element), compare); 3426 this[_addNewRoot](new (_SplayTreeNode$(E))(element), compare);
3282 return true; 3427 return true;
3283 } 3428 }
3284 remove(object) { 3429 remove(object) {
3285 if (!dart.notNull(dart.dcall(this[_validKey], object))) 3430 if (!dart.notNull(dart.dcall(this[_validKey], object)))
3286 return false; 3431 return false;
3287 return this[_remove](dart.as(object, E)) != null; 3432 return this[_remove](dart.as(object, E)) != null;
3288 } 3433 }
3289 addAll(elements) { 3434 addAll(elements) {
3435 dart.as(elements, core.Iterable$(E));
3290 for (let element of elements) { 3436 for (let element of elements) {
3291 let compare = this[_splay](element); 3437 let compare = this[_splay](element);
3292 if (compare != 0) { 3438 if (compare != 0) {
3293 this[_addNewRoot](new (_SplayTreeNode$(E))(element), compare); 3439 this[_addNewRoot](new (_SplayTreeNode$(E))(element), compare);
3294 } 3440 }
3295 } 3441 }
3296 } 3442 }
3297 removeAll(elements) { 3443 removeAll(elements) {
3298 for (let element of elements) { 3444 for (let element of elements) {
3299 if (dart.dcall(this[_validKey], element)) 3445 if (dart.dcall(this[_validKey], element))
(...skipping 18 matching lines...) Expand all
3318 } 3464 }
3319 lookup(object) { 3465 lookup(object) {
3320 if (!dart.notNull(dart.dcall(this[_validKey], object))) 3466 if (!dart.notNull(dart.dcall(this[_validKey], object)))
3321 return null; 3467 return null;
3322 let comp = this[_splay](dart.as(object, E)); 3468 let comp = this[_splay](dart.as(object, E));
3323 if (comp != 0) 3469 if (comp != 0)
3324 return null; 3470 return null;
3325 return this[_root].key; 3471 return this[_root].key;
3326 } 3472 }
3327 intersection(other) { 3473 intersection(other) {
3474 dart.as(other, core.Set$(E));
3328 let result = new (SplayTreeSet$(E))(dart.as(this[_comparator], dart.func tionType(core.int, [E, E])), this[_validKey]); 3475 let result = new (SplayTreeSet$(E))(dart.as(this[_comparator], dart.func tionType(core.int, [E, E])), this[_validKey]);
3329 for (let element of this) { 3476 for (let element of this) {
3330 if (other[core.$contains](element)) 3477 if (other[core.$contains](element))
3331 result.add(element); 3478 result.add(element);
3332 } 3479 }
3333 return result; 3480 return result;
3334 } 3481 }
3335 difference(other) { 3482 difference(other) {
3483 dart.as(other, core.Set$(E));
3336 let result = new (SplayTreeSet$(E))(dart.as(this[_comparator], dart.func tionType(core.int, [E, E])), this[_validKey]); 3484 let result = new (SplayTreeSet$(E))(dart.as(this[_comparator], dart.func tionType(core.int, [E, E])), this[_validKey]);
3337 for (let element of this) { 3485 for (let element of this) {
3338 if (!dart.notNull(other[core.$contains](element))) 3486 if (!dart.notNull(other[core.$contains](element)))
3339 result.add(element); 3487 result.add(element);
3340 } 3488 }
3341 return result; 3489 return result;
3342 } 3490 }
3343 union(other) { 3491 union(other) {
3492 dart.as(other, core.Set$(E));
3344 let _ = this[_clone](); 3493 let _ = this[_clone]();
3345 _.addAll(other); 3494 _.addAll(other);
3346 return _; 3495 return _;
3347 } 3496 }
3348 [_clone]() { 3497 [_clone]() {
3349 let set = new (SplayTreeSet$(E))(dart.as(this[_comparator], dart.functio nType(core.int, [E, E])), this[_validKey]); 3498 let set = new (SplayTreeSet$(E))(dart.as(this[_comparator], dart.functio nType(core.int, [E, E])), this[_validKey]);
3350 set[_count] = this[_count]; 3499 set[_count] = this[_count];
3351 set[_root] = this[_copyNode](this[_root]); 3500 set[_root] = this[_copyNode](this[_root]);
3352 return set; 3501 return set;
3353 } 3502 }
3354 [_copyNode](node) { 3503 [_copyNode](node) {
3504 dart.as(node, _SplayTreeNode$(E));
3355 if (node == null) 3505 if (node == null)
3356 return null; 3506 return null;
3357 let _ = new (_SplayTreeNode$(E))(node.key); 3507 let _ = new (_SplayTreeNode$(E))(node.key);
3358 _.left = this[_copyNode](node.left); 3508 _.left = this[_copyNode](node.left);
3359 _.right = this[_copyNode](node.right); 3509 _.right = this[_copyNode](node.right);
3360 return _; 3510 return _;
3361 } 3511 }
3362 clear() { 3512 clear() {
3363 this[_clear](); 3513 this[_clear]();
3364 } 3514 }
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
3435 let rest = this[_rest]; 3585 let rest = this[_rest];
3436 if (rest == null) 3586 if (rest == null)
3437 return false; 3587 return false;
3438 let bucket = this[_getBucket](rest, key); 3588 let bucket = this[_getBucket](rest, key);
3439 return dart.notNull(this[_findBucketIndex](bucket, key)) >= 0; 3589 return dart.notNull(this[_findBucketIndex](bucket, key)) >= 0;
3440 } 3590 }
3441 containsValue(value) { 3591 containsValue(value) {
3442 return this[_computeKeys]()[core.$any]((each => dart.equals(this.get(eac h), value)).bind(this)); 3592 return this[_computeKeys]()[core.$any]((each => dart.equals(this.get(eac h), value)).bind(this));
3443 } 3593 }
3444 addAll(other) { 3594 addAll(other) {
3595 dart.as(other, core.Map$(K, V));
3445 other.forEach(((key, value) => { 3596 other.forEach(((key, value) => {
3597 dart.as(key, K);
3598 dart.as(value, V);
3446 this.set(key, value); 3599 this.set(key, value);
3447 }).bind(this)); 3600 }).bind(this));
3448 } 3601 }
3449 get(key) { 3602 get(key) {
3450 if (_HashMap._isStringKey(key)) { 3603 if (_HashMap._isStringKey(key)) {
3451 let strings = this[_strings]; 3604 let strings = this[_strings];
3452 return dart.as(strings == null ? null : _HashMap._getTableEntry(string s, key), V); 3605 return dart.as(strings == null ? null : _HashMap._getTableEntry(string s, key), V);
3453 } else if (_HashMap._isNumericKey(key)) { 3606 } else if (_HashMap._isNumericKey(key)) {
3454 let nums = this[_nums]; 3607 let nums = this[_nums];
3455 return dart.as(nums == null ? null : _HashMap._getTableEntry(nums, key ), V); 3608 return dart.as(nums == null ? null : _HashMap._getTableEntry(nums, key ), V);
3456 } else { 3609 } else {
3457 return this[_get](key); 3610 return this[_get](key);
3458 } 3611 }
3459 } 3612 }
3460 [_get](key) { 3613 [_get](key) {
3461 let rest = this[_rest]; 3614 let rest = this[_rest];
3462 if (rest == null) 3615 if (rest == null)
3463 return null; 3616 return null;
3464 let bucket = this[_getBucket](rest, key); 3617 let bucket = this[_getBucket](rest, key);
3465 let index = this[_findBucketIndex](bucket, key); 3618 let index = this[_findBucketIndex](bucket, key);
3466 return dart.as(dart.notNull(index) < 0 ? null : bucket[dart.notNull(inde x) + 1], V); 3619 return dart.as(dart.notNull(index) < 0 ? null : bucket[dart.notNull(inde x) + 1], V);
3467 } 3620 }
3468 set(key, value) { 3621 set(key, value) {
3622 dart.as(key, K);
3623 dart.as(value, V);
3469 if (_HashMap._isStringKey(key)) { 3624 if (_HashMap._isStringKey(key)) {
3470 let strings = this[_strings]; 3625 let strings = this[_strings];
3471 if (strings == null) 3626 if (strings == null)
3472 this[_strings] = strings = _HashMap._newHashTable(); 3627 this[_strings] = strings = _HashMap._newHashTable();
3473 this[_addHashTableEntry](strings, key, value); 3628 this[_addHashTableEntry](strings, key, value);
3474 } else if (_HashMap._isNumericKey(key)) { 3629 } else if (_HashMap._isNumericKey(key)) {
3475 let nums = this[_nums]; 3630 let nums = this[_nums];
3476 if (nums == null) 3631 if (nums == null)
3477 this[_nums] = nums = _HashMap._newHashTable(); 3632 this[_nums] = nums = _HashMap._newHashTable();
3478 this[_addHashTableEntry](nums, key, value); 3633 this[_addHashTableEntry](nums, key, value);
3479 } else { 3634 } else {
3480 this[_set](key, value); 3635 this[_set](key, value);
3481 } 3636 }
3482 } 3637 }
3483 [_set](key, value) { 3638 [_set](key, value) {
3639 dart.as(key, K);
3640 dart.as(value, V);
3484 let rest = this[_rest]; 3641 let rest = this[_rest];
3485 if (rest == null) 3642 if (rest == null)
3486 this[_rest] = rest = _HashMap._newHashTable(); 3643 this[_rest] = rest = _HashMap._newHashTable();
3487 let hash = this[_computeHashCode](key); 3644 let hash = this[_computeHashCode](key);
3488 let bucket = rest[hash]; 3645 let bucket = rest[hash];
3489 if (bucket == null) { 3646 if (bucket == null) {
3490 _HashMap._setTableEntry(rest, hash, [key, value]); 3647 _HashMap._setTableEntry(rest, hash, [key, value]);
3491 this[_length] = dart.notNull(this[_length]) + 1; 3648 this[_length] = dart.notNull(this[_length]) + 1;
3492 this[_keys] = null; 3649 this[_keys] = null;
3493 } else { 3650 } else {
3494 let index = this[_findBucketIndex](bucket, key); 3651 let index = this[_findBucketIndex](bucket, key);
3495 if (dart.notNull(index) >= 0) { 3652 if (dart.notNull(index) >= 0) {
3496 bucket[dart.notNull(index) + 1] = value; 3653 bucket[dart.notNull(index) + 1] = value;
3497 } else { 3654 } else {
3498 bucket.push(key, value); 3655 bucket.push(key, value);
3499 this[_length] = dart.notNull(this[_length]) + 1; 3656 this[_length] = dart.notNull(this[_length]) + 1;
3500 this[_keys] = null; 3657 this[_keys] = null;
3501 } 3658 }
3502 } 3659 }
3503 } 3660 }
3504 putIfAbsent(key, ifAbsent) { 3661 putIfAbsent(key, ifAbsent) {
3662 dart.as(key, K);
3663 dart.as(ifAbsent, dart.functionType(V, []));
3505 if (this.containsKey(key)) 3664 if (this.containsKey(key))
3506 return this.get(key); 3665 return this.get(key);
3507 let value = ifAbsent(); 3666 let value = ifAbsent();
3508 this.set(key, value); 3667 this.set(key, value);
3509 return value; 3668 return value;
3510 } 3669 }
3511 remove(key) { 3670 remove(key) {
3512 if (_HashMap._isStringKey(key)) { 3671 if (_HashMap._isStringKey(key)) {
3513 return this[_removeHashTableEntry](this[_strings], key); 3672 return this[_removeHashTableEntry](this[_strings], key);
3514 } else if (_HashMap._isNumericKey(key)) { 3673 } else if (_HashMap._isNumericKey(key)) {
(...skipping 14 matching lines...) Expand all
3529 this[_keys] = null; 3688 this[_keys] = null;
3530 return dart.as(bucket.splice(index, 2)[1], V); 3689 return dart.as(bucket.splice(index, 2)[1], V);
3531 } 3690 }
3532 clear() { 3691 clear() {
3533 if (dart.notNull(this[_length]) > 0) { 3692 if (dart.notNull(this[_length]) > 0) {
3534 this[_strings] = this[_nums] = this[_rest] = this[_keys] = null; 3693 this[_strings] = this[_nums] = this[_rest] = this[_keys] = null;
3535 this[_length] = 0; 3694 this[_length] = 0;
3536 } 3695 }
3537 } 3696 }
3538 forEach(action) { 3697 forEach(action) {
3698 dart.as(action, dart.functionType(dart.void, [K, V]));
3539 let keys = this[_computeKeys](); 3699 let keys = this[_computeKeys]();
3540 for (let i = 0, length = keys[core.$length]; dart.notNull(i) < dart.notN ull(length); i = dart.notNull(i) + 1) { 3700 for (let i = 0, length = keys[core.$length]; dart.notNull(i) < dart.notN ull(length); i = dart.notNull(i) + 1) {
3541 let key = keys[i]; 3701 let key = keys[i];
3542 action(dart.as(key, K), this.get(key)); 3702 action(dart.as(key, K), this.get(key));
3543 if (keys !== this[_keys]) { 3703 if (keys !== this[_keys]) {
3544 throw new core.ConcurrentModificationError(this); 3704 throw new core.ConcurrentModificationError(this);
3545 } 3705 }
3546 } 3706 }
3547 } 3707 }
3548 [_computeKeys]() { 3708 [_computeKeys]() {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
3582 let key = bucket[i]; 3742 let key = bucket[i];
3583 result[index] = key; 3743 result[index] = key;
3584 index = dart.notNull(index) + 1; 3744 index = dart.notNull(index) + 1;
3585 } 3745 }
3586 } 3746 }
3587 } 3747 }
3588 dart.assert(index == this[_length]); 3748 dart.assert(index == this[_length]);
3589 return this[_keys] = result; 3749 return this[_keys] = result;
3590 } 3750 }
3591 [_addHashTableEntry](table, key, value) { 3751 [_addHashTableEntry](table, key, value) {
3752 dart.as(key, K);
3753 dart.as(value, V);
3592 if (!dart.notNull(_HashMap._hasTableEntry(table, key))) { 3754 if (!dart.notNull(_HashMap._hasTableEntry(table, key))) {
3593 this[_length] = dart.notNull(this[_length]) + 1; 3755 this[_length] = dart.notNull(this[_length]) + 1;
3594 this[_keys] = null; 3756 this[_keys] = null;
3595 } 3757 }
3596 _HashMap._setTableEntry(table, key, value); 3758 _HashMap._setTableEntry(table, key, value);
3597 } 3759 }
3598 [_removeHashTableEntry](table, key) { 3760 [_removeHashTableEntry](table, key) {
3599 if (dart.notNull(table != null) && dart.notNull(_HashMap._hasTableEntry( table, key))) { 3761 if (dart.notNull(table != null) && dart.notNull(_HashMap._hasTableEntry( table, key))) {
3600 let value = dart.as(_HashMap._getTableEntry(table, key), V); 3762 let value = dart.as(_HashMap._getTableEntry(table, key), V);
3601 _HashMap._deleteTableEntry(table, key); 3763 _HashMap._deleteTableEntry(table, key);
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
3687 this[_hashCode] = hashCode; 3849 this[_hashCode] = hashCode;
3688 this[_validKey] = dart.as(validKey != null ? validKey : v => dart.is(v, K), _Predicate); 3850 this[_validKey] = dart.as(validKey != null ? validKey : v => dart.is(v, K), _Predicate);
3689 super._HashMap(); 3851 super._HashMap();
3690 } 3852 }
3691 get(key) { 3853 get(key) {
3692 if (!dart.notNull(dart.dcall(this[_validKey], key))) 3854 if (!dart.notNull(dart.dcall(this[_validKey], key)))
3693 return null; 3855 return null;
3694 return super[_get](key); 3856 return super[_get](key);
3695 } 3857 }
3696 set(key, value) { 3858 set(key, value) {
3859 dart.as(key, K);
3860 dart.as(value, V);
3697 super[_set](key, value); 3861 super[_set](key, value);
3698 } 3862 }
3699 containsKey(key) { 3863 containsKey(key) {
3700 if (!dart.notNull(dart.dcall(this[_validKey], key))) 3864 if (!dart.notNull(dart.dcall(this[_validKey], key)))
3701 return false; 3865 return false;
3702 return super[_containsKey](key); 3866 return super[_containsKey](key);
3703 } 3867 }
3704 remove(key) { 3868 remove(key) {
3705 if (!dart.notNull(dart.dcall(this[_validKey], key))) 3869 if (!dart.notNull(dart.dcall(this[_validKey], key)))
3706 return null; 3870 return null;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
3738 get [core.$isEmpty]() { 3902 get [core.$isEmpty]() {
3739 return dart.equals(dart.dload(this[_map], _length), 0); 3903 return dart.equals(dart.dload(this[_map], _length), 0);
3740 } 3904 }
3741 get [core.$iterator]() { 3905 get [core.$iterator]() {
3742 return new (HashMapKeyIterator$(E))(this[_map], dart.as(dart.dsend(this[ _map], _computeKeys), core.List)); 3906 return new (HashMapKeyIterator$(E))(this[_map], dart.as(dart.dsend(this[ _map], _computeKeys), core.List));
3743 } 3907 }
3744 [core.$contains](element) { 3908 [core.$contains](element) {
3745 return dart.as(dart.dsend(this[_map], 'containsKey', element), core.bool ); 3909 return dart.as(dart.dsend(this[_map], 'containsKey', element), core.bool );
3746 } 3910 }
3747 [core.$forEach](f) { 3911 [core.$forEach](f) {
3912 dart.as(f, dart.functionType(dart.void, [E]));
3748 let keys = dart.as(dart.dsend(this[_map], _computeKeys), core.List); 3913 let keys = dart.as(dart.dsend(this[_map], _computeKeys), core.List);
3749 for (let i = 0, length = keys.length; dart.notNull(i) < dart.notNull(len gth); i = dart.notNull(i) + 1) { 3914 for (let i = 0, length = keys.length; dart.notNull(i) < dart.notNull(len gth); i = dart.notNull(i) + 1) {
3750 f(dart.as(keys[i], E)); 3915 f(dart.as(keys[i], E));
3751 if (keys !== dart.dload(this[_map], _keys)) { 3916 if (keys !== dart.dload(this[_map], _keys)) {
3752 throw new core.ConcurrentModificationError(this[_map]); 3917 throw new core.ConcurrentModificationError(this[_map]);
3753 } 3918 }
3754 } 3919 }
3755 } 3920 }
3756 } 3921 }
3757 HashMapKeyIterable[dart.implements] = () => [_internal.EfficientLength]; 3922 HashMapKeyIterable[dart.implements] = () => [_internal.EfficientLength];
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
3842 let rest = this[_rest]; 4007 let rest = this[_rest];
3843 if (rest == null) 4008 if (rest == null)
3844 return false; 4009 return false;
3845 let bucket = this[_getBucket](rest, key); 4010 let bucket = this[_getBucket](rest, key);
3846 return dart.notNull(this[_findBucketIndex](bucket, key)) >= 0; 4011 return dart.notNull(this[_findBucketIndex](bucket, key)) >= 0;
3847 } 4012 }
3848 containsValue(value) { 4013 containsValue(value) {
3849 return this.keys[core.$any]((each => dart.equals(this.get(each), value)) .bind(this)); 4014 return this.keys[core.$any]((each => dart.equals(this.get(each), value)) .bind(this));
3850 } 4015 }
3851 addAll(other) { 4016 addAll(other) {
4017 dart.as(other, core.Map$(K, V));
3852 other.forEach(((key, value) => { 4018 other.forEach(((key, value) => {
4019 dart.as(key, K);
4020 dart.as(value, V);
3853 this.set(key, value); 4021 this.set(key, value);
3854 }).bind(this)); 4022 }).bind(this));
3855 } 4023 }
3856 get(key) { 4024 get(key) {
3857 if (_LinkedHashMap._isStringKey(key)) { 4025 if (_LinkedHashMap._isStringKey(key)) {
3858 let strings = this[_strings]; 4026 let strings = this[_strings];
3859 if (strings == null) 4027 if (strings == null)
3860 return null; 4028 return null;
3861 let cell = dart.as(_LinkedHashMap._getTableEntry(strings, key), Linked HashMapCell); 4029 let cell = dart.as(_LinkedHashMap._getTableEntry(strings, key), Linked HashMapCell);
3862 return dart.as(cell == null ? null : cell[_value], V); 4030 return dart.as(cell == null ? null : cell[_value], V);
(...skipping 12 matching lines...) Expand all
3875 if (rest == null) 4043 if (rest == null)
3876 return null; 4044 return null;
3877 let bucket = this[_getBucket](rest, key); 4045 let bucket = this[_getBucket](rest, key);
3878 let index = this[_findBucketIndex](bucket, key); 4046 let index = this[_findBucketIndex](bucket, key);
3879 if (dart.notNull(index) < 0) 4047 if (dart.notNull(index) < 0)
3880 return null; 4048 return null;
3881 let cell = dart.as(bucket[index], LinkedHashMapCell); 4049 let cell = dart.as(bucket[index], LinkedHashMapCell);
3882 return dart.as(cell[_value], V); 4050 return dart.as(cell[_value], V);
3883 } 4051 }
3884 set(key, value) { 4052 set(key, value) {
4053 dart.as(key, K);
4054 dart.as(value, V);
3885 if (_LinkedHashMap._isStringKey(key)) { 4055 if (_LinkedHashMap._isStringKey(key)) {
3886 let strings = this[_strings]; 4056 let strings = this[_strings];
3887 if (strings == null) 4057 if (strings == null)
3888 this[_strings] = strings = _LinkedHashMap._newHashTable(); 4058 this[_strings] = strings = _LinkedHashMap._newHashTable();
3889 this[_addHashTableEntry](strings, key, value); 4059 this[_addHashTableEntry](strings, key, value);
3890 } else if (_LinkedHashMap._isNumericKey(key)) { 4060 } else if (_LinkedHashMap._isNumericKey(key)) {
3891 let nums = this[_nums]; 4061 let nums = this[_nums];
3892 if (nums == null) 4062 if (nums == null)
3893 this[_nums] = nums = _LinkedHashMap._newHashTable(); 4063 this[_nums] = nums = _LinkedHashMap._newHashTable();
3894 this[_addHashTableEntry](nums, key, value); 4064 this[_addHashTableEntry](nums, key, value);
3895 } else { 4065 } else {
3896 this[_set](key, value); 4066 this[_set](key, value);
3897 } 4067 }
3898 } 4068 }
3899 [_set](key, value) { 4069 [_set](key, value) {
4070 dart.as(key, K);
4071 dart.as(value, V);
3900 let rest = this[_rest]; 4072 let rest = this[_rest];
3901 if (rest == null) 4073 if (rest == null)
3902 this[_rest] = rest = _LinkedHashMap._newHashTable(); 4074 this[_rest] = rest = _LinkedHashMap._newHashTable();
3903 let hash = this[_computeHashCode](key); 4075 let hash = this[_computeHashCode](key);
3904 let bucket = rest[hash]; 4076 let bucket = rest[hash];
3905 if (bucket == null) { 4077 if (bucket == null) {
3906 let cell = this[_newLinkedCell](key, value); 4078 let cell = this[_newLinkedCell](key, value);
3907 _LinkedHashMap._setTableEntry(rest, hash, [cell]); 4079 _LinkedHashMap._setTableEntry(rest, hash, [cell]);
3908 } else { 4080 } else {
3909 let index = this[_findBucketIndex](bucket, key); 4081 let index = this[_findBucketIndex](bucket, key);
3910 if (dart.notNull(index) >= 0) { 4082 if (dart.notNull(index) >= 0) {
3911 let cell = dart.as(bucket[index], LinkedHashMapCell); 4083 let cell = dart.as(bucket[index], LinkedHashMapCell);
3912 cell[_value] = value; 4084 cell[_value] = value;
3913 } else { 4085 } else {
3914 let cell = this[_newLinkedCell](key, value); 4086 let cell = this[_newLinkedCell](key, value);
3915 bucket.push(cell); 4087 bucket.push(cell);
3916 } 4088 }
3917 } 4089 }
3918 } 4090 }
3919 putIfAbsent(key, ifAbsent) { 4091 putIfAbsent(key, ifAbsent) {
4092 dart.as(key, K);
4093 dart.as(ifAbsent, dart.functionType(V, []));
3920 if (this.containsKey(key)) 4094 if (this.containsKey(key))
3921 return this.get(key); 4095 return this.get(key);
3922 let value = ifAbsent(); 4096 let value = ifAbsent();
3923 this.set(key, value); 4097 this.set(key, value);
3924 return value; 4098 return value;
3925 } 4099 }
3926 remove(key) { 4100 remove(key) {
3927 if (_LinkedHashMap._isStringKey(key)) { 4101 if (_LinkedHashMap._isStringKey(key)) {
3928 return this[_removeHashTableEntry](this[_strings], key); 4102 return this[_removeHashTableEntry](this[_strings], key);
3929 } else if (_LinkedHashMap._isNumericKey(key)) { 4103 } else if (_LinkedHashMap._isNumericKey(key)) {
(...skipping 15 matching lines...) Expand all
3945 return dart.as(cell[_value], V); 4119 return dart.as(cell[_value], V);
3946 } 4120 }
3947 clear() { 4121 clear() {
3948 if (dart.notNull(this[_length]) > 0) { 4122 if (dart.notNull(this[_length]) > 0) {
3949 this[_strings] = this[_nums] = this[_rest] = this[_first] = this[_last ] = null; 4123 this[_strings] = this[_nums] = this[_rest] = this[_first] = this[_last ] = null;
3950 this[_length] = 0; 4124 this[_length] = 0;
3951 this[_modified](); 4125 this[_modified]();
3952 } 4126 }
3953 } 4127 }
3954 forEach(action) { 4128 forEach(action) {
4129 dart.as(action, dart.functionType(dart.void, [K, V]));
3955 let cell = this[_first]; 4130 let cell = this[_first];
3956 let modifications = this[_modifications]; 4131 let modifications = this[_modifications];
3957 while (cell != null) { 4132 while (cell != null) {
3958 action(dart.as(cell[_key], K), dart.as(cell[_value], V)); 4133 action(dart.as(cell[_key], K), dart.as(cell[_value], V));
3959 if (modifications != this[_modifications]) { 4134 if (modifications != this[_modifications]) {
3960 throw new core.ConcurrentModificationError(this); 4135 throw new core.ConcurrentModificationError(this);
3961 } 4136 }
3962 cell = cell[_next]; 4137 cell = cell[_next];
3963 } 4138 }
3964 } 4139 }
3965 [_addHashTableEntry](table, key, value) { 4140 [_addHashTableEntry](table, key, value) {
4141 dart.as(key, K);
4142 dart.as(value, V);
3966 let cell = dart.as(_LinkedHashMap._getTableEntry(table, key), LinkedHash MapCell); 4143 let cell = dart.as(_LinkedHashMap._getTableEntry(table, key), LinkedHash MapCell);
3967 if (cell == null) { 4144 if (cell == null) {
3968 _LinkedHashMap._setTableEntry(table, key, this[_newLinkedCell](key, va lue)); 4145 _LinkedHashMap._setTableEntry(table, key, this[_newLinkedCell](key, va lue));
3969 } else { 4146 } else {
3970 cell[_value] = value; 4147 cell[_value] = value;
3971 } 4148 }
3972 } 4149 }
3973 [_removeHashTableEntry](table, key) { 4150 [_removeHashTableEntry](table, key) {
3974 if (table == null) 4151 if (table == null)
3975 return null; 4152 return null;
3976 let cell = dart.as(_LinkedHashMap._getTableEntry(table, key), LinkedHash MapCell); 4153 let cell = dart.as(_LinkedHashMap._getTableEntry(table, key), LinkedHash MapCell);
3977 if (cell == null) 4154 if (cell == null)
3978 return null; 4155 return null;
3979 this[_unlinkCell](cell); 4156 this[_unlinkCell](cell);
3980 _LinkedHashMap._deleteTableEntry(table, key); 4157 _LinkedHashMap._deleteTableEntry(table, key);
3981 return dart.as(cell[_value], V); 4158 return dart.as(cell[_value], V);
3982 } 4159 }
3983 [_modified]() { 4160 [_modified]() {
3984 this[_modifications] = dart.notNull(this[_modifications]) + 1 & 67108863 ; 4161 this[_modifications] = dart.notNull(this[_modifications]) + 1 & 67108863 ;
3985 } 4162 }
3986 [_newLinkedCell](key, value) { 4163 [_newLinkedCell](key, value) {
4164 dart.as(key, K);
4165 dart.as(value, V);
3987 let cell = new LinkedHashMapCell(key, value); 4166 let cell = new LinkedHashMapCell(key, value);
3988 if (this[_first] == null) { 4167 if (this[_first] == null) {
3989 this[_first] = this[_last] = cell; 4168 this[_first] = this[_last] = cell;
3990 } else { 4169 } else {
3991 let last = this[_last]; 4170 let last = this[_last];
3992 cell[_previous] = last; 4171 cell[_previous] = last;
3993 this[_last] = last[_next] = cell; 4172 this[_last] = last[_next] = cell;
3994 } 4173 }
3995 this[_length] = dart.notNull(this[_length]) + 1; 4174 this[_length] = dart.notNull(this[_length]) + 1;
3996 this[_modified](); 4175 this[_modified]();
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
4090 this[_hashCode] = hashCode; 4269 this[_hashCode] = hashCode;
4091 this[_validKey] = dart.as(validKey != null ? validKey : v => dart.is(v, K), _Predicate); 4270 this[_validKey] = dart.as(validKey != null ? validKey : v => dart.is(v, K), _Predicate);
4092 super._LinkedHashMap(); 4271 super._LinkedHashMap();
4093 } 4272 }
4094 get(key) { 4273 get(key) {
4095 if (!dart.notNull(dart.dcall(this[_validKey], key))) 4274 if (!dart.notNull(dart.dcall(this[_validKey], key)))
4096 return null; 4275 return null;
4097 return super[_get](key); 4276 return super[_get](key);
4098 } 4277 }
4099 set(key, value) { 4278 set(key, value) {
4279 dart.as(key, K);
4280 dart.as(value, V);
4100 super[_set](key, value); 4281 super[_set](key, value);
4101 } 4282 }
4102 containsKey(key) { 4283 containsKey(key) {
4103 if (!dart.notNull(dart.dcall(this[_validKey], key))) 4284 if (!dart.notNull(dart.dcall(this[_validKey], key)))
4104 return false; 4285 return false;
4105 return super[_containsKey](key); 4286 return super[_containsKey](key);
4106 } 4287 }
4107 remove(key) { 4288 remove(key) {
4108 if (!dart.notNull(dart.dcall(this[_validKey], key))) 4289 if (!dart.notNull(dart.dcall(this[_validKey], key)))
4109 return null; 4290 return null;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
4147 get [core.$isEmpty]() { 4328 get [core.$isEmpty]() {
4148 return dart.equals(dart.dload(this[_map], _length), 0); 4329 return dart.equals(dart.dload(this[_map], _length), 0);
4149 } 4330 }
4150 get [core.$iterator]() { 4331 get [core.$iterator]() {
4151 return new (LinkedHashMapKeyIterator$(E))(this[_map], dart.as(dart.dload (this[_map], _modifications), core.int)); 4332 return new (LinkedHashMapKeyIterator$(E))(this[_map], dart.as(dart.dload (this[_map], _modifications), core.int));
4152 } 4333 }
4153 [core.$contains](element) { 4334 [core.$contains](element) {
4154 return dart.as(dart.dsend(this[_map], 'containsKey', element), core.bool ); 4335 return dart.as(dart.dsend(this[_map], 'containsKey', element), core.bool );
4155 } 4336 }
4156 [core.$forEach](f) { 4337 [core.$forEach](f) {
4338 dart.as(f, dart.functionType(dart.void, [E]));
4157 let cell = dart.as(dart.dload(this[_map], _first), LinkedHashMapCell); 4339 let cell = dart.as(dart.dload(this[_map], _first), LinkedHashMapCell);
4158 let modifications = dart.as(dart.dload(this[_map], _modifications), core .int); 4340 let modifications = dart.as(dart.dload(this[_map], _modifications), core .int);
4159 while (cell != null) { 4341 while (cell != null) {
4160 f(dart.as(cell[_key], E)); 4342 f(dart.as(cell[_key], E));
4161 if (!dart.equals(modifications, dart.dload(this[_map], _modifications) )) { 4343 if (!dart.equals(modifications, dart.dload(this[_map], _modifications) )) {
4162 throw new core.ConcurrentModificationError(this[_map]); 4344 throw new core.ConcurrentModificationError(this[_map]);
4163 } 4345 }
4164 cell = cell[_next]; 4346 cell = cell[_next];
4165 } 4347 }
4166 } 4348 }
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
4255 let rest = this[_rest]; 4437 let rest = this[_rest];
4256 if (rest == null) 4438 if (rest == null)
4257 return null; 4439 return null;
4258 let bucket = this[_getBucket](rest, object); 4440 let bucket = this[_getBucket](rest, object);
4259 let index = this[_findBucketIndex](bucket, object); 4441 let index = this[_findBucketIndex](bucket, object);
4260 if (dart.notNull(index) < 0) 4442 if (dart.notNull(index) < 0)
4261 return null; 4443 return null;
4262 return dart.as(bucket[core.$get](index), E); 4444 return dart.as(bucket[core.$get](index), E);
4263 } 4445 }
4264 add(element) { 4446 add(element) {
4447 dart.as(element, E);
4265 if (_HashSet._isStringElement(element)) { 4448 if (_HashSet._isStringElement(element)) {
4266 let strings = this[_strings]; 4449 let strings = this[_strings];
4267 if (strings == null) 4450 if (strings == null)
4268 this[_strings] = strings = _HashSet._newHashTable(); 4451 this[_strings] = strings = _HashSet._newHashTable();
4269 return this[_addHashTableEntry](strings, element); 4452 return this[_addHashTableEntry](strings, element);
4270 } else if (_HashSet._isNumericElement(element)) { 4453 } else if (_HashSet._isNumericElement(element)) {
4271 let nums = this[_nums]; 4454 let nums = this[_nums];
4272 if (nums == null) 4455 if (nums == null)
4273 this[_nums] = nums = _HashSet._newHashTable(); 4456 this[_nums] = nums = _HashSet._newHashTable();
4274 return this[_addHashTableEntry](nums, element); 4457 return this[_addHashTableEntry](nums, element);
4275 } else { 4458 } else {
4276 return this[_add](element); 4459 return this[_add](element);
4277 } 4460 }
4278 } 4461 }
4279 [_add](element) { 4462 [_add](element) {
4463 dart.as(element, E);
4280 let rest = this[_rest]; 4464 let rest = this[_rest];
4281 if (rest == null) 4465 if (rest == null)
4282 this[_rest] = rest = _HashSet._newHashTable(); 4466 this[_rest] = rest = _HashSet._newHashTable();
4283 let hash = this[_computeHashCode](element); 4467 let hash = this[_computeHashCode](element);
4284 let bucket = rest[hash]; 4468 let bucket = rest[hash];
4285 if (bucket == null) { 4469 if (bucket == null) {
4286 _HashSet._setTableEntry(rest, hash, [element]); 4470 _HashSet._setTableEntry(rest, hash, [element]);
4287 } else { 4471 } else {
4288 let index = this[_findBucketIndex](bucket, element); 4472 let index = this[_findBucketIndex](bucket, element);
4289 if (dart.notNull(index) >= 0) 4473 if (dart.notNull(index) >= 0)
4290 return false; 4474 return false;
4291 bucket.push(element); 4475 bucket.push(element);
4292 } 4476 }
4293 this[_length] = dart.notNull(this[_length]) + 1; 4477 this[_length] = dart.notNull(this[_length]) + 1;
4294 this[_elements] = null; 4478 this[_elements] = null;
4295 return true; 4479 return true;
4296 } 4480 }
4297 addAll(objects) { 4481 addAll(objects) {
4482 dart.as(objects, core.Iterable$(E));
4298 for (let each of objects) { 4483 for (let each of objects) {
4299 this.add(each); 4484 this.add(each);
4300 } 4485 }
4301 } 4486 }
4302 remove(object) { 4487 remove(object) {
4303 if (_HashSet._isStringElement(object)) { 4488 if (_HashSet._isStringElement(object)) {
4304 return this[_removeHashTableEntry](this[_strings], object); 4489 return this[_removeHashTableEntry](this[_strings], object);
4305 } else if (_HashSet._isNumericElement(object)) { 4490 } else if (_HashSet._isNumericElement(object)) {
4306 return this[_removeHashTableEntry](this[_nums], object); 4491 return this[_removeHashTableEntry](this[_nums], object);
4307 } else { 4492 } else {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
4363 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.not Null(i) + 1) { 4548 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.not Null(i) + 1) {
4364 result[index] = bucket[i]; 4549 result[index] = bucket[i];
4365 index = dart.notNull(index) + 1; 4550 index = dart.notNull(index) + 1;
4366 } 4551 }
4367 } 4552 }
4368 } 4553 }
4369 dart.assert(index == this[_length]); 4554 dart.assert(index == this[_length]);
4370 return this[_elements] = result; 4555 return this[_elements] = result;
4371 } 4556 }
4372 [_addHashTableEntry](table, element) { 4557 [_addHashTableEntry](table, element) {
4558 dart.as(element, E);
4373 if (_HashSet._hasTableEntry(table, element)) 4559 if (_HashSet._hasTableEntry(table, element))
4374 return false; 4560 return false;
4375 _HashSet._setTableEntry(table, element, 0); 4561 _HashSet._setTableEntry(table, element, 0);
4376 this[_length] = dart.notNull(this[_length]) + 1; 4562 this[_length] = dart.notNull(this[_length]) + 1;
4377 this[_elements] = null; 4563 this[_elements] = null;
4378 return true; 4564 return true;
4379 } 4565 }
4380 [_removeHashTableEntry](table, element) { 4566 [_removeHashTableEntry](table, element) {
4381 if (dart.notNull(table != null) && dart.notNull(_HashSet._hasTableEntry( table, element))) { 4567 if (dart.notNull(table != null) && dart.notNull(_HashSet._hasTableEntry( table, element))) {
4382 _HashSet._deleteTableEntry(table, element); 4568 _HashSet._deleteTableEntry(table, element);
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
4475 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) { 4661 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull (i) + 1) {
4476 if (this[_equality](dart.as(bucket[i], E), dart.as(element, E))) 4662 if (this[_equality](dart.as(bucket[i], E), dart.as(element, E)))
4477 return i; 4663 return i;
4478 } 4664 }
4479 return -1; 4665 return -1;
4480 } 4666 }
4481 [_computeHashCode](element) { 4667 [_computeHashCode](element) {
4482 return this[_hasher](dart.as(element, E)) & 0x3ffffff; 4668 return this[_hasher](dart.as(element, E)) & 0x3ffffff;
4483 } 4669 }
4484 add(object) { 4670 add(object) {
4671 dart.as(object, E);
4485 return super[_add](object); 4672 return super[_add](object);
4486 } 4673 }
4487 [core.$contains](object) { 4674 [core.$contains](object) {
4488 if (!dart.notNull(dart.dcall(this[_validKey], object))) 4675 if (!dart.notNull(dart.dcall(this[_validKey], object)))
4489 return false; 4676 return false;
4490 return super[_contains](object); 4677 return super[_contains](object);
4491 } 4678 }
4492 lookup(object) { 4679 lookup(object) {
4493 if (!dart.notNull(dart.dcall(this[_validKey], object))) 4680 if (!dart.notNull(dart.dcall(this[_validKey], object)))
4494 return null; 4681 return null;
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
4598 let rest = this[_rest]; 4785 let rest = this[_rest];
4599 if (rest == null) 4786 if (rest == null)
4600 return null; 4787 return null;
4601 let bucket = this[_getBucket](rest, object); 4788 let bucket = this[_getBucket](rest, object);
4602 let index = this[_findBucketIndex](bucket, object); 4789 let index = this[_findBucketIndex](bucket, object);
4603 if (dart.notNull(index) < 0) 4790 if (dart.notNull(index) < 0)
4604 return null; 4791 return null;
4605 return dart.as(dart.dload(bucket[core.$get](index), _element), E); 4792 return dart.as(dart.dload(bucket[core.$get](index), _element), E);
4606 } 4793 }
4607 [core.$forEach](action) { 4794 [core.$forEach](action) {
4795 dart.as(action, dart.functionType(dart.void, [E]));
4608 let cell = this[_first]; 4796 let cell = this[_first];
4609 let modifications = this[_modifications]; 4797 let modifications = this[_modifications];
4610 while (cell != null) { 4798 while (cell != null) {
4611 action(dart.as(cell[_element], E)); 4799 action(dart.as(cell[_element], E));
4612 if (modifications != this[_modifications]) { 4800 if (modifications != this[_modifications]) {
4613 throw new core.ConcurrentModificationError(this); 4801 throw new core.ConcurrentModificationError(this);
4614 } 4802 }
4615 cell = cell[_next]; 4803 cell = cell[_next];
4616 } 4804 }
4617 } 4805 }
4618 get [core.$first]() { 4806 get [core.$first]() {
4619 if (this[_first] == null) 4807 if (this[_first] == null)
4620 throw new core.StateError("No elements"); 4808 throw new core.StateError("No elements");
4621 return dart.as(this[_first][_element], E); 4809 return dart.as(this[_first][_element], E);
4622 } 4810 }
4623 get [core.$last]() { 4811 get [core.$last]() {
4624 if (this[_last] == null) 4812 if (this[_last] == null)
4625 throw new core.StateError("No elements"); 4813 throw new core.StateError("No elements");
4626 return dart.as(this[_last][_element], E); 4814 return dart.as(this[_last][_element], E);
4627 } 4815 }
4628 add(element) { 4816 add(element) {
4817 dart.as(element, E);
4629 if (_LinkedHashSet._isStringElement(element)) { 4818 if (_LinkedHashSet._isStringElement(element)) {
4630 let strings = this[_strings]; 4819 let strings = this[_strings];
4631 if (strings == null) 4820 if (strings == null)
4632 this[_strings] = strings = _LinkedHashSet._newHashTable(); 4821 this[_strings] = strings = _LinkedHashSet._newHashTable();
4633 return this[_addHashTableEntry](strings, element); 4822 return this[_addHashTableEntry](strings, element);
4634 } else if (_LinkedHashSet._isNumericElement(element)) { 4823 } else if (_LinkedHashSet._isNumericElement(element)) {
4635 let nums = this[_nums]; 4824 let nums = this[_nums];
4636 if (nums == null) 4825 if (nums == null)
4637 this[_nums] = nums = _LinkedHashSet._newHashTable(); 4826 this[_nums] = nums = _LinkedHashSet._newHashTable();
4638 return this[_addHashTableEntry](nums, element); 4827 return this[_addHashTableEntry](nums, element);
4639 } else { 4828 } else {
4640 return this[_add](element); 4829 return this[_add](element);
4641 } 4830 }
4642 } 4831 }
4643 [_add](element) { 4832 [_add](element) {
4833 dart.as(element, E);
4644 let rest = this[_rest]; 4834 let rest = this[_rest];
4645 if (rest == null) 4835 if (rest == null)
4646 this[_rest] = rest = _LinkedHashSet._newHashTable(); 4836 this[_rest] = rest = _LinkedHashSet._newHashTable();
4647 let hash = this[_computeHashCode](element); 4837 let hash = this[_computeHashCode](element);
4648 let bucket = rest[hash]; 4838 let bucket = rest[hash];
4649 if (bucket == null) { 4839 if (bucket == null) {
4650 let cell = this[_newLinkedCell](element); 4840 let cell = this[_newLinkedCell](element);
4651 _LinkedHashSet._setTableEntry(rest, hash, [cell]); 4841 _LinkedHashSet._setTableEntry(rest, hash, [cell]);
4652 } else { 4842 } else {
4653 let index = this[_findBucketIndex](bucket, element); 4843 let index = this[_findBucketIndex](bucket, element);
(...skipping 19 matching lines...) Expand all
4673 return false; 4863 return false;
4674 let bucket = this[_getBucket](rest, object); 4864 let bucket = this[_getBucket](rest, object);
4675 let index = this[_findBucketIndex](bucket, object); 4865 let index = this[_findBucketIndex](bucket, object);
4676 if (dart.notNull(index) < 0) 4866 if (dart.notNull(index) < 0)
4677 return false; 4867 return false;
4678 let cell = dart.as(bucket.splice(index, 1)[0], LinkedHashSetCell); 4868 let cell = dart.as(bucket.splice(index, 1)[0], LinkedHashSetCell);
4679 this[_unlinkCell](cell); 4869 this[_unlinkCell](cell);
4680 return true; 4870 return true;
4681 } 4871 }
4682 removeWhere(test) { 4872 removeWhere(test) {
4873 dart.as(test, dart.functionType(core.bool, [E]));
4683 this[_filterWhere](test, true); 4874 this[_filterWhere](test, true);
4684 } 4875 }
4685 retainWhere(test) { 4876 retainWhere(test) {
4877 dart.as(test, dart.functionType(core.bool, [E]));
4686 this[_filterWhere](test, false); 4878 this[_filterWhere](test, false);
4687 } 4879 }
4688 [_filterWhere](test, removeMatching) { 4880 [_filterWhere](test, removeMatching) {
4881 dart.as(test, dart.functionType(core.bool, [E]));
4689 let cell = this[_first]; 4882 let cell = this[_first];
4690 while (cell != null) { 4883 while (cell != null) {
4691 let element = dart.as(cell[_element], E); 4884 let element = dart.as(cell[_element], E);
4692 let next = cell[_next]; 4885 let next = cell[_next];
4693 let modifications = this[_modifications]; 4886 let modifications = this[_modifications];
4694 let shouldRemove = removeMatching == test(element); 4887 let shouldRemove = removeMatching == test(element);
4695 if (modifications != this[_modifications]) { 4888 if (modifications != this[_modifications]) {
4696 throw new core.ConcurrentModificationError(this); 4889 throw new core.ConcurrentModificationError(this);
4697 } 4890 }
4698 if (shouldRemove) 4891 if (shouldRemove)
4699 this.remove(element); 4892 this.remove(element);
4700 cell = next; 4893 cell = next;
4701 } 4894 }
4702 } 4895 }
4703 clear() { 4896 clear() {
4704 if (dart.notNull(this[_length]) > 0) { 4897 if (dart.notNull(this[_length]) > 0) {
4705 this[_strings] = this[_nums] = this[_rest] = this[_first] = this[_last ] = null; 4898 this[_strings] = this[_nums] = this[_rest] = this[_first] = this[_last ] = null;
4706 this[_length] = 0; 4899 this[_length] = 0;
4707 this[_modified](); 4900 this[_modified]();
4708 } 4901 }
4709 } 4902 }
4710 [_addHashTableEntry](table, element) { 4903 [_addHashTableEntry](table, element) {
4904 dart.as(element, E);
4711 let cell = dart.as(_LinkedHashSet._getTableEntry(table, element), Linked HashSetCell); 4905 let cell = dart.as(_LinkedHashSet._getTableEntry(table, element), Linked HashSetCell);
4712 if (cell != null) 4906 if (cell != null)
4713 return false; 4907 return false;
4714 _LinkedHashSet._setTableEntry(table, element, this[_newLinkedCell](eleme nt)); 4908 _LinkedHashSet._setTableEntry(table, element, this[_newLinkedCell](eleme nt));
4715 return true; 4909 return true;
4716 } 4910 }
4717 [_removeHashTableEntry](table, element) { 4911 [_removeHashTableEntry](table, element) {
4718 if (table == null) 4912 if (table == null)
4719 return false; 4913 return false;
4720 let cell = dart.as(_LinkedHashSet._getTableEntry(table, element), Linked HashSetCell); 4914 let cell = dart.as(_LinkedHashSet._getTableEntry(table, element), Linked HashSetCell);
4721 if (cell == null) 4915 if (cell == null)
4722 return false; 4916 return false;
4723 this[_unlinkCell](cell); 4917 this[_unlinkCell](cell);
4724 _LinkedHashSet._deleteTableEntry(table, element); 4918 _LinkedHashSet._deleteTableEntry(table, element);
4725 return true; 4919 return true;
4726 } 4920 }
4727 [_modified]() { 4921 [_modified]() {
4728 this[_modifications] = dart.notNull(this[_modifications]) + 1 & 67108863 ; 4922 this[_modifications] = dart.notNull(this[_modifications]) + 1 & 67108863 ;
4729 } 4923 }
4730 [_newLinkedCell](element) { 4924 [_newLinkedCell](element) {
4925 dart.as(element, E);
4731 let cell = new LinkedHashSetCell(element); 4926 let cell = new LinkedHashSetCell(element);
4732 if (this[_first] == null) { 4927 if (this[_first] == null) {
4733 this[_first] = this[_last] = cell; 4928 this[_first] = this[_last] = cell;
4734 } else { 4929 } else {
4735 let last = this[_last]; 4930 let last = this[_last];
4736 cell[_previous] = last; 4931 cell[_previous] = last;
4737 this[_last] = last[_next] = cell; 4932 this[_last] = last[_next] = cell;
4738 } 4933 }
4739 this[_length] = dart.notNull(this[_length]) + 1; 4934 this[_length] = dart.notNull(this[_length]) + 1;
4740 this[_modified](); 4935 this[_modified]();
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
4846 let cell = dart.as(bucket[i], LinkedHashSetCell); 5041 let cell = dart.as(bucket[i], LinkedHashSetCell);
4847 if (this[_equality](dart.as(cell[_element], E), dart.as(element, E))) 5042 if (this[_equality](dart.as(cell[_element], E), dart.as(element, E)))
4848 return i; 5043 return i;
4849 } 5044 }
4850 return -1; 5045 return -1;
4851 } 5046 }
4852 [_computeHashCode](element) { 5047 [_computeHashCode](element) {
4853 return this[_hasher](dart.as(element, E)) & 0x3ffffff; 5048 return this[_hasher](dart.as(element, E)) & 0x3ffffff;
4854 } 5049 }
4855 add(element) { 5050 add(element) {
5051 dart.as(element, E);
4856 return super[_add](element); 5052 return super[_add](element);
4857 } 5053 }
4858 [core.$contains](object) { 5054 [core.$contains](object) {
4859 if (!dart.notNull(dart.dcall(this[_validKey], object))) 5055 if (!dart.notNull(dart.dcall(this[_validKey], object)))
4860 return false; 5056 return false;
4861 return super[_contains](object); 5057 return super[_contains](object);
4862 } 5058 }
4863 lookup(object) { 5059 lookup(object) {
4864 if (!dart.notNull(dart.dcall(this[_validKey], object))) 5060 if (!dart.notNull(dart.dcall(this[_validKey], object)))
4865 return null; 5061 return null;
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
4983 exports.LinkedHashMapKeyIterable$ = LinkedHashMapKeyIterable$; 5179 exports.LinkedHashMapKeyIterable$ = LinkedHashMapKeyIterable$;
4984 exports.LinkedHashMapKeyIterable = LinkedHashMapKeyIterable; 5180 exports.LinkedHashMapKeyIterable = LinkedHashMapKeyIterable;
4985 exports.LinkedHashMapKeyIterator$ = LinkedHashMapKeyIterator$; 5181 exports.LinkedHashMapKeyIterator$ = LinkedHashMapKeyIterator$;
4986 exports.LinkedHashMapKeyIterator = LinkedHashMapKeyIterator; 5182 exports.LinkedHashMapKeyIterator = LinkedHashMapKeyIterator;
4987 exports.HashSetIterator$ = HashSetIterator$; 5183 exports.HashSetIterator$ = HashSetIterator$;
4988 exports.HashSetIterator = HashSetIterator; 5184 exports.HashSetIterator = HashSetIterator;
4989 exports.LinkedHashSetCell = LinkedHashSetCell; 5185 exports.LinkedHashSetCell = LinkedHashSetCell;
4990 exports.LinkedHashSetIterator$ = LinkedHashSetIterator$; 5186 exports.LinkedHashSetIterator$ = LinkedHashSetIterator$;
4991 exports.LinkedHashSetIterator = LinkedHashSetIterator; 5187 exports.LinkedHashSetIterator = LinkedHashSetIterator;
4992 })(collection || (collection = {})); 5188 })(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