OLD | NEW |
1 dart.library('dart/_internal', null, /* Imports */[ | 1 dart.library('dart/_internal', null, /* Imports */[ |
2 'dart/core', | 2 'dart/core', |
3 'dart/collection' | 3 'dart/collection' |
4 ], /* Lazy imports */[ | 4 ], /* Lazy imports */[ |
5 'dart/math', | 5 'dart/math', |
6 'dart/_interceptors', | 6 'dart/_interceptors', |
7 'dart/_js_primitives' | 7 'dart/_js_primitives' |
8 ], function(exports, core, collection, math, _interceptors, _js_primitives) { | 8 ], function(exports, core, collection, math, _interceptors, _js_primitives) { |
9 'use strict'; | 9 'use strict'; |
10 class EfficientLength extends core.Object {} | 10 class EfficientLength extends core.Object {} |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 } | 214 } |
215 takeWhile(test) { | 215 takeWhile(test) { |
216 dart.as(test, dart.functionType(core.bool, [E])); | 216 dart.as(test, dart.functionType(core.bool, [E])); |
217 return super.takeWhile(test); | 217 return super.takeWhile(test); |
218 } | 218 } |
219 toList(opts) { | 219 toList(opts) { |
220 let growable = opts && 'growable' in opts ? opts.growable : true; | 220 let growable = opts && 'growable' in opts ? opts.growable : true; |
221 let result = null; | 221 let result = null; |
222 if (dart.notNull(growable)) { | 222 if (dart.notNull(growable)) { |
223 result = core.List$(E).new(); | 223 result = core.List$(E).new(); |
224 result.length = this.length; | 224 result[dartx.length] = this.length; |
225 } else { | 225 } else { |
226 result = core.List$(E).new(this.length); | 226 result = core.List$(E).new(this.length); |
227 } | 227 } |
228 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no
tNull(i) + 1) { | 228 for (let i = 0; dart.notNull(i) < dart.notNull(this.length); i = dart.no
tNull(i) + 1) { |
229 result[dartx.set](i, this.elementAt(i)); | 229 result[dartx.set](i, this.elementAt(i)); |
230 } | 230 } |
231 return result; | 231 return result; |
232 } | 232 } |
233 toSet() { | 233 toSet() { |
234 let result = core.Set$(E).new(); | 234 let result = core.Set$(E).new(); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
302 super.ListIterable(); | 302 super.ListIterable(); |
303 core.RangeError.checkNotNegative(this[_start], "start"); | 303 core.RangeError.checkNotNegative(this[_start], "start"); |
304 if (this[_endOrLength] != null) { | 304 if (this[_endOrLength] != null) { |
305 core.RangeError.checkNotNegative(this[_endOrLength], "end"); | 305 core.RangeError.checkNotNegative(this[_endOrLength], "end"); |
306 if (dart.notNull(this[_start]) > dart.notNull(this[_endOrLength])) { | 306 if (dart.notNull(this[_start]) > dart.notNull(this[_endOrLength])) { |
307 throw new core.RangeError.range(this[_start], 0, this[_endOrLength],
"start"); | 307 throw new core.RangeError.range(this[_start], 0, this[_endOrLength],
"start"); |
308 } | 308 } |
309 } | 309 } |
310 } | 310 } |
311 get [_endIndex]() { | 311 get [_endIndex]() { |
312 let length = this[_iterable].length; | 312 let length = this[_iterable][dartx.length]; |
313 if (this[_endOrLength] == null || dart.notNull(this[_endOrLength]) > dar
t.notNull(length)) | 313 if (this[_endOrLength] == null || dart.notNull(this[_endOrLength]) > dar
t.notNull(length)) |
314 return length; | 314 return length; |
315 return this[_endOrLength]; | 315 return this[_endOrLength]; |
316 } | 316 } |
317 get [_startIndex]() { | 317 get [_startIndex]() { |
318 let length = this[_iterable].length; | 318 let length = this[_iterable][dartx.length]; |
319 if (dart.notNull(this[_start]) > dart.notNull(length)) | 319 if (dart.notNull(this[_start]) > dart.notNull(length)) |
320 return length; | 320 return length; |
321 return this[_start]; | 321 return this[_start]; |
322 } | 322 } |
323 get length() { | 323 get length() { |
324 let length = this[_iterable].length; | 324 let length = this[_iterable][dartx.length]; |
325 if (dart.notNull(this[_start]) >= dart.notNull(length)) | 325 if (dart.notNull(this[_start]) >= dart.notNull(length)) |
326 return 0; | 326 return 0; |
327 if (this[_endOrLength] == null || dart.notNull(this[_endOrLength]) >= da
rt.notNull(length)) { | 327 if (this[_endOrLength] == null || dart.notNull(this[_endOrLength]) >= da
rt.notNull(length)) { |
328 return dart.notNull(length) - dart.notNull(this[_start]); | 328 return dart.notNull(length) - dart.notNull(this[_start]); |
329 } | 329 } |
330 return dart.notNull(this[_endOrLength]) - dart.notNull(this[_start]); | 330 return dart.notNull(this[_endOrLength]) - dart.notNull(this[_start]); |
331 } | 331 } |
332 elementAt(index) { | 332 elementAt(index) { |
333 let realIndex = dart.notNull(this[_startIndex]) + dart.notNull(index); | 333 let realIndex = dart.notNull(this[_startIndex]) + dart.notNull(index); |
334 if (dart.notNull(index) < 0 || dart.notNull(realIndex) >= dart.notNull(t
his[_endIndex])) { | 334 if (dart.notNull(index) < 0 || dart.notNull(realIndex) >= dart.notNull(t
his[_endIndex])) { |
(...skipping 16 matching lines...) Expand all Loading... |
351 } else { | 351 } else { |
352 let newEnd = dart.notNull(this[_start]) + dart.notNull(count); | 352 let newEnd = dart.notNull(this[_start]) + dart.notNull(count); |
353 if (dart.notNull(this[_endOrLength]) < dart.notNull(newEnd)) | 353 if (dart.notNull(this[_endOrLength]) < dart.notNull(newEnd)) |
354 return this; | 354 return this; |
355 return new (SubListIterable$(E))(this[_iterable], this[_start], newEnd
); | 355 return new (SubListIterable$(E))(this[_iterable], this[_start], newEnd
); |
356 } | 356 } |
357 } | 357 } |
358 toList(opts) { | 358 toList(opts) { |
359 let growable = opts && 'growable' in opts ? opts.growable : true; | 359 let growable = opts && 'growable' in opts ? opts.growable : true; |
360 let start = this[_start]; | 360 let start = this[_start]; |
361 let end = this[_iterable].length; | 361 let end = this[_iterable][dartx.length]; |
362 if (this[_endOrLength] != null && dart.notNull(this[_endOrLength]) < dar
t.notNull(end)) | 362 if (this[_endOrLength] != null && dart.notNull(this[_endOrLength]) < dar
t.notNull(end)) |
363 end = this[_endOrLength]; | 363 end = this[_endOrLength]; |
364 let length = dart.notNull(end) - dart.notNull(start); | 364 let length = dart.notNull(end) - dart.notNull(start); |
365 if (dart.notNull(length) < 0) | 365 if (dart.notNull(length) < 0) |
366 length = 0; | 366 length = 0; |
367 let result = dart.notNull(growable) ? (() => { | 367 let result = dart.notNull(growable) ? (() => { |
368 let _ = core.List$(E).new(); | 368 let _ = core.List$(E).new(); |
369 _.length = length; | 369 _[dartx.length] = length; |
370 return _; | 370 return _; |
371 })() : core.List$(E).new(length); | 371 })() : core.List$(E).new(length); |
372 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | 372 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { |
373 result[dartx.set](i, this[_iterable][dartx.elementAt](dart.notNull(sta
rt) + dart.notNull(i))); | 373 result[dartx.set](i, this[_iterable][dartx.elementAt](dart.notNull(sta
rt) + dart.notNull(i))); |
374 if (dart.notNull(this[_iterable].length) < dart.notNull(end)) | 374 if (dart.notNull(this[_iterable][dartx.length]) < dart.notNull(end)) |
375 throw new core.ConcurrentModificationError(this); | 375 throw new core.ConcurrentModificationError(this); |
376 } | 376 } |
377 return dart.as(result, core.List$(E)); | 377 return dart.as(result, core.List$(E)); |
378 } | 378 } |
379 } | 379 } |
380 dart.setSignature(SubListIterable, { | 380 dart.setSignature(SubListIterable, { |
381 constructors: () => ({SubListIterable: [SubListIterable$(E), [core.Iterabl
e$(E), core.int, core.int]]}), | 381 constructors: () => ({SubListIterable: [SubListIterable$(E), [core.Iterabl
e$(E), core.int, core.int]]}), |
382 methods: () => ({ | 382 methods: () => ({ |
383 elementAt: [E, [core.int]], | 383 elementAt: [E, [core.int]], |
384 skip: [core.Iterable$(E), [core.int]], | 384 skip: [core.Iterable$(E), [core.int]], |
(...skipping 11 matching lines...) Expand all Loading... |
396 return SubListIterable; | 396 return SubListIterable; |
397 }); | 397 }); |
398 let SubListIterable = SubListIterable$(); | 398 let SubListIterable = SubListIterable$(); |
399 let _length = dart.JsSymbol('_length'); | 399 let _length = dart.JsSymbol('_length'); |
400 let _index = dart.JsSymbol('_index'); | 400 let _index = dart.JsSymbol('_index'); |
401 let _current = dart.JsSymbol('_current'); | 401 let _current = dart.JsSymbol('_current'); |
402 let ListIterator$ = dart.generic(function(E) { | 402 let ListIterator$ = dart.generic(function(E) { |
403 class ListIterator extends core.Object { | 403 class ListIterator extends core.Object { |
404 ListIterator(iterable) { | 404 ListIterator(iterable) { |
405 this[_iterable] = iterable; | 405 this[_iterable] = iterable; |
406 this[_length] = iterable.length; | 406 this[_length] = iterable[dartx.length]; |
407 this[_index] = 0; | 407 this[_index] = 0; |
408 this[_current] = null; | 408 this[_current] = null; |
409 } | 409 } |
410 get current() { | 410 get current() { |
411 return this[_current]; | 411 return this[_current]; |
412 } | 412 } |
413 moveNext() { | 413 moveNext() { |
414 let length = this[_iterable].length; | 414 let length = this[_iterable][dartx.length]; |
415 if (this[_length] != length) { | 415 if (this[_length] != length) { |
416 throw new core.ConcurrentModificationError(this[_iterable]); | 416 throw new core.ConcurrentModificationError(this[_iterable]); |
417 } | 417 } |
418 if (dart.notNull(this[_index]) >= dart.notNull(length)) { | 418 if (dart.notNull(this[_index]) >= dart.notNull(length)) { |
419 this[_current] = null; | 419 this[_current] = null; |
420 return false; | 420 return false; |
421 } | 421 } |
422 this[_current] = this[_iterable][dartx.elementAt](this[_index]); | 422 this[_current] = this[_iterable][dartx.elementAt](this[_index]); |
423 this[_index] = dart.notNull(this[_index]) + 1; | 423 this[_index] = dart.notNull(this[_index]) + 1; |
424 return true; | 424 return true; |
(...skipping 23 matching lines...) Expand all Loading... |
448 } | 448 } |
449 _(iterable, f) { | 449 _(iterable, f) { |
450 this[_iterable] = iterable; | 450 this[_iterable] = iterable; |
451 this[_f] = f; | 451 this[_f] = f; |
452 super.IterableBase(); | 452 super.IterableBase(); |
453 } | 453 } |
454 get iterator() { | 454 get iterator() { |
455 return new (MappedIterator$(S, T))(this[_iterable][dartx.iterator], this
[_f]); | 455 return new (MappedIterator$(S, T))(this[_iterable][dartx.iterator], this
[_f]); |
456 } | 456 } |
457 get length() { | 457 get length() { |
458 return this[_iterable].length; | 458 return this[_iterable][dartx.length]; |
459 } | 459 } |
460 get isEmpty() { | 460 get isEmpty() { |
461 return this[_iterable][dartx.isEmpty]; | 461 return this[_iterable][dartx.isEmpty]; |
462 } | 462 } |
463 get first() { | 463 get first() { |
464 return this[_f](this[_iterable][dartx.first]); | 464 return this[_f](this[_iterable][dartx.first]); |
465 } | 465 } |
466 get last() { | 466 get last() { |
467 return this[_f](this[_iterable][dartx.last]); | 467 return this[_f](this[_iterable][dartx.last]); |
468 } | 468 } |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
535 let MappedIterator = MappedIterator$(); | 535 let MappedIterator = MappedIterator$(); |
536 let _source = dart.JsSymbol('_source'); | 536 let _source = dart.JsSymbol('_source'); |
537 let MappedListIterable$ = dart.generic(function(S, T) { | 537 let MappedListIterable$ = dart.generic(function(S, T) { |
538 class MappedListIterable extends ListIterable$(T) { | 538 class MappedListIterable extends ListIterable$(T) { |
539 MappedListIterable(source, f) { | 539 MappedListIterable(source, f) { |
540 this[_source] = source; | 540 this[_source] = source; |
541 this[_f] = f; | 541 this[_f] = f; |
542 super.ListIterable(); | 542 super.ListIterable(); |
543 } | 543 } |
544 get length() { | 544 get length() { |
545 return this[_source].length; | 545 return this[_source][dartx.length]; |
546 } | 546 } |
547 elementAt(index) { | 547 elementAt(index) { |
548 return this[_f](this[_source][dartx.elementAt](index)); | 548 return this[_f](this[_source][dartx.elementAt](index)); |
549 } | 549 } |
550 } | 550 } |
551 MappedListIterable[dart.implements] = () => [EfficientLength]; | 551 MappedListIterable[dart.implements] = () => [EfficientLength]; |
552 dart.setSignature(MappedListIterable, { | 552 dart.setSignature(MappedListIterable, { |
553 constructors: () => ({MappedListIterable: [MappedListIterable$(S, T), [cor
e.Iterable$(S), dart.functionType(T, [S])]]}), | 553 constructors: () => ({MappedListIterable: [MappedListIterable$(S, T), [cor
e.Iterable$(S), dart.functionType(T, [S])]]}), |
554 methods: () => ({elementAt: [T, [core.int]]}) | 554 methods: () => ({elementAt: [T, [core.int]]}) |
555 }); | 555 }); |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
700 dart.defineExtensionMembers(TakeIterable, ['iterator']); | 700 dart.defineExtensionMembers(TakeIterable, ['iterator']); |
701 return TakeIterable; | 701 return TakeIterable; |
702 }); | 702 }); |
703 let TakeIterable = TakeIterable$(); | 703 let TakeIterable = TakeIterable$(); |
704 let EfficientLengthTakeIterable$ = dart.generic(function(E) { | 704 let EfficientLengthTakeIterable$ = dart.generic(function(E) { |
705 class EfficientLengthTakeIterable extends TakeIterable$(E) { | 705 class EfficientLengthTakeIterable extends TakeIterable$(E) { |
706 EfficientLengthTakeIterable(iterable, takeCount) { | 706 EfficientLengthTakeIterable(iterable, takeCount) { |
707 super._(iterable, takeCount); | 707 super._(iterable, takeCount); |
708 } | 708 } |
709 get length() { | 709 get length() { |
710 let iterableLength = this[_iterable].length; | 710 let iterableLength = this[_iterable][dartx.length]; |
711 if (dart.notNull(iterableLength) > dart.notNull(this[_takeCount])) | 711 if (dart.notNull(iterableLength) > dart.notNull(this[_takeCount])) |
712 return this[_takeCount]; | 712 return this[_takeCount]; |
713 return iterableLength; | 713 return iterableLength; |
714 } | 714 } |
715 } | 715 } |
716 EfficientLengthTakeIterable[dart.implements] = () => [EfficientLength]; | 716 EfficientLengthTakeIterable[dart.implements] = () => [EfficientLength]; |
717 dart.setSignature(EfficientLengthTakeIterable, { | 717 dart.setSignature(EfficientLengthTakeIterable, { |
718 constructors: () => ({EfficientLengthTakeIterable: [EfficientLengthTakeIte
rable$(E), [core.Iterable$(E), core.int]]}) | 718 constructors: () => ({EfficientLengthTakeIterable: [EfficientLengthTakeIte
rable$(E), [core.Iterable$(E), core.int]]}) |
719 }); | 719 }); |
720 dart.defineExtensionMembers(EfficientLengthTakeIterable, ['length']); | 720 dart.defineExtensionMembers(EfficientLengthTakeIterable, ['length']); |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
838 dart.defineExtensionMembers(SkipIterable, ['skip', 'iterator']); | 838 dart.defineExtensionMembers(SkipIterable, ['skip', 'iterator']); |
839 return SkipIterable; | 839 return SkipIterable; |
840 }); | 840 }); |
841 let SkipIterable = SkipIterable$(); | 841 let SkipIterable = SkipIterable$(); |
842 let EfficientLengthSkipIterable$ = dart.generic(function(E) { | 842 let EfficientLengthSkipIterable$ = dart.generic(function(E) { |
843 class EfficientLengthSkipIterable extends SkipIterable$(E) { | 843 class EfficientLengthSkipIterable extends SkipIterable$(E) { |
844 EfficientLengthSkipIterable(iterable, skipCount) { | 844 EfficientLengthSkipIterable(iterable, skipCount) { |
845 super._(iterable, skipCount); | 845 super._(iterable, skipCount); |
846 } | 846 } |
847 get length() { | 847 get length() { |
848 let length = dart.notNull(this[_iterable].length) - dart.notNull(this[_s
kipCount]); | 848 let length = dart.notNull(this[_iterable][dartx.length]) - dart.notNull(
this[_skipCount]); |
849 if (dart.notNull(length) >= 0) | 849 if (dart.notNull(length) >= 0) |
850 return length; | 850 return length; |
851 return 0; | 851 return 0; |
852 } | 852 } |
853 } | 853 } |
854 EfficientLengthSkipIterable[dart.implements] = () => [EfficientLength]; | 854 EfficientLengthSkipIterable[dart.implements] = () => [EfficientLength]; |
855 dart.setSignature(EfficientLengthSkipIterable, { | 855 dart.setSignature(EfficientLengthSkipIterable, { |
856 constructors: () => ({EfficientLengthSkipIterable: [EfficientLengthSkipIte
rable$(E), [core.Iterable$(E), core.int]]}) | 856 constructors: () => ({EfficientLengthSkipIterable: [EfficientLengthSkipIte
rable$(E), [core.Iterable$(E), core.int]]}) |
857 }); | 857 }); |
858 dart.defineExtensionMembers(EfficientLengthSkipIterable, ['length']); | 858 dart.defineExtensionMembers(EfficientLengthSkipIterable, ['length']); |
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1162 static fold(iterable, initialValue, combine) { | 1162 static fold(iterable, initialValue, combine) { |
1163 dart.as(combine, dart.functionType(core.Object, [dart.bottom, dart.botto
m])); | 1163 dart.as(combine, dart.functionType(core.Object, [dart.bottom, dart.botto
m])); |
1164 for (let element of iterable) { | 1164 for (let element of iterable) { |
1165 initialValue = dart.dcall(combine, initialValue, element); | 1165 initialValue = dart.dcall(combine, initialValue, element); |
1166 } | 1166 } |
1167 return initialValue; | 1167 return initialValue; |
1168 } | 1168 } |
1169 static removeWhereList(list, test) { | 1169 static removeWhereList(list, test) { |
1170 dart.as(test, dart.functionType(core.bool, [dart.bottom])); | 1170 dart.as(test, dart.functionType(core.bool, [dart.bottom])); |
1171 let retained = []; | 1171 let retained = []; |
1172 let length = list.length; | 1172 let length = list[dartx.length]; |
1173 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | 1173 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { |
1174 let element = list[dartx.get](i); | 1174 let element = list[dartx.get](i); |
1175 if (!dart.notNull(dart.dcall(test, element))) { | 1175 if (!dart.notNull(dart.dcall(test, element))) { |
1176 retained[dartx.add](element); | 1176 retained[dartx.add](element); |
1177 } | 1177 } |
1178 if (length != list.length) { | 1178 if (length != list[dartx.length]) { |
1179 throw new core.ConcurrentModificationError(list); | 1179 throw new core.ConcurrentModificationError(list); |
1180 } | 1180 } |
1181 } | 1181 } |
1182 if (retained.length == length) | 1182 if (retained[dartx.length] == length) |
1183 return; | 1183 return; |
1184 list.length = retained.length; | 1184 list[dartx.length] = retained[dartx.length]; |
1185 for (let i = 0; dart.notNull(i) < dart.notNull(retained.length); i = dar
t.notNull(i) + 1) { | 1185 for (let i = 0; dart.notNull(i) < dart.notNull(retained[dartx.length]);
i = dart.notNull(i) + 1) { |
1186 list[dartx.set](i, retained[dartx.get](i)); | 1186 list[dartx.set](i, retained[dartx.get](i)); |
1187 } | 1187 } |
1188 } | 1188 } |
1189 static isEmpty(iterable) { | 1189 static isEmpty(iterable) { |
1190 return !dart.notNull(iterable[dartx.iterator].moveNext()); | 1190 return !dart.notNull(iterable[dartx.iterator].moveNext()); |
1191 } | 1191 } |
1192 static first(iterable) { | 1192 static first(iterable) { |
1193 let it = iterable[dartx.iterator]; | 1193 let it = iterable[dartx.iterator]; |
1194 if (!dart.notNull(it.moveNext())) { | 1194 if (!dart.notNull(it.moveNext())) { |
1195 throw IterableElementError.noElement(); | 1195 throw IterableElementError.noElement(); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1240 } | 1240 } |
1241 if (dart.notNull(foundMatching)) | 1241 if (dart.notNull(foundMatching)) |
1242 return result; | 1242 return result; |
1243 if (orElse != null) | 1243 if (orElse != null) |
1244 return orElse(); | 1244 return orElse(); |
1245 throw IterableElementError.noElement(); | 1245 throw IterableElementError.noElement(); |
1246 } | 1246 } |
1247 static lastWhereList(list, test, orElse) { | 1247 static lastWhereList(list, test, orElse) { |
1248 dart.as(test, dart.functionType(core.bool, [dart.bottom])); | 1248 dart.as(test, dart.functionType(core.bool, [dart.bottom])); |
1249 dart.as(orElse, dart.functionType(core.Object, [])); | 1249 dart.as(orElse, dart.functionType(core.Object, [])); |
1250 for (let i = dart.notNull(list.length) - 1; dart.notNull(i) >= 0; i = da
rt.notNull(i) - 1) { | 1250 for (let i = dart.notNull(list[dartx.length]) - 1; dart.notNull(i) >= 0;
i = dart.notNull(i) - 1) { |
1251 let element = list[dartx.get](i); | 1251 let element = list[dartx.get](i); |
1252 if (dart.notNull(dart.dcall(test, element))) | 1252 if (dart.notNull(dart.dcall(test, element))) |
1253 return element; | 1253 return element; |
1254 } | 1254 } |
1255 if (orElse != null) | 1255 if (orElse != null) |
1256 return orElse(); | 1256 return orElse(); |
1257 throw IterableElementError.noElement(); | 1257 throw IterableElementError.noElement(); |
1258 } | 1258 } |
1259 static singleWhere(iterable, test) { | 1259 static singleWhere(iterable, test) { |
1260 dart.as(test, dart.functionType(core.bool, [dart.bottom])); | 1260 dart.as(test, dart.functionType(core.bool, [dart.bottom])); |
(...skipping 29 matching lines...) Expand all Loading... |
1290 separator = null; | 1290 separator = null; |
1291 let buffer = new core.StringBuffer(); | 1291 let buffer = new core.StringBuffer(); |
1292 buffer.writeAll(iterable, separator); | 1292 buffer.writeAll(iterable, separator); |
1293 return dart.toString(buffer); | 1293 return dart.toString(buffer); |
1294 } | 1294 } |
1295 static joinList(list, separator) { | 1295 static joinList(list, separator) { |
1296 if (separator === void 0) | 1296 if (separator === void 0) |
1297 separator = null; | 1297 separator = null; |
1298 if (dart.notNull(list[dartx.isEmpty])) | 1298 if (dart.notNull(list[dartx.isEmpty])) |
1299 return ""; | 1299 return ""; |
1300 if (list.length == 1) | 1300 if (list[dartx.length] == 1) |
1301 return `${list[dartx.get](0)}`; | 1301 return `${list[dartx.get](0)}`; |
1302 let buffer = new core.StringBuffer(); | 1302 let buffer = new core.StringBuffer(); |
1303 if (dart.notNull(separator[dartx.isEmpty])) { | 1303 if (dart.notNull(separator[dartx.isEmpty])) { |
1304 for (let i = 0; dart.notNull(i) < dart.notNull(list.length); i = dart.
notNull(i) + 1) { | 1304 for (let i = 0; dart.notNull(i) < dart.notNull(list[dartx.length]); i
= dart.notNull(i) + 1) { |
1305 buffer.write(list[dartx.get](i)); | 1305 buffer.write(list[dartx.get](i)); |
1306 } | 1306 } |
1307 } else { | 1307 } else { |
1308 buffer.write(list[dartx.get](0)); | 1308 buffer.write(list[dartx.get](0)); |
1309 for (let i = 1; dart.notNull(i) < dart.notNull(list.length); i = dart.
notNull(i) + 1) { | 1309 for (let i = 1; dart.notNull(i) < dart.notNull(list[dartx.length]); i
= dart.notNull(i) + 1) { |
1310 buffer.write(separator); | 1310 buffer.write(separator); |
1311 buffer.write(list[dartx.get](i)); | 1311 buffer.write(list[dartx.get](i)); |
1312 } | 1312 } |
1313 } | 1313 } |
1314 return dart.toString(buffer); | 1314 return dart.toString(buffer); |
1315 } | 1315 } |
1316 where(iterable, f) { | 1316 where(iterable, f) { |
1317 dart.as(f, dart.functionType(core.bool, [dart.bottom])); | 1317 dart.as(f, dart.functionType(core.bool, [dart.bottom])); |
1318 return new (WhereIterable$(T))(dart.as(iterable, core.Iterable$(T)), dar
t.as(f, __CastType6)); | 1318 return new (WhereIterable$(T))(dart.as(iterable, core.Iterable$(T)), dar
t.as(f, __CastType6)); |
1319 } | 1319 } |
(...skipping 28 matching lines...) Expand all Loading... |
1348 } | 1348 } |
1349 static sortList(list, compare) { | 1349 static sortList(list, compare) { |
1350 dart.as(compare, dart.functionType(core.int, [dart.bottom, dart.bottom])
); | 1350 dart.as(compare, dart.functionType(core.int, [dart.bottom, dart.bottom])
); |
1351 if (compare == null) | 1351 if (compare == null) |
1352 compare = core.Comparable.compare; | 1352 compare = core.Comparable.compare; |
1353 Sort.sort(list, compare); | 1353 Sort.sort(list, compare); |
1354 } | 1354 } |
1355 static shuffleList(list, random) { | 1355 static shuffleList(list, random) { |
1356 if (random == null) | 1356 if (random == null) |
1357 random = math.Random.new(); | 1357 random = math.Random.new(); |
1358 let length = list.length; | 1358 let length = list[dartx.length]; |
1359 while (dart.notNull(length) > 1) { | 1359 while (dart.notNull(length) > 1) { |
1360 let pos = random.nextInt(length); | 1360 let pos = random.nextInt(length); |
1361 length = dart.notNull(length) - 1; | 1361 length = dart.notNull(length) - 1; |
1362 let tmp = list[dartx.get](length); | 1362 let tmp = list[dartx.get](length); |
1363 list[dartx.set](length, list[dartx.get](pos)); | 1363 list[dartx.set](length, list[dartx.get](pos)); |
1364 list[dartx.set](pos, tmp); | 1364 list[dartx.set](pos, tmp); |
1365 } | 1365 } |
1366 } | 1366 } |
1367 static indexOfList(list, element, start) { | 1367 static indexOfList(list, element, start) { |
1368 return Lists.indexOf(list, element, start, list.length); | 1368 return Lists.indexOf(list, element, start, list[dartx.length]); |
1369 } | 1369 } |
1370 static lastIndexOfList(list, element, start) { | 1370 static lastIndexOfList(list, element, start) { |
1371 if (start == null) | 1371 if (start == null) |
1372 start = dart.notNull(list.length) - 1; | 1372 start = dart.notNull(list[dartx.length]) - 1; |
1373 return Lists.lastIndexOf(list, element, start); | 1373 return Lists.lastIndexOf(list, element, start); |
1374 } | 1374 } |
1375 static _rangeCheck(list, start, end) { | 1375 static _rangeCheck(list, start, end) { |
1376 core.RangeError.checkValidRange(start, end, list.length); | 1376 core.RangeError.checkValidRange(start, end, list[dartx.length]); |
1377 } | 1377 } |
1378 getRangeList(list, start, end) { | 1378 getRangeList(list, start, end) { |
1379 IterableMixinWorkaround$()._rangeCheck(list, start, end); | 1379 IterableMixinWorkaround$()._rangeCheck(list, start, end); |
1380 return new (SubListIterable$(T))(dart.as(list, core.Iterable$(T)), start
, end); | 1380 return new (SubListIterable$(T))(dart.as(list, core.Iterable$(T)), start
, end); |
1381 } | 1381 } |
1382 static setRangeList(list, start, end, from, skipCount) { | 1382 static setRangeList(list, start, end, from, skipCount) { |
1383 IterableMixinWorkaround$()._rangeCheck(list, start, end); | 1383 IterableMixinWorkaround$()._rangeCheck(list, start, end); |
1384 let length = dart.notNull(end) - dart.notNull(start); | 1384 let length = dart.notNull(end) - dart.notNull(start); |
1385 if (length == 0) | 1385 if (length == 0) |
1386 return; | 1386 return; |
1387 if (dart.notNull(skipCount) < 0) | 1387 if (dart.notNull(skipCount) < 0) |
1388 throw new core.ArgumentError(skipCount); | 1388 throw new core.ArgumentError(skipCount); |
1389 let otherList = null; | 1389 let otherList = null; |
1390 let otherStart = null; | 1390 let otherStart = null; |
1391 if (dart.is(from, core.List)) { | 1391 if (dart.is(from, core.List)) { |
1392 otherList = from; | 1392 otherList = from; |
1393 otherStart = skipCount; | 1393 otherStart = skipCount; |
1394 } else { | 1394 } else { |
1395 otherList = from[dartx.skip](skipCount)[dartx.toList]({growable: false
}); | 1395 otherList = from[dartx.skip](skipCount)[dartx.toList]({growable: false
}); |
1396 otherStart = 0; | 1396 otherStart = 0; |
1397 } | 1397 } |
1398 if (dart.notNull(otherStart) + dart.notNull(length) > dart.notNull(other
List.length)) { | 1398 if (dart.notNull(otherStart) + dart.notNull(length) > dart.notNull(other
List[dartx.length])) { |
1399 throw IterableElementError.tooFew(); | 1399 throw IterableElementError.tooFew(); |
1400 } | 1400 } |
1401 Lists.copy(otherList, otherStart, list, start, length); | 1401 Lists.copy(otherList, otherStart, list, start, length); |
1402 } | 1402 } |
1403 static replaceRangeList(list, start, end, iterable) { | 1403 static replaceRangeList(list, start, end, iterable) { |
1404 IterableMixinWorkaround$()._rangeCheck(list, start, end); | 1404 IterableMixinWorkaround$()._rangeCheck(list, start, end); |
1405 if (!dart.is(iterable, EfficientLength)) { | 1405 if (!dart.is(iterable, EfficientLength)) { |
1406 iterable = iterable[dartx.toList](); | 1406 iterable = iterable[dartx.toList](); |
1407 } | 1407 } |
1408 let removeLength = dart.notNull(end) - dart.notNull(start); | 1408 let removeLength = dart.notNull(end) - dart.notNull(start); |
1409 let insertLength = iterable.length; | 1409 let insertLength = iterable[dartx.length]; |
1410 if (dart.notNull(removeLength) >= dart.notNull(insertLength)) { | 1410 if (dart.notNull(removeLength) >= dart.notNull(insertLength)) { |
1411 let delta = dart.notNull(removeLength) - dart.notNull(insertLength); | 1411 let delta = dart.notNull(removeLength) - dart.notNull(insertLength); |
1412 let insertEnd = dart.notNull(start) + dart.notNull(insertLength); | 1412 let insertEnd = dart.notNull(start) + dart.notNull(insertLength); |
1413 let newEnd = dart.notNull(list.length) - dart.notNull(delta); | 1413 let newEnd = dart.notNull(list[dartx.length]) - dart.notNull(delta); |
1414 list[dartx.setRange](start, insertEnd, iterable); | 1414 list[dartx.setRange](start, insertEnd, iterable); |
1415 if (delta != 0) { | 1415 if (delta != 0) { |
1416 list[dartx.setRange](insertEnd, newEnd, list, end); | 1416 list[dartx.setRange](insertEnd, newEnd, list, end); |
1417 list.length = newEnd; | 1417 list[dartx.length] = newEnd; |
1418 } | 1418 } |
1419 } else { | 1419 } else { |
1420 let delta = dart.notNull(insertLength) - dart.notNull(removeLength); | 1420 let delta = dart.notNull(insertLength) - dart.notNull(removeLength); |
1421 let newLength = dart.notNull(list.length) + dart.notNull(delta); | 1421 let newLength = dart.notNull(list[dartx.length]) + dart.notNull(delta)
; |
1422 let insertEnd = dart.notNull(start) + dart.notNull(insertLength); | 1422 let insertEnd = dart.notNull(start) + dart.notNull(insertLength); |
1423 list.length = newLength; | 1423 list[dartx.length] = newLength; |
1424 list[dartx.setRange](insertEnd, newLength, list, end); | 1424 list[dartx.setRange](insertEnd, newLength, list, end); |
1425 list[dartx.setRange](start, insertEnd, iterable); | 1425 list[dartx.setRange](start, insertEnd, iterable); |
1426 } | 1426 } |
1427 } | 1427 } |
1428 static fillRangeList(list, start, end, fillValue) { | 1428 static fillRangeList(list, start, end, fillValue) { |
1429 IterableMixinWorkaround$()._rangeCheck(list, start, end); | 1429 IterableMixinWorkaround$()._rangeCheck(list, start, end); |
1430 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul
l(i) + 1) { | 1430 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul
l(i) + 1) { |
1431 list[dartx.set](i, fillValue); | 1431 list[dartx.set](i, fillValue); |
1432 } | 1432 } |
1433 } | 1433 } |
1434 static insertAllList(list, index, iterable) { | 1434 static insertAllList(list, index, iterable) { |
1435 core.RangeError.checkValueInInterval(index, 0, list.length, "index"); | 1435 core.RangeError.checkValueInInterval(index, 0, list[dartx.length], "inde
x"); |
1436 if (!dart.is(iterable, EfficientLength)) { | 1436 if (!dart.is(iterable, EfficientLength)) { |
1437 iterable = iterable[dartx.toList]({growable: false}); | 1437 iterable = iterable[dartx.toList]({growable: false}); |
1438 } | 1438 } |
1439 let insertionLength = iterable.length; | 1439 let insertionLength = iterable[dartx.length]; |
1440 list.length = dart.notNull(list.length) + dart.notNull(insertionLength); | 1440 list[dartx.length] = dart.notNull(list[dartx.length]) + dart.notNull(ins
ertionLength); |
1441 list[dartx.setRange](dart.notNull(index) + dart.notNull(insertionLength)
, list.length, list, index); | 1441 list[dartx.setRange](dart.notNull(index) + dart.notNull(insertionLength)
, list[dartx.length], list, index); |
1442 for (let element of iterable) { | 1442 for (let element of iterable) { |
1443 list[dartx.set]((() => { | 1443 list[dartx.set]((() => { |
1444 let x = index; | 1444 let x = index; |
1445 index = dart.notNull(x) + 1; | 1445 index = dart.notNull(x) + 1; |
1446 return x; | 1446 return x; |
1447 })(), element); | 1447 })(), element); |
1448 } | 1448 } |
1449 } | 1449 } |
1450 static setAllList(list, index, iterable) { | 1450 static setAllList(list, index, iterable) { |
1451 core.RangeError.checkValueInInterval(index, 0, list.length, "index"); | 1451 core.RangeError.checkValueInInterval(index, 0, list[dartx.length], "inde
x"); |
1452 for (let element of iterable) { | 1452 for (let element of iterable) { |
1453 list[dartx.set]((() => { | 1453 list[dartx.set]((() => { |
1454 let x = index; | 1454 let x = index; |
1455 index = dart.notNull(x) + 1; | 1455 index = dart.notNull(x) + 1; |
1456 return x; | 1456 return x; |
1457 })(), element); | 1457 })(), element); |
1458 } | 1458 } |
1459 } | 1459 } |
1460 asMapList(l) { | 1460 asMapList(l) { |
1461 return new (ListMapView$(T))(dart.as(l, core.List$(T))); | 1461 return new (ListMapView$(T))(dart.as(l, core.List$(T))); |
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1795 return UnmodifiableListBase; | 1795 return UnmodifiableListBase; |
1796 }); | 1796 }); |
1797 let UnmodifiableListBase = UnmodifiableListBase$(); | 1797 let UnmodifiableListBase = UnmodifiableListBase$(); |
1798 let _backedList = dart.JsSymbol('_backedList'); | 1798 let _backedList = dart.JsSymbol('_backedList'); |
1799 class _ListIndicesIterable extends ListIterable$(core.int) { | 1799 class _ListIndicesIterable extends ListIterable$(core.int) { |
1800 _ListIndicesIterable(backedList) { | 1800 _ListIndicesIterable(backedList) { |
1801 this[_backedList] = backedList; | 1801 this[_backedList] = backedList; |
1802 super.ListIterable(); | 1802 super.ListIterable(); |
1803 } | 1803 } |
1804 get length() { | 1804 get length() { |
1805 return this[_backedList].length; | 1805 return this[_backedList][dartx.length]; |
1806 } | 1806 } |
1807 elementAt(index) { | 1807 elementAt(index) { |
1808 core.RangeError.checkValidIndex(index, this); | 1808 core.RangeError.checkValidIndex(index, this); |
1809 return index; | 1809 return index; |
1810 } | 1810 } |
1811 } | 1811 } |
1812 dart.setSignature(_ListIndicesIterable, { | 1812 dart.setSignature(_ListIndicesIterable, { |
1813 constructors: () => ({_ListIndicesIterable: [_ListIndicesIterable, [core.Lis
t]]}), | 1813 constructors: () => ({_ListIndicesIterable: [_ListIndicesIterable, [core.Lis
t]]}), |
1814 methods: () => ({elementAt: [core.int, [core.int]]}) | 1814 methods: () => ({elementAt: [core.int, [core.int]]}) |
1815 }); | 1815 }); |
1816 dart.defineExtensionMembers(_ListIndicesIterable, ['elementAt', 'length']); | 1816 dart.defineExtensionMembers(_ListIndicesIterable, ['elementAt', 'length']); |
1817 let _values = dart.JsSymbol('_values'); | 1817 let _values = dart.JsSymbol('_values'); |
1818 let ListMapView$ = dart.generic(function(E) { | 1818 let ListMapView$ = dart.generic(function(E) { |
1819 class ListMapView extends core.Object { | 1819 class ListMapView extends core.Object { |
1820 ListMapView(values) { | 1820 ListMapView(values) { |
1821 this[_values] = values; | 1821 this[_values] = values; |
1822 } | 1822 } |
1823 get(key) { | 1823 get(key) { |
1824 return dart.notNull(this.containsKey(key)) ? this[_values][dartx.get](da
rt.as(key, core.int)) : null; | 1824 return dart.notNull(this.containsKey(key)) ? this[_values][dartx.get](da
rt.as(key, core.int)) : null; |
1825 } | 1825 } |
1826 get length() { | 1826 get length() { |
1827 return this[_values].length; | 1827 return this[_values][dartx.length]; |
1828 } | 1828 } |
1829 get values() { | 1829 get values() { |
1830 return new (SubListIterable$(E))(this[_values], 0, null); | 1830 return new (SubListIterable$(E))(this[_values], 0, null); |
1831 } | 1831 } |
1832 get keys() { | 1832 get keys() { |
1833 return new _ListIndicesIterable(this[_values]); | 1833 return new _ListIndicesIterable(this[_values]); |
1834 } | 1834 } |
1835 get isEmpty() { | 1835 get isEmpty() { |
1836 return this[_values][dartx.isEmpty]; | 1836 return this[_values][dartx.isEmpty]; |
1837 } | 1837 } |
1838 get isNotEmpty() { | 1838 get isNotEmpty() { |
1839 return this[_values][dartx.isNotEmpty]; | 1839 return this[_values][dartx.isNotEmpty]; |
1840 } | 1840 } |
1841 containsValue(value) { | 1841 containsValue(value) { |
1842 return this[_values][dartx.contains](value); | 1842 return this[_values][dartx.contains](value); |
1843 } | 1843 } |
1844 containsKey(key) { | 1844 containsKey(key) { |
1845 return typeof key == 'number' && dart.notNull(key) >= 0 && dart.notNull(
key) < dart.notNull(this.length); | 1845 return typeof key == 'number' && dart.notNull(key) >= 0 && dart.notNull(
key) < dart.notNull(this.length); |
1846 } | 1846 } |
1847 forEach(f) { | 1847 forEach(f) { |
1848 dart.as(f, dart.functionType(dart.void, [core.int, E])); | 1848 dart.as(f, dart.functionType(dart.void, [core.int, E])); |
1849 let length = this[_values].length; | 1849 let length = this[_values][dartx.length]; |
1850 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | 1850 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { |
1851 f(i, this[_values][dartx.get](i)); | 1851 f(i, this[_values][dartx.get](i)); |
1852 if (length != this[_values].length) { | 1852 if (length != this[_values][dartx.length]) { |
1853 throw new core.ConcurrentModificationError(this[_values]); | 1853 throw new core.ConcurrentModificationError(this[_values]); |
1854 } | 1854 } |
1855 } | 1855 } |
1856 } | 1856 } |
1857 set(key, value) { | 1857 set(key, value) { |
1858 dart.as(value, E); | 1858 dart.as(value, E); |
1859 throw new core.UnsupportedError("Cannot modify an unmodifiable map"); | 1859 throw new core.UnsupportedError("Cannot modify an unmodifiable map"); |
1860 } | 1860 } |
1861 putIfAbsent(key, ifAbsent) { | 1861 putIfAbsent(key, ifAbsent) { |
1862 dart.as(ifAbsent, dart.functionType(E, [])); | 1862 dart.as(ifAbsent, dart.functionType(E, [])); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1894 return ListMapView; | 1894 return ListMapView; |
1895 }); | 1895 }); |
1896 let ListMapView = ListMapView$(); | 1896 let ListMapView = ListMapView$(); |
1897 let ReversedListIterable$ = dart.generic(function(E) { | 1897 let ReversedListIterable$ = dart.generic(function(E) { |
1898 class ReversedListIterable extends ListIterable$(E) { | 1898 class ReversedListIterable extends ListIterable$(E) { |
1899 ReversedListIterable(source) { | 1899 ReversedListIterable(source) { |
1900 this[_source] = source; | 1900 this[_source] = source; |
1901 super.ListIterable(); | 1901 super.ListIterable(); |
1902 } | 1902 } |
1903 get length() { | 1903 get length() { |
1904 return this[_source].length; | 1904 return this[_source][dartx.length]; |
1905 } | 1905 } |
1906 elementAt(index) { | 1906 elementAt(index) { |
1907 return this[_source][dartx.elementAt](dart.notNull(this[_source].length)
- 1 - dart.notNull(index)); | 1907 return this[_source][dartx.elementAt](dart.notNull(this[_source][dartx.l
ength]) - 1 - dart.notNull(index)); |
1908 } | 1908 } |
1909 } | 1909 } |
1910 dart.setSignature(ReversedListIterable, { | 1910 dart.setSignature(ReversedListIterable, { |
1911 constructors: () => ({ReversedListIterable: [ReversedListIterable$(E), [co
re.Iterable$(E)]]}), | 1911 constructors: () => ({ReversedListIterable: [ReversedListIterable$(E), [co
re.Iterable$(E)]]}), |
1912 methods: () => ({elementAt: [E, [core.int]]}) | 1912 methods: () => ({elementAt: [E, [core.int]]}) |
1913 }); | 1913 }); |
1914 dart.defineExtensionMembers(ReversedListIterable, ['elementAt', 'length']); | 1914 dart.defineExtensionMembers(ReversedListIterable, ['elementAt', 'length']); |
1915 return ReversedListIterable; | 1915 return ReversedListIterable; |
1916 }); | 1916 }); |
1917 let ReversedListIterable = ReversedListIterable$(); | 1917 let ReversedListIterable = ReversedListIterable$(); |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1972 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) { | 1972 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) { |
1973 dst[dartx.set](j, src[dartx.get](i)); | 1973 dst[dartx.set](j, src[dartx.get](i)); |
1974 } | 1974 } |
1975 } | 1975 } |
1976 } | 1976 } |
1977 static areEqual(a, b) { | 1977 static areEqual(a, b) { |
1978 if (dart.notNull(core.identical(a, b))) | 1978 if (dart.notNull(core.identical(a, b))) |
1979 return true; | 1979 return true; |
1980 if (!dart.is(b, core.List)) | 1980 if (!dart.is(b, core.List)) |
1981 return false; | 1981 return false; |
1982 let length = a.length; | 1982 let length = a[dartx.length]; |
1983 if (!dart.equals(length, dart.dload(b, 'length'))) | 1983 if (!dart.equals(length, dart.dload(b, 'length'))) |
1984 return false; | 1984 return false; |
1985 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull(i
) + 1) { | 1985 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull(i
) + 1) { |
1986 if (!dart.notNull(core.identical(a[dartx.get](i), dart.dindex(b, i)))) | 1986 if (!dart.notNull(core.identical(a[dartx.get](i), dart.dindex(b, i)))) |
1987 return false; | 1987 return false; |
1988 } | 1988 } |
1989 return true; | 1989 return true; |
1990 } | 1990 } |
1991 static indexOf(a, element, startIndex, endIndex) { | 1991 static indexOf(a, element, startIndex, endIndex) { |
1992 if (dart.notNull(startIndex) >= dart.notNull(a.length)) { | 1992 if (dart.notNull(startIndex) >= dart.notNull(a[dartx.length])) { |
1993 return -1; | 1993 return -1; |
1994 } | 1994 } |
1995 if (dart.notNull(startIndex) < 0) { | 1995 if (dart.notNull(startIndex) < 0) { |
1996 startIndex = 0; | 1996 startIndex = 0; |
1997 } | 1997 } |
1998 for (let i = startIndex; dart.notNull(i) < dart.notNull(endIndex); i = dar
t.notNull(i) + 1) { | 1998 for (let i = startIndex; dart.notNull(i) < dart.notNull(endIndex); i = dar
t.notNull(i) + 1) { |
1999 if (dart.equals(a[dartx.get](i), element)) { | 1999 if (dart.equals(a[dartx.get](i), element)) { |
2000 return i; | 2000 return i; |
2001 } | 2001 } |
2002 } | 2002 } |
2003 return -1; | 2003 return -1; |
2004 } | 2004 } |
2005 static lastIndexOf(a, element, startIndex) { | 2005 static lastIndexOf(a, element, startIndex) { |
2006 if (dart.notNull(startIndex) < 0) { | 2006 if (dart.notNull(startIndex) < 0) { |
2007 return -1; | 2007 return -1; |
2008 } | 2008 } |
2009 if (dart.notNull(startIndex) >= dart.notNull(a.length)) { | 2009 if (dart.notNull(startIndex) >= dart.notNull(a[dartx.length])) { |
2010 startIndex = dart.notNull(a.length) - 1; | 2010 startIndex = dart.notNull(a[dartx.length]) - 1; |
2011 } | 2011 } |
2012 for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) { | 2012 for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) { |
2013 if (dart.equals(a[dartx.get](i), element)) { | 2013 if (dart.equals(a[dartx.get](i), element)) { |
2014 return i; | 2014 return i; |
2015 } | 2015 } |
2016 } | 2016 } |
2017 return -1; | 2017 return -1; |
2018 } | 2018 } |
2019 static indicesCheck(a, start, end) { | 2019 static indicesCheck(a, start, end) { |
2020 core.RangeError.checkValidRange(start, end, a.length); | 2020 core.RangeError.checkValidRange(start, end, a[dartx.length]); |
2021 } | 2021 } |
2022 static rangeCheck(a, start, length) { | 2022 static rangeCheck(a, start, length) { |
2023 core.RangeError.checkNotNegative(length); | 2023 core.RangeError.checkNotNegative(length); |
2024 core.RangeError.checkNotNegative(start); | 2024 core.RangeError.checkNotNegative(start); |
2025 if (dart.notNull(start) + dart.notNull(length) > dart.notNull(a.length)) { | 2025 if (dart.notNull(start) + dart.notNull(length) > dart.notNull(a[dartx.leng
th])) { |
2026 let message = `${start} + ${length} must be in the range [0..${a.length}
]`; | 2026 let message = `${start} + ${length} must be in the range [0..${a[dartx.l
ength]}]`; |
2027 throw new core.RangeError.range(length, 0, dart.notNull(a.length) - dart
.notNull(start), "length", message); | 2027 throw new core.RangeError.range(length, 0, dart.notNull(a[dartx.length])
- dart.notNull(start), "length", message); |
2028 } | 2028 } |
2029 } | 2029 } |
2030 } | 2030 } |
2031 dart.setSignature(Lists, { | 2031 dart.setSignature(Lists, { |
2032 statics: () => ({ | 2032 statics: () => ({ |
2033 copy: [dart.void, [core.List, core.int, core.List, core.int, core.int]], | 2033 copy: [dart.void, [core.List, core.int, core.List, core.int, core.int]], |
2034 areEqual: [core.bool, [core.List, core.Object]], | 2034 areEqual: [core.bool, [core.List, core.Object]], |
2035 indexOf: [core.int, [core.List, core.Object, core.int, core.int]], | 2035 indexOf: [core.int, [core.List, core.Object, core.int, core.int]], |
2036 lastIndexOf: [core.int, [core.List, core.Object, core.int]], | 2036 lastIndexOf: [core.int, [core.List, core.Object, core.int]], |
2037 indicesCheck: [dart.void, [core.List, core.int, core.int]], | 2037 indicesCheck: [dart.void, [core.List, core.int, core.int]], |
2038 rangeCheck: [dart.void, [core.List, core.int, core.int]] | 2038 rangeCheck: [dart.void, [core.List, core.int, core.int]] |
2039 }), | 2039 }), |
2040 names: ['copy', 'areEqual', 'indexOf', 'lastIndexOf', 'indicesCheck', 'range
Check'] | 2040 names: ['copy', 'areEqual', 'indexOf', 'lastIndexOf', 'indicesCheck', 'range
Check'] |
2041 }); | 2041 }); |
2042 exports.printToZone = null; | 2042 exports.printToZone = null; |
2043 function printToConsole(line) { | 2043 function printToConsole(line) { |
2044 _js_primitives.printString(`${line}`); | 2044 _js_primitives.printString(`${line}`); |
2045 } | 2045 } |
2046 dart.fn(printToConsole, dart.void, [core.String]); | 2046 dart.fn(printToConsole, dart.void, [core.String]); |
2047 class Sort extends core.Object { | 2047 class Sort extends core.Object { |
2048 static sort(a, compare) { | 2048 static sort(a, compare) { |
2049 Sort._doSort(a, 0, dart.notNull(a.length) - 1, compare); | 2049 Sort._doSort(a, 0, dart.notNull(a[dartx.length]) - 1, compare); |
2050 } | 2050 } |
2051 static sortRange(a, from, to, compare) { | 2051 static sortRange(a, from, to, compare) { |
2052 if (dart.notNull(from) < 0 || dart.notNull(to) > dart.notNull(a.length) ||
dart.notNull(to) < dart.notNull(from)) { | 2052 if (dart.notNull(from) < 0 || dart.notNull(to) > dart.notNull(a[dartx.leng
th]) || dart.notNull(to) < dart.notNull(from)) { |
2053 throw "OutOfRange"; | 2053 throw "OutOfRange"; |
2054 } | 2054 } |
2055 Sort._doSort(a, from, dart.notNull(to) - 1, compare); | 2055 Sort._doSort(a, from, dart.notNull(to) - 1, compare); |
2056 } | 2056 } |
2057 static _doSort(a, left, right, compare) { | 2057 static _doSort(a, left, right, compare) { |
2058 if (dart.notNull(right) - dart.notNull(left) <= dart.notNull(Sort._INSERTI
ON_SORT_THRESHOLD)) { | 2058 if (dart.notNull(right) - dart.notNull(left) <= dart.notNull(Sort._INSERTI
ON_SORT_THRESHOLD)) { |
2059 Sort._insertionSort(a, left, right, compare); | 2059 Sort._insertionSort(a, left, right, compare); |
2060 } else { | 2060 } else { |
2061 Sort._dualPivotQuicksort(a, left, right, compare); | 2061 Sort._dualPivotQuicksort(a, left, right, compare); |
2062 } | 2062 } |
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2446 exports.ReversedListIterable = ReversedListIterable; | 2446 exports.ReversedListIterable = ReversedListIterable; |
2447 exports.UnmodifiableListError = UnmodifiableListError; | 2447 exports.UnmodifiableListError = UnmodifiableListError; |
2448 exports.NonGrowableListError = NonGrowableListError; | 2448 exports.NonGrowableListError = NonGrowableListError; |
2449 exports.makeListFixedLength = makeListFixedLength; | 2449 exports.makeListFixedLength = makeListFixedLength; |
2450 exports.Lists = Lists; | 2450 exports.Lists = Lists; |
2451 exports.printToConsole = printToConsole; | 2451 exports.printToConsole = printToConsole; |
2452 exports.Sort = Sort; | 2452 exports.Sort = Sort; |
2453 exports.Symbol = Symbol; | 2453 exports.Symbol = Symbol; |
2454 exports.POWERS_OF_TEN = POWERS_OF_TEN; | 2454 exports.POWERS_OF_TEN = POWERS_OF_TEN; |
2455 }); | 2455 }); |
OLD | NEW |