OLD | NEW |
| (Empty) |
1 var _internal; | |
2 (function(exports) { | |
3 'use strict'; | |
4 class EfficientLength extends core.Object { | |
5 } | |
6 let ListIterable$ = dart.generic(function(E) { | |
7 class ListIterable extends collection.IterableBase$(E) { | |
8 ListIterable() { | |
9 super.IterableBase(); | |
10 } | |
11 get iterator() { | |
12 return new ListIterator(this); | |
13 } | |
14 forEach(action) { | |
15 let length = this.length; | |
16 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | |
17 action(this.elementAt(i)); | |
18 if (length !== this.length) { | |
19 throw new core.ConcurrentModificationError(this); | |
20 } | |
21 } | |
22 } | |
23 get isEmpty() { | |
24 return this.length === 0; | |
25 } | |
26 get first() { | |
27 if (this.length === 0) | |
28 throw IterableElementError.noElement(); | |
29 return this.elementAt(0); | |
30 } | |
31 get last() { | |
32 if (this.length === 0) | |
33 throw IterableElementError.noElement(); | |
34 return this.elementAt(dart.notNull(this.length) - 1); | |
35 } | |
36 get single() { | |
37 if (this.length === 0) | |
38 throw IterableElementError.noElement(); | |
39 if (dart.notNull(this.length) > 1) | |
40 throw IterableElementError.tooMany(); | |
41 return this.elementAt(0); | |
42 } | |
43 contains(element) { | |
44 let length = this.length; | |
45 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | |
46 if (dart.equals(this.elementAt(i), element)) | |
47 return true; | |
48 if (length !== this.length) { | |
49 throw new core.ConcurrentModificationError(this); | |
50 } | |
51 } | |
52 return false; | |
53 } | |
54 every(test) { | |
55 let length = this.length; | |
56 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | |
57 if (!dart.notNull(test(this.elementAt(i)))) | |
58 return false; | |
59 if (length !== this.length) { | |
60 throw new core.ConcurrentModificationError(this); | |
61 } | |
62 } | |
63 return true; | |
64 } | |
65 any(test) { | |
66 let length = this.length; | |
67 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | |
68 if (test(this.elementAt(i))) | |
69 return true; | |
70 if (length !== this.length) { | |
71 throw new core.ConcurrentModificationError(this); | |
72 } | |
73 } | |
74 return false; | |
75 } | |
76 firstWhere(test, opt$) { | |
77 let orElse = opt$.orElse === void 0 ? null : opt$.orElse; | |
78 let length = this.length; | |
79 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | |
80 let element = this.elementAt(i); | |
81 if (test(element)) | |
82 return element; | |
83 if (length !== this.length) { | |
84 throw new core.ConcurrentModificationError(this); | |
85 } | |
86 } | |
87 if (orElse !== null) | |
88 return orElse(); | |
89 throw IterableElementError.noElement(); | |
90 } | |
91 lastWhere(test, opt$) { | |
92 let orElse = opt$.orElse === void 0 ? null : opt$.orElse; | |
93 let length = this.length; | |
94 for (let i = dart.notNull(length) - 1; dart.notNull(i) >= 0; i = dart.no
tNull(i) - 1) { | |
95 let element = this.elementAt(i); | |
96 if (test(element)) | |
97 return element; | |
98 if (length !== this.length) { | |
99 throw new core.ConcurrentModificationError(this); | |
100 } | |
101 } | |
102 if (orElse !== null) | |
103 return orElse(); | |
104 throw IterableElementError.noElement(); | |
105 } | |
106 singleWhere(test) { | |
107 let length = this.length; | |
108 let match = null; | |
109 let matchFound = false; | |
110 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | |
111 let element = this.elementAt(i); | |
112 if (test(element)) { | |
113 if (matchFound) { | |
114 throw IterableElementError.tooMany(); | |
115 } | |
116 matchFound = true; | |
117 match = element; | |
118 } | |
119 if (length !== this.length) { | |
120 throw new core.ConcurrentModificationError(this); | |
121 } | |
122 } | |
123 if (matchFound) | |
124 return match; | |
125 throw IterableElementError.noElement(); | |
126 } | |
127 join(separator) { | |
128 if (separator === void 0) | |
129 separator = ""; | |
130 let length = this.length; | |
131 if (!dart.notNull(separator.isEmpty)) { | |
132 if (length === 0) | |
133 return ""; | |
134 let first = `${this.elementAt(0)}`; | |
135 if (length !== this.length) { | |
136 throw new core.ConcurrentModificationError(this); | |
137 } | |
138 let buffer = new core.StringBuffer(first); | |
139 for (let i = 1; dart.notNull(i) < dart.notNull(length); i = dart.notNu
ll(i) + 1) { | |
140 buffer.write(separator); | |
141 buffer.write(this.elementAt(i)); | |
142 if (length !== this.length) { | |
143 throw new core.ConcurrentModificationError(this); | |
144 } | |
145 } | |
146 return buffer.toString(); | |
147 } else { | |
148 let buffer = new core.StringBuffer(); | |
149 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNu
ll(i) + 1) { | |
150 buffer.write(this.elementAt(i)); | |
151 if (length !== this.length) { | |
152 throw new core.ConcurrentModificationError(this); | |
153 } | |
154 } | |
155 return buffer.toString(); | |
156 } | |
157 } | |
158 where(test) { | |
159 return super.where(test); | |
160 } | |
161 map(f) { | |
162 return new MappedListIterable(this, f); | |
163 } | |
164 reduce(combine) { | |
165 let length = this.length; | |
166 if (length === 0) | |
167 throw IterableElementError.noElement(); | |
168 let value = this.elementAt(0); | |
169 for (let i = 1; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | |
170 value = dart.dinvokef(combine, value, this.elementAt(i)); | |
171 if (length !== this.length) { | |
172 throw new core.ConcurrentModificationError(this); | |
173 } | |
174 } | |
175 return value; | |
176 } | |
177 fold(initialValue, combine) { | |
178 let value = initialValue; | |
179 let length = this.length; | |
180 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | |
181 value = dart.dinvokef(combine, value, this.elementAt(i)); | |
182 if (length !== this.length) { | |
183 throw new core.ConcurrentModificationError(this); | |
184 } | |
185 } | |
186 return value; | |
187 } | |
188 skip(count) { | |
189 return new SubListIterable(this, count, null); | |
190 } | |
191 skipWhile(test) { | |
192 return super.skipWhile(test); | |
193 } | |
194 take(count) { | |
195 return new SubListIterable(this, 0, count); | |
196 } | |
197 takeWhile(test) { | |
198 return super.takeWhile(test); | |
199 } | |
200 toList(opt$) { | |
201 let growable = opt$.growable === void 0 ? true : opt$.growable; | |
202 let result = null; | |
203 if (growable) { | |
204 result = ((_) => { | |
205 _.length = this.length; | |
206 return _; | |
207 }).bind(this)(new core.List()); | |
208 } else { | |
209 result = new core.List(this.length); | |
210 } | |
211 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no
tNull(i) + 1) { | |
212 result.set(i, this.elementAt(i)); | |
213 } | |
214 return result; | |
215 } | |
216 toSet() { | |
217 let result = new core.Set(); | |
218 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no
tNull(i) + 1) { | |
219 result.add(this.elementAt(i)); | |
220 } | |
221 return result; | |
222 } | |
223 } | |
224 return ListIterable; | |
225 }); | |
226 let ListIterable = ListIterable$(dart.dynamic); | |
227 let _iterable = Symbol('_iterable'); | |
228 let _start = Symbol('_start'); | |
229 let _endOrLength = Symbol('_endOrLength'); | |
230 let _endIndex = Symbol('_endIndex'); | |
231 let _startIndex = Symbol('_startIndex'); | |
232 let SubListIterable$ = dart.generic(function(E) { | |
233 class SubListIterable extends ListIterable$(E) { | |
234 SubListIterable($_iterable, $_start, $_endOrLength) { | |
235 this[_iterable] = $_iterable; | |
236 this[_start] = $_start; | |
237 this[_endOrLength] = $_endOrLength; | |
238 super.ListIterable(); | |
239 core.RangeError.checkNotNegative(this[_start], "start"); | |
240 if (this[_endOrLength] !== null) { | |
241 core.RangeError.checkNotNegative(this[_endOrLength], "end"); | |
242 if (dart.notNull(this[_start]) > dart.notNull(this[_endOrLength])) { | |
243 throw new core.RangeError.range(this[_start], 0, this[_endOrLength],
"start"); | |
244 } | |
245 } | |
246 } | |
247 get [_endIndex]() { | |
248 let length = this[_iterable].length; | |
249 if (this[_endOrLength] === null || dart.notNull(this[_endOrLength]) > da
rt.notNull(length)) | |
250 return length; | |
251 return this[_endOrLength]; | |
252 } | |
253 get [_startIndex]() { | |
254 let length = this[_iterable].length; | |
255 if (dart.notNull(this[_start]) > dart.notNull(length)) | |
256 return length; | |
257 return this[_start]; | |
258 } | |
259 get length() { | |
260 let length = this[_iterable].length; | |
261 if (dart.notNull(this[_start]) >= dart.notNull(length)) | |
262 return 0; | |
263 if (this[_endOrLength] === null || dart.notNull(this[_endOrLength]) >= d
art.notNull(length)) { | |
264 return dart.notNull(length) - dart.notNull(this[_start]); | |
265 } | |
266 return dart.notNull(this[_endOrLength]) - dart.notNull(this[_start]); | |
267 } | |
268 elementAt(index) { | |
269 let realIndex = dart.notNull(this[_startIndex]) + dart.notNull(index); | |
270 if (dart.notNull(index) < 0 || dart.notNull(realIndex) >= dart.notNull(t
his[_endIndex])) { | |
271 throw new core.RangeError.index(index, this, "index"); | |
272 } | |
273 return this[_iterable].elementAt(realIndex); | |
274 } | |
275 skip(count) { | |
276 core.RangeError.checkNotNegative(count, "count"); | |
277 let newStart = dart.notNull(this[_start]) + dart.notNull(count); | |
278 if (this[_endOrLength] !== null && dart.notNull(newStart) >= dart.notNul
l(this[_endOrLength])) { | |
279 return new EmptyIterable(); | |
280 } | |
281 return new SubListIterable(this[_iterable], newStart, this[_endOrLength]
); | |
282 } | |
283 take(count) { | |
284 core.RangeError.checkNotNegative(count, "count"); | |
285 if (this[_endOrLength] === null) { | |
286 return new SubListIterable(this[_iterable], this[_start], dart.notNull
(this[_start]) + dart.notNull(count)); | |
287 } else { | |
288 let newEnd = dart.notNull(this[_start]) + dart.notNull(count); | |
289 if (dart.notNull(this[_endOrLength]) < dart.notNull(newEnd)) | |
290 return this; | |
291 return new SubListIterable(this[_iterable], this[_start], newEnd); | |
292 } | |
293 } | |
294 toList(opt$) { | |
295 let growable = opt$.growable === void 0 ? true : opt$.growable; | |
296 let start = this[_start]; | |
297 let end = this[_iterable].length; | |
298 if (this[_endOrLength] !== null && dart.notNull(this[_endOrLength]) < da
rt.notNull(end)) | |
299 end = this[_endOrLength]; | |
300 let length = dart.notNull(end) - dart.notNull(start); | |
301 if (dart.notNull(length) < 0) | |
302 length = 0; | |
303 let result = growable ? ((_) => { | |
304 _.length = length; | |
305 return _; | |
306 }).bind(this)(new core.List()) : new core.List(length); | |
307 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | |
308 result.set(i, this[_iterable].elementAt(dart.notNull(start) + dart.not
Null(i))); | |
309 if (dart.notNull(this[_iterable].length) < dart.notNull(end)) | |
310 throw new core.ConcurrentModificationError(this); | |
311 } | |
312 return dart.as(result, core.List$(E)); | |
313 } | |
314 } | |
315 return SubListIterable; | |
316 }); | |
317 let SubListIterable = SubListIterable$(dart.dynamic); | |
318 let _length = Symbol('_length'); | |
319 let _index = Symbol('_index'); | |
320 let _current = Symbol('_current'); | |
321 let ListIterator$ = dart.generic(function(E) { | |
322 class ListIterator extends core.Object { | |
323 ListIterator(iterable) { | |
324 this[_iterable] = iterable; | |
325 this[_length] = iterable.length; | |
326 this[_index] = 0; | |
327 this[_current] = null; | |
328 } | |
329 get current() { | |
330 return this[_current]; | |
331 } | |
332 moveNext() { | |
333 let length = this[_iterable].length; | |
334 if (this[_length] !== length) { | |
335 throw new core.ConcurrentModificationError(this[_iterable]); | |
336 } | |
337 if (dart.notNull(this[_index]) >= dart.notNull(length)) { | |
338 this[_current] = null; | |
339 return false; | |
340 } | |
341 this[_current] = this[_iterable].elementAt(this[_index]); | |
342 this[_index] = dart.notNull(this[_index]) + 1; | |
343 return true; | |
344 } | |
345 } | |
346 return ListIterator; | |
347 }); | |
348 let ListIterator = ListIterator$(dart.dynamic); | |
349 let _f = Symbol('_f'); | |
350 let MappedIterable$ = dart.generic(function(S, T) { | |
351 class MappedIterable extends collection.IterableBase$(T) { | |
352 MappedIterable(iterable, function) { | |
353 if (dart.is(iterable, EfficientLength)) { | |
354 return new EfficientLengthMappedIterable(iterable, function); | |
355 } | |
356 return new MappedIterable._(dart.as(iterable, core.Iterable$(S)), functi
on); | |
357 } | |
358 MappedIterable$_($_iterable, $_f) { | |
359 this[_iterable] = $_iterable; | |
360 this[_f] = $_f; | |
361 super.IterableBase(); | |
362 } | |
363 get iterator() { | |
364 return new MappedIterator(this[_iterable].iterator, this[_f]); | |
365 } | |
366 get length() { | |
367 return this[_iterable].length; | |
368 } | |
369 get isEmpty() { | |
370 return this[_iterable].isEmpty; | |
371 } | |
372 get first() { | |
373 return this[_f](this[_iterable].first); | |
374 } | |
375 get last() { | |
376 return this[_f](this[_iterable].last); | |
377 } | |
378 get single() { | |
379 return this[_f](this[_iterable].single); | |
380 } | |
381 elementAt(index) { | |
382 return this[_f](this[_iterable].elementAt(index)); | |
383 } | |
384 } | |
385 dart.defineNamedConstructor(MappedIterable, '_'); | |
386 return MappedIterable; | |
387 }); | |
388 let MappedIterable = MappedIterable$(dart.dynamic, dart.dynamic); | |
389 let EfficientLengthMappedIterable$ = dart.generic(function(S, T) { | |
390 class EfficientLengthMappedIterable extends MappedIterable$(S, T) { | |
391 EfficientLengthMappedIterable(iterable, function) { | |
392 super.MappedIterable$_(dart.as(iterable, core.Iterable$(S)), function); | |
393 } | |
394 } | |
395 return EfficientLengthMappedIterable; | |
396 }); | |
397 let EfficientLengthMappedIterable = EfficientLengthMappedIterable$(dart.dynami
c, dart.dynamic); | |
398 let _iterator = Symbol('_iterator'); | |
399 let MappedIterator$ = dart.generic(function(S, T) { | |
400 class MappedIterator extends core.Iterator$(T) { | |
401 MappedIterator($_iterator, $_f) { | |
402 this[_iterator] = $_iterator; | |
403 this[_f] = $_f; | |
404 this[_current] = null; | |
405 super.Iterator(); | |
406 } | |
407 moveNext() { | |
408 if (this[_iterator].moveNext()) { | |
409 this[_current] = this[_f](this[_iterator].current); | |
410 return true; | |
411 } | |
412 this[_current] = null; | |
413 return false; | |
414 } | |
415 get current() { | |
416 return this[_current]; | |
417 } | |
418 } | |
419 return MappedIterator; | |
420 }); | |
421 let MappedIterator = MappedIterator$(dart.dynamic, dart.dynamic); | |
422 let _source = Symbol('_source'); | |
423 let MappedListIterable$ = dart.generic(function(S, T) { | |
424 class MappedListIterable extends ListIterable$(T) { | |
425 MappedListIterable($_source, $_f) { | |
426 this[_source] = $_source; | |
427 this[_f] = $_f; | |
428 super.ListIterable(); | |
429 } | |
430 get length() { | |
431 return this[_source].length; | |
432 } | |
433 elementAt(index) { | |
434 return this[_f](this[_source].elementAt(index)); | |
435 } | |
436 } | |
437 return MappedListIterable; | |
438 }); | |
439 let MappedListIterable = MappedListIterable$(dart.dynamic, dart.dynamic); | |
440 let WhereIterable$ = dart.generic(function(E) { | |
441 class WhereIterable extends collection.IterableBase$(E) { | |
442 WhereIterable($_iterable, $_f) { | |
443 this[_iterable] = $_iterable; | |
444 this[_f] = $_f; | |
445 super.IterableBase(); | |
446 } | |
447 get iterator() { | |
448 return new WhereIterator(this[_iterable].iterator, this[_f]); | |
449 } | |
450 } | |
451 return WhereIterable; | |
452 }); | |
453 let WhereIterable = WhereIterable$(dart.dynamic); | |
454 let WhereIterator$ = dart.generic(function(E) { | |
455 class WhereIterator extends core.Iterator$(E) { | |
456 WhereIterator($_iterator, $_f) { | |
457 this[_iterator] = $_iterator; | |
458 this[_f] = $_f; | |
459 super.Iterator(); | |
460 } | |
461 moveNext() { | |
462 while (this[_iterator].moveNext()) { | |
463 if (this[_f](this[_iterator].current)) { | |
464 return true; | |
465 } | |
466 } | |
467 return false; | |
468 } | |
469 get current() { | |
470 return this[_iterator].current; | |
471 } | |
472 } | |
473 return WhereIterator; | |
474 }); | |
475 let WhereIterator = WhereIterator$(dart.dynamic); | |
476 let ExpandIterable$ = dart.generic(function(S, T) { | |
477 class ExpandIterable extends collection.IterableBase$(T) { | |
478 ExpandIterable($_iterable, $_f) { | |
479 this[_iterable] = $_iterable; | |
480 this[_f] = $_f; | |
481 super.IterableBase(); | |
482 } | |
483 get iterator() { | |
484 return new ExpandIterator(this[_iterable].iterator, dart.closureWrap(thi
s[_f], "(S) → Iterable<T>")); | |
485 } | |
486 } | |
487 return ExpandIterable; | |
488 }); | |
489 let ExpandIterable = ExpandIterable$(dart.dynamic, dart.dynamic); | |
490 let _currentExpansion = Symbol('_currentExpansion'); | |
491 let _nextExpansion = Symbol('_nextExpansion'); | |
492 let ExpandIterator$ = dart.generic(function(S, T) { | |
493 class ExpandIterator extends core.Object { | |
494 ExpandIterator($_iterator, $_f) { | |
495 this[_iterator] = $_iterator; | |
496 this[_f] = $_f; | |
497 this[_currentExpansion] = dart.as(new EmptyIterator(), core.Iterator$(T)
); | |
498 this[_current] = null; | |
499 } | |
500 [_nextExpansion]() {} | |
501 get current() { | |
502 return this[_current]; | |
503 } | |
504 moveNext() { | |
505 if (this[_currentExpansion] === null) | |
506 return false; | |
507 while (!dart.notNull(this[_currentExpansion].moveNext())) { | |
508 this[_current] = null; | |
509 if (this[_iterator].moveNext()) { | |
510 this[_currentExpansion] = null; | |
511 this[_currentExpansion] = dart.as(dart.dinvokef(this[_f], this[_iter
ator].current).iterator, core.Iterator$(T)); | |
512 } else { | |
513 return false; | |
514 } | |
515 } | |
516 this[_current] = this[_currentExpansion].current; | |
517 return true; | |
518 } | |
519 } | |
520 return ExpandIterator; | |
521 }); | |
522 let ExpandIterator = ExpandIterator$(dart.dynamic, dart.dynamic); | |
523 let _takeCount = Symbol('_takeCount'); | |
524 let TakeIterable$ = dart.generic(function(E) { | |
525 class TakeIterable extends collection.IterableBase$(E) { | |
526 TakeIterable(iterable, takeCount) { | |
527 if (dart.notNull(!(typeof takeCount == number)) || dart.notNull(takeCoun
t) < 0) { | |
528 throw new core.ArgumentError(takeCount); | |
529 } | |
530 if (dart.is(iterable, EfficientLength)) { | |
531 return new EfficientLengthTakeIterable(iterable, takeCount); | |
532 } | |
533 return new TakeIterable._(iterable, takeCount); | |
534 } | |
535 TakeIterable$_($_iterable, $_takeCount) { | |
536 this[_iterable] = $_iterable; | |
537 this[_takeCount] = $_takeCount; | |
538 super.IterableBase(); | |
539 } | |
540 get iterator() { | |
541 return new TakeIterator(this[_iterable].iterator, this[_takeCount]); | |
542 } | |
543 } | |
544 dart.defineNamedConstructor(TakeIterable, '_'); | |
545 return TakeIterable; | |
546 }); | |
547 let TakeIterable = TakeIterable$(dart.dynamic); | |
548 let EfficientLengthTakeIterable$ = dart.generic(function(E) { | |
549 class EfficientLengthTakeIterable extends TakeIterable$(E) { | |
550 EfficientLengthTakeIterable(iterable, takeCount) { | |
551 super.TakeIterable$_(iterable, takeCount); | |
552 } | |
553 get length() { | |
554 let iterableLength = this[_iterable].length; | |
555 if (dart.notNull(iterableLength) > dart.notNull(this[_takeCount])) | |
556 return this[_takeCount]; | |
557 return iterableLength; | |
558 } | |
559 } | |
560 return EfficientLengthTakeIterable; | |
561 }); | |
562 let EfficientLengthTakeIterable = EfficientLengthTakeIterable$(dart.dynamic); | |
563 let _remaining = Symbol('_remaining'); | |
564 let TakeIterator$ = dart.generic(function(E) { | |
565 class TakeIterator extends core.Iterator$(E) { | |
566 TakeIterator($_iterator, $_remaining) { | |
567 this[_iterator] = $_iterator; | |
568 this[_remaining] = $_remaining; | |
569 super.Iterator(); | |
570 dart.assert(dart.notNull(typeof this[_remaining] == number) && dart.notN
ull(this[_remaining]) >= 0); | |
571 } | |
572 moveNext() { | |
573 this[_remaining] = dart.notNull(this[_remaining]) - 1; | |
574 if (dart.notNull(this[_remaining]) >= 0) { | |
575 return this[_iterator].moveNext(); | |
576 } | |
577 this[_remaining] = -1; | |
578 return false; | |
579 } | |
580 get current() { | |
581 if (dart.notNull(this[_remaining]) < 0) | |
582 return null; | |
583 return this[_iterator].current; | |
584 } | |
585 } | |
586 return TakeIterator; | |
587 }); | |
588 let TakeIterator = TakeIterator$(dart.dynamic); | |
589 let TakeWhileIterable$ = dart.generic(function(E) { | |
590 class TakeWhileIterable extends collection.IterableBase$(E) { | |
591 TakeWhileIterable($_iterable, $_f) { | |
592 this[_iterable] = $_iterable; | |
593 this[_f] = $_f; | |
594 super.IterableBase(); | |
595 } | |
596 get iterator() { | |
597 return new TakeWhileIterator(this[_iterable].iterator, dart.closureWrap(
this[_f], "(E) → bool")); | |
598 } | |
599 } | |
600 return TakeWhileIterable; | |
601 }); | |
602 let TakeWhileIterable = TakeWhileIterable$(dart.dynamic); | |
603 let _isFinished = Symbol('_isFinished'); | |
604 let TakeWhileIterator$ = dart.generic(function(E) { | |
605 class TakeWhileIterator extends core.Iterator$(E) { | |
606 TakeWhileIterator($_iterator, $_f) { | |
607 this[_iterator] = $_iterator; | |
608 this[_f] = $_f; | |
609 this[_isFinished] = false; | |
610 super.Iterator(); | |
611 } | |
612 moveNext() { | |
613 if (this[_isFinished]) | |
614 return false; | |
615 if (!dart.notNull(this[_iterator].moveNext()) || !dart.notNull(dart.dinv
okef(this[_f], this[_iterator].current))) { | |
616 this[_isFinished] = true; | |
617 return false; | |
618 } | |
619 return true; | |
620 } | |
621 get current() { | |
622 if (this[_isFinished]) | |
623 return null; | |
624 return this[_iterator].current; | |
625 } | |
626 } | |
627 return TakeWhileIterator; | |
628 }); | |
629 let TakeWhileIterator = TakeWhileIterator$(dart.dynamic); | |
630 let _skipCount = Symbol('_skipCount'); | |
631 let SkipIterable$ = dart.generic(function(E) { | |
632 class SkipIterable extends collection.IterableBase$(E) { | |
633 SkipIterable(iterable, count) { | |
634 if (dart.is(iterable, EfficientLength)) { | |
635 return new EfficientLengthSkipIterable(iterable, count); | |
636 } | |
637 return new SkipIterable._(iterable, count); | |
638 } | |
639 SkipIterable$_($_iterable, $_skipCount) { | |
640 this[_iterable] = $_iterable; | |
641 this[_skipCount] = $_skipCount; | |
642 super.IterableBase(); | |
643 if (!(typeof this[_skipCount] == number)) { | |
644 throw new core.ArgumentError.value(this[_skipCount], "count is not an
integer"); | |
645 } | |
646 core.RangeError.checkNotNegative(this[_skipCount], "count"); | |
647 } | |
648 skip(count) { | |
649 if (!(typeof this[_skipCount] == number)) { | |
650 throw new core.ArgumentError.value(this[_skipCount], "count is not an
integer"); | |
651 } | |
652 core.RangeError.checkNotNegative(this[_skipCount], "count"); | |
653 return new SkipIterable._(this[_iterable], dart.notNull(this[_skipCount]
) + dart.notNull(count)); | |
654 } | |
655 get iterator() { | |
656 return new SkipIterator(this[_iterable].iterator, this[_skipCount]); | |
657 } | |
658 } | |
659 dart.defineNamedConstructor(SkipIterable, '_'); | |
660 return SkipIterable; | |
661 }); | |
662 let SkipIterable = SkipIterable$(dart.dynamic); | |
663 let EfficientLengthSkipIterable$ = dart.generic(function(E) { | |
664 class EfficientLengthSkipIterable extends SkipIterable$(E) { | |
665 EfficientLengthSkipIterable(iterable, skipCount) { | |
666 super.SkipIterable$_(iterable, skipCount); | |
667 } | |
668 get length() { | |
669 let length = dart.notNull(this[_iterable].length) - dart.notNull(this[_s
kipCount]); | |
670 if (dart.notNull(length) >= 0) | |
671 return length; | |
672 return 0; | |
673 } | |
674 } | |
675 return EfficientLengthSkipIterable; | |
676 }); | |
677 let EfficientLengthSkipIterable = EfficientLengthSkipIterable$(dart.dynamic); | |
678 let SkipIterator$ = dart.generic(function(E) { | |
679 class SkipIterator extends core.Iterator$(E) { | |
680 SkipIterator($_iterator, $_skipCount) { | |
681 this[_iterator] = $_iterator; | |
682 this[_skipCount] = $_skipCount; | |
683 super.Iterator(); | |
684 dart.assert(dart.notNull(typeof this[_skipCount] == number) && dart.notN
ull(this[_skipCount]) >= 0); | |
685 } | |
686 moveNext() { | |
687 for (let i = 0; dart.notNull(i) < dart.notNull(this[_skipCount]); i = da
rt.notNull(i) + 1) | |
688 this[_iterator].moveNext(); | |
689 this[_skipCount] = 0; | |
690 return this[_iterator].moveNext(); | |
691 } | |
692 get current() { | |
693 return this[_iterator].current; | |
694 } | |
695 } | |
696 return SkipIterator; | |
697 }); | |
698 let SkipIterator = SkipIterator$(dart.dynamic); | |
699 let SkipWhileIterable$ = dart.generic(function(E) { | |
700 class SkipWhileIterable extends collection.IterableBase$(E) { | |
701 SkipWhileIterable($_iterable, $_f) { | |
702 this[_iterable] = $_iterable; | |
703 this[_f] = $_f; | |
704 super.IterableBase(); | |
705 } | |
706 get iterator() { | |
707 return new SkipWhileIterator(this[_iterable].iterator, dart.closureWrap(
this[_f], "(E) → bool")); | |
708 } | |
709 } | |
710 return SkipWhileIterable; | |
711 }); | |
712 let SkipWhileIterable = SkipWhileIterable$(dart.dynamic); | |
713 let _hasSkipped = Symbol('_hasSkipped'); | |
714 let SkipWhileIterator$ = dart.generic(function(E) { | |
715 class SkipWhileIterator extends core.Iterator$(E) { | |
716 SkipWhileIterator($_iterator, $_f) { | |
717 this[_iterator] = $_iterator; | |
718 this[_f] = $_f; | |
719 this[_hasSkipped] = false; | |
720 super.Iterator(); | |
721 } | |
722 moveNext() { | |
723 if (!dart.notNull(this[_hasSkipped])) { | |
724 this[_hasSkipped] = true; | |
725 while (this[_iterator].moveNext()) { | |
726 if (!dart.notNull(dart.dinvokef(this[_f], this[_iterator].current))) | |
727 return true; | |
728 } | |
729 } | |
730 return this[_iterator].moveNext(); | |
731 } | |
732 get current() { | |
733 return this[_iterator].current; | |
734 } | |
735 } | |
736 return SkipWhileIterator; | |
737 }); | |
738 let SkipWhileIterator = SkipWhileIterator$(dart.dynamic); | |
739 let EmptyIterable$ = dart.generic(function(E) { | |
740 class EmptyIterable extends collection.IterableBase$(E) { | |
741 EmptyIterable() { | |
742 super.IterableBase(); | |
743 } | |
744 get iterator() { | |
745 return dart.as(new EmptyIterator(), core.Iterator$(E)); | |
746 } | |
747 forEach(action) {} | |
748 get isEmpty() { | |
749 return true; | |
750 } | |
751 get length() { | |
752 return 0; | |
753 } | |
754 get first() { | |
755 throw IterableElementError.noElement(); | |
756 } | |
757 get last() { | |
758 throw IterableElementError.noElement(); | |
759 } | |
760 get single() { | |
761 throw IterableElementError.noElement(); | |
762 } | |
763 elementAt(index) { | |
764 throw new core.RangeError.range(index, 0, 0, "index"); | |
765 } | |
766 contains(element) { | |
767 return false; | |
768 } | |
769 every(test) { | |
770 return true; | |
771 } | |
772 any(test) { | |
773 return false; | |
774 } | |
775 firstWhere(test, opt$) { | |
776 let orElse = opt$.orElse === void 0 ? null : opt$.orElse; | |
777 if (orElse !== null) | |
778 return orElse(); | |
779 throw IterableElementError.noElement(); | |
780 } | |
781 lastWhere(test, opt$) { | |
782 let orElse = opt$.orElse === void 0 ? null : opt$.orElse; | |
783 if (orElse !== null) | |
784 return orElse(); | |
785 throw IterableElementError.noElement(); | |
786 } | |
787 singleWhere(test, opt$) { | |
788 let orElse = opt$.orElse === void 0 ? null : opt$.orElse; | |
789 if (orElse !== null) | |
790 return orElse(); | |
791 throw IterableElementError.noElement(); | |
792 } | |
793 join(separator) { | |
794 if (separator === void 0) | |
795 separator = ""; | |
796 return ""; | |
797 } | |
798 where(test) { | |
799 return this; | |
800 } | |
801 map(f) { | |
802 return new EmptyIterable(); | |
803 } | |
804 reduce(combine) { | |
805 throw IterableElementError.noElement(); | |
806 } | |
807 fold(initialValue, combine) { | |
808 return initialValue; | |
809 } | |
810 skip(count) { | |
811 core.RangeError.checkNotNegative(count, "count"); | |
812 return this; | |
813 } | |
814 skipWhile(test) { | |
815 return this; | |
816 } | |
817 take(count) { | |
818 core.RangeError.checkNotNegative(count, "count"); | |
819 return this; | |
820 } | |
821 takeWhile(test) { | |
822 return this; | |
823 } | |
824 toList(opt$) { | |
825 let growable = opt$.growable === void 0 ? true : opt$.growable; | |
826 return growable ? new List.from([]) : new core.List(0); | |
827 } | |
828 toSet() { | |
829 return new core.Set(); | |
830 } | |
831 } | |
832 return EmptyIterable; | |
833 }); | |
834 let EmptyIterable = EmptyIterable$(dart.dynamic); | |
835 let EmptyIterator$ = dart.generic(function(E) { | |
836 class EmptyIterator extends core.Object { | |
837 EmptyIterator() { | |
838 } | |
839 moveNext() { | |
840 return false; | |
841 } | |
842 get current() { | |
843 return null; | |
844 } | |
845 } | |
846 return EmptyIterator; | |
847 }); | |
848 let EmptyIterator = EmptyIterator$(dart.dynamic); | |
849 let BidirectionalIterator$ = dart.generic(function(T) { | |
850 class BidirectionalIterator extends core.Object { | |
851 } | |
852 return BidirectionalIterator; | |
853 }); | |
854 let BidirectionalIterator = BidirectionalIterator$(dart.dynamic); | |
855 let _rangeCheck = Symbol('_rangeCheck'); | |
856 let IterableMixinWorkaround$ = dart.generic(function(T) { | |
857 class IterableMixinWorkaround extends core.Object { | |
858 static contains(iterable, element) { | |
859 for (let e of iterable) { | |
860 if (dart.equals(e, element)) | |
861 return true; | |
862 } | |
863 return false; | |
864 } | |
865 static forEach(iterable, f) { | |
866 for (let e of iterable) { | |
867 dart.dinvokef(f, e); | |
868 } | |
869 } | |
870 static any(iterable, f) { | |
871 for (let e of iterable) { | |
872 if (dart.dinvokef(f, e)) | |
873 return true; | |
874 } | |
875 return false; | |
876 } | |
877 static every(iterable, f) { | |
878 for (let e of iterable) { | |
879 if (!dart.notNull(dart.dinvokef(f, e))) | |
880 return false; | |
881 } | |
882 return true; | |
883 } | |
884 static reduce(iterable, combine) { | |
885 let iterator = iterable.iterator; | |
886 if (!dart.notNull(iterator.moveNext())) | |
887 throw IterableElementError.noElement(); | |
888 let value = iterator.current; | |
889 while (iterator.moveNext()) { | |
890 value = dart.dinvokef(combine, value, iterator.current); | |
891 } | |
892 return value; | |
893 } | |
894 static fold(iterable, initialValue, combine) { | |
895 for (let element of iterable) { | |
896 initialValue = dart.dinvokef(combine, initialValue, element); | |
897 } | |
898 return initialValue; | |
899 } | |
900 static removeWhereList(list, test) { | |
901 let retained = new List.from([]); | |
902 let length = list.length; | |
903 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | |
904 let element = list.get(i); | |
905 if (!dart.notNull(dart.dinvokef(test, element))) { | |
906 retained.add(element); | |
907 } | |
908 if (length !== list.length) { | |
909 throw new core.ConcurrentModificationError(list); | |
910 } | |
911 } | |
912 if (retained.length === length) | |
913 return; | |
914 list.length = retained.length; | |
915 for (let i = 0; dart.notNull(i) < dart.notNull(retained.length); i = dar
t.notNull(i) + 1) { | |
916 list.set(i, retained.get(i)); | |
917 } | |
918 } | |
919 static isEmpty(iterable) { | |
920 return !dart.notNull(iterable.iterator.moveNext()); | |
921 } | |
922 static first(iterable) { | |
923 let it = iterable.iterator; | |
924 if (!dart.notNull(it.moveNext())) { | |
925 throw IterableElementError.noElement(); | |
926 } | |
927 return it.current; | |
928 } | |
929 static last(iterable) { | |
930 let it = iterable.iterator; | |
931 if (!dart.notNull(it.moveNext())) { | |
932 throw IterableElementError.noElement(); | |
933 } | |
934 let result = null; | |
935 do { | |
936 result = it.current; | |
937 } while (it.moveNext()); | |
938 return result; | |
939 } | |
940 static single(iterable) { | |
941 let it = iterable.iterator; | |
942 if (!dart.notNull(it.moveNext())) | |
943 throw IterableElementError.noElement(); | |
944 let result = it.current; | |
945 if (it.moveNext()) | |
946 throw IterableElementError.tooMany(); | |
947 return result; | |
948 } | |
949 static firstWhere(iterable, test, orElse) { | |
950 for (let element of iterable) { | |
951 if (dart.dinvokef(test, element)) | |
952 return element; | |
953 } | |
954 if (orElse !== null) | |
955 return orElse(); | |
956 throw IterableElementError.noElement(); | |
957 } | |
958 static lastWhere(iterable, test, orElse) { | |
959 let result = null; | |
960 let foundMatching = false; | |
961 for (let element of iterable) { | |
962 if (dart.dinvokef(test, element)) { | |
963 result = element; | |
964 foundMatching = true; | |
965 } | |
966 } | |
967 if (foundMatching) | |
968 return result; | |
969 if (orElse !== null) | |
970 return orElse(); | |
971 throw IterableElementError.noElement(); | |
972 } | |
973 static lastWhereList(list, test, orElse) { | |
974 for (let i = dart.notNull(list.length) - 1; dart.notNull(i) >= 0; i = da
rt.notNull(i) - 1) { | |
975 let element = list.get(i); | |
976 if (dart.dinvokef(test, element)) | |
977 return element; | |
978 } | |
979 if (orElse !== null) | |
980 return orElse(); | |
981 throw IterableElementError.noElement(); | |
982 } | |
983 static singleWhere(iterable, test) { | |
984 let result = null; | |
985 let foundMatching = false; | |
986 for (let element of iterable) { | |
987 if (dart.dinvokef(test, element)) { | |
988 if (foundMatching) { | |
989 throw IterableElementError.tooMany(); | |
990 } | |
991 result = element; | |
992 foundMatching = true; | |
993 } | |
994 } | |
995 if (foundMatching) | |
996 return result; | |
997 throw IterableElementError.noElement(); | |
998 } | |
999 static elementAt(iterable, index) { | |
1000 if (!(typeof index == number)) | |
1001 throw new core.ArgumentError.notNull("index"); | |
1002 core.RangeError.checkNotNegative(index, "index"); | |
1003 let elementIndex = 0; | |
1004 for (let element of iterable) { | |
1005 if (index === elementIndex) | |
1006 return element; | |
1007 elementIndex = dart.notNull(elementIndex) + 1; | |
1008 } | |
1009 throw new core.RangeError.index(index, iterable, "index", null, elementI
ndex); | |
1010 } | |
1011 static join(iterable, separator) { | |
1012 if (separator === void 0) | |
1013 separator = null; | |
1014 let buffer = new core.StringBuffer(); | |
1015 buffer.writeAll(iterable, separator); | |
1016 return buffer.toString(); | |
1017 } | |
1018 static joinList(list, separator) { | |
1019 if (separator === void 0) | |
1020 separator = null; | |
1021 if (list.isEmpty) | |
1022 return ""; | |
1023 if (list.length === 1) | |
1024 return `${list.get(0)}`; | |
1025 let buffer = new core.StringBuffer(); | |
1026 if (separator.isEmpty) { | |
1027 for (let i = 0; dart.notNull(i) < dart.notNull(list.length); i = dart.
notNull(i) + 1) { | |
1028 buffer.write(list.get(i)); | |
1029 } | |
1030 } else { | |
1031 buffer.write(list.get(0)); | |
1032 for (let i = 1; dart.notNull(i) < dart.notNull(list.length); i = dart.
notNull(i) + 1) { | |
1033 buffer.write(separator); | |
1034 buffer.write(list.get(i)); | |
1035 } | |
1036 } | |
1037 return buffer.toString(); | |
1038 } | |
1039 where(iterable, f) { | |
1040 return new WhereIterable(dart.as(iterable, core.Iterable$(T)), dart.clos
ureWrap(f, "(T) → bool")); | |
1041 } | |
1042 static map(iterable, f) { | |
1043 return new MappedIterable(iterable, f); | |
1044 } | |
1045 static mapList(list, f) { | |
1046 return new MappedListIterable(list, f); | |
1047 } | |
1048 static expand(iterable, f) { | |
1049 return new ExpandIterable(iterable, f); | |
1050 } | |
1051 takeList(list, n) { | |
1052 return new SubListIterable(dart.as(list, core.Iterable$(T)), 0, n); | |
1053 } | |
1054 takeWhile(iterable, test) { | |
1055 return new TakeWhileIterable(dart.as(iterable, core.Iterable$(T)), dart.
closureWrap(test, "(T) → bool")); | |
1056 } | |
1057 skipList(list, n) { | |
1058 return new SubListIterable(dart.as(list, core.Iterable$(T)), n, null); | |
1059 } | |
1060 skipWhile(iterable, test) { | |
1061 return new SkipWhileIterable(dart.as(iterable, core.Iterable$(T)), dart.
closureWrap(test, "(T) → bool")); | |
1062 } | |
1063 reversedList(list) { | |
1064 return new ReversedListIterable(dart.as(list, core.Iterable$(T))); | |
1065 } | |
1066 static sortList(list, compare) { | |
1067 if (compare === null) | |
1068 compare = core.Comparable.compare; | |
1069 Sort.sort(list, compare); | |
1070 } | |
1071 static shuffleList(list, random) { | |
1072 if (random === null) | |
1073 random = new math.Random(); | |
1074 let length = list.length; | |
1075 while (dart.notNull(length) > 1) { | |
1076 let pos = random.nextInt(length); | |
1077 length = 1; | |
1078 let tmp = list.get(length); | |
1079 list.set(length, list.get(pos)); | |
1080 list.set(pos, tmp); | |
1081 } | |
1082 } | |
1083 static indexOfList(list, element, start) { | |
1084 return Lists.indexOf(list, element, start, list.length); | |
1085 } | |
1086 static lastIndexOfList(list, element, start) { | |
1087 if (start === null) | |
1088 start = dart.notNull(list.length) - 1; | |
1089 return Lists.lastIndexOf(list, element, start); | |
1090 } | |
1091 static [_rangeCheck](list, start, end) { | |
1092 core.RangeError.checkValidRange(start, end, list.length); | |
1093 } | |
1094 getRangeList(list, start, end) { | |
1095 _rangeCheck(list, start, end); | |
1096 return new SubListIterable(dart.as(list, core.Iterable$(T)), start, end)
; | |
1097 } | |
1098 static setRangeList(list, start, end, from, skipCount) { | |
1099 _rangeCheck(list, start, end); | |
1100 let length = dart.notNull(end) - dart.notNull(start); | |
1101 if (length === 0) | |
1102 return; | |
1103 if (dart.notNull(skipCount) < 0) | |
1104 throw new core.ArgumentError(skipCount); | |
1105 let otherList = null; | |
1106 let otherStart = null; | |
1107 if (dart.is(from, core.List)) { | |
1108 otherList = from; | |
1109 otherStart = skipCount; | |
1110 } else { | |
1111 otherList = from.skip(skipCount).toList({growable: false}); | |
1112 otherStart = 0; | |
1113 } | |
1114 if (dart.notNull(otherStart) + dart.notNull(length) > dart.notNull(other
List.length)) { | |
1115 throw IterableElementError.tooFew(); | |
1116 } | |
1117 Lists.copy(otherList, otherStart, list, start, length); | |
1118 } | |
1119 static replaceRangeList(list, start, end, iterable) { | |
1120 _rangeCheck(list, start, end); | |
1121 if (!dart.is(iterable, EfficientLength)) { | |
1122 iterable = iterable.toList(); | |
1123 } | |
1124 let removeLength = dart.notNull(end) - dart.notNull(start); | |
1125 let insertLength = iterable.length; | |
1126 if (dart.notNull(removeLength) >= dart.notNull(insertLength)) { | |
1127 let delta = dart.notNull(removeLength) - dart.notNull(insertLength); | |
1128 let insertEnd = dart.notNull(start) + dart.notNull(insertLength); | |
1129 let newEnd = dart.notNull(list.length) - dart.notNull(delta); | |
1130 list.setRange(start, insertEnd, iterable); | |
1131 if (delta !== 0) { | |
1132 list.setRange(insertEnd, newEnd, list, end); | |
1133 list.length = newEnd; | |
1134 } | |
1135 } else { | |
1136 let delta = dart.notNull(insertLength) - dart.notNull(removeLength); | |
1137 let newLength = dart.notNull(list.length) + dart.notNull(delta); | |
1138 let insertEnd = dart.notNull(start) + dart.notNull(insertLength); | |
1139 list.length = newLength; | |
1140 list.setRange(insertEnd, newLength, list, end); | |
1141 list.setRange(start, insertEnd, iterable); | |
1142 } | |
1143 } | |
1144 static fillRangeList(list, start, end, fillValue) { | |
1145 _rangeCheck(list, start, end); | |
1146 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul
l(i) + 1) { | |
1147 list.set(i, fillValue); | |
1148 } | |
1149 } | |
1150 static insertAllList(list, index, iterable) { | |
1151 core.RangeError.checkValueInInterval(index, 0, list.length, "index"); | |
1152 if (!dart.is(iterable, EfficientLength)) { | |
1153 iterable = iterable.toList({growable: false}); | |
1154 } | |
1155 let insertionLength = iterable.length; | |
1156 list.length = insertionLength; | |
1157 list.setRange(dart.notNull(index) + dart.notNull(insertionLength), list.
length, list, index); | |
1158 for (let element of iterable) { | |
1159 list.set((($tmp) => index = dart.notNull($tmp) + 1, $tmp)(index), elem
ent); | |
1160 } | |
1161 } | |
1162 static setAllList(list, index, iterable) { | |
1163 core.RangeError.checkValueInInterval(index, 0, list.length, "index"); | |
1164 for (let element of iterable) { | |
1165 list.set((($tmp) => index = dart.notNull($tmp) + 1, $tmp)(index), elem
ent); | |
1166 } | |
1167 } | |
1168 asMapList(l) { | |
1169 return new ListMapView(dart.as(l, core.List$(T))); | |
1170 } | |
1171 static setContainsAll(set, other) { | |
1172 for (let element of other) { | |
1173 if (!dart.notNull(set.contains(element))) | |
1174 return false; | |
1175 } | |
1176 return true; | |
1177 } | |
1178 static setIntersection(set, other, result) { | |
1179 let smaller = null; | |
1180 let larger = null; | |
1181 if (dart.notNull(set.length) < dart.notNull(other.length)) { | |
1182 smaller = set; | |
1183 larger = other; | |
1184 } else { | |
1185 smaller = other; | |
1186 larger = set; | |
1187 } | |
1188 for (let element of smaller) { | |
1189 if (larger.contains(element)) { | |
1190 result.add(element); | |
1191 } | |
1192 } | |
1193 return result; | |
1194 } | |
1195 static setUnion(set, other, result) { | |
1196 result.addAll(set); | |
1197 result.addAll(other); | |
1198 return result; | |
1199 } | |
1200 static setDifference(set, other, result) { | |
1201 for (let element of set) { | |
1202 if (!dart.notNull(other.contains(element))) { | |
1203 result.add(element); | |
1204 } | |
1205 } | |
1206 return result; | |
1207 } | |
1208 } | |
1209 return IterableMixinWorkaround; | |
1210 }); | |
1211 let IterableMixinWorkaround = IterableMixinWorkaround$(dart.dynamic); | |
1212 class IterableElementError extends core.Object { | |
1213 static noElement() { | |
1214 return new core.StateError("No element"); | |
1215 } | |
1216 static tooMany() { | |
1217 return new core.StateError("Too many elements"); | |
1218 } | |
1219 static tooFew() { | |
1220 return new core.StateError("Too few elements"); | |
1221 } | |
1222 } | |
1223 let FixedLengthListMixin$ = dart.generic(function(E) { | |
1224 class FixedLengthListMixin extends core.Object { | |
1225 set length(newLength) { | |
1226 throw new core.UnsupportedError("Cannot change the length of a fixed-len
gth list"); | |
1227 } | |
1228 add(value) { | |
1229 throw new core.UnsupportedError("Cannot add to a fixed-length list"); | |
1230 } | |
1231 insert(index, value) { | |
1232 throw new core.UnsupportedError("Cannot add to a fixed-length list"); | |
1233 } | |
1234 insertAll(at, iterable) { | |
1235 throw new core.UnsupportedError("Cannot add to a fixed-length list"); | |
1236 } | |
1237 addAll(iterable) { | |
1238 throw new core.UnsupportedError("Cannot add to a fixed-length list"); | |
1239 } | |
1240 remove(element) { | |
1241 throw new core.UnsupportedError("Cannot remove from a fixed-length list"
); | |
1242 } | |
1243 removeWhere(test) { | |
1244 throw new core.UnsupportedError("Cannot remove from a fixed-length list"
); | |
1245 } | |
1246 retainWhere(test) { | |
1247 throw new core.UnsupportedError("Cannot remove from a fixed-length list"
); | |
1248 } | |
1249 clear() { | |
1250 throw new core.UnsupportedError("Cannot clear a fixed-length list"); | |
1251 } | |
1252 removeAt(index) { | |
1253 throw new core.UnsupportedError("Cannot remove from a fixed-length list"
); | |
1254 } | |
1255 removeLast() { | |
1256 throw new core.UnsupportedError("Cannot remove from a fixed-length list"
); | |
1257 } | |
1258 removeRange(start, end) { | |
1259 throw new core.UnsupportedError("Cannot remove from a fixed-length list"
); | |
1260 } | |
1261 replaceRange(start, end, iterable) { | |
1262 throw new core.UnsupportedError("Cannot remove from a fixed-length list"
); | |
1263 } | |
1264 } | |
1265 return FixedLengthListMixin; | |
1266 }); | |
1267 let FixedLengthListMixin = FixedLengthListMixin$(dart.dynamic); | |
1268 let UnmodifiableListMixin$ = dart.generic(function(E) { | |
1269 class UnmodifiableListMixin extends core.Object { | |
1270 set(index, value) { | |
1271 throw new core.UnsupportedError("Cannot modify an unmodifiable list"); | |
1272 } | |
1273 set length(newLength) { | |
1274 throw new core.UnsupportedError("Cannot change the length of an unmodifi
able list"); | |
1275 } | |
1276 setAll(at, iterable) { | |
1277 throw new core.UnsupportedError("Cannot modify an unmodifiable list"); | |
1278 } | |
1279 add(value) { | |
1280 throw new core.UnsupportedError("Cannot add to an unmodifiable list"); | |
1281 } | |
1282 insert(index, value) { | |
1283 throw new core.UnsupportedError("Cannot add to an unmodifiable list"); | |
1284 } | |
1285 insertAll(at, iterable) { | |
1286 throw new core.UnsupportedError("Cannot add to an unmodifiable list"); | |
1287 } | |
1288 addAll(iterable) { | |
1289 throw new core.UnsupportedError("Cannot add to an unmodifiable list"); | |
1290 } | |
1291 remove(element) { | |
1292 throw new core.UnsupportedError("Cannot remove from an unmodifiable list
"); | |
1293 } | |
1294 removeWhere(test) { | |
1295 throw new core.UnsupportedError("Cannot remove from an unmodifiable list
"); | |
1296 } | |
1297 retainWhere(test) { | |
1298 throw new core.UnsupportedError("Cannot remove from an unmodifiable list
"); | |
1299 } | |
1300 sort(compare) { | |
1301 if (compare === void 0) | |
1302 compare = null; | |
1303 throw new core.UnsupportedError("Cannot modify an unmodifiable list"); | |
1304 } | |
1305 shuffle(random) { | |
1306 if (random === void 0) | |
1307 random = null; | |
1308 throw new core.UnsupportedError("Cannot modify an unmodifiable list"); | |
1309 } | |
1310 clear() { | |
1311 throw new core.UnsupportedError("Cannot clear an unmodifiable list"); | |
1312 } | |
1313 removeAt(index) { | |
1314 throw new core.UnsupportedError("Cannot remove from an unmodifiable list
"); | |
1315 } | |
1316 removeLast() { | |
1317 throw new core.UnsupportedError("Cannot remove from an unmodifiable list
"); | |
1318 } | |
1319 setRange(start, end, iterable, skipCount) { | |
1320 if (skipCount === void 0) | |
1321 skipCount = 0; | |
1322 throw new core.UnsupportedError("Cannot modify an unmodifiable list"); | |
1323 } | |
1324 removeRange(start, end) { | |
1325 throw new core.UnsupportedError("Cannot remove from an unmodifiable list
"); | |
1326 } | |
1327 replaceRange(start, end, iterable) { | |
1328 throw new core.UnsupportedError("Cannot remove from an unmodifiable list
"); | |
1329 } | |
1330 fillRange(start, end, fillValue) { | |
1331 if (fillValue === void 0) | |
1332 fillValue = null; | |
1333 throw new core.UnsupportedError("Cannot modify an unmodifiable list"); | |
1334 } | |
1335 } | |
1336 return UnmodifiableListMixin; | |
1337 }); | |
1338 let UnmodifiableListMixin = UnmodifiableListMixin$(dart.dynamic); | |
1339 let FixedLengthListBase$ = dart.generic(function(E) { | |
1340 class FixedLengthListBase extends dart.mixin(FixedLengthListMixin$(E)) { | |
1341 } | |
1342 return FixedLengthListBase; | |
1343 }); | |
1344 let FixedLengthListBase = FixedLengthListBase$(dart.dynamic); | |
1345 let UnmodifiableListBase$ = dart.generic(function(E) { | |
1346 class UnmodifiableListBase extends dart.mixin(UnmodifiableListMixin$(E)) { | |
1347 } | |
1348 return UnmodifiableListBase; | |
1349 }); | |
1350 let UnmodifiableListBase = UnmodifiableListBase$(dart.dynamic); | |
1351 let _backedList = Symbol('_backedList'); | |
1352 class _ListIndicesIterable extends ListIterable$(core.int) { | |
1353 _ListIndicesIterable($_backedList) { | |
1354 this[_backedList] = $_backedList; | |
1355 super.ListIterable(); | |
1356 } | |
1357 get length() { | |
1358 return this[_backedList].length; | |
1359 } | |
1360 elementAt(index) { | |
1361 core.RangeError.checkValidIndex(index, this); | |
1362 return index; | |
1363 } | |
1364 } | |
1365 let _values = Symbol('_values'); | |
1366 let ListMapView$ = dart.generic(function(E) { | |
1367 class ListMapView extends core.Object { | |
1368 ListMapView($_values) { | |
1369 this[_values] = $_values; | |
1370 } | |
1371 get(key) { | |
1372 return this.containsKey(key) ? this[_values].get(key) : null; | |
1373 } | |
1374 get length() { | |
1375 return this[_values].length; | |
1376 } | |
1377 get values() { | |
1378 return new SubListIterable(this[_values], 0, null); | |
1379 } | |
1380 get keys() { | |
1381 return new _ListIndicesIterable(this[_values]); | |
1382 } | |
1383 get isEmpty() { | |
1384 return this[_values].isEmpty; | |
1385 } | |
1386 get isNotEmpty() { | |
1387 return this[_values].isNotEmpty; | |
1388 } | |
1389 containsValue(value) { | |
1390 return this[_values].contains(value); | |
1391 } | |
1392 containsKey(key) { | |
1393 return dart.notNull(typeof key == number) && dart.notNull(key) >= 0 && d
art.notNull(key) < dart.notNull(this.length); | |
1394 } | |
1395 forEach(f) { | |
1396 let length = this[_values].length; | |
1397 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | |
1398 f(i, this[_values].get(i)); | |
1399 if (length !== this[_values].length) { | |
1400 throw new core.ConcurrentModificationError(this[_values]); | |
1401 } | |
1402 } | |
1403 } | |
1404 set(key, value) { | |
1405 throw new core.UnsupportedError("Cannot modify an unmodifiable map"); | |
1406 } | |
1407 putIfAbsent(key, ifAbsent) { | |
1408 throw new core.UnsupportedError("Cannot modify an unmodifiable map"); | |
1409 } | |
1410 remove(key) { | |
1411 throw new core.UnsupportedError("Cannot modify an unmodifiable map"); | |
1412 } | |
1413 clear() { | |
1414 throw new core.UnsupportedError("Cannot modify an unmodifiable map"); | |
1415 } | |
1416 addAll(other) { | |
1417 throw new core.UnsupportedError("Cannot modify an unmodifiable map"); | |
1418 } | |
1419 toString() { | |
1420 return collection.Maps.mapToString(this); | |
1421 } | |
1422 } | |
1423 return ListMapView; | |
1424 }); | |
1425 let ListMapView = ListMapView$(dart.dynamic); | |
1426 let ReversedListIterable$ = dart.generic(function(E) { | |
1427 class ReversedListIterable extends ListIterable$(E) { | |
1428 ReversedListIterable($_source) { | |
1429 this[_source] = $_source; | |
1430 super.ListIterable(); | |
1431 } | |
1432 get length() { | |
1433 return this[_source].length; | |
1434 } | |
1435 elementAt(index) { | |
1436 return this[_source].elementAt(dart.notNull(this[_source].length) - 1 -
dart.notNull(index)); | |
1437 } | |
1438 } | |
1439 return ReversedListIterable; | |
1440 }); | |
1441 let ReversedListIterable = ReversedListIterable$(dart.dynamic); | |
1442 class UnmodifiableListError extends core.Object { | |
1443 static add() { | |
1444 return new core.UnsupportedError("Cannot add to unmodifiable List"); | |
1445 } | |
1446 static change() { | |
1447 return new core.UnsupportedError("Cannot change the content of an unmodifi
able List"); | |
1448 } | |
1449 static length() { | |
1450 return new core.UnsupportedError("Cannot change length of unmodifiable Lis
t"); | |
1451 } | |
1452 static remove() { | |
1453 return new core.UnsupportedError("Cannot remove from unmodifiable List"); | |
1454 } | |
1455 } | |
1456 class NonGrowableListError extends core.Object { | |
1457 static add() { | |
1458 return new core.UnsupportedError("Cannot add to non-growable List"); | |
1459 } | |
1460 static length() { | |
1461 return new core.UnsupportedError("Cannot change length of non-growable Lis
t"); | |
1462 } | |
1463 static remove() { | |
1464 return new core.UnsupportedError("Cannot remove from non-growable List"); | |
1465 } | |
1466 } | |
1467 // Function makeListFixedLength: (List<dynamic>) → List | |
1468 function makeListFixedLength(growableList) { | |
1469 _interceptors.JSArray.markFixedList(growableList); | |
1470 return growableList; | |
1471 } | |
1472 class Lists extends core.Object { | |
1473 static copy(src, srcStart, dst, dstStart, count) { | |
1474 if (dart.notNull(srcStart) < dart.notNull(dstStart)) { | |
1475 for (let i = dart.notNull(srcStart) + dart.notNull(count) - 1, j = dart.
notNull(dstStart) + dart.notNull(count) - 1; dart.notNull(i) >= dart.notNull(src
Start); i = dart.notNull(i) - 1, j = dart.notNull(j) - 1) { | |
1476 dst.set(j, src.get(i)); | |
1477 } | |
1478 } else { | |
1479 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) { | |
1480 dst.set(j, src.get(i)); | |
1481 } | |
1482 } | |
1483 } | |
1484 static areEqual(a, b) { | |
1485 if (core.identical(a, b)) | |
1486 return true; | |
1487 if (!dart.notNull(dart.is(b, core.List))) | |
1488 return false; | |
1489 let length = a.length; | |
1490 if (length !== dart.dload(b, 'length')) | |
1491 return false; | |
1492 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull(i
) + 1) { | |
1493 if (!dart.notNull(core.identical(a.get(i), dart.dindex(b, i)))) | |
1494 return false; | |
1495 } | |
1496 return true; | |
1497 } | |
1498 static indexOf(a, element, startIndex, endIndex) { | |
1499 if (dart.notNull(startIndex) >= dart.notNull(a.length)) { | |
1500 return -1; | |
1501 } | |
1502 if (dart.notNull(startIndex) < 0) { | |
1503 startIndex = 0; | |
1504 } | |
1505 for (let i = startIndex; dart.notNull(i) < dart.notNull(endIndex); i = dar
t.notNull(i) + 1) { | |
1506 if (dart.equals(a.get(i), element)) { | |
1507 return i; | |
1508 } | |
1509 } | |
1510 return -1; | |
1511 } | |
1512 static lastIndexOf(a, element, startIndex) { | |
1513 if (dart.notNull(startIndex) < 0) { | |
1514 return -1; | |
1515 } | |
1516 if (dart.notNull(startIndex) >= dart.notNull(a.length)) { | |
1517 startIndex = dart.notNull(a.length) - 1; | |
1518 } | |
1519 for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) { | |
1520 if (dart.equals(a.get(i), element)) { | |
1521 return i; | |
1522 } | |
1523 } | |
1524 return -1; | |
1525 } | |
1526 static indicesCheck(a, start, end) { | |
1527 core.RangeError.checkValidRange(start, end, a.length); | |
1528 } | |
1529 static rangeCheck(a, start, length) { | |
1530 core.RangeError.checkNotNegative(length); | |
1531 core.RangeError.checkNotNegative(start); | |
1532 if (dart.notNull(start) + dart.notNull(length) > dart.notNull(a.length)) { | |
1533 let message = `${start} + ${length} must be in the range [0..${a.length}
]`; | |
1534 throw new core.RangeError.range(length, 0, dart.notNull(a.length) - dart
.notNull(start), "length", message); | |
1535 } | |
1536 } | |
1537 } | |
1538 exports.printToZone = null; | |
1539 // Function printToConsole: (String) → void | |
1540 function printToConsole(line) { | |
1541 _js_primitives.printString(`${line}`); | |
1542 } | |
1543 let _doSort = Symbol('_doSort'); | |
1544 let _insertionSort = Symbol('_insertionSort'); | |
1545 let _dualPivotQuicksort = Symbol('_dualPivotQuicksort'); | |
1546 class Sort extends core.Object { | |
1547 static sort(a, compare) { | |
1548 _doSort(a, 0, dart.notNull(a.length) - 1, compare); | |
1549 } | |
1550 static sortRange(a, from, to, compare) { | |
1551 if (dart.notNull(from) < 0 || dart.notNull(to) > dart.notNull(a.length) ||
dart.notNull(to) < dart.notNull(from)) { | |
1552 throw "OutOfRange"; | |
1553 } | |
1554 _doSort(a, from, dart.notNull(to) - 1, compare); | |
1555 } | |
1556 static [_doSort](a, left, right, compare) { | |
1557 if (dart.notNull(right) - dart.notNull(left) <= dart.notNull(Sort._INSERTI
ON_SORT_THRESHOLD)) { | |
1558 _insertionSort(a, left, right, compare); | |
1559 } else { | |
1560 _dualPivotQuicksort(a, left, right, compare); | |
1561 } | |
1562 } | |
1563 static [_insertionSort](a, left, right, compare) { | |
1564 for (let i = dart.notNull(left) + 1; dart.notNull(i) <= dart.notNull(right
); i = dart.notNull(i) + 1) { | |
1565 let el = a.get(i); | |
1566 let j = i; | |
1567 while (dart.notNull(j) > dart.notNull(left) && dart.notNull(dart.dinvoke
f(compare, a.get(dart.notNull(j) - 1), el)) > 0) { | |
1568 a.set(j, a.get(dart.notNull(j) - 1)); | |
1569 j = dart.notNull(j) - 1; | |
1570 } | |
1571 a.set(j, el); | |
1572 } | |
1573 } | |
1574 static [_dualPivotQuicksort](a, left, right, compare) { | |
1575 dart.assert(dart.notNull(right) - dart.notNull(left) > dart.notNull(Sort._
INSERTION_SORT_THRESHOLD)); | |
1576 let sixth = ((dart.notNull(right) - dart.notNull(left) + 1) / 6).truncate(
); | |
1577 let index1 = dart.notNull(left) + dart.notNull(sixth); | |
1578 let index5 = dart.notNull(right) - dart.notNull(sixth); | |
1579 let index3 = ((dart.notNull(left) + dart.notNull(right)) / 2).truncate(); | |
1580 let index2 = dart.notNull(index3) - dart.notNull(sixth); | |
1581 let index4 = dart.notNull(index3) + dart.notNull(sixth); | |
1582 let el1 = a.get(index1); | |
1583 let el2 = a.get(index2); | |
1584 let el3 = a.get(index3); | |
1585 let el4 = a.get(index4); | |
1586 let el5 = a.get(index5); | |
1587 if (dart.notNull(dart.dinvokef(compare, el1, el2)) > 0) { | |
1588 let t = el1; | |
1589 el1 = el2; | |
1590 el2 = t; | |
1591 } | |
1592 if (dart.notNull(dart.dinvokef(compare, el4, el5)) > 0) { | |
1593 let t = el4; | |
1594 el4 = el5; | |
1595 el5 = t; | |
1596 } | |
1597 if (dart.notNull(dart.dinvokef(compare, el1, el3)) > 0) { | |
1598 let t = el1; | |
1599 el1 = el3; | |
1600 el3 = t; | |
1601 } | |
1602 if (dart.notNull(dart.dinvokef(compare, el2, el3)) > 0) { | |
1603 let t = el2; | |
1604 el2 = el3; | |
1605 el3 = t; | |
1606 } | |
1607 if (dart.notNull(dart.dinvokef(compare, el1, el4)) > 0) { | |
1608 let t = el1; | |
1609 el1 = el4; | |
1610 el4 = t; | |
1611 } | |
1612 if (dart.notNull(dart.dinvokef(compare, el3, el4)) > 0) { | |
1613 let t = el3; | |
1614 el3 = el4; | |
1615 el4 = t; | |
1616 } | |
1617 if (dart.notNull(dart.dinvokef(compare, el2, el5)) > 0) { | |
1618 let t = el2; | |
1619 el2 = el5; | |
1620 el5 = t; | |
1621 } | |
1622 if (dart.notNull(dart.dinvokef(compare, el2, el3)) > 0) { | |
1623 let t = el2; | |
1624 el2 = el3; | |
1625 el3 = t; | |
1626 } | |
1627 if (dart.notNull(dart.dinvokef(compare, el4, el5)) > 0) { | |
1628 let t = el4; | |
1629 el4 = el5; | |
1630 el5 = t; | |
1631 } | |
1632 let pivot1 = el2; | |
1633 let pivot2 = el4; | |
1634 a.set(index1, el1); | |
1635 a.set(index3, el3); | |
1636 a.set(index5, el5); | |
1637 a.set(index2, a.get(left)); | |
1638 a.set(index4, a.get(right)); | |
1639 let less = dart.notNull(left) + 1; | |
1640 let great = dart.notNull(right) - 1; | |
1641 let pivots_are_equal = dart.dinvokef(compare, pivot1, pivot2) === 0; | |
1642 if (pivots_are_equal) { | |
1643 let pivot = pivot1; | |
1644 for (let k = less; dart.notNull(k) <= dart.notNull(great); k = dart.notN
ull(k) + 1) { | |
1645 let ak = a.get(k); | |
1646 let comp = dart.dinvokef(compare, ak, pivot); | |
1647 if (comp === 0) | |
1648 continue; | |
1649 if (dart.notNull(comp) < 0) { | |
1650 if (k !== less) { | |
1651 a.set(k, a.get(less)); | |
1652 a.set(less, ak); | |
1653 } | |
1654 less = dart.notNull(less) + 1; | |
1655 } else { | |
1656 while (true) { | |
1657 comp = dart.dinvokef(compare, a.get(great), pivot); | |
1658 if (dart.notNull(comp) > 0) { | |
1659 great = dart.notNull(great) - 1; | |
1660 continue; | |
1661 } else if (dart.notNull(comp) < 0) { | |
1662 a.set(k, a.get(less)); | |
1663 a.set((($tmp) => less = dart.notNull($tmp) + 1, $tmp)(less), a.g
et(great)); | |
1664 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great), a
k); | |
1665 break; | |
1666 } else { | |
1667 a.set(k, a.get(great)); | |
1668 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great), a
k); | |
1669 break; | |
1670 } | |
1671 } | |
1672 } | |
1673 } | |
1674 } else { | |
1675 for (let k = less; dart.notNull(k) <= dart.notNull(great); k = dart.notN
ull(k) + 1) { | |
1676 let ak = a.get(k); | |
1677 let comp_pivot1 = dart.dinvokef(compare, ak, pivot1); | |
1678 if (dart.notNull(comp_pivot1) < 0) { | |
1679 if (k !== less) { | |
1680 a.set(k, a.get(less)); | |
1681 a.set(less, ak); | |
1682 } | |
1683 less = dart.notNull(less) + 1; | |
1684 } else { | |
1685 let comp_pivot2 = dart.dinvokef(compare, ak, pivot2); | |
1686 if (dart.notNull(comp_pivot2) > 0) { | |
1687 while (true) { | |
1688 let comp = dart.dinvokef(compare, a.get(great), pivot2); | |
1689 if (dart.notNull(comp) > 0) { | |
1690 great = dart.notNull(great) - 1; | |
1691 if (dart.notNull(great) < dart.notNull(k)) | |
1692 break; | |
1693 continue; | |
1694 } else { | |
1695 comp = dart.dinvokef(compare, a.get(great), pivot1); | |
1696 if (dart.notNull(comp) < 0) { | |
1697 a.set(k, a.get(less)); | |
1698 a.set((($tmp) => less = dart.notNull($tmp) + 1, $tmp)(less),
a.get(great)); | |
1699 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great
), ak); | |
1700 } else { | |
1701 a.set(k, a.get(great)); | |
1702 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great
), ak); | |
1703 } | |
1704 break; | |
1705 } | |
1706 } | |
1707 } | |
1708 } | |
1709 } | |
1710 } | |
1711 a.set(left, a.get(dart.notNull(less) - 1)); | |
1712 a.set(dart.notNull(less) - 1, pivot1); | |
1713 a.set(right, a.get(dart.notNull(great) + 1)); | |
1714 a.set(dart.notNull(great) + 1, pivot2); | |
1715 _doSort(a, left, dart.notNull(less) - 2, compare); | |
1716 _doSort(a, dart.notNull(great) + 2, right, compare); | |
1717 if (pivots_are_equal) { | |
1718 return; | |
1719 } | |
1720 if (dart.notNull(less) < dart.notNull(index1) && dart.notNull(great) > dar
t.notNull(index5)) { | |
1721 while (dart.dinvokef(compare, a.get(less), pivot1) === 0) { | |
1722 less = dart.notNull(less) + 1; | |
1723 } | |
1724 while (dart.dinvokef(compare, a.get(great), pivot2) === 0) { | |
1725 great = dart.notNull(great) - 1; | |
1726 } | |
1727 for (let k = less; dart.notNull(k) <= dart.notNull(great); k = dart.notN
ull(k) + 1) { | |
1728 let ak = a.get(k); | |
1729 let comp_pivot1 = dart.dinvokef(compare, ak, pivot1); | |
1730 if (comp_pivot1 === 0) { | |
1731 if (k !== less) { | |
1732 a.set(k, a.get(less)); | |
1733 a.set(less, ak); | |
1734 } | |
1735 less = dart.notNull(less) + 1; | |
1736 } else { | |
1737 let comp_pivot2 = dart.dinvokef(compare, ak, pivot2); | |
1738 if (comp_pivot2 === 0) { | |
1739 while (true) { | |
1740 let comp = dart.dinvokef(compare, a.get(great), pivot2); | |
1741 if (comp === 0) { | |
1742 great = dart.notNull(great) - 1; | |
1743 if (dart.notNull(great) < dart.notNull(k)) | |
1744 break; | |
1745 continue; | |
1746 } else { | |
1747 comp = dart.dinvokef(compare, a.get(great), pivot1); | |
1748 if (dart.notNull(comp) < 0) { | |
1749 a.set(k, a.get(less)); | |
1750 a.set((($tmp) => less = dart.notNull($tmp) + 1, $tmp)(less),
a.get(great)); | |
1751 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great
), ak); | |
1752 } else { | |
1753 a.set(k, a.get(great)); | |
1754 a.set((($tmp) => great = dart.notNull($tmp) - 1, $tmp)(great
), ak); | |
1755 } | |
1756 break; | |
1757 } | |
1758 } | |
1759 } | |
1760 } | |
1761 } | |
1762 _doSort(a, less, great, compare); | |
1763 } else { | |
1764 _doSort(a, less, great, compare); | |
1765 } | |
1766 } | |
1767 } | |
1768 Sort._INSERTION_SORT_THRESHOLD = 32; | |
1769 let _name = Symbol('_name'); | |
1770 class Symbol extends core.Object { | |
1771 Symbol(name) { | |
1772 this[_name] = name; | |
1773 } | |
1774 Symbol$unvalidated($_name) { | |
1775 this[_name] = $_name; | |
1776 } | |
1777 Symbol$validated(name) { | |
1778 this[_name] = validatePublicSymbol(name); | |
1779 } | |
1780 ['=='](other) { | |
1781 return dart.notNull(dart.is(other, Symbol)) && dart.notNull(dart.equals(th
is[_name], dart.dload(other, '_name'))); | |
1782 } | |
1783 get hashCode() { | |
1784 let arbitraryPrime = 664597; | |
1785 return 536870911 & dart.notNull(arbitraryPrime) * dart.notNull(this[_name]
.hashCode); | |
1786 } | |
1787 toString() { | |
1788 return `Symbol("${this[_name]}")`; | |
1789 } | |
1790 static getName(symbol) { | |
1791 return symbol[_name]; | |
1792 } | |
1793 static validatePublicSymbol(name) { | |
1794 if (dart.notNull(name.isEmpty) || dart.notNull(publicSymbolPattern.hasMatc
h(name))) | |
1795 return name; | |
1796 if (name.startsWith('_')) { | |
1797 throw new core.ArgumentError(`"${name}" is a private identifier`); | |
1798 } | |
1799 throw new core.ArgumentError(`"${name}" is not a valid (qualified) symbol
name`); | |
1800 } | |
1801 static isValidSymbol(name) { | |
1802 return dart.notNull(name.isEmpty) || dart.notNull(symbolPattern.hasMatch(n
ame)); | |
1803 } | |
1804 } | |
1805 dart.defineNamedConstructor(Symbol, 'unvalidated'); | |
1806 dart.defineNamedConstructor(Symbol, 'validated'); | |
1807 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))'; | |
1808 Symbol.publicIdentifierRE = '(?!' + `${Symbol.reservedWordRE}` + '\\b(?!\\$))[
a-zA-Z$][\\w$]*'; | |
1809 Symbol.identifierRE = '(?!' + `${Symbol.reservedWordRE}` + '\\b(?!\\$))[a-zA-Z
$_][\\w$]*'; | |
1810 Symbol.operatorRE = '(?:[\\-+*/%&|^]|\\[\\]=?|==|~/?|<[<=]?|>[>=]?|unary-)'; | |
1811 dart.defineLazyProperties(Symbol, { | |
1812 get publicSymbolPattern() { | |
1813 return new core.RegExp(`^(?:${Symbol.operatorRE}$|${Symbol.publicIdentifie
rRE}(?:=?$|[.](?!$)))+?$`); | |
1814 }, | |
1815 get symbolPattern() { | |
1816 return new core.RegExp(`^(?:${Symbol.operatorRE}$|${Symbol.identifierRE}(?
:=?$|[.](?!$)))+?$`); | |
1817 } | |
1818 }); | |
1819 let POWERS_OF_TEN = /* Unimplemented const */new List.from([1.0, 10.0, 100.0,
1000.0, 10000.0, 100000.0, 1000000.0, 10000000.0, 100000000.0, 1000000000.0, 100
00000000.0, 100000000000.0, 1000000000000.0, 10000000000000.0, 100000000000000.0
, 1000000000000000.0, 10000000000000000.0, 100000000000000000.0, 100000000000000
0000.0, 10000000000000000000.0, 100000000000000000000.0, 1e+21, 1e+22]); | |
1820 // Exports: | |
1821 exports.EfficientLength = EfficientLength; | |
1822 exports.ListIterable = ListIterable; | |
1823 exports.ListIterable$ = ListIterable$; | |
1824 exports.SubListIterable = SubListIterable; | |
1825 exports.SubListIterable$ = SubListIterable$; | |
1826 exports.ListIterator = ListIterator; | |
1827 exports.ListIterator$ = ListIterator$; | |
1828 exports.MappedIterable = MappedIterable; | |
1829 exports.MappedIterable$ = MappedIterable$; | |
1830 exports.EfficientLengthMappedIterable = EfficientLengthMappedIterable; | |
1831 exports.EfficientLengthMappedIterable$ = EfficientLengthMappedIterable$; | |
1832 exports.MappedIterator = MappedIterator; | |
1833 exports.MappedIterator$ = MappedIterator$; | |
1834 exports.MappedListIterable = MappedListIterable; | |
1835 exports.MappedListIterable$ = MappedListIterable$; | |
1836 exports.WhereIterable = WhereIterable; | |
1837 exports.WhereIterable$ = WhereIterable$; | |
1838 exports.WhereIterator = WhereIterator; | |
1839 exports.WhereIterator$ = WhereIterator$; | |
1840 exports.ExpandIterable = ExpandIterable; | |
1841 exports.ExpandIterable$ = ExpandIterable$; | |
1842 exports.ExpandIterator = ExpandIterator; | |
1843 exports.ExpandIterator$ = ExpandIterator$; | |
1844 exports.TakeIterable = TakeIterable; | |
1845 exports.TakeIterable$ = TakeIterable$; | |
1846 exports.EfficientLengthTakeIterable = EfficientLengthTakeIterable; | |
1847 exports.EfficientLengthTakeIterable$ = EfficientLengthTakeIterable$; | |
1848 exports.TakeIterator = TakeIterator; | |
1849 exports.TakeIterator$ = TakeIterator$; | |
1850 exports.TakeWhileIterable = TakeWhileIterable; | |
1851 exports.TakeWhileIterable$ = TakeWhileIterable$; | |
1852 exports.TakeWhileIterator = TakeWhileIterator; | |
1853 exports.TakeWhileIterator$ = TakeWhileIterator$; | |
1854 exports.SkipIterable = SkipIterable; | |
1855 exports.SkipIterable$ = SkipIterable$; | |
1856 exports.EfficientLengthSkipIterable = EfficientLengthSkipIterable; | |
1857 exports.EfficientLengthSkipIterable$ = EfficientLengthSkipIterable$; | |
1858 exports.SkipIterator = SkipIterator; | |
1859 exports.SkipIterator$ = SkipIterator$; | |
1860 exports.SkipWhileIterable = SkipWhileIterable; | |
1861 exports.SkipWhileIterable$ = SkipWhileIterable$; | |
1862 exports.SkipWhileIterator = SkipWhileIterator; | |
1863 exports.SkipWhileIterator$ = SkipWhileIterator$; | |
1864 exports.EmptyIterable = EmptyIterable; | |
1865 exports.EmptyIterable$ = EmptyIterable$; | |
1866 exports.EmptyIterator = EmptyIterator; | |
1867 exports.EmptyIterator$ = EmptyIterator$; | |
1868 exports.BidirectionalIterator = BidirectionalIterator; | |
1869 exports.BidirectionalIterator$ = BidirectionalIterator$; | |
1870 exports.IterableMixinWorkaround = IterableMixinWorkaround; | |
1871 exports.IterableMixinWorkaround$ = IterableMixinWorkaround$; | |
1872 exports.IterableElementError = IterableElementError; | |
1873 exports.FixedLengthListMixin = FixedLengthListMixin; | |
1874 exports.FixedLengthListMixin$ = FixedLengthListMixin$; | |
1875 exports.UnmodifiableListMixin = UnmodifiableListMixin; | |
1876 exports.UnmodifiableListMixin$ = UnmodifiableListMixin$; | |
1877 exports.FixedLengthListBase = FixedLengthListBase; | |
1878 exports.FixedLengthListBase$ = FixedLengthListBase$; | |
1879 exports.UnmodifiableListBase = UnmodifiableListBase; | |
1880 exports.UnmodifiableListBase$ = UnmodifiableListBase$; | |
1881 exports.ListMapView = ListMapView; | |
1882 exports.ListMapView$ = ListMapView$; | |
1883 exports.ReversedListIterable = ReversedListIterable; | |
1884 exports.ReversedListIterable$ = ReversedListIterable$; | |
1885 exports.UnmodifiableListError = UnmodifiableListError; | |
1886 exports.NonGrowableListError = NonGrowableListError; | |
1887 exports.makeListFixedLength = makeListFixedLength; | |
1888 exports.Lists = Lists; | |
1889 exports.printToConsole = printToConsole; | |
1890 exports.Sort = Sort; | |
1891 exports.Symbol = Symbol; | |
1892 exports.POWERS_OF_TEN = POWERS_OF_TEN; | |
1893 })(_internal || (_internal = {})); | |
OLD | NEW |