| Index: lib/runtime/dart/_internal.js
|
| diff --git a/lib/runtime/dart/_internal.js b/lib/runtime/dart/_internal.js
|
| index d2f61cdcb0d257086e1ad54533c9e0e334746ae1..684253827f102f60b5d8320ab30d898134f2909c 100644
|
| --- a/lib/runtime/dart/_internal.js
|
| +++ b/lib/runtime/dart/_internal.js
|
| @@ -162,7 +162,7 @@ dart_library.library('dart/_internal', null, /* Imports */[
|
| }
|
| map(f) {
|
| dart.as(f, dart.functionType(dart.dynamic, [E]));
|
| - return new MappedListIterable(this, f);
|
| + return new (MappedListIterable$(E, dart.dynamic))(this, f);
|
| }
|
| reduce(combine) {
|
| dart.as(combine, dart.functionType(E, [dart.dynamic, E]));
|
| @@ -182,7 +182,7 @@ dart_library.library('dart/_internal', null, /* Imports */[
|
| let value = initialValue;
|
| let length = this.length;
|
| for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull(i) + 1) {
|
| - value = dart.dcall(combine, value, this.elementAt(i));
|
| + value = combine(value, this.elementAt(i));
|
| if (length != this.length) {
|
| dart.throw(new core.ConcurrentModificationError(this));
|
| }
|
| @@ -1097,20 +1097,20 @@ dart_library.library('dart/_internal', null, /* Imports */[
|
| static forEach(iterable, f) {
|
| dart.as(f, dart.functionType(dart.void, [dart.dynamic]));
|
| for (let e of iterable) {
|
| - dart.dcall(f, e);
|
| + f(e);
|
| }
|
| }
|
| static any(iterable, f) {
|
| dart.as(f, dart.functionType(core.bool, [dart.dynamic]));
|
| for (let e of iterable) {
|
| - if (dart.notNull(dart.dcall(f, e))) return true;
|
| + if (dart.notNull(f(e))) return true;
|
| }
|
| return false;
|
| }
|
| static every(iterable, f) {
|
| dart.as(f, dart.functionType(core.bool, [dart.dynamic]));
|
| for (let e of iterable) {
|
| - if (!dart.notNull(dart.dcall(f, e))) return false;
|
| + if (!dart.notNull(f(e))) return false;
|
| }
|
| return true;
|
| }
|
| @@ -1120,24 +1120,24 @@ dart_library.library('dart/_internal', null, /* Imports */[
|
| if (!dart.notNull(iterator.moveNext())) dart.throw(IterableElementError.noElement());
|
| let value = iterator.current;
|
| while (dart.notNull(iterator.moveNext())) {
|
| - value = dart.dcall(combine, value, iterator.current);
|
| + value = combine(value, iterator.current);
|
| }
|
| return value;
|
| }
|
| static fold(iterable, initialValue, combine) {
|
| dart.as(combine, dart.functionType(dart.dynamic, [dart.dynamic, dart.dynamic]));
|
| for (let element of iterable) {
|
| - initialValue = dart.dcall(combine, initialValue, element);
|
| + initialValue = combine(initialValue, element);
|
| }
|
| return initialValue;
|
| }
|
| static removeWhereList(list, test) {
|
| dart.as(test, dart.functionType(core.bool, [dart.dynamic]));
|
| - let retained = [];
|
| + let retained = dart.list([], dart.dynamic);
|
| let length = list[dartx.length];
|
| for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull(i) + 1) {
|
| let element = list[dartx.get](i);
|
| - if (!dart.notNull(dart.dcall(test, element))) {
|
| + if (!dart.notNull(test(element))) {
|
| retained[dartx.add](element);
|
| }
|
| if (length != list[dartx.length]) {
|
| @@ -1182,7 +1182,7 @@ dart_library.library('dart/_internal', null, /* Imports */[
|
| dart.as(test, dart.functionType(core.bool, [dart.dynamic]));
|
| dart.as(orElse, dart.functionType(dart.dynamic, []));
|
| for (let element of iterable) {
|
| - if (dart.notNull(dart.dcall(test, element))) return element;
|
| + if (dart.notNull(test(element))) return element;
|
| }
|
| if (orElse != null) return orElse();
|
| dart.throw(IterableElementError.noElement());
|
| @@ -1193,7 +1193,7 @@ dart_library.library('dart/_internal', null, /* Imports */[
|
| let result = null;
|
| let foundMatching = false;
|
| for (let element of iterable) {
|
| - if (dart.notNull(dart.dcall(test, element))) {
|
| + if (dart.notNull(test(element))) {
|
| result = element;
|
| foundMatching = true;
|
| }
|
| @@ -1207,7 +1207,7 @@ dart_library.library('dart/_internal', null, /* Imports */[
|
| dart.as(orElse, dart.functionType(dart.dynamic, []));
|
| for (let i = dart.notNull(list[dartx.length]) - 1; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
|
| let element = list[dartx.get](i);
|
| - if (dart.notNull(dart.dcall(test, element))) return element;
|
| + if (dart.notNull(test(element))) return element;
|
| }
|
| if (orElse != null) return orElse();
|
| dart.throw(IterableElementError.noElement());
|
| @@ -1217,7 +1217,7 @@ dart_library.library('dart/_internal', null, /* Imports */[
|
| let result = null;
|
| let foundMatching = false;
|
| for (let element of iterable) {
|
| - if (dart.notNull(dart.dcall(test, element))) {
|
| + if (dart.notNull(test(element))) {
|
| if (dart.notNull(foundMatching)) {
|
| dart.throw(IterableElementError.tooMany());
|
| }
|
| @@ -1263,8 +1263,9 @@ dart_library.library('dart/_internal', null, /* Imports */[
|
| return dart.toString(buffer);
|
| }
|
| where(iterable, f) {
|
| - dart.as(f, dart.functionType(core.bool, [dart.dynamic]));
|
| - return new (WhereIterable$(T))(dart.as(iterable, core.Iterable$(T)), dart.as(f, __CastType2));
|
| + dart.as(iterable, core.Iterable$(T));
|
| + dart.as(f, dart.functionType(core.bool, [T]));
|
| + return new (WhereIterable$(T))(iterable, f);
|
| }
|
| static map(iterable, f) {
|
| dart.as(f, dart.functionType(dart.dynamic, [dart.dynamic]));
|
| @@ -1283,7 +1284,7 @@ dart_library.library('dart/_internal', null, /* Imports */[
|
| }
|
| takeWhile(iterable, test) {
|
| dart.as(test, dart.functionType(core.bool, [dart.dynamic]));
|
| - return new (TakeWhileIterable$(T))(dart.as(iterable, core.Iterable$(T)), dart.as(test, dart.functionType(core.bool, [T])));
|
| + return new (TakeWhileIterable$(T))(dart.as(iterable, core.Iterable$(T)), dart.as(test, __CastType2));
|
| }
|
| skipList(list, n) {
|
| return new (SubListIterable$(T))(dart.as(list, core.Iterable$(T)), n, null);
|
| @@ -1443,7 +1444,7 @@ dart_library.library('dart/_internal', null, /* Imports */[
|
| }
|
| dart.setSignature(IterableMixinWorkaround, {
|
| methods: () => ({
|
| - where: [core.Iterable$(T), [core.Iterable, dart.functionType(core.bool, [dart.dynamic])]],
|
| + where: [core.Iterable$(T), [core.Iterable$(T), dart.functionType(core.bool, [T])]],
|
| takeList: [core.Iterable$(T), [core.List, core.int]],
|
| takeWhile: [core.Iterable$(T), [core.Iterable, dart.functionType(core.bool, [dart.dynamic])]],
|
| skipList: [core.Iterable$(T), [core.List, core.int]],
|
|
|