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

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

Issue 1879373004: Implement modular compilation (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 dart_library.library('dart/_internal', null, /* Imports */[
2 'dart/_runtime',
3 'dart/core',
4 'dart/collection'
5 ], /* Lazy imports */[
6 'dart/math',
7 'dart/_interceptors',
8 'dart/_js_primitives'
9 ], function(exports, dart, core, collection, math, _interceptors, _js_primitives ) {
10 'use strict';
11 let dartx = dart.dartx;
12 class EfficientLength extends core.Object {}
13 const ListIterable$ = dart.generic(function(E) {
14 class ListIterable extends collection.IterableBase$(E) {
15 ListIterable() {
16 super.IterableBase();
17 }
18 get iterator() {
19 return new (ListIterator$(E))(this);
20 }
21 forEach(action) {
22 dart.as(action, dart.functionType(dart.void, [E]));
23 let length = this.length;
24 for (let i = 0; i < dart.notNull(length); i++) {
25 action(this.elementAt(i));
26 if (length != this.length) {
27 dart.throw(new core.ConcurrentModificationError(this));
28 }
29 }
30 }
31 get isEmpty() {
32 return this.length == 0;
33 }
34 get first() {
35 if (this.length == 0) dart.throw(IterableElementError.noElement());
36 return this.elementAt(0);
37 }
38 get last() {
39 if (this.length == 0) dart.throw(IterableElementError.noElement());
40 return this.elementAt(dart.notNull(this.length) - 1);
41 }
42 get single() {
43 if (this.length == 0) dart.throw(IterableElementError.noElement());
44 if (dart.notNull(this.length) > 1) dart.throw(IterableElementError.tooMa ny());
45 return this.elementAt(0);
46 }
47 contains(element) {
48 let length = this.length;
49 for (let i = 0; i < dart.notNull(length); i++) {
50 if (dart.equals(this.elementAt(i), element)) return true;
51 if (length != this.length) {
52 dart.throw(new core.ConcurrentModificationError(this));
53 }
54 }
55 return false;
56 }
57 every(test) {
58 dart.as(test, dart.functionType(core.bool, [E]));
59 let length = this.length;
60 for (let i = 0; i < dart.notNull(length); i++) {
61 if (!dart.notNull(test(this.elementAt(i)))) return false;
62 if (length != this.length) {
63 dart.throw(new core.ConcurrentModificationError(this));
64 }
65 }
66 return true;
67 }
68 any(test) {
69 dart.as(test, dart.functionType(core.bool, [E]));
70 let length = this.length;
71 for (let i = 0; i < dart.notNull(length); i++) {
72 if (dart.notNull(test(this.elementAt(i)))) return true;
73 if (length != this.length) {
74 dart.throw(new core.ConcurrentModificationError(this));
75 }
76 }
77 return false;
78 }
79 firstWhere(test, opts) {
80 dart.as(test, dart.functionType(core.bool, [E]));
81 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
82 dart.as(orElse, dart.functionType(E, []));
83 let length = this.length;
84 for (let i = 0; i < dart.notNull(length); i++) {
85 let element = this.elementAt(i);
86 if (dart.notNull(test(element))) return element;
87 if (length != this.length) {
88 dart.throw(new core.ConcurrentModificationError(this));
89 }
90 }
91 if (orElse != null) return orElse();
92 dart.throw(IterableElementError.noElement());
93 }
94 lastWhere(test, opts) {
95 dart.as(test, dart.functionType(core.bool, [E]));
96 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
97 dart.as(orElse, dart.functionType(E, []));
98 let length = this.length;
99 for (let i = dart.notNull(length) - 1; i >= 0; i--) {
100 let element = this.elementAt(i);
101 if (dart.notNull(test(element))) return element;
102 if (length != this.length) {
103 dart.throw(new core.ConcurrentModificationError(this));
104 }
105 }
106 if (orElse != null) return orElse();
107 dart.throw(IterableElementError.noElement());
108 }
109 singleWhere(test) {
110 dart.as(test, dart.functionType(core.bool, [E]));
111 let length = this.length;
112 let match = null;
113 let matchFound = false;
114 for (let i = 0; i < dart.notNull(length); i++) {
115 let element = this.elementAt(i);
116 if (dart.notNull(test(element))) {
117 if (matchFound) {
118 dart.throw(IterableElementError.tooMany());
119 }
120 matchFound = true;
121 match = element;
122 }
123 if (length != this.length) {
124 dart.throw(new core.ConcurrentModificationError(this));
125 }
126 }
127 if (matchFound) return match;
128 dart.throw(IterableElementError.noElement());
129 }
130 join(separator) {
131 if (separator === void 0) separator = "";
132 let length = this.length;
133 if (!dart.notNull(separator[dartx.isEmpty])) {
134 if (length == 0) return "";
135 let first = `${this.elementAt(0)}`;
136 if (length != this.length) {
137 dart.throw(new core.ConcurrentModificationError(this));
138 }
139 let buffer = new core.StringBuffer(first);
140 for (let i = 1; i < dart.notNull(length); i++) {
141 buffer.write(separator);
142 buffer.write(this.elementAt(i));
143 if (length != this.length) {
144 dart.throw(new core.ConcurrentModificationError(this));
145 }
146 }
147 return buffer.toString();
148 } else {
149 let buffer = new core.StringBuffer();
150 for (let i = 0; i < dart.notNull(length); i++) {
151 buffer.write(this.elementAt(i));
152 if (length != this.length) {
153 dart.throw(new core.ConcurrentModificationError(this));
154 }
155 }
156 return buffer.toString();
157 }
158 }
159 where(test) {
160 dart.as(test, dart.functionType(core.bool, [E]));
161 return super.where(test);
162 }
163 map(f) {
164 dart.as(f, dart.functionType(dart.dynamic, [E]));
165 return new (MappedListIterable$(E, dart.dynamic))(this, f);
166 }
167 reduce(combine) {
168 dart.as(combine, dart.functionType(E, [dart.dynamic, E]));
169 let length = this.length;
170 if (length == 0) dart.throw(IterableElementError.noElement());
171 let value = this.elementAt(0);
172 for (let i = 1; i < dart.notNull(length); i++) {
173 value = dart.dcall(combine, value, this.elementAt(i));
174 if (length != this.length) {
175 dart.throw(new core.ConcurrentModificationError(this));
176 }
177 }
178 return value;
179 }
180 fold(initialValue, combine) {
181 dart.as(combine, dart.functionType(dart.dynamic, [dart.dynamic, E]));
182 let value = initialValue;
183 let length = this.length;
184 for (let i = 0; i < dart.notNull(length); i++) {
185 value = combine(value, this.elementAt(i));
186 if (length != this.length) {
187 dart.throw(new core.ConcurrentModificationError(this));
188 }
189 }
190 return value;
191 }
192 skip(count) {
193 return new (SubListIterable$(E))(this, count, null);
194 }
195 skipWhile(test) {
196 dart.as(test, dart.functionType(core.bool, [E]));
197 return super.skipWhile(test);
198 }
199 take(count) {
200 return new (SubListIterable$(E))(this, 0, count);
201 }
202 takeWhile(test) {
203 dart.as(test, dart.functionType(core.bool, [E]));
204 return super.takeWhile(test);
205 }
206 toList(opts) {
207 let growable = opts && 'growable' in opts ? opts.growable : true;
208 let result = null;
209 if (dart.notNull(growable)) {
210 result = core.List$(E).new();
211 result[dartx.length] = this.length;
212 } else {
213 result = core.List$(E).new(this.length);
214 }
215 for (let i = 0; i < dart.notNull(this.length); i++) {
216 result[dartx.set](i, this.elementAt(i));
217 }
218 return result;
219 }
220 toSet() {
221 let result = core.Set$(E).new();
222 for (let i = 0; i < dart.notNull(this.length); i++) {
223 result.add(this.elementAt(i));
224 }
225 return result;
226 }
227 }
228 ListIterable[dart.implements] = () => [EfficientLength];
229 dart.setSignature(ListIterable, {
230 constructors: () => ({ListIterable: [ListIterable$(E), []]}),
231 methods: () => ({
232 forEach: [dart.void, [dart.functionType(dart.void, [E])]],
233 every: [core.bool, [dart.functionType(core.bool, [E])]],
234 any: [core.bool, [dart.functionType(core.bool, [E])]],
235 firstWhere: [E, [dart.functionType(core.bool, [E])], {orElse: dart.funct ionType(E, [])}],
236 lastWhere: [E, [dart.functionType(core.bool, [E])], {orElse: dart.functi onType(E, [])}],
237 singleWhere: [E, [dart.functionType(core.bool, [E])]],
238 where: [core.Iterable$(E), [dart.functionType(core.bool, [E])]],
239 map: [core.Iterable, [dart.functionType(dart.dynamic, [E])]],
240 reduce: [E, [dart.functionType(E, [dart.dynamic, E])]],
241 fold: [dart.dynamic, [dart.dynamic, dart.functionType(dart.dynamic, [dar t.dynamic, E])]],
242 skip: [core.Iterable$(E), [core.int]],
243 skipWhile: [core.Iterable$(E), [dart.functionType(core.bool, [E])]],
244 take: [core.Iterable$(E), [core.int]],
245 takeWhile: [core.Iterable$(E), [dart.functionType(core.bool, [E])]],
246 toList: [core.List$(E), [], {growable: core.bool}],
247 toSet: [core.Set$(E), []]
248 })
249 });
250 dart.defineExtensionMembers(ListIterable, [
251 'forEach',
252 'contains',
253 'every',
254 'any',
255 'firstWhere',
256 'lastWhere',
257 'singleWhere',
258 'join',
259 'where',
260 'map',
261 'reduce',
262 'fold',
263 'skip',
264 'skipWhile',
265 'take',
266 'takeWhile',
267 'toList',
268 'toSet',
269 'iterator',
270 'isEmpty',
271 'first',
272 'last',
273 'single'
274 ]);
275 return ListIterable;
276 });
277 let ListIterable = ListIterable$();
278 const _iterable = dart.JsSymbol('_iterable');
279 const _start = dart.JsSymbol('_start');
280 const _endOrLength = dart.JsSymbol('_endOrLength');
281 const _endIndex = dart.JsSymbol('_endIndex');
282 const _startIndex = dart.JsSymbol('_startIndex');
283 const SubListIterable$ = dart.generic(function(E) {
284 class SubListIterable extends ListIterable$(E) {
285 SubListIterable(iterable, start, endOrLength) {
286 this[_iterable] = iterable;
287 this[_start] = start;
288 this[_endOrLength] = endOrLength;
289 super.ListIterable();
290 core.RangeError.checkNotNegative(this[_start], "start");
291 if (this[_endOrLength] != null) {
292 core.RangeError.checkNotNegative(this[_endOrLength], "end");
293 if (dart.notNull(this[_start]) > dart.notNull(this[_endOrLength])) {
294 dart.throw(new core.RangeError.range(this[_start], 0, this[_endOrLen gth], "start"));
295 }
296 }
297 }
298 get [_endIndex]() {
299 let length = this[_iterable][dartx.length];
300 if (this[_endOrLength] == null || dart.notNull(this[_endOrLength]) > dar t.notNull(length)) return length;
301 return this[_endOrLength];
302 }
303 get [_startIndex]() {
304 let length = this[_iterable][dartx.length];
305 if (dart.notNull(this[_start]) > dart.notNull(length)) return length;
306 return this[_start];
307 }
308 get length() {
309 let length = this[_iterable][dartx.length];
310 if (dart.notNull(this[_start]) >= dart.notNull(length)) return 0;
311 if (this[_endOrLength] == null || dart.notNull(this[_endOrLength]) >= da rt.notNull(length)) {
312 return dart.notNull(length) - dart.notNull(this[_start]);
313 }
314 return dart.notNull(this[_endOrLength]) - dart.notNull(this[_start]);
315 }
316 elementAt(index) {
317 let realIndex = dart.notNull(this[_startIndex]) + dart.notNull(index);
318 if (dart.notNull(index) < 0 || realIndex >= dart.notNull(this[_endIndex] )) {
319 dart.throw(core.RangeError.index(index, this, "index"));
320 }
321 return this[_iterable][dartx.elementAt](realIndex);
322 }
323 skip(count) {
324 core.RangeError.checkNotNegative(count, "count");
325 let newStart = dart.notNull(this[_start]) + dart.notNull(count);
326 if (this[_endOrLength] != null && newStart >= dart.notNull(this[_endOrLe ngth])) {
327 return new (EmptyIterable$(E))();
328 }
329 return new (SubListIterable$(E))(this[_iterable], newStart, this[_endOrL ength]);
330 }
331 take(count) {
332 core.RangeError.checkNotNegative(count, "count");
333 if (this[_endOrLength] == null) {
334 return new (SubListIterable$(E))(this[_iterable], this[_start], dart.n otNull(this[_start]) + dart.notNull(count));
335 } else {
336 let newEnd = dart.notNull(this[_start]) + dart.notNull(count);
337 if (dart.notNull(this[_endOrLength]) < newEnd) return this;
338 return new (SubListIterable$(E))(this[_iterable], this[_start], newEnd );
339 }
340 }
341 toList(opts) {
342 let growable = opts && 'growable' in opts ? opts.growable : true;
343 let start = this[_start];
344 let end = this[_iterable][dartx.length];
345 if (this[_endOrLength] != null && dart.notNull(this[_endOrLength]) < dar t.notNull(end)) end = this[_endOrLength];
346 let length = dart.notNull(end) - dart.notNull(start);
347 if (length < 0) length = 0;
348 let result = dart.notNull(growable) ? (() => {
349 let _ = core.List$(E).new();
350 _[dartx.length] = length;
351 return _;
352 })() : core.List$(E).new(length);
353 for (let i = 0; i < length; i++) {
354 result[dartx.set](i, this[_iterable][dartx.elementAt](dart.notNull(sta rt) + i));
355 if (dart.notNull(this[_iterable][dartx.length]) < dart.notNull(end)) d art.throw(new core.ConcurrentModificationError(this));
356 }
357 return dart.as(result, core.List$(E));
358 }
359 }
360 dart.setSignature(SubListIterable, {
361 constructors: () => ({SubListIterable: [SubListIterable$(E), [core.Iterabl e$(E), core.int, core.int]]}),
362 methods: () => ({
363 elementAt: [E, [core.int]],
364 skip: [core.Iterable$(E), [core.int]],
365 take: [core.Iterable$(E), [core.int]],
366 toList: [core.List$(E), [], {growable: core.bool}]
367 })
368 });
369 dart.defineExtensionMembers(SubListIterable, [
370 'elementAt',
371 'skip',
372 'take',
373 'toList',
374 'length'
375 ]);
376 return SubListIterable;
377 });
378 let SubListIterable = SubListIterable$();
379 const _length = dart.JsSymbol('_length');
380 const _index = dart.JsSymbol('_index');
381 const _current = dart.JsSymbol('_current');
382 const ListIterator$ = dart.generic(function(E) {
383 class ListIterator extends core.Object {
384 ListIterator(iterable) {
385 this[_iterable] = iterable;
386 this[_length] = iterable[dartx.length];
387 this[_index] = 0;
388 this[_current] = null;
389 }
390 get current() {
391 return this[_current];
392 }
393 moveNext() {
394 let length = this[_iterable][dartx.length];
395 if (this[_length] != length) {
396 dart.throw(new core.ConcurrentModificationError(this[_iterable]));
397 }
398 if (dart.notNull(this[_index]) >= dart.notNull(length)) {
399 this[_current] = null;
400 return false;
401 }
402 this[_current] = this[_iterable][dartx.elementAt](this[_index]);
403 this[_index] = dart.notNull(this[_index]) + 1;
404 return true;
405 }
406 }
407 ListIterator[dart.implements] = () => [core.Iterator$(E)];
408 dart.setSignature(ListIterator, {
409 constructors: () => ({ListIterator: [ListIterator$(E), [core.Iterable$(E)] ]}),
410 methods: () => ({moveNext: [core.bool, []]})
411 });
412 return ListIterator;
413 });
414 let ListIterator = ListIterator$();
415 const _Transformation$ = dart.generic(function(S, T) {
416 const _Transformation = dart.typedef('_Transformation', () => dart.functionT ype(T, [S]));
417 return _Transformation;
418 });
419 let _Transformation = _Transformation$();
420 const _f = dart.JsSymbol('_f');
421 const MappedIterable$ = dart.generic(function(S, T) {
422 class MappedIterable extends collection.IterableBase$(T) {
423 static new(iterable, func) {
424 if (dart.is(iterable, EfficientLength)) {
425 return new (EfficientLengthMappedIterable$(S, T))(iterable, func);
426 }
427 return new (MappedIterable$(S, T))._(dart.as(iterable, core.Iterable$(S) ), func);
428 }
429 _(iterable, f) {
430 this[_iterable] = iterable;
431 this[_f] = f;
432 super.IterableBase();
433 }
434 get iterator() {
435 return new (MappedIterator$(S, T))(this[_iterable][dartx.iterator], this [_f]);
436 }
437 get length() {
438 return this[_iterable][dartx.length];
439 }
440 get isEmpty() {
441 return this[_iterable][dartx.isEmpty];
442 }
443 get first() {
444 return this[_f](this[_iterable][dartx.first]);
445 }
446 get last() {
447 return this[_f](this[_iterable][dartx.last]);
448 }
449 get single() {
450 return this[_f](this[_iterable][dartx.single]);
451 }
452 elementAt(index) {
453 return this[_f](this[_iterable][dartx.elementAt](index));
454 }
455 }
456 dart.defineNamedConstructor(MappedIterable, '_');
457 dart.setSignature(MappedIterable, {
458 constructors: () => ({
459 new: [MappedIterable$(S, T), [core.Iterable, dart.functionType(T, [S])]] ,
460 _: [MappedIterable$(S, T), [core.Iterable$(S), dart.functionType(T, [S]) ]]
461 }),
462 methods: () => ({elementAt: [T, [core.int]]})
463 });
464 dart.defineExtensionMembers(MappedIterable, [
465 'elementAt',
466 'iterator',
467 'length',
468 'isEmpty',
469 'first',
470 'last',
471 'single'
472 ]);
473 return MappedIterable;
474 });
475 let MappedIterable = MappedIterable$();
476 const EfficientLengthMappedIterable$ = dart.generic(function(S, T) {
477 class EfficientLengthMappedIterable extends MappedIterable$(S, T) {
478 EfficientLengthMappedIterable(iterable, func) {
479 super._(dart.as(iterable, core.Iterable$(S)), func);
480 }
481 }
482 EfficientLengthMappedIterable[dart.implements] = () => [EfficientLength];
483 dart.setSignature(EfficientLengthMappedIterable, {
484 constructors: () => ({EfficientLengthMappedIterable: [EfficientLengthMappe dIterable$(S, T), [core.Iterable, dart.functionType(T, [S])]]})
485 });
486 return EfficientLengthMappedIterable;
487 });
488 let EfficientLengthMappedIterable = EfficientLengthMappedIterable$();
489 const _iterator = dart.JsSymbol('_iterator');
490 const MappedIterator$ = dart.generic(function(S, T) {
491 class MappedIterator extends core.Iterator$(T) {
492 MappedIterator(iterator, f) {
493 this[_iterator] = iterator;
494 this[_f] = f;
495 this[_current] = null;
496 }
497 moveNext() {
498 if (dart.notNull(this[_iterator].moveNext())) {
499 this[_current] = this[_f](this[_iterator].current);
500 return true;
501 }
502 this[_current] = null;
503 return false;
504 }
505 get current() {
506 return this[_current];
507 }
508 }
509 dart.setSignature(MappedIterator, {
510 constructors: () => ({MappedIterator: [MappedIterator$(S, T), [core.Iterat or$(S), dart.functionType(T, [S])]]}),
511 methods: () => ({moveNext: [core.bool, []]})
512 });
513 return MappedIterator;
514 });
515 let MappedIterator = MappedIterator$();
516 const _source = dart.JsSymbol('_source');
517 const MappedListIterable$ = dart.generic(function(S, T) {
518 class MappedListIterable extends ListIterable$(T) {
519 MappedListIterable(source, f) {
520 this[_source] = source;
521 this[_f] = f;
522 super.ListIterable();
523 }
524 get length() {
525 return this[_source][dartx.length];
526 }
527 elementAt(index) {
528 return this[_f](this[_source][dartx.elementAt](index));
529 }
530 }
531 MappedListIterable[dart.implements] = () => [EfficientLength];
532 dart.setSignature(MappedListIterable, {
533 constructors: () => ({MappedListIterable: [MappedListIterable$(S, T), [cor e.Iterable$(S), dart.functionType(T, [S])]]}),
534 methods: () => ({elementAt: [T, [core.int]]})
535 });
536 dart.defineExtensionMembers(MappedListIterable, ['elementAt', 'length']);
537 return MappedListIterable;
538 });
539 let MappedListIterable = MappedListIterable$();
540 const _ElementPredicate$ = dart.generic(function(E) {
541 const _ElementPredicate = dart.typedef('_ElementPredicate', () => dart.funct ionType(core.bool, [E]));
542 return _ElementPredicate;
543 });
544 let _ElementPredicate = _ElementPredicate$();
545 const WhereIterable$ = dart.generic(function(E) {
546 class WhereIterable extends collection.IterableBase$(E) {
547 WhereIterable(iterable, f) {
548 this[_iterable] = iterable;
549 this[_f] = f;
550 super.IterableBase();
551 }
552 get iterator() {
553 return new (WhereIterator$(E))(this[_iterable][dartx.iterator], this[_f] );
554 }
555 }
556 dart.setSignature(WhereIterable, {
557 constructors: () => ({WhereIterable: [WhereIterable$(E), [core.Iterable$(E ), dart.functionType(core.bool, [E])]]})
558 });
559 dart.defineExtensionMembers(WhereIterable, ['iterator']);
560 return WhereIterable;
561 });
562 let WhereIterable = WhereIterable$();
563 const WhereIterator$ = dart.generic(function(E) {
564 class WhereIterator extends core.Iterator$(E) {
565 WhereIterator(iterator, f) {
566 this[_iterator] = iterator;
567 this[_f] = f;
568 }
569 moveNext() {
570 while (dart.notNull(this[_iterator].moveNext())) {
571 if (dart.notNull(this[_f](this[_iterator].current))) {
572 return true;
573 }
574 }
575 return false;
576 }
577 get current() {
578 return this[_iterator].current;
579 }
580 }
581 dart.setSignature(WhereIterator, {
582 constructors: () => ({WhereIterator: [WhereIterator$(E), [core.Iterator$(E ), dart.functionType(core.bool, [E])]]}),
583 methods: () => ({moveNext: [core.bool, []]})
584 });
585 return WhereIterator;
586 });
587 let WhereIterator = WhereIterator$();
588 const _ExpandFunction$ = dart.generic(function(S, T) {
589 const _ExpandFunction = dart.typedef('_ExpandFunction', () => dart.functionT ype(core.Iterable$(T), [S]));
590 return _ExpandFunction;
591 });
592 let _ExpandFunction = _ExpandFunction$();
593 const ExpandIterable$ = dart.generic(function(S, T) {
594 class ExpandIterable extends collection.IterableBase$(T) {
595 ExpandIterable(iterable, f) {
596 this[_iterable] = iterable;
597 this[_f] = f;
598 super.IterableBase();
599 }
600 get iterator() {
601 return new (ExpandIterator$(S, T))(this[_iterable][dartx.iterator], dart .as(this[_f], dart.functionType(core.Iterable$(T), [S])));
602 }
603 }
604 dart.setSignature(ExpandIterable, {
605 constructors: () => ({ExpandIterable: [ExpandIterable$(S, T), [core.Iterab le$(S), dart.functionType(core.Iterable$(T), [S])]]})
606 });
607 dart.defineExtensionMembers(ExpandIterable, ['iterator']);
608 return ExpandIterable;
609 });
610 let ExpandIterable = ExpandIterable$();
611 const _currentExpansion = dart.JsSymbol('_currentExpansion');
612 const _nextExpansion = dart.JsSymbol('_nextExpansion');
613 const ExpandIterator$ = dart.generic(function(S, T) {
614 class ExpandIterator extends core.Object {
615 ExpandIterator(iterator, f) {
616 this[_iterator] = iterator;
617 this[_f] = f;
618 this[_currentExpansion] = dart.const(new (EmptyIterator$(T))());
619 this[_current] = null;
620 }
621 [_nextExpansion]() {}
622 get current() {
623 return this[_current];
624 }
625 moveNext() {
626 if (this[_currentExpansion] == null) return false;
627 while (!dart.notNull(this[_currentExpansion].moveNext())) {
628 this[_current] = null;
629 if (dart.notNull(this[_iterator].moveNext())) {
630 this[_currentExpansion] = null;
631 this[_currentExpansion] = dart.as(dart.dcall(this[_f], this[_iterato r].current)[dartx.iterator], core.Iterator$(T));
632 } else {
633 return false;
634 }
635 }
636 this[_current] = this[_currentExpansion].current;
637 return true;
638 }
639 }
640 ExpandIterator[dart.implements] = () => [core.Iterator$(T)];
641 dart.setSignature(ExpandIterator, {
642 constructors: () => ({ExpandIterator: [ExpandIterator$(S, T), [core.Iterat or$(S), dart.functionType(core.Iterable$(T), [S])]]}),
643 methods: () => ({
644 [_nextExpansion]: [dart.void, []],
645 moveNext: [core.bool, []]
646 })
647 });
648 return ExpandIterator;
649 });
650 let ExpandIterator = ExpandIterator$();
651 const _takeCount = dart.JsSymbol('_takeCount');
652 const TakeIterable$ = dart.generic(function(E) {
653 class TakeIterable extends collection.IterableBase$(E) {
654 static new(iterable, takeCount) {
655 if (!(typeof takeCount == 'number') || dart.notNull(takeCount) < 0) {
656 dart.throw(new core.ArgumentError(takeCount));
657 }
658 if (dart.is(iterable, EfficientLength)) {
659 return new (EfficientLengthTakeIterable$(E))(iterable, takeCount);
660 }
661 return new (TakeIterable$(E))._(iterable, takeCount);
662 }
663 _(iterable, takeCount) {
664 this[_iterable] = iterable;
665 this[_takeCount] = takeCount;
666 super.IterableBase();
667 }
668 get iterator() {
669 return new (TakeIterator$(E))(this[_iterable][dartx.iterator], this[_tak eCount]);
670 }
671 }
672 dart.defineNamedConstructor(TakeIterable, '_');
673 dart.setSignature(TakeIterable, {
674 constructors: () => ({
675 new: [TakeIterable$(E), [core.Iterable$(E), core.int]],
676 _: [TakeIterable$(E), [core.Iterable$(E), core.int]]
677 })
678 });
679 dart.defineExtensionMembers(TakeIterable, ['iterator']);
680 return TakeIterable;
681 });
682 let TakeIterable = TakeIterable$();
683 const EfficientLengthTakeIterable$ = dart.generic(function(E) {
684 class EfficientLengthTakeIterable extends TakeIterable$(E) {
685 EfficientLengthTakeIterable(iterable, takeCount) {
686 super._(iterable, takeCount);
687 }
688 get length() {
689 let iterableLength = this[_iterable][dartx.length];
690 if (dart.notNull(iterableLength) > dart.notNull(this[_takeCount])) retur n this[_takeCount];
691 return iterableLength;
692 }
693 }
694 EfficientLengthTakeIterable[dart.implements] = () => [EfficientLength];
695 dart.setSignature(EfficientLengthTakeIterable, {
696 constructors: () => ({EfficientLengthTakeIterable: [EfficientLengthTakeIte rable$(E), [core.Iterable$(E), core.int]]})
697 });
698 dart.defineExtensionMembers(EfficientLengthTakeIterable, ['length']);
699 return EfficientLengthTakeIterable;
700 });
701 let EfficientLengthTakeIterable = EfficientLengthTakeIterable$();
702 const _remaining = dart.JsSymbol('_remaining');
703 const TakeIterator$ = dart.generic(function(E) {
704 class TakeIterator extends core.Iterator$(E) {
705 TakeIterator(iterator, remaining) {
706 this[_iterator] = iterator;
707 this[_remaining] = remaining;
708 dart.assert(typeof this[_remaining] == 'number' && dart.notNull(this[_re maining]) >= 0);
709 }
710 moveNext() {
711 this[_remaining] = dart.notNull(this[_remaining]) - 1;
712 if (dart.notNull(this[_remaining]) >= 0) {
713 return this[_iterator].moveNext();
714 }
715 this[_remaining] = -1;
716 return false;
717 }
718 get current() {
719 if (dart.notNull(this[_remaining]) < 0) return null;
720 return this[_iterator].current;
721 }
722 }
723 dart.setSignature(TakeIterator, {
724 constructors: () => ({TakeIterator: [TakeIterator$(E), [core.Iterator$(E), core.int]]}),
725 methods: () => ({moveNext: [core.bool, []]})
726 });
727 return TakeIterator;
728 });
729 let TakeIterator = TakeIterator$();
730 const TakeWhileIterable$ = dart.generic(function(E) {
731 class TakeWhileIterable extends collection.IterableBase$(E) {
732 TakeWhileIterable(iterable, f) {
733 this[_iterable] = iterable;
734 this[_f] = f;
735 super.IterableBase();
736 }
737 get iterator() {
738 return new (TakeWhileIterator$(E))(this[_iterable][dartx.iterator], this [_f]);
739 }
740 }
741 dart.setSignature(TakeWhileIterable, {
742 constructors: () => ({TakeWhileIterable: [TakeWhileIterable$(E), [core.Ite rable$(E), dart.functionType(core.bool, [E])]]})
743 });
744 dart.defineExtensionMembers(TakeWhileIterable, ['iterator']);
745 return TakeWhileIterable;
746 });
747 let TakeWhileIterable = TakeWhileIterable$();
748 const _isFinished = dart.JsSymbol('_isFinished');
749 const TakeWhileIterator$ = dart.generic(function(E) {
750 class TakeWhileIterator extends core.Iterator$(E) {
751 TakeWhileIterator(iterator, f) {
752 this[_iterator] = iterator;
753 this[_f] = f;
754 this[_isFinished] = false;
755 }
756 moveNext() {
757 if (dart.notNull(this[_isFinished])) return false;
758 if (!dart.notNull(this[_iterator].moveNext()) || !dart.notNull(this[_f]( this[_iterator].current))) {
759 this[_isFinished] = true;
760 return false;
761 }
762 return true;
763 }
764 get current() {
765 if (dart.notNull(this[_isFinished])) return null;
766 return this[_iterator].current;
767 }
768 }
769 dart.setSignature(TakeWhileIterator, {
770 constructors: () => ({TakeWhileIterator: [TakeWhileIterator$(E), [core.Ite rator$(E), dart.functionType(core.bool, [E])]]}),
771 methods: () => ({moveNext: [core.bool, []]})
772 });
773 return TakeWhileIterator;
774 });
775 let TakeWhileIterator = TakeWhileIterator$();
776 const _skipCount = dart.JsSymbol('_skipCount');
777 const SkipIterable$ = dart.generic(function(E) {
778 class SkipIterable extends collection.IterableBase$(E) {
779 static new(iterable, count) {
780 if (dart.is(iterable, EfficientLength)) {
781 return new (EfficientLengthSkipIterable$(E))(iterable, count);
782 }
783 return new (SkipIterable$(E))._(iterable, count);
784 }
785 _(iterable, skipCount) {
786 this[_iterable] = iterable;
787 this[_skipCount] = skipCount;
788 super.IterableBase();
789 if (!(typeof this[_skipCount] == 'number')) {
790 dart.throw(new core.ArgumentError.value(this[_skipCount], "count is no t an integer"));
791 }
792 core.RangeError.checkNotNegative(this[_skipCount], "count");
793 }
794 skip(count) {
795 if (!(typeof this[_skipCount] == 'number')) {
796 dart.throw(new core.ArgumentError.value(this[_skipCount], "count is no t an integer"));
797 }
798 core.RangeError.checkNotNegative(this[_skipCount], "count");
799 return new (SkipIterable$(E))._(this[_iterable], dart.notNull(this[_skip Count]) + dart.notNull(count));
800 }
801 get iterator() {
802 return new (SkipIterator$(E))(this[_iterable][dartx.iterator], this[_ski pCount]);
803 }
804 }
805 dart.defineNamedConstructor(SkipIterable, '_');
806 dart.setSignature(SkipIterable, {
807 constructors: () => ({
808 new: [SkipIterable$(E), [core.Iterable$(E), core.int]],
809 _: [SkipIterable$(E), [core.Iterable$(E), core.int]]
810 }),
811 methods: () => ({skip: [core.Iterable$(E), [core.int]]})
812 });
813 dart.defineExtensionMembers(SkipIterable, ['skip', 'iterator']);
814 return SkipIterable;
815 });
816 let SkipIterable = SkipIterable$();
817 const EfficientLengthSkipIterable$ = dart.generic(function(E) {
818 class EfficientLengthSkipIterable extends SkipIterable$(E) {
819 EfficientLengthSkipIterable(iterable, skipCount) {
820 super._(iterable, skipCount);
821 }
822 get length() {
823 let length = dart.notNull(this[_iterable][dartx.length]) - dart.notNull( this[_skipCount]);
824 if (length >= 0) return length;
825 return 0;
826 }
827 }
828 EfficientLengthSkipIterable[dart.implements] = () => [EfficientLength];
829 dart.setSignature(EfficientLengthSkipIterable, {
830 constructors: () => ({EfficientLengthSkipIterable: [EfficientLengthSkipIte rable$(E), [core.Iterable$(E), core.int]]})
831 });
832 dart.defineExtensionMembers(EfficientLengthSkipIterable, ['length']);
833 return EfficientLengthSkipIterable;
834 });
835 let EfficientLengthSkipIterable = EfficientLengthSkipIterable$();
836 const SkipIterator$ = dart.generic(function(E) {
837 class SkipIterator extends core.Iterator$(E) {
838 SkipIterator(iterator, skipCount) {
839 this[_iterator] = iterator;
840 this[_skipCount] = skipCount;
841 dart.assert(typeof this[_skipCount] == 'number' && dart.notNull(this[_sk ipCount]) >= 0);
842 }
843 moveNext() {
844 for (let i = 0; i < dart.notNull(this[_skipCount]); i++)
845 this[_iterator].moveNext();
846 this[_skipCount] = 0;
847 return this[_iterator].moveNext();
848 }
849 get current() {
850 return this[_iterator].current;
851 }
852 }
853 dart.setSignature(SkipIterator, {
854 constructors: () => ({SkipIterator: [SkipIterator$(E), [core.Iterator$(E), core.int]]}),
855 methods: () => ({moveNext: [core.bool, []]})
856 });
857 return SkipIterator;
858 });
859 let SkipIterator = SkipIterator$();
860 const SkipWhileIterable$ = dart.generic(function(E) {
861 class SkipWhileIterable extends collection.IterableBase$(E) {
862 SkipWhileIterable(iterable, f) {
863 this[_iterable] = iterable;
864 this[_f] = f;
865 super.IterableBase();
866 }
867 get iterator() {
868 return new (SkipWhileIterator$(E))(this[_iterable][dartx.iterator], this [_f]);
869 }
870 }
871 dart.setSignature(SkipWhileIterable, {
872 constructors: () => ({SkipWhileIterable: [SkipWhileIterable$(E), [core.Ite rable$(E), dart.functionType(core.bool, [E])]]})
873 });
874 dart.defineExtensionMembers(SkipWhileIterable, ['iterator']);
875 return SkipWhileIterable;
876 });
877 let SkipWhileIterable = SkipWhileIterable$();
878 const _hasSkipped = dart.JsSymbol('_hasSkipped');
879 const SkipWhileIterator$ = dart.generic(function(E) {
880 class SkipWhileIterator extends core.Iterator$(E) {
881 SkipWhileIterator(iterator, f) {
882 this[_iterator] = iterator;
883 this[_f] = f;
884 this[_hasSkipped] = false;
885 }
886 moveNext() {
887 if (!dart.notNull(this[_hasSkipped])) {
888 this[_hasSkipped] = true;
889 while (dart.notNull(this[_iterator].moveNext())) {
890 if (!dart.notNull(this[_f](this[_iterator].current))) return true;
891 }
892 }
893 return this[_iterator].moveNext();
894 }
895 get current() {
896 return this[_iterator].current;
897 }
898 }
899 dart.setSignature(SkipWhileIterator, {
900 constructors: () => ({SkipWhileIterator: [SkipWhileIterator$(E), [core.Ite rator$(E), dart.functionType(core.bool, [E])]]}),
901 methods: () => ({moveNext: [core.bool, []]})
902 });
903 return SkipWhileIterator;
904 });
905 let SkipWhileIterator = SkipWhileIterator$();
906 const EmptyIterable$ = dart.generic(function(E) {
907 class EmptyIterable extends collection.IterableBase$(E) {
908 EmptyIterable() {
909 super.IterableBase();
910 }
911 get iterator() {
912 return dart.const(new (EmptyIterator$(E))());
913 }
914 forEach(action) {
915 dart.as(action, dart.functionType(dart.void, [E]));
916 }
917 get isEmpty() {
918 return true;
919 }
920 get length() {
921 return 0;
922 }
923 get first() {
924 dart.throw(IterableElementError.noElement());
925 }
926 get last() {
927 dart.throw(IterableElementError.noElement());
928 }
929 get single() {
930 dart.throw(IterableElementError.noElement());
931 }
932 elementAt(index) {
933 dart.throw(new core.RangeError.range(index, 0, 0, "index"));
934 }
935 contains(element) {
936 return false;
937 }
938 every(test) {
939 dart.as(test, dart.functionType(core.bool, [E]));
940 return true;
941 }
942 any(test) {
943 dart.as(test, dart.functionType(core.bool, [E]));
944 return false;
945 }
946 firstWhere(test, opts) {
947 dart.as(test, dart.functionType(core.bool, [E]));
948 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
949 dart.as(orElse, dart.functionType(E, []));
950 if (orElse != null) return orElse();
951 dart.throw(IterableElementError.noElement());
952 }
953 lastWhere(test, opts) {
954 dart.as(test, dart.functionType(core.bool, [E]));
955 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
956 dart.as(orElse, dart.functionType(E, []));
957 if (orElse != null) return orElse();
958 dart.throw(IterableElementError.noElement());
959 }
960 singleWhere(test, opts) {
961 dart.as(test, dart.functionType(core.bool, [E]));
962 let orElse = opts && 'orElse' in opts ? opts.orElse : null;
963 dart.as(orElse, dart.functionType(E, []));
964 if (orElse != null) return orElse();
965 dart.throw(IterableElementError.noElement());
966 }
967 join(separator) {
968 if (separator === void 0) separator = "";
969 return "";
970 }
971 where(test) {
972 dart.as(test, dart.functionType(core.bool, [E]));
973 return this;
974 }
975 map(f) {
976 dart.as(f, dart.functionType(dart.dynamic, [E]));
977 return dart.const(new (EmptyIterable$())());
978 }
979 reduce(combine) {
980 dart.as(combine, dart.functionType(E, [E, E]));
981 dart.throw(IterableElementError.noElement());
982 }
983 fold(initialValue, combine) {
984 dart.as(combine, dart.functionType(dart.dynamic, [dart.dynamic, E]));
985 return initialValue;
986 }
987 skip(count) {
988 core.RangeError.checkNotNegative(count, "count");
989 return this;
990 }
991 skipWhile(test) {
992 dart.as(test, dart.functionType(core.bool, [E]));
993 return this;
994 }
995 take(count) {
996 core.RangeError.checkNotNegative(count, "count");
997 return this;
998 }
999 takeWhile(test) {
1000 dart.as(test, dart.functionType(core.bool, [E]));
1001 return this;
1002 }
1003 toList(opts) {
1004 let growable = opts && 'growable' in opts ? opts.growable : true;
1005 return dart.notNull(growable) ? dart.list([], E) : core.List$(E).new(0);
1006 }
1007 toSet() {
1008 return core.Set$(E).new();
1009 }
1010 }
1011 EmptyIterable[dart.implements] = () => [EfficientLength];
1012 dart.setSignature(EmptyIterable, {
1013 constructors: () => ({EmptyIterable: [EmptyIterable$(E), []]}),
1014 methods: () => ({
1015 forEach: [dart.void, [dart.functionType(dart.void, [E])]],
1016 elementAt: [E, [core.int]],
1017 every: [core.bool, [dart.functionType(core.bool, [E])]],
1018 any: [core.bool, [dart.functionType(core.bool, [E])]],
1019 firstWhere: [E, [dart.functionType(core.bool, [E])], {orElse: dart.funct ionType(E, [])}],
1020 lastWhere: [E, [dart.functionType(core.bool, [E])], {orElse: dart.functi onType(E, [])}],
1021 singleWhere: [E, [dart.functionType(core.bool, [E])], {orElse: dart.func tionType(E, [])}],
1022 where: [core.Iterable$(E), [dart.functionType(core.bool, [E])]],
1023 map: [core.Iterable, [dart.functionType(dart.dynamic, [E])]],
1024 reduce: [E, [dart.functionType(E, [E, E])]],
1025 fold: [dart.dynamic, [dart.dynamic, dart.functionType(dart.dynamic, [dar t.dynamic, E])]],
1026 skip: [core.Iterable$(E), [core.int]],
1027 skipWhile: [core.Iterable$(E), [dart.functionType(core.bool, [E])]],
1028 take: [core.Iterable$(E), [core.int]],
1029 takeWhile: [core.Iterable$(E), [dart.functionType(core.bool, [E])]],
1030 toList: [core.List$(E), [], {growable: core.bool}],
1031 toSet: [core.Set$(E), []]
1032 })
1033 });
1034 dart.defineExtensionMembers(EmptyIterable, [
1035 'forEach',
1036 'elementAt',
1037 'contains',
1038 'every',
1039 'any',
1040 'firstWhere',
1041 'lastWhere',
1042 'singleWhere',
1043 'join',
1044 'where',
1045 'map',
1046 'reduce',
1047 'fold',
1048 'skip',
1049 'skipWhile',
1050 'take',
1051 'takeWhile',
1052 'toList',
1053 'toSet',
1054 'iterator',
1055 'isEmpty',
1056 'length',
1057 'first',
1058 'last',
1059 'single'
1060 ]);
1061 return EmptyIterable;
1062 });
1063 let EmptyIterable = EmptyIterable$();
1064 const EmptyIterator$ = dart.generic(function(E) {
1065 class EmptyIterator extends core.Object {
1066 EmptyIterator() {
1067 }
1068 moveNext() {
1069 return false;
1070 }
1071 get current() {
1072 return null;
1073 }
1074 }
1075 EmptyIterator[dart.implements] = () => [core.Iterator$(E)];
1076 dart.setSignature(EmptyIterator, {
1077 constructors: () => ({EmptyIterator: [EmptyIterator$(E), []]}),
1078 methods: () => ({moveNext: [core.bool, []]})
1079 });
1080 return EmptyIterator;
1081 });
1082 let EmptyIterator = EmptyIterator$();
1083 const BidirectionalIterator$ = dart.generic(function(T) {
1084 class BidirectionalIterator extends core.Object {}
1085 BidirectionalIterator[dart.implements] = () => [core.Iterator$(T)];
1086 return BidirectionalIterator;
1087 });
1088 let BidirectionalIterator = BidirectionalIterator$();
1089 const IterableMixinWorkaround$ = dart.generic(function(T) {
1090 class IterableMixinWorkaround extends core.Object {
1091 static contains(iterable, element) {
1092 for (let e of iterable) {
1093 if (dart.equals(e, element)) return true;
1094 }
1095 return false;
1096 }
1097 static forEach(iterable, f) {
1098 for (let e of iterable) {
1099 f(e);
1100 }
1101 }
1102 static any(iterable, f) {
1103 for (let e of iterable) {
1104 if (dart.notNull(f(e))) return true;
1105 }
1106 return false;
1107 }
1108 static every(iterable, f) {
1109 for (let e of iterable) {
1110 if (!dart.notNull(f(e))) return false;
1111 }
1112 return true;
1113 }
1114 static reduce(iterable, combine) {
1115 let iterator = iterable[dartx.iterator];
1116 if (!dart.notNull(iterator.moveNext())) dart.throw(IterableElementError. noElement());
1117 let value = iterator.current;
1118 while (dart.notNull(iterator.moveNext())) {
1119 value = combine(value, iterator.current);
1120 }
1121 return value;
1122 }
1123 static fold(iterable, initialValue, combine) {
1124 for (let element of iterable) {
1125 initialValue = combine(initialValue, element);
1126 }
1127 return initialValue;
1128 }
1129 static removeWhereList(list, test) {
1130 let retained = dart.list([], dart.dynamic);
1131 let length = list[dartx.length];
1132 for (let i = 0; i < dart.notNull(length); i++) {
1133 let element = list[dartx.get](i);
1134 if (!dart.notNull(test(element))) {
1135 retained[dartx.add](element);
1136 }
1137 if (length != list[dartx.length]) {
1138 dart.throw(new core.ConcurrentModificationError(list));
1139 }
1140 }
1141 if (retained[dartx.length] == length) return;
1142 list[dartx.length] = retained[dartx.length];
1143 for (let i = 0; i < dart.notNull(retained[dartx.length]); i++) {
1144 list[dartx.set](i, retained[dartx.get](i));
1145 }
1146 }
1147 static isEmpty(iterable) {
1148 return !dart.notNull(iterable[dartx.iterator].moveNext());
1149 }
1150 static first(iterable) {
1151 let it = iterable[dartx.iterator];
1152 if (!dart.notNull(it.moveNext())) {
1153 dart.throw(IterableElementError.noElement());
1154 }
1155 return it.current;
1156 }
1157 static last(iterable) {
1158 let it = iterable[dartx.iterator];
1159 if (!dart.notNull(it.moveNext())) {
1160 dart.throw(IterableElementError.noElement());
1161 }
1162 let result = null;
1163 do {
1164 result = it.current;
1165 } while (dart.notNull(it.moveNext()));
1166 return result;
1167 }
1168 static single(iterable) {
1169 let it = iterable[dartx.iterator];
1170 if (!dart.notNull(it.moveNext())) dart.throw(IterableElementError.noElem ent());
1171 let result = it.current;
1172 if (dart.notNull(it.moveNext())) dart.throw(IterableElementError.tooMany ());
1173 return result;
1174 }
1175 static firstWhere(iterable, test, orElse) {
1176 for (let element of iterable) {
1177 if (dart.notNull(test(element))) return element;
1178 }
1179 if (orElse != null) return orElse();
1180 dart.throw(IterableElementError.noElement());
1181 }
1182 static lastWhere(iterable, test, orElse) {
1183 let result = null;
1184 let foundMatching = false;
1185 for (let element of iterable) {
1186 if (dart.notNull(test(element))) {
1187 result = element;
1188 foundMatching = true;
1189 }
1190 }
1191 if (foundMatching) return result;
1192 if (orElse != null) return orElse();
1193 dart.throw(IterableElementError.noElement());
1194 }
1195 static lastWhereList(list, test, orElse) {
1196 for (let i = dart.notNull(list[dartx.length]) - 1; i >= 0; i--) {
1197 let element = list[dartx.get](i);
1198 if (dart.notNull(test(element))) return element;
1199 }
1200 if (orElse != null) return orElse();
1201 dart.throw(IterableElementError.noElement());
1202 }
1203 static singleWhere(iterable, test) {
1204 let result = null;
1205 let foundMatching = false;
1206 for (let element of iterable) {
1207 if (dart.notNull(test(element))) {
1208 if (foundMatching) {
1209 dart.throw(IterableElementError.tooMany());
1210 }
1211 result = element;
1212 foundMatching = true;
1213 }
1214 }
1215 if (foundMatching) return result;
1216 dart.throw(IterableElementError.noElement());
1217 }
1218 static elementAt(iterable, index) {
1219 if (!(typeof index == 'number')) dart.throw(new core.ArgumentError.notNu ll("index"));
1220 core.RangeError.checkNotNegative(index, "index");
1221 let elementIndex = 0;
1222 for (let element of iterable) {
1223 if (index == elementIndex) return element;
1224 elementIndex++;
1225 }
1226 dart.throw(core.RangeError.index(index, iterable, "index", null, element Index));
1227 }
1228 static join(iterable, separator) {
1229 if (separator === void 0) separator = null;
1230 let buffer = new core.StringBuffer();
1231 buffer.writeAll(iterable, separator);
1232 return buffer.toString();
1233 }
1234 static joinList(list, separator) {
1235 if (separator === void 0) separator = null;
1236 if (dart.notNull(list[dartx.isEmpty])) return "";
1237 if (list[dartx.length] == 1) return `${list[dartx.get](0)}`;
1238 let buffer = new core.StringBuffer();
1239 if (dart.notNull(separator[dartx.isEmpty])) {
1240 for (let i = 0; i < dart.notNull(list[dartx.length]); i++) {
1241 buffer.write(list[dartx.get](i));
1242 }
1243 } else {
1244 buffer.write(list[dartx.get](0));
1245 for (let i = 1; i < dart.notNull(list[dartx.length]); i++) {
1246 buffer.write(separator);
1247 buffer.write(list[dartx.get](i));
1248 }
1249 }
1250 return buffer.toString();
1251 }
1252 where(iterable, f) {
1253 dart.as(iterable, core.Iterable$(T));
1254 dart.as(f, dart.functionType(core.bool, [T]));
1255 return new (WhereIterable$(T))(iterable, f);
1256 }
1257 static map(iterable, f) {
1258 return MappedIterable.new(iterable, f);
1259 }
1260 static mapList(list, f) {
1261 return new MappedListIterable(list, f);
1262 }
1263 static expand(iterable, f) {
1264 return new ExpandIterable(iterable, f);
1265 }
1266 takeList(list, n) {
1267 return new (SubListIterable$(T))(dart.as(list, core.Iterable$(T)), 0, n) ;
1268 }
1269 takeWhile(iterable, test) {
1270 dart.as(test, dart.functionType(core.bool, [dart.dynamic]));
1271 return new (TakeWhileIterable$(T))(dart.as(iterable, core.Iterable$(T)), dart.as(test, dart.functionType(core.bool, [T])));
1272 }
1273 skipList(list, n) {
1274 return new (SubListIterable$(T))(dart.as(list, core.Iterable$(T)), n, nu ll);
1275 }
1276 skipWhile(iterable, test) {
1277 dart.as(test, dart.functionType(core.bool, [dart.dynamic]));
1278 return new (SkipWhileIterable$(T))(dart.as(iterable, core.Iterable$(T)), dart.as(test, dart.functionType(core.bool, [T])));
1279 }
1280 reversedList(list) {
1281 return new (ReversedListIterable$(T))(dart.as(list, core.Iterable$(T)));
1282 }
1283 static sortList(list, compare) {
1284 if (compare == null) compare = core.Comparable.compare;
1285 Sort.sort(list, compare);
1286 }
1287 static shuffleList(list, random) {
1288 if (random == null) random = math.Random.new();
1289 let length = list[dartx.length];
1290 while (dart.notNull(length) > 1) {
1291 let pos = random.nextInt(length);
1292 length = dart.notNull(length) - 1;
1293 let tmp = list[dartx.get](length);
1294 list[dartx.set](length, list[dartx.get](pos));
1295 list[dartx.set](pos, tmp);
1296 }
1297 }
1298 static indexOfList(list, element, start) {
1299 return Lists.indexOf(list, element, start, list[dartx.length]);
1300 }
1301 static lastIndexOfList(list, element, start) {
1302 if (start == null) start = dart.notNull(list[dartx.length]) - 1;
1303 return Lists.lastIndexOf(list, element, start);
1304 }
1305 static _rangeCheck(list, start, end) {
1306 core.RangeError.checkValidRange(start, end, list[dartx.length]);
1307 }
1308 getRangeList(list, start, end) {
1309 IterableMixinWorkaround$()._rangeCheck(list, start, end);
1310 return new (SubListIterable$(T))(dart.as(list, core.Iterable$(T)), start , end);
1311 }
1312 static setRangeList(list, start, end, from, skipCount) {
1313 IterableMixinWorkaround$()._rangeCheck(list, start, end);
1314 let length = dart.notNull(end) - dart.notNull(start);
1315 if (length == 0) return;
1316 if (dart.notNull(skipCount) < 0) dart.throw(new core.ArgumentError(skipC ount));
1317 let otherList = null;
1318 let otherStart = null;
1319 if (dart.is(from, core.List)) {
1320 otherList = from;
1321 otherStart = skipCount;
1322 } else {
1323 otherList = from[dartx.skip](skipCount)[dartx.toList]({growable: false });
1324 otherStart = 0;
1325 }
1326 if (dart.notNull(otherStart) + length > dart.notNull(otherList[dartx.len gth])) {
1327 dart.throw(IterableElementError.tooFew());
1328 }
1329 Lists.copy(otherList, otherStart, list, start, length);
1330 }
1331 static replaceRangeList(list, start, end, iterable) {
1332 IterableMixinWorkaround$()._rangeCheck(list, start, end);
1333 if (!dart.is(iterable, EfficientLength)) {
1334 iterable = iterable[dartx.toList]();
1335 }
1336 let removeLength = dart.notNull(end) - dart.notNull(start);
1337 let insertLength = iterable[dartx.length];
1338 if (removeLength >= dart.notNull(insertLength)) {
1339 let delta = removeLength - dart.notNull(insertLength);
1340 let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
1341 let newEnd = dart.notNull(list[dartx.length]) - delta;
1342 list[dartx.setRange](start, insertEnd, iterable);
1343 if (delta != 0) {
1344 list[dartx.setRange](insertEnd, newEnd, list, end);
1345 list[dartx.length] = newEnd;
1346 }
1347 } else {
1348 let delta = dart.notNull(insertLength) - removeLength;
1349 let newLength = dart.notNull(list[dartx.length]) + delta;
1350 let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
1351 list[dartx.length] = newLength;
1352 list[dartx.setRange](insertEnd, newLength, list, end);
1353 list[dartx.setRange](start, insertEnd, iterable);
1354 }
1355 }
1356 static fillRangeList(list, start, end, fillValue) {
1357 IterableMixinWorkaround$()._rangeCheck(list, start, end);
1358 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul l(i) + 1) {
1359 list[dartx.set](i, fillValue);
1360 }
1361 }
1362 static insertAllList(list, index, iterable) {
1363 core.RangeError.checkValueInInterval(index, 0, list[dartx.length], "inde x");
1364 if (!dart.is(iterable, EfficientLength)) {
1365 iterable = iterable[dartx.toList]({growable: false});
1366 }
1367 let insertionLength = iterable[dartx.length];
1368 list[dartx.length] = dart.notNull(list[dartx.length]) + dart.notNull(ins ertionLength);
1369 list[dartx.setRange](dart.notNull(index) + dart.notNull(insertionLength) , list[dartx.length], list, index);
1370 for (let element of iterable) {
1371 list[dartx.set]((() => {
1372 let x = index;
1373 index = dart.notNull(x) + 1;
1374 return x;
1375 })(), element);
1376 }
1377 }
1378 static setAllList(list, index, iterable) {
1379 core.RangeError.checkValueInInterval(index, 0, list[dartx.length], "inde x");
1380 for (let element of iterable) {
1381 list[dartx.set]((() => {
1382 let x = index;
1383 index = dart.notNull(x) + 1;
1384 return x;
1385 })(), element);
1386 }
1387 }
1388 asMapList(l) {
1389 return new (ListMapView$(T))(dart.as(l, core.List$(T)));
1390 }
1391 static setContainsAll(set, other) {
1392 for (let element of other) {
1393 if (!dart.notNull(set.contains(element))) return false;
1394 }
1395 return true;
1396 }
1397 static setIntersection(set, other, result) {
1398 let smaller = null;
1399 let larger = null;
1400 if (dart.notNull(set.length) < dart.notNull(other.length)) {
1401 smaller = set;
1402 larger = other;
1403 } else {
1404 smaller = other;
1405 larger = set;
1406 }
1407 for (let element of smaller) {
1408 if (dart.notNull(larger.contains(element))) {
1409 result.add(element);
1410 }
1411 }
1412 return result;
1413 }
1414 static setUnion(set, other, result) {
1415 result.addAll(set);
1416 result.addAll(other);
1417 return result;
1418 }
1419 static setDifference(set, other, result) {
1420 for (let element of set) {
1421 if (!dart.notNull(other.contains(element))) {
1422 result.add(element);
1423 }
1424 }
1425 return result;
1426 }
1427 }
1428 dart.setSignature(IterableMixinWorkaround, {
1429 methods: () => ({
1430 where: [core.Iterable$(T), [core.Iterable$(T), dart.functionType(core.bo ol, [T])]],
1431 takeList: [core.Iterable$(T), [core.List, core.int]],
1432 takeWhile: [core.Iterable$(T), [core.Iterable, dart.functionType(core.bo ol, [dart.dynamic])]],
1433 skipList: [core.Iterable$(T), [core.List, core.int]],
1434 skipWhile: [core.Iterable$(T), [core.Iterable, dart.functionType(core.bo ol, [dart.dynamic])]],
1435 reversedList: [core.Iterable$(T), [core.List]],
1436 getRangeList: [core.Iterable$(T), [core.List, core.int, core.int]],
1437 asMapList: [core.Map$(core.int, T), [core.List]]
1438 }),
1439 statics: () => ({
1440 contains: [core.bool, [core.Iterable, dart.dynamic]],
1441 forEach: [dart.void, [core.Iterable, dart.functionType(dart.void, [dart. dynamic])]],
1442 any: [core.bool, [core.Iterable, dart.functionType(core.bool, [dart.dyna mic])]],
1443 every: [core.bool, [core.Iterable, dart.functionType(core.bool, [dart.dy namic])]],
1444 reduce: [dart.dynamic, [core.Iterable, dart.functionType(dart.dynamic, [ dart.dynamic, dart.dynamic])]],
1445 fold: [dart.dynamic, [core.Iterable, dart.dynamic, dart.functionType(dar t.dynamic, [dart.dynamic, dart.dynamic])]],
1446 removeWhereList: [dart.void, [core.List, dart.functionType(core.bool, [d art.dynamic])]],
1447 isEmpty: [core.bool, [core.Iterable]],
1448 first: [dart.dynamic, [core.Iterable]],
1449 last: [dart.dynamic, [core.Iterable]],
1450 single: [dart.dynamic, [core.Iterable]],
1451 firstWhere: [dart.dynamic, [core.Iterable, dart.functionType(core.bool, [dart.dynamic]), dart.functionType(dart.dynamic, [])]],
1452 lastWhere: [dart.dynamic, [core.Iterable, dart.functionType(core.bool, [ dart.dynamic]), dart.functionType(dart.dynamic, [])]],
1453 lastWhereList: [dart.dynamic, [core.List, dart.functionType(core.bool, [ dart.dynamic]), dart.functionType(dart.dynamic, [])]],
1454 singleWhere: [dart.dynamic, [core.Iterable, dart.functionType(core.bool, [dart.dynamic])]],
1455 elementAt: [dart.dynamic, [core.Iterable, core.int]],
1456 join: [core.String, [core.Iterable], [core.String]],
1457 joinList: [core.String, [core.List], [core.String]],
1458 map: [core.Iterable, [core.Iterable, dart.functionType(dart.dynamic, [da rt.dynamic])]],
1459 mapList: [core.Iterable, [core.List, dart.functionType(dart.dynamic, [da rt.dynamic])]],
1460 expand: [core.Iterable, [core.Iterable, dart.functionType(core.Iterable, [dart.dynamic])]],
1461 sortList: [dart.void, [core.List, dart.functionType(core.int, [dart.dyna mic, dart.dynamic])]],
1462 shuffleList: [dart.void, [core.List, math.Random]],
1463 indexOfList: [core.int, [core.List, dart.dynamic, core.int]],
1464 lastIndexOfList: [core.int, [core.List, dart.dynamic, core.int]],
1465 _rangeCheck: [dart.void, [core.List, core.int, core.int]],
1466 setRangeList: [dart.void, [core.List, core.int, core.int, core.Iterable, core.int]],
1467 replaceRangeList: [dart.void, [core.List, core.int, core.int, core.Itera ble]],
1468 fillRangeList: [dart.void, [core.List, core.int, core.int, dart.dynamic] ],
1469 insertAllList: [dart.void, [core.List, core.int, core.Iterable]],
1470 setAllList: [dart.void, [core.List, core.int, core.Iterable]],
1471 setContainsAll: [core.bool, [core.Set, core.Iterable]],
1472 setIntersection: [core.Set, [core.Set, core.Set, core.Set]],
1473 setUnion: [core.Set, [core.Set, core.Set, core.Set]],
1474 setDifference: [core.Set, [core.Set, core.Set, core.Set]]
1475 }),
1476 names: ['contains', 'forEach', 'any', 'every', 'reduce', 'fold', 'removeWh ereList', 'isEmpty', 'first', 'last', 'single', 'firstWhere', 'lastWhere', 'last WhereList', 'singleWhere', 'elementAt', 'join', 'joinList', 'map', 'mapList', 'e xpand', 'sortList', 'shuffleList', 'indexOfList', 'lastIndexOfList', '_rangeChec k', 'setRangeList', 'replaceRangeList', 'fillRangeList', 'insertAllList', 'setAl lList', 'setContainsAll', 'setIntersection', 'setUnion', 'setDifference']
1477 });
1478 return IterableMixinWorkaround;
1479 });
1480 let IterableMixinWorkaround = IterableMixinWorkaround$();
1481 class IterableElementError extends core.Object {
1482 static noElement() {
1483 return new core.StateError("No element");
1484 }
1485 static tooMany() {
1486 return new core.StateError("Too many elements");
1487 }
1488 static tooFew() {
1489 return new core.StateError("Too few elements");
1490 }
1491 }
1492 dart.setSignature(IterableElementError, {
1493 statics: () => ({
1494 noElement: [core.StateError, []],
1495 tooMany: [core.StateError, []],
1496 tooFew: [core.StateError, []]
1497 }),
1498 names: ['noElement', 'tooMany', 'tooFew']
1499 });
1500 const FixedLengthListMixin$ = dart.generic(function(E) {
1501 dart.defineExtensionNames([
1502 'length',
1503 'add',
1504 'insert',
1505 'insertAll',
1506 'addAll',
1507 'remove',
1508 'removeWhere',
1509 'retainWhere',
1510 'clear',
1511 'removeAt',
1512 'removeLast',
1513 'removeRange',
1514 'replaceRange'
1515 ]);
1516 class FixedLengthListMixin extends core.Object {
1517 set [dartx.length](newLength) {
1518 dart.throw(new core.UnsupportedError("Cannot change the length of a fixe d-length list"));
1519 }
1520 [dartx.add](value) {
1521 dart.as(value, E);
1522 dart.throw(new core.UnsupportedError("Cannot add to a fixed-length list" ));
1523 }
1524 [dartx.insert](index, value) {
1525 dart.as(value, E);
1526 dart.throw(new core.UnsupportedError("Cannot add to a fixed-length list" ));
1527 }
1528 [dartx.insertAll](at, iterable) {
1529 dart.as(iterable, core.Iterable$(E));
1530 dart.throw(new core.UnsupportedError("Cannot add to a fixed-length list" ));
1531 }
1532 [dartx.addAll](iterable) {
1533 dart.as(iterable, core.Iterable$(E));
1534 dart.throw(new core.UnsupportedError("Cannot add to a fixed-length list" ));
1535 }
1536 [dartx.remove](element) {
1537 dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
1538 }
1539 [dartx.removeWhere](test) {
1540 dart.as(test, dart.functionType(core.bool, [E]));
1541 dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
1542 }
1543 [dartx.retainWhere](test) {
1544 dart.as(test, dart.functionType(core.bool, [E]));
1545 dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
1546 }
1547 [dartx.clear]() {
1548 dart.throw(new core.UnsupportedError("Cannot clear a fixed-length list") );
1549 }
1550 [dartx.removeAt](index) {
1551 dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
1552 }
1553 [dartx.removeLast]() {
1554 dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
1555 }
1556 [dartx.removeRange](start, end) {
1557 dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
1558 }
1559 [dartx.replaceRange](start, end, iterable) {
1560 dart.as(iterable, core.Iterable$(E));
1561 dart.throw(new core.UnsupportedError("Cannot remove from a fixed-length list"));
1562 }
1563 }
1564 dart.setSignature(FixedLengthListMixin, {
1565 methods: () => ({
1566 [dartx.add]: [dart.void, [E]],
1567 [dartx.insert]: [dart.void, [core.int, E]],
1568 [dartx.insertAll]: [dart.void, [core.int, core.Iterable$(E)]],
1569 [dartx.addAll]: [dart.void, [core.Iterable$(E)]],
1570 [dartx.remove]: [core.bool, [core.Object]],
1571 [dartx.removeWhere]: [dart.void, [dart.functionType(core.bool, [E])]],
1572 [dartx.retainWhere]: [dart.void, [dart.functionType(core.bool, [E])]],
1573 [dartx.clear]: [dart.void, []],
1574 [dartx.removeAt]: [E, [core.int]],
1575 [dartx.removeLast]: [E, []],
1576 [dartx.removeRange]: [dart.void, [core.int, core.int]],
1577 [dartx.replaceRange]: [dart.void, [core.int, core.int, core.Iterable$(E) ]]
1578 })
1579 });
1580 return FixedLengthListMixin;
1581 });
1582 let FixedLengthListMixin = FixedLengthListMixin$();
1583 const UnmodifiableListMixin$ = dart.generic(function(E) {
1584 class UnmodifiableListMixin extends core.Object {
1585 set(index, value) {
1586 dart.as(value, E);
1587 dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list "));
1588 return value;
1589 }
1590 set length(newLength) {
1591 dart.throw(new core.UnsupportedError("Cannot change the length of an unm odifiable list"));
1592 }
1593 setAll(at, iterable) {
1594 dart.as(iterable, core.Iterable$(E));
1595 dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list "));
1596 }
1597 add(value) {
1598 dart.as(value, E);
1599 dart.throw(new core.UnsupportedError("Cannot add to an unmodifiable list "));
1600 }
1601 insert(index, value) {
1602 dart.as(value, E);
1603 dart.throw(new core.UnsupportedError("Cannot add to an unmodifiable list "));
1604 }
1605 insertAll(at, iterable) {
1606 dart.as(iterable, core.Iterable$(E));
1607 dart.throw(new core.UnsupportedError("Cannot add to an unmodifiable list "));
1608 }
1609 addAll(iterable) {
1610 dart.as(iterable, core.Iterable$(E));
1611 dart.throw(new core.UnsupportedError("Cannot add to an unmodifiable list "));
1612 }
1613 remove(element) {
1614 dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
1615 }
1616 removeWhere(test) {
1617 dart.as(test, dart.functionType(core.bool, [E]));
1618 dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
1619 }
1620 retainWhere(test) {
1621 dart.as(test, dart.functionType(core.bool, [E]));
1622 dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
1623 }
1624 sort(compare) {
1625 if (compare === void 0) compare = null;
1626 dart.as(compare, core.Comparator$(E));
1627 dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list "));
1628 }
1629 shuffle(random) {
1630 if (random === void 0) random = null;
1631 dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list "));
1632 }
1633 clear() {
1634 dart.throw(new core.UnsupportedError("Cannot clear an unmodifiable list" ));
1635 }
1636 removeAt(index) {
1637 dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
1638 }
1639 removeLast() {
1640 dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
1641 }
1642 setRange(start, end, iterable, skipCount) {
1643 dart.as(iterable, core.Iterable$(E));
1644 if (skipCount === void 0) skipCount = 0;
1645 dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list "));
1646 }
1647 removeRange(start, end) {
1648 dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
1649 }
1650 replaceRange(start, end, iterable) {
1651 dart.as(iterable, core.Iterable$(E));
1652 dart.throw(new core.UnsupportedError("Cannot remove from an unmodifiable list"));
1653 }
1654 fillRange(start, end, fillValue) {
1655 if (fillValue === void 0) fillValue = null;
1656 dart.as(fillValue, E);
1657 dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable list "));
1658 }
1659 }
1660 UnmodifiableListMixin[dart.implements] = () => [core.List$(E)];
1661 dart.setSignature(UnmodifiableListMixin, {
1662 methods: () => ({
1663 set: [dart.void, [core.int, E]],
1664 setAll: [dart.void, [core.int, core.Iterable$(E)]],
1665 add: [dart.void, [E]],
1666 insert: [E, [core.int, E]],
1667 insertAll: [dart.void, [core.int, core.Iterable$(E)]],
1668 addAll: [dart.void, [core.Iterable$(E)]],
1669 remove: [core.bool, [core.Object]],
1670 removeWhere: [dart.void, [dart.functionType(core.bool, [E])]],
1671 retainWhere: [dart.void, [dart.functionType(core.bool, [E])]],
1672 sort: [dart.void, [], [core.Comparator$(E)]],
1673 shuffle: [dart.void, [], [math.Random]],
1674 clear: [dart.void, []],
1675 removeAt: [E, [core.int]],
1676 removeLast: [E, []],
1677 setRange: [dart.void, [core.int, core.int, core.Iterable$(E)], [core.int ]],
1678 removeRange: [dart.void, [core.int, core.int]],
1679 replaceRange: [dart.void, [core.int, core.int, core.Iterable$(E)]],
1680 fillRange: [dart.void, [core.int, core.int], [E]]
1681 })
1682 });
1683 dart.defineExtensionMembers(UnmodifiableListMixin, [
1684 'set',
1685 'setAll',
1686 'add',
1687 'insert',
1688 'insertAll',
1689 'addAll',
1690 'remove',
1691 'removeWhere',
1692 'retainWhere',
1693 'sort',
1694 'shuffle',
1695 'clear',
1696 'removeAt',
1697 'removeLast',
1698 'setRange',
1699 'removeRange',
1700 'replaceRange',
1701 'fillRange',
1702 'length'
1703 ]);
1704 return UnmodifiableListMixin;
1705 });
1706 let UnmodifiableListMixin = UnmodifiableListMixin$();
1707 const FixedLengthListBase$ = dart.generic(function(E) {
1708 class FixedLengthListBase extends dart.mixin(collection.ListBase$(E), FixedL engthListMixin$(E)) {
1709 FixedLengthListBase() {
1710 super.ListBase(...arguments);
1711 }
1712 }
1713 return FixedLengthListBase;
1714 });
1715 let FixedLengthListBase = FixedLengthListBase$();
1716 const UnmodifiableListBase$ = dart.generic(function(E) {
1717 class UnmodifiableListBase extends dart.mixin(collection.ListBase$(E), Unmod ifiableListMixin$(E)) {
1718 UnmodifiableListBase() {
1719 super.ListBase(...arguments);
1720 }
1721 }
1722 return UnmodifiableListBase;
1723 });
1724 let UnmodifiableListBase = UnmodifiableListBase$();
1725 const _backedList = dart.JsSymbol('_backedList');
1726 class _ListIndicesIterable extends ListIterable$(core.int) {
1727 _ListIndicesIterable(backedList) {
1728 this[_backedList] = backedList;
1729 super.ListIterable();
1730 }
1731 get length() {
1732 return this[_backedList][dartx.length];
1733 }
1734 elementAt(index) {
1735 core.RangeError.checkValidIndex(index, this);
1736 return index;
1737 }
1738 }
1739 dart.setSignature(_ListIndicesIterable, {
1740 constructors: () => ({_ListIndicesIterable: [_ListIndicesIterable, [core.Lis t]]}),
1741 methods: () => ({elementAt: [core.int, [core.int]]})
1742 });
1743 dart.defineExtensionMembers(_ListIndicesIterable, ['elementAt', 'length']);
1744 const _values = dart.JsSymbol('_values');
1745 const ListMapView$ = dart.generic(function(E) {
1746 class ListMapView extends core.Object {
1747 ListMapView(values) {
1748 this[_values] = values;
1749 }
1750 get(key) {
1751 return dart.notNull(this.containsKey(key)) ? this[_values][dartx.get](da rt.as(key, core.int)) : null;
1752 }
1753 get length() {
1754 return this[_values][dartx.length];
1755 }
1756 get values() {
1757 return new (SubListIterable$(E))(this[_values], 0, null);
1758 }
1759 get keys() {
1760 return new _ListIndicesIterable(this[_values]);
1761 }
1762 get isEmpty() {
1763 return this[_values][dartx.isEmpty];
1764 }
1765 get isNotEmpty() {
1766 return this[_values][dartx.isNotEmpty];
1767 }
1768 containsValue(value) {
1769 return this[_values][dartx.contains](value);
1770 }
1771 containsKey(key) {
1772 return typeof key == 'number' && dart.notNull(key) >= 0 && dart.notNull( key) < dart.notNull(this.length);
1773 }
1774 forEach(f) {
1775 dart.as(f, dart.functionType(dart.void, [core.int, E]));
1776 let length = this[_values][dartx.length];
1777 for (let i = 0; i < dart.notNull(length); i++) {
1778 f(i, this[_values][dartx.get](i));
1779 if (length != this[_values][dartx.length]) {
1780 dart.throw(new core.ConcurrentModificationError(this[_values]));
1781 }
1782 }
1783 }
1784 set(key, value) {
1785 dart.as(value, E);
1786 dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map" ));
1787 return value;
1788 }
1789 putIfAbsent(key, ifAbsent) {
1790 dart.as(ifAbsent, dart.functionType(E, []));
1791 dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map" ));
1792 }
1793 remove(key) {
1794 dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map" ));
1795 }
1796 clear() {
1797 dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map" ));
1798 }
1799 addAll(other) {
1800 dart.as(other, core.Map$(core.int, E));
1801 dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable map" ));
1802 }
1803 toString() {
1804 return collection.Maps.mapToString(this);
1805 }
1806 }
1807 ListMapView[dart.implements] = () => [core.Map$(core.int, E)];
1808 dart.setSignature(ListMapView, {
1809 constructors: () => ({ListMapView: [ListMapView$(E), [core.List$(E)]]}),
1810 methods: () => ({
1811 get: [E, [core.Object]],
1812 containsValue: [core.bool, [core.Object]],
1813 containsKey: [core.bool, [core.Object]],
1814 forEach: [dart.void, [dart.functionType(dart.void, [core.int, E])]],
1815 set: [dart.void, [core.int, E]],
1816 putIfAbsent: [E, [core.int, dart.functionType(E, [])]],
1817 remove: [E, [core.Object]],
1818 clear: [dart.void, []],
1819 addAll: [dart.void, [core.Map$(core.int, E)]]
1820 })
1821 });
1822 dart.defineExtensionMembers(ListMapView, [
1823 'get',
1824 'containsValue',
1825 'containsKey',
1826 'forEach',
1827 'set',
1828 'putIfAbsent',
1829 'remove',
1830 'clear',
1831 'addAll',
1832 'length',
1833 'values',
1834 'keys',
1835 'isEmpty',
1836 'isNotEmpty'
1837 ]);
1838 return ListMapView;
1839 });
1840 let ListMapView = ListMapView$();
1841 const ReversedListIterable$ = dart.generic(function(E) {
1842 class ReversedListIterable extends ListIterable$(E) {
1843 ReversedListIterable(source) {
1844 this[_source] = source;
1845 super.ListIterable();
1846 }
1847 get length() {
1848 return this[_source][dartx.length];
1849 }
1850 elementAt(index) {
1851 return this[_source][dartx.elementAt](dart.notNull(this[_source][dartx.l ength]) - 1 - dart.notNull(index));
1852 }
1853 }
1854 dart.setSignature(ReversedListIterable, {
1855 constructors: () => ({ReversedListIterable: [ReversedListIterable$(E), [co re.Iterable$(E)]]}),
1856 methods: () => ({elementAt: [E, [core.int]]})
1857 });
1858 dart.defineExtensionMembers(ReversedListIterable, ['elementAt', 'length']);
1859 return ReversedListIterable;
1860 });
1861 let ReversedListIterable = ReversedListIterable$();
1862 class UnmodifiableListError extends core.Object {
1863 static add() {
1864 return new core.UnsupportedError("Cannot add to unmodifiable List");
1865 }
1866 static change() {
1867 return new core.UnsupportedError("Cannot change the content of an unmodifi able List");
1868 }
1869 static length() {
1870 return new core.UnsupportedError("Cannot change length of unmodifiable Lis t");
1871 }
1872 static remove() {
1873 return new core.UnsupportedError("Cannot remove from unmodifiable List");
1874 }
1875 }
1876 dart.setSignature(UnmodifiableListError, {
1877 statics: () => ({
1878 add: [core.UnsupportedError, []],
1879 change: [core.UnsupportedError, []],
1880 length: [core.UnsupportedError, []],
1881 remove: [core.UnsupportedError, []]
1882 }),
1883 names: ['add', 'change', 'length', 'remove']
1884 });
1885 class NonGrowableListError extends core.Object {
1886 static add() {
1887 return new core.UnsupportedError("Cannot add to non-growable List");
1888 }
1889 static length() {
1890 return new core.UnsupportedError("Cannot change length of non-growable Lis t");
1891 }
1892 static remove() {
1893 return new core.UnsupportedError("Cannot remove from non-growable List");
1894 }
1895 }
1896 dart.setSignature(NonGrowableListError, {
1897 statics: () => ({
1898 add: [core.UnsupportedError, []],
1899 length: [core.UnsupportedError, []],
1900 remove: [core.UnsupportedError, []]
1901 }),
1902 names: ['add', 'length', 'remove']
1903 });
1904 function makeListFixedLength(growableList) {
1905 _interceptors.JSArray.markFixedList(growableList);
1906 return growableList;
1907 }
1908 dart.fn(makeListFixedLength, core.List, [core.List]);
1909 class Lists extends core.Object {
1910 static copy(src, srcStart, dst, dstStart, count) {
1911 if (dart.notNull(srcStart) < dart.notNull(dstStart)) {
1912 for (let i = dart.notNull(srcStart) + dart.notNull(count) - 1, j = dart. notNull(dstStart) + dart.notNull(count) - 1; i >= dart.notNull(srcStart); i--, j --) {
1913 dst[dartx.set](j, src[dartx.get](i));
1914 }
1915 } else {
1916 for (let i = srcStart, j = dstStart; dart.notNull(i) < dart.notNull(srcS tart) + dart.notNull(count); i = dart.notNull(i) + 1, j = dart.notNull(j) + 1) {
1917 dst[dartx.set](j, src[dartx.get](i));
1918 }
1919 }
1920 }
1921 static areEqual(a, b) {
1922 if (core.identical(a, b)) return true;
1923 if (!dart.is(b, core.List)) return false;
1924 let length = a[dartx.length];
1925 if (!dart.equals(length, dart.dload(b, 'length'))) return false;
1926 for (let i = 0; i < dart.notNull(length); i++) {
1927 if (!core.identical(a[dartx.get](i), dart.dindex(b, i))) return false;
1928 }
1929 return true;
1930 }
1931 static indexOf(a, element, startIndex, endIndex) {
1932 if (dart.notNull(startIndex) >= dart.notNull(a[dartx.length])) {
1933 return -1;
1934 }
1935 if (dart.notNull(startIndex) < 0) {
1936 startIndex = 0;
1937 }
1938 for (let i = startIndex; dart.notNull(i) < dart.notNull(endIndex); i = dar t.notNull(i) + 1) {
1939 if (dart.equals(a[dartx.get](i), element)) {
1940 return i;
1941 }
1942 }
1943 return -1;
1944 }
1945 static lastIndexOf(a, element, startIndex) {
1946 if (dart.notNull(startIndex) < 0) {
1947 return -1;
1948 }
1949 if (dart.notNull(startIndex) >= dart.notNull(a[dartx.length])) {
1950 startIndex = dart.notNull(a[dartx.length]) - 1;
1951 }
1952 for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
1953 if (dart.equals(a[dartx.get](i), element)) {
1954 return i;
1955 }
1956 }
1957 return -1;
1958 }
1959 static indicesCheck(a, start, end) {
1960 core.RangeError.checkValidRange(start, end, a[dartx.length]);
1961 }
1962 static rangeCheck(a, start, length) {
1963 core.RangeError.checkNotNegative(length);
1964 core.RangeError.checkNotNegative(start);
1965 if (dart.notNull(start) + dart.notNull(length) > dart.notNull(a[dartx.leng th])) {
1966 let message = `${start} + ${length} must be in the range [0..${a[dartx.l ength]}]`;
1967 dart.throw(new core.RangeError.range(length, 0, dart.notNull(a[dartx.len gth]) - dart.notNull(start), "length", message));
1968 }
1969 }
1970 }
1971 dart.setSignature(Lists, {
1972 statics: () => ({
1973 copy: [dart.void, [core.List, core.int, core.List, core.int, core.int]],
1974 areEqual: [core.bool, [core.List, dart.dynamic]],
1975 indexOf: [core.int, [core.List, core.Object, core.int, core.int]],
1976 lastIndexOf: [core.int, [core.List, core.Object, core.int]],
1977 indicesCheck: [dart.void, [core.List, core.int, core.int]],
1978 rangeCheck: [dart.void, [core.List, core.int, core.int]]
1979 }),
1980 names: ['copy', 'areEqual', 'indexOf', 'lastIndexOf', 'indicesCheck', 'range Check']
1981 });
1982 exports.printToZone = null;
1983 function printToConsole(line) {
1984 _js_primitives.printString(`${line}`);
1985 }
1986 dart.fn(printToConsole, dart.void, [core.String]);
1987 class Sort extends core.Object {
1988 static sort(a, compare) {
1989 Sort._doSort(a, 0, dart.notNull(a[dartx.length]) - 1, compare);
1990 }
1991 static sortRange(a, from, to, compare) {
1992 if (dart.notNull(from) < 0 || dart.notNull(to) > dart.notNull(a[dartx.leng th]) || dart.notNull(to) < dart.notNull(from)) {
1993 dart.throw("OutOfRange");
1994 }
1995 Sort._doSort(a, from, dart.notNull(to) - 1, compare);
1996 }
1997 static _doSort(a, left, right, compare) {
1998 if (dart.notNull(right) - dart.notNull(left) <= dart.notNull(Sort._INSERTI ON_SORT_THRESHOLD)) {
1999 Sort._insertionSort(a, left, right, compare);
2000 } else {
2001 Sort._dualPivotQuicksort(a, left, right, compare);
2002 }
2003 }
2004 static _insertionSort(a, left, right, compare) {
2005 for (let i = dart.notNull(left) + 1; i <= dart.notNull(right); i++) {
2006 let el = a[dartx.get](i);
2007 let j = i;
2008 while (j > dart.notNull(left) && dart.notNull(dart.dcall(compare, a[dart x.get](j - 1), el)) > 0) {
2009 a[dartx.set](j, a[dartx.get](j - 1));
2010 j--;
2011 }
2012 a[dartx.set](j, el);
2013 }
2014 }
2015 static _dualPivotQuicksort(a, left, right, compare) {
2016 dart.assert(dart.notNull(right) - dart.notNull(left) > dart.notNull(Sort._ INSERTION_SORT_THRESHOLD));
2017 let sixth = ((dart.notNull(right) - dart.notNull(left) + 1) / 6)[dartx.tru ncate]();
2018 let index1 = dart.notNull(left) + sixth;
2019 let index5 = dart.notNull(right) - sixth;
2020 let index3 = ((dart.notNull(left) + dart.notNull(right)) / 2)[dartx.trunca te]();
2021 let index2 = index3 - sixth;
2022 let index4 = index3 + sixth;
2023 let el1 = a[dartx.get](index1);
2024 let el2 = a[dartx.get](index2);
2025 let el3 = a[dartx.get](index3);
2026 let el4 = a[dartx.get](index4);
2027 let el5 = a[dartx.get](index5);
2028 if (dart.notNull(dart.dcall(compare, el1, el2)) > 0) {
2029 let t = el1;
2030 el1 = el2;
2031 el2 = t;
2032 }
2033 if (dart.notNull(dart.dcall(compare, el4, el5)) > 0) {
2034 let t = el4;
2035 el4 = el5;
2036 el5 = t;
2037 }
2038 if (dart.notNull(dart.dcall(compare, el1, el3)) > 0) {
2039 let t = el1;
2040 el1 = el3;
2041 el3 = t;
2042 }
2043 if (dart.notNull(dart.dcall(compare, el2, el3)) > 0) {
2044 let t = el2;
2045 el2 = el3;
2046 el3 = t;
2047 }
2048 if (dart.notNull(dart.dcall(compare, el1, el4)) > 0) {
2049 let t = el1;
2050 el1 = el4;
2051 el4 = t;
2052 }
2053 if (dart.notNull(dart.dcall(compare, el3, el4)) > 0) {
2054 let t = el3;
2055 el3 = el4;
2056 el4 = t;
2057 }
2058 if (dart.notNull(dart.dcall(compare, el2, el5)) > 0) {
2059 let t = el2;
2060 el2 = el5;
2061 el5 = t;
2062 }
2063 if (dart.notNull(dart.dcall(compare, el2, el3)) > 0) {
2064 let t = el2;
2065 el2 = el3;
2066 el3 = t;
2067 }
2068 if (dart.notNull(dart.dcall(compare, el4, el5)) > 0) {
2069 let t = el4;
2070 el4 = el5;
2071 el5 = t;
2072 }
2073 let pivot1 = el2;
2074 let pivot2 = el4;
2075 a[dartx.set](index1, el1);
2076 a[dartx.set](index3, el3);
2077 a[dartx.set](index5, el5);
2078 a[dartx.set](index2, a[dartx.get](left));
2079 a[dartx.set](index4, a[dartx.get](right));
2080 let less = dart.notNull(left) + 1;
2081 let great = dart.notNull(right) - 1;
2082 let pivots_are_equal = dart.dcall(compare, pivot1, pivot2) == 0;
2083 if (pivots_are_equal) {
2084 let pivot = pivot1;
2085 for (let k = less; k <= great; k++) {
2086 let ak = a[dartx.get](k);
2087 let comp = dart.dcall(compare, ak, pivot);
2088 if (comp == 0) continue;
2089 if (dart.notNull(comp) < 0) {
2090 if (k != less) {
2091 a[dartx.set](k, a[dartx.get](less));
2092 a[dartx.set](less, ak);
2093 }
2094 less++;
2095 } else {
2096 while (true) {
2097 comp = dart.dcall(compare, a[dartx.get](great), pivot);
2098 if (dart.notNull(comp) > 0) {
2099 great--;
2100 continue;
2101 } else if (dart.notNull(comp) < 0) {
2102 a[dartx.set](k, a[dartx.get](less));
2103 a[dartx.set](less++, a[dartx.get](great));
2104 a[dartx.set](great--, ak);
2105 break;
2106 } else {
2107 a[dartx.set](k, a[dartx.get](great));
2108 a[dartx.set](great--, ak);
2109 break;
2110 }
2111 }
2112 }
2113 }
2114 } else {
2115 for (let k = less; k <= great; k++) {
2116 let ak = a[dartx.get](k);
2117 let comp_pivot1 = dart.dcall(compare, ak, pivot1);
2118 if (dart.notNull(comp_pivot1) < 0) {
2119 if (k != less) {
2120 a[dartx.set](k, a[dartx.get](less));
2121 a[dartx.set](less, ak);
2122 }
2123 less++;
2124 } else {
2125 let comp_pivot2 = dart.dcall(compare, ak, pivot2);
2126 if (dart.notNull(comp_pivot2) > 0) {
2127 while (true) {
2128 let comp = dart.dcall(compare, a[dartx.get](great), pivot2);
2129 if (dart.notNull(comp) > 0) {
2130 great--;
2131 if (great < k) break;
2132 continue;
2133 } else {
2134 comp = dart.dcall(compare, a[dartx.get](great), pivot1);
2135 if (dart.notNull(comp) < 0) {
2136 a[dartx.set](k, a[dartx.get](less));
2137 a[dartx.set](less++, a[dartx.get](great));
2138 a[dartx.set](great--, ak);
2139 } else {
2140 a[dartx.set](k, a[dartx.get](great));
2141 a[dartx.set](great--, ak);
2142 }
2143 break;
2144 }
2145 }
2146 }
2147 }
2148 }
2149 }
2150 a[dartx.set](left, a[dartx.get](less - 1));
2151 a[dartx.set](less - 1, pivot1);
2152 a[dartx.set](right, a[dartx.get](great + 1));
2153 a[dartx.set](great + 1, pivot2);
2154 Sort._doSort(a, left, less - 2, compare);
2155 Sort._doSort(a, great + 2, right, compare);
2156 if (pivots_are_equal) {
2157 return;
2158 }
2159 if (less < index1 && great > index5) {
2160 while (dart.dcall(compare, a[dartx.get](less), pivot1) == 0) {
2161 less++;
2162 }
2163 while (dart.dcall(compare, a[dartx.get](great), pivot2) == 0) {
2164 great--;
2165 }
2166 for (let k = less; k <= great; k++) {
2167 let ak = a[dartx.get](k);
2168 let comp_pivot1 = dart.dcall(compare, ak, pivot1);
2169 if (comp_pivot1 == 0) {
2170 if (k != less) {
2171 a[dartx.set](k, a[dartx.get](less));
2172 a[dartx.set](less, ak);
2173 }
2174 less++;
2175 } else {
2176 let comp_pivot2 = dart.dcall(compare, ak, pivot2);
2177 if (comp_pivot2 == 0) {
2178 while (true) {
2179 let comp = dart.dcall(compare, a[dartx.get](great), pivot2);
2180 if (comp == 0) {
2181 great--;
2182 if (great < k) break;
2183 continue;
2184 } else {
2185 comp = dart.dcall(compare, a[dartx.get](great), pivot1);
2186 if (dart.notNull(comp) < 0) {
2187 a[dartx.set](k, a[dartx.get](less));
2188 a[dartx.set](less++, a[dartx.get](great));
2189 a[dartx.set](great--, ak);
2190 } else {
2191 a[dartx.set](k, a[dartx.get](great));
2192 a[dartx.set](great--, ak);
2193 }
2194 break;
2195 }
2196 }
2197 }
2198 }
2199 }
2200 Sort._doSort(a, less, great, compare);
2201 } else {
2202 Sort._doSort(a, less, great, compare);
2203 }
2204 }
2205 }
2206 dart.setSignature(Sort, {
2207 statics: () => ({
2208 sort: [dart.void, [core.List, dart.functionType(core.int, [dart.dynamic, d art.dynamic])]],
2209 sortRange: [dart.void, [core.List, core.int, core.int, dart.functionType(c ore.int, [dart.dynamic, dart.dynamic])]],
2210 _doSort: [dart.void, [core.List, core.int, core.int, dart.functionType(cor e.int, [dart.dynamic, dart.dynamic])]],
2211 _insertionSort: [dart.void, [core.List, core.int, core.int, dart.functionT ype(core.int, [dart.dynamic, dart.dynamic])]],
2212 _dualPivotQuicksort: [dart.void, [core.List, core.int, core.int, dart.func tionType(core.int, [dart.dynamic, dart.dynamic])]]
2213 }),
2214 names: ['sort', 'sortRange', '_doSort', '_insertionSort', '_dualPivotQuickso rt']
2215 });
2216 Sort._INSERTION_SORT_THRESHOLD = 32;
2217 const _name = dart.JsSymbol('_name');
2218 class Symbol extends core.Object {
2219 Symbol(name) {
2220 this[_name] = name;
2221 }
2222 unvalidated(name) {
2223 this[_name] = name;
2224 }
2225 validated(name) {
2226 this[_name] = Symbol.validatePublicSymbol(name);
2227 }
2228 ['=='](other) {
2229 return dart.is(other, Symbol) && this[_name] == other[_name];
2230 }
2231 get hashCode() {
2232 let arbitraryPrime = 664597;
2233 return 536870911 & arbitraryPrime * dart.notNull(dart.hashCode(this[_name] ));
2234 }
2235 toString() {
2236 return `Symbol("${this[_name]}")`;
2237 }
2238 static getName(symbol) {
2239 return symbol[_name];
2240 }
2241 static validatePublicSymbol(name) {
2242 if (dart.notNull(name[dartx.isEmpty]) || dart.notNull(Symbol.publicSymbolP attern.hasMatch(name))) return name;
2243 if (dart.notNull(name[dartx.startsWith]('_'))) {
2244 dart.throw(new core.ArgumentError(`"${name}" is a private identifier`));
2245 }
2246 dart.throw(new core.ArgumentError(`"${name}" is not a valid (qualified) sy mbol name`));
2247 }
2248 static isValidSymbol(name) {
2249 return dart.notNull(name[dartx.isEmpty]) || dart.notNull(Symbol.symbolPatt ern.hasMatch(name));
2250 }
2251 }
2252 Symbol[dart.implements] = () => [core.Symbol];
2253 dart.defineNamedConstructor(Symbol, 'unvalidated');
2254 dart.defineNamedConstructor(Symbol, 'validated');
2255 dart.setSignature(Symbol, {
2256 constructors: () => ({
2257 Symbol: [Symbol, [core.String]],
2258 unvalidated: [Symbol, [core.String]],
2259 validated: [Symbol, [core.String]]
2260 }),
2261 methods: () => ({'==': [core.bool, [core.Object]]}),
2262 statics: () => ({
2263 getName: [core.String, [Symbol]],
2264 validatePublicSymbol: [core.String, [core.String]],
2265 isValidSymbol: [core.bool, [core.String]]
2266 }),
2267 names: ['getName', 'validatePublicSymbol', 'isValidSymbol']
2268 });
2269 Symbol.reservedWordRE = '(?:assert|break|c(?:a(?:se|tch)|lass|on(?:st|tinue))| d(?:efault|o)|' + 'e(?:lse|num|xtends)|f(?:alse|inal(?:ly)?|or)|i[fns]|n(?:ew|ul l)|' + 'ret(?:hrow|urn)|s(?:uper|witch)|t(?:h(?:is|row)|r(?:ue|y))|' + 'v(?:ar|o id)|w(?:hile|ith))';
2270 Symbol.operatorRE = '(?:[\\-+*/%&|^]|\\[\\]=?|==|~/?|<[<=]?|>[>=]?|unary-)';
2271 dart.defineLazyProperties(Symbol, {
2272 get publicIdentifierRE() {
2273 return '(?!' + `${Symbol.reservedWordRE}` + '\\b(?!\\$))[a-zA-Z$][\\w$]*';
2274 },
2275 get identifierRE() {
2276 return '(?!' + `${Symbol.reservedWordRE}` + '\\b(?!\\$))[a-zA-Z$_][\\w$]*' ;
2277 },
2278 get publicSymbolPattern() {
2279 return core.RegExp.new(`^(?:${Symbol.operatorRE}\$|${Symbol.publicIdentifi erRE}(?:=?\$|[.](?!\$)))+?\$`);
2280 },
2281 get symbolPattern() {
2282 return core.RegExp.new(`^(?:${Symbol.operatorRE}\$|${Symbol.identifierRE}( ?:=?\$|[.](?!\$)))+?\$`);
2283 }
2284 });
2285 dart.defineLazyProperties(exports, {
2286 get POWERS_OF_TEN() {
2287 return dart.const(dart.list([1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, 10000000.0, 100000000.0, 1000000000.0, 10000000000.0, 100000000000.0, 1000000000000.0, 10000000000000.0, 100000000000000.0, 1000000000000000.0, 10000 000000000000.0, 100000000000000000.0, 1000000000000000000.0, 1000000000000000000 0.0, 100000000000000000000.0, 1e+21, 1e+22], core.double));
2288 }
2289 });
2290 // Exports:
2291 exports.EfficientLength = EfficientLength;
2292 exports.ListIterable$ = ListIterable$;
2293 exports.ListIterable = ListIterable;
2294 exports.SubListIterable$ = SubListIterable$;
2295 exports.SubListIterable = SubListIterable;
2296 exports.ListIterator$ = ListIterator$;
2297 exports.ListIterator = ListIterator;
2298 exports.MappedIterable$ = MappedIterable$;
2299 exports.MappedIterable = MappedIterable;
2300 exports.EfficientLengthMappedIterable$ = EfficientLengthMappedIterable$;
2301 exports.EfficientLengthMappedIterable = EfficientLengthMappedIterable;
2302 exports.MappedIterator$ = MappedIterator$;
2303 exports.MappedIterator = MappedIterator;
2304 exports.MappedListIterable$ = MappedListIterable$;
2305 exports.MappedListIterable = MappedListIterable;
2306 exports.WhereIterable$ = WhereIterable$;
2307 exports.WhereIterable = WhereIterable;
2308 exports.WhereIterator$ = WhereIterator$;
2309 exports.WhereIterator = WhereIterator;
2310 exports.ExpandIterable$ = ExpandIterable$;
2311 exports.ExpandIterable = ExpandIterable;
2312 exports.ExpandIterator$ = ExpandIterator$;
2313 exports.ExpandIterator = ExpandIterator;
2314 exports.TakeIterable$ = TakeIterable$;
2315 exports.TakeIterable = TakeIterable;
2316 exports.EfficientLengthTakeIterable$ = EfficientLengthTakeIterable$;
2317 exports.EfficientLengthTakeIterable = EfficientLengthTakeIterable;
2318 exports.TakeIterator$ = TakeIterator$;
2319 exports.TakeIterator = TakeIterator;
2320 exports.TakeWhileIterable$ = TakeWhileIterable$;
2321 exports.TakeWhileIterable = TakeWhileIterable;
2322 exports.TakeWhileIterator$ = TakeWhileIterator$;
2323 exports.TakeWhileIterator = TakeWhileIterator;
2324 exports.SkipIterable$ = SkipIterable$;
2325 exports.SkipIterable = SkipIterable;
2326 exports.EfficientLengthSkipIterable$ = EfficientLengthSkipIterable$;
2327 exports.EfficientLengthSkipIterable = EfficientLengthSkipIterable;
2328 exports.SkipIterator$ = SkipIterator$;
2329 exports.SkipIterator = SkipIterator;
2330 exports.SkipWhileIterable$ = SkipWhileIterable$;
2331 exports.SkipWhileIterable = SkipWhileIterable;
2332 exports.SkipWhileIterator$ = SkipWhileIterator$;
2333 exports.SkipWhileIterator = SkipWhileIterator;
2334 exports.EmptyIterable$ = EmptyIterable$;
2335 exports.EmptyIterable = EmptyIterable;
2336 exports.EmptyIterator$ = EmptyIterator$;
2337 exports.EmptyIterator = EmptyIterator;
2338 exports.BidirectionalIterator$ = BidirectionalIterator$;
2339 exports.BidirectionalIterator = BidirectionalIterator;
2340 exports.IterableMixinWorkaround$ = IterableMixinWorkaround$;
2341 exports.IterableMixinWorkaround = IterableMixinWorkaround;
2342 exports.IterableElementError = IterableElementError;
2343 exports.FixedLengthListMixin$ = FixedLengthListMixin$;
2344 exports.FixedLengthListMixin = FixedLengthListMixin;
2345 exports.UnmodifiableListMixin$ = UnmodifiableListMixin$;
2346 exports.UnmodifiableListMixin = UnmodifiableListMixin;
2347 exports.FixedLengthListBase$ = FixedLengthListBase$;
2348 exports.FixedLengthListBase = FixedLengthListBase;
2349 exports.UnmodifiableListBase$ = UnmodifiableListBase$;
2350 exports.UnmodifiableListBase = UnmodifiableListBase;
2351 exports.ListMapView$ = ListMapView$;
2352 exports.ListMapView = ListMapView;
2353 exports.ReversedListIterable$ = ReversedListIterable$;
2354 exports.ReversedListIterable = ReversedListIterable;
2355 exports.UnmodifiableListError = UnmodifiableListError;
2356 exports.NonGrowableListError = NonGrowableListError;
2357 exports.makeListFixedLength = makeListFixedLength;
2358 exports.Lists = Lists;
2359 exports.printToConsole = printToConsole;
2360 exports.Sort = Sort;
2361 exports.Symbol = Symbol;
2362 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698