Index: lib/runtime/dart/core.js |
diff --git a/lib/runtime/dart/core.js b/lib/runtime/dart/core.js |
index c1799ab4b0bf6d2b155f0da97a6e7ff26b82898c..eada4b50b2b1176ff322282bcb21586c082a68bf 100644 |
--- a/lib/runtime/dart/core.js |
+++ b/lib/runtime/dart/core.js |
@@ -1023,6 +1023,7 @@ var core; |
return dart.as(values == null ? null : _js_helper.Primitives.getProperty(values, this[_getKey]()), T); |
} |
set(object, value) { |
+ dart.as(value, T); |
let values = _js_helper.Primitives.getProperty(object, Expando._EXPANDO_PROPERTY_NAME); |
if (values == null) { |
values = new Object(); |
@@ -1082,6 +1083,7 @@ var core; |
generate(count, generator) { |
if (generator === void 0) |
generator = null; |
+ dart.as(generator, dart.functionType(E, [int])); |
if (dart.notNull(count) <= 0) |
return new (_internal.EmptyIterable$(E))(); |
return new (exports._GeneratorIterable$(E))(count, generator); |
@@ -1259,18 +1261,22 @@ var core; |
List(length) { |
if (length === void 0) |
length = null; |
+ let list = null; |
if (length == null) { |
- return dart.as([], List$(E)); |
- } |
- if (!(typeof length == 'number') || dart.notNull(length) < 0) { |
- throw new ArgumentError(`Length must be a non-negative integer: ${length}`); |
+ list = []; |
+ } else { |
+ if (!(typeof length == 'number') || dart.notNull(length) < 0) { |
+ throw new ArgumentError(`Length must be a non-negative integer: ${length}`); |
+ } |
+ list = new Array(length); |
+ list.fixed$length = Array; |
} |
- let list = new Array(length); |
- list.fixed$length = Array; |
+ dart.setType(list, List$(E)); |
return dart.as(list, List$(E)); |
} |
filled(length, fill) { |
- let result = new _interceptors.JSArray$(E).fixed(length); |
+ dart.as(fill, E); |
+ let result = new (List$(E))(length); |
if (length != 0 && dart.notNull(fill != null)) { |
for (let i = 0; dart.notNull(i) < dart.notNull(result[$length]); i = dart.notNull(i) + 1) { |
result[$set](i, fill); |
@@ -1289,6 +1295,7 @@ var core; |
return dart.as(_internal.makeListFixedLength(list), List$(E)); |
} |
generate(length, generator, opts) { |
+ dart.as(generator, dart.functionType(E, [int])); |
let growable = opts && 'growable' in opts ? opts.growable : true; |
let result = null; |
if (growable) { |
@@ -1350,11 +1357,15 @@ var core; |
return _internal.IterableMixinWorkaround.fold(this, initialValue, combine); |
} |
[$firstWhere](test, opts) { |
+ dart.as(test, dart.functionType(bool, [E])); |
let orElse = opts && 'orElse' in opts ? opts.orElse : null; |
+ dart.as(orElse, dart.functionType(E, [])); |
return dart.as(_internal.IterableMixinWorkaround.firstWhere(this, test, orElse), E); |
} |
[$lastWhere](test, opts) { |
+ dart.as(test, dart.functionType(bool, [E])); |
let orElse = opts && 'orElse' in opts ? opts.orElse : null; |
+ dart.as(orElse, dart.functionType(E, [])); |
return dart.as(_internal.IterableMixinWorkaround.lastWhereList(this, test, orElse), E); |
} |
[$singleWhere](test) { |
@@ -1389,6 +1400,7 @@ var core; |
[$sort](compare) { |
if (compare === void 0) |
compare = null; |
+ dart.as(compare, dart.functionType(int, [E, E])); |
this[$checkMutable]('sort'); |
_internal.IterableMixinWorkaround.sortList(this, compare); |
} |
@@ -1433,6 +1445,7 @@ var core; |
return dart.as(this[index], E); |
} |
[$set](index, value) { |
+ dart.as(value, E); |
this[$checkMutable]('indexed set'); |
if (!(typeof index == 'number')) |
throw new ArgumentError(index); |
@@ -1452,6 +1465,7 @@ var core; |
this.length = newLength; |
} |
[$add](value) { |
+ dart.as(value, E); |
this[$checkGrowable]('add'); |
this.push(value); |
} |
@@ -1466,6 +1480,7 @@ var core; |
[$sort](compare) { |
if (compare === void 0) |
compare = null; |
+ dart.as(compare, dart.functionType(int, [E, E])); |
_internal.IterableMixinWorkaround.sortList(this, compare); |
} |
[$shuffle](random) { |
@@ -1474,11 +1489,13 @@ var core; |
_internal.IterableMixinWorkaround.shuffleList(this, random); |
} |
[$indexOf](element, start) { |
+ dart.as(element, E); |
if (start === void 0) |
start = 0; |
return _internal.IterableMixinWorkaround.indexOfList(this, element, start); |
} |
[$lastIndexOf](element, start) { |
+ dart.as(element, E); |
if (start === void 0) |
start = null; |
return _internal.IterableMixinWorkaround.lastIndexOfList(this, element, start); |
@@ -1487,6 +1504,7 @@ var core; |
this[$length] = 0; |
} |
[$insert](index, element) { |
+ dart.as(element, E); |
if (!(typeof index == 'number')) |
throw new ArgumentError(index); |
if (dart.notNull(index) < 0 || dart.notNull(index) > dart.notNull(this[$length])) { |
@@ -1560,6 +1578,7 @@ var core; |
return new (_internal.IterableMixinWorkaround$(E))().getRangeList(this, start, end); |
} |
[$setRange](start, end, iterable, skipCount) { |
+ dart.as(iterable, Iterable$(E)); |
if (skipCount === void 0) |
skipCount = 0; |
this[$checkMutable]('set range'); |
@@ -1580,6 +1599,7 @@ var core; |
[$fillRange](start, end, fillValue) { |
if (fillValue === void 0) |
fillValue = null; |
+ dart.as(fillValue, E); |
this[$checkMutable]('fill range'); |
_internal.IterableMixinWorkaround.fillRangeList(this, start, end, fillValue); |
} |
@@ -1591,6 +1611,7 @@ var core; |
return new (_internal.IterableMixinWorkaround$(E))().asMapList(this); |
} |
} |
+ dart.setBaseClass(List, dart.global.Array); |
List[dart.implements] = () => [Iterable$(E), _internal.EfficientLength]; |
dart.defineNamedConstructor(List, 'filled'); |
dart.defineNamedConstructor(List, 'from'); |