| Index: lib/runtime/dart_sdk.js
|
| diff --git a/lib/runtime/dart_sdk.js b/lib/runtime/dart_sdk.js
|
| index 13ef971a992a8781867b40703f42c752ac9d4ac1..c76d67e43336ef0f974c5955a03b158fceee8d2d 100644
|
| --- a/lib/runtime/dart_sdk.js
|
| +++ b/lib/runtime/dart_sdk.js
|
| @@ -4164,7 +4164,11 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| sort(compare) {
|
| if (compare === void 0) compare = null;
|
| dart.as(compare, dart.functionType(core.int, [E, E]));
|
| - _internal.Sort.sort(this, compare == null ? core.Comparable.compare : compare);
|
| + if (compare == null) {
|
| + _internal.Sort.sort(this, core.Comparable.compare);
|
| + } else {
|
| + _internal.Sort.sort(this, compare);
|
| + }
|
| }
|
| shuffle(random) {
|
| if (random === void 0) random = null;
|
| @@ -4221,8 +4225,8 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| core.RangeError.checkNotNegative(skipCount, "skipCount");
|
| let otherList = null;
|
| let otherStart = null;
|
| - if (dart.is(iterable, core.List)) {
|
| - otherList = dart.as(iterable, core.List);
|
| + if (dart.is(iterable, core.List$(E))) {
|
| + otherList = iterable;
|
| otherStart = skipCount;
|
| } else {
|
| otherList = iterable[dartx.skip](skipCount)[dartx.toList]({growable: false});
|
| @@ -4233,11 +4237,11 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| }
|
| if (dart.notNull(otherStart) < dart.notNull(start)) {
|
| for (let i = length - 1; i >= 0; i--) {
|
| - this[dartx.set](dart.notNull(start) + i, dart.as(otherList[dartx.get](dart.notNull(otherStart) + i), E));
|
| + this[dartx.set](dart.notNull(start) + i, otherList[dartx.get](dart.notNull(otherStart) + i));
|
| }
|
| } else {
|
| for (let i = 0; i < length; i++) {
|
| - this[dartx.set](dart.notNull(start) + i, dart.as(otherList[dartx.get](dart.notNull(otherStart) + i), E));
|
| + this[dartx.set](dart.notNull(start) + i, otherList[dartx.get](dart.notNull(otherStart) + i));
|
| }
|
| }
|
| }
|
| @@ -9670,221 +9674,26 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| const _generator = Symbol('_generator');
|
| const _args = Symbol('_args');
|
| collection.IterableBase$ = dart.generic(E => {
|
| - class IterableBase extends core.Object {
|
| + class IterableBase extends core.Iterable$(E) {
|
| IterableBase() {
|
| - }
|
| - map(T) {
|
| - return f => {
|
| - dart.as(f, dart.functionType(T, [E]));
|
| - return _internal.MappedIterable$(E, T).new(this, f);
|
| - };
|
| - }
|
| - where(f) {
|
| - dart.as(f, dart.functionType(core.bool, [E]));
|
| - return new (_internal.WhereIterable$(E))(this, f);
|
| - }
|
| - expand(T) {
|
| - return f => {
|
| - dart.as(f, dart.functionType(core.Iterable$(T), [E]));
|
| - return new (_internal.ExpandIterable$(E, T))(this, f);
|
| - };
|
| - }
|
| - contains(element) {
|
| - for (let e of this) {
|
| - if (dart.equals(e, element)) return true;
|
| - }
|
| - return false;
|
| - }
|
| - forEach(f) {
|
| - dart.as(f, dart.functionType(dart.void, [E]));
|
| - for (let element of this)
|
| - f(element);
|
| - }
|
| - reduce(combine) {
|
| - dart.as(combine, dart.functionType(E, [E, E]));
|
| - let iterator = this.iterator;
|
| - if (!dart.notNull(iterator.moveNext())) {
|
| - dart.throw(_internal.IterableElementError.noElement());
|
| - }
|
| - let value = iterator.current;
|
| - while (dart.notNull(iterator.moveNext())) {
|
| - value = combine(value, iterator.current);
|
| - }
|
| - return value;
|
| - }
|
| - fold(T) {
|
| - return (initialValue, combine) => {
|
| - dart.as(combine, dart.functionType(T, [T, E]));
|
| - let value = initialValue;
|
| - for (let element of this)
|
| - value = combine(value, element);
|
| - return value;
|
| - };
|
| - }
|
| - every(f) {
|
| - dart.as(f, dart.functionType(core.bool, [E]));
|
| - for (let element of this) {
|
| - if (!dart.notNull(f(element))) return false;
|
| - }
|
| - return true;
|
| - }
|
| - join(separator) {
|
| - if (separator === void 0) separator = "";
|
| - let iterator = this.iterator;
|
| - if (!dart.notNull(iterator.moveNext())) return "";
|
| - let buffer = new core.StringBuffer();
|
| - if (separator == null || separator == "") {
|
| - do {
|
| - buffer.write(`${iterator.current}`);
|
| - } while (dart.notNull(iterator.moveNext()));
|
| - } else {
|
| - buffer.write(`${iterator.current}`);
|
| - while (dart.notNull(iterator.moveNext())) {
|
| - buffer.write(separator);
|
| - buffer.write(`${iterator.current}`);
|
| - }
|
| - }
|
| - return buffer.toString();
|
| - }
|
| - any(f) {
|
| - dart.as(f, dart.functionType(core.bool, [E]));
|
| - for (let element of this) {
|
| - if (dart.notNull(f(element))) return true;
|
| - }
|
| - return false;
|
| - }
|
| - toList(opts) {
|
| - let growable = opts && 'growable' in opts ? opts.growable : true;
|
| - return core.List$(E).from(this, {growable: growable});
|
| - }
|
| - toSet() {
|
| - return core.Set$(E).from(this);
|
| - }
|
| - get length() {
|
| - dart.assert(!dart.is(this, _internal.EfficientLength));
|
| - let count = 0;
|
| - let it = this[dartx.iterator];
|
| - while (dart.notNull(it.moveNext())) {
|
| - count++;
|
| - }
|
| - return count;
|
| - }
|
| - get isEmpty() {
|
| - return !dart.notNull(this[dartx.iterator].moveNext());
|
| - }
|
| - get isNotEmpty() {
|
| - return !dart.notNull(this.isEmpty);
|
| - }
|
| - take(n) {
|
| - return _internal.TakeIterable$(E).new(this, n);
|
| - }
|
| - takeWhile(test) {
|
| - dart.as(test, dart.functionType(core.bool, [E]));
|
| - return new (_internal.TakeWhileIterable$(E))(this, test);
|
| - }
|
| - skip(n) {
|
| - return _internal.SkipIterable$(E).new(this, n);
|
| - }
|
| - skipWhile(test) {
|
| - dart.as(test, dart.functionType(core.bool, [E]));
|
| - return new (_internal.SkipWhileIterable$(E))(this, test);
|
| - }
|
| - get first() {
|
| - let it = this[dartx.iterator];
|
| - if (!dart.notNull(it.moveNext())) {
|
| - dart.throw(_internal.IterableElementError.noElement());
|
| - }
|
| - return it.current;
|
| - }
|
| - get last() {
|
| - let it = this[dartx.iterator];
|
| - if (!dart.notNull(it.moveNext())) {
|
| - dart.throw(_internal.IterableElementError.noElement());
|
| - }
|
| - let result = null;
|
| - do {
|
| - result = it.current;
|
| - } while (dart.notNull(it.moveNext()));
|
| - return result;
|
| - }
|
| - get single() {
|
| - let it = this[dartx.iterator];
|
| - if (!dart.notNull(it.moveNext())) dart.throw(_internal.IterableElementError.noElement());
|
| - let result = it.current;
|
| - if (dart.notNull(it.moveNext())) dart.throw(_internal.IterableElementError.tooMany());
|
| - return result;
|
| - }
|
| - firstWhere(test, opts) {
|
| - dart.as(test, dart.functionType(core.bool, [E]));
|
| - let orElse = opts && 'orElse' in opts ? opts.orElse : null;
|
| - dart.as(orElse, dart.functionType(E, []));
|
| - for (let element of this) {
|
| - if (dart.notNull(test(element))) return element;
|
| - }
|
| - if (orElse != null) return orElse();
|
| - dart.throw(_internal.IterableElementError.noElement());
|
| - }
|
| - lastWhere(test, opts) {
|
| - dart.as(test, dart.functionType(core.bool, [E]));
|
| - let orElse = opts && 'orElse' in opts ? opts.orElse : null;
|
| - dart.as(orElse, dart.functionType(E, []));
|
| - let result = null;
|
| - let foundMatching = false;
|
| - for (let element of this) {
|
| - if (dart.notNull(test(element))) {
|
| - result = element;
|
| - foundMatching = true;
|
| - }
|
| - }
|
| - if (foundMatching) return result;
|
| - if (orElse != null) return orElse();
|
| - dart.throw(_internal.IterableElementError.noElement());
|
| - }
|
| - singleWhere(test) {
|
| - dart.as(test, dart.functionType(core.bool, [E]));
|
| - let result = null;
|
| - let foundMatching = false;
|
| - for (let element of this) {
|
| - if (dart.notNull(test(element))) {
|
| - if (foundMatching) {
|
| - dart.throw(_internal.IterableElementError.tooMany());
|
| - }
|
| - result = element;
|
| - foundMatching = true;
|
| - }
|
| - }
|
| - if (foundMatching) return result;
|
| - dart.throw(_internal.IterableElementError.noElement());
|
| - }
|
| - elementAt(index) {
|
| - if (!(typeof index == 'number')) dart.throw(new core.ArgumentError.notNull("index"));
|
| - core.RangeError.checkNotNegative(index, "index");
|
| - let elementIndex = 0;
|
| - for (let element of this) {
|
| - if (index == elementIndex) return element;
|
| - elementIndex++;
|
| - }
|
| - dart.throw(core.RangeError.index(index, this, "index", null, elementIndex));
|
| - }
|
| - toString() {
|
| - return collection.IterableBase.iterableToShortString(this, '(', ')');
|
| + super.Iterable();
|
| }
|
| static iterableToShortString(iterable, leftDelimiter, rightDelimiter) {
|
| if (leftDelimiter === void 0) leftDelimiter = '(';
|
| if (rightDelimiter === void 0) rightDelimiter = ')';
|
| - if (dart.notNull(collection.IterableBase._isToStringVisiting(iterable))) {
|
| + if (dart.notNull(collection._isToStringVisiting(iterable))) {
|
| if (leftDelimiter == "(" && rightDelimiter == ")") {
|
| return "(...)";
|
| }
|
| return `${leftDelimiter}...${rightDelimiter}`;
|
| }
|
| let parts = [];
|
| - collection.IterableBase._toStringVisiting[dartx.add](iterable);
|
| + collection._toStringVisiting[dartx.add](iterable);
|
| try {
|
| - collection.IterableBase._iterablePartsToStrings(iterable, parts);
|
| + collection._iterablePartsToStrings(iterable, parts);
|
| } finally {
|
| - dart.assert(core.identical(collection.IterableBase._toStringVisiting[dartx.last], iterable));
|
| - collection.IterableBase._toStringVisiting[dartx.removeLast]();
|
| + dart.assert(core.identical(collection._toStringVisiting[dartx.last], iterable));
|
| + collection._toStringVisiting[dartx.removeLast]();
|
| }
|
| return (() => {
|
| let _ = new core.StringBuffer(leftDelimiter);
|
| @@ -9896,176 +9705,32 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| static iterableToFullString(iterable, leftDelimiter, rightDelimiter) {
|
| if (leftDelimiter === void 0) leftDelimiter = '(';
|
| if (rightDelimiter === void 0) rightDelimiter = ')';
|
| - if (dart.notNull(collection.IterableBase._isToStringVisiting(iterable))) {
|
| + if (dart.notNull(collection._isToStringVisiting(iterable))) {
|
| return `${leftDelimiter}...${rightDelimiter}`;
|
| }
|
| let buffer = new core.StringBuffer(leftDelimiter);
|
| - collection.IterableBase._toStringVisiting[dartx.add](iterable);
|
| + collection._toStringVisiting[dartx.add](iterable);
|
| try {
|
| buffer.writeAll(iterable, ", ");
|
| } finally {
|
| - dart.assert(core.identical(collection.IterableBase._toStringVisiting[dartx.last], iterable));
|
| - collection.IterableBase._toStringVisiting[dartx.removeLast]();
|
| + dart.assert(core.identical(collection._toStringVisiting[dartx.last], iterable));
|
| + collection._toStringVisiting[dartx.removeLast]();
|
| }
|
| buffer.write(rightDelimiter);
|
| return buffer.toString();
|
| }
|
| - static _isToStringVisiting(o) {
|
| - for (let i = 0; i < dart.notNull(collection.IterableBase._toStringVisiting[dartx.length]); i++) {
|
| - if (core.identical(o, collection.IterableBase._toStringVisiting[dartx.get](i))) return true;
|
| - }
|
| - return false;
|
| - }
|
| - static _iterablePartsToStrings(iterable, parts) {
|
| - let LENGTH_LIMIT = 80;
|
| - let HEAD_COUNT = 3;
|
| - let TAIL_COUNT = 2;
|
| - let MAX_COUNT = 100;
|
| - let OVERHEAD = 2;
|
| - let ELLIPSIS_SIZE = 3;
|
| - let length = 0;
|
| - let count = 0;
|
| - let it = iterable[dartx.iterator];
|
| - while (dart.notNull(length) < LENGTH_LIMIT || count < HEAD_COUNT) {
|
| - if (!dart.notNull(it.moveNext())) return;
|
| - let next = `${it.current}`;
|
| - parts[dartx.add](next);
|
| - length = dart.notNull(length) + (dart.notNull(next[dartx.length]) + OVERHEAD);
|
| - count++;
|
| - }
|
| - let penultimateString = null;
|
| - let ultimateString = null;
|
| - let penultimate = null;
|
| - let ultimate = null;
|
| - if (!dart.notNull(it.moveNext())) {
|
| - if (count <= HEAD_COUNT + TAIL_COUNT) return;
|
| - ultimateString = dart.as(parts[dartx.removeLast](), core.String);
|
| - penultimateString = dart.as(parts[dartx.removeLast](), core.String);
|
| - } else {
|
| - penultimate = it.current;
|
| - count++;
|
| - if (!dart.notNull(it.moveNext())) {
|
| - if (count <= HEAD_COUNT + 1) {
|
| - parts[dartx.add](`${penultimate}`);
|
| - return;
|
| - }
|
| - ultimateString = `${penultimate}`;
|
| - penultimateString = dart.as(parts[dartx.removeLast](), core.String);
|
| - length = dart.notNull(length) + (dart.notNull(ultimateString[dartx.length]) + OVERHEAD);
|
| - } else {
|
| - ultimate = it.current;
|
| - count++;
|
| - dart.assert(count < MAX_COUNT);
|
| - while (dart.notNull(it.moveNext())) {
|
| - penultimate = ultimate;
|
| - ultimate = it.current;
|
| - count++;
|
| - if (count > MAX_COUNT) {
|
| - while (dart.notNull(length) > LENGTH_LIMIT - ELLIPSIS_SIZE - OVERHEAD && count > HEAD_COUNT) {
|
| - length = dart.notNull(length) - dart.notNull(dart.as(dart.dsend(dart.dload(parts[dartx.removeLast](), 'length'), '+', OVERHEAD), core.int));
|
| - count--;
|
| - }
|
| - parts[dartx.add]("...");
|
| - return;
|
| - }
|
| - }
|
| - penultimateString = `${penultimate}`;
|
| - ultimateString = `${ultimate}`;
|
| - length = dart.notNull(length) + (dart.notNull(ultimateString[dartx.length]) + dart.notNull(penultimateString[dartx.length]) + 2 * OVERHEAD);
|
| - }
|
| - }
|
| - let elision = null;
|
| - if (count > dart.notNull(parts[dartx.length]) + TAIL_COUNT) {
|
| - elision = "...";
|
| - length = dart.notNull(length) + (ELLIPSIS_SIZE + OVERHEAD);
|
| - }
|
| - while (dart.notNull(length) > LENGTH_LIMIT && dart.notNull(parts[dartx.length]) > HEAD_COUNT) {
|
| - length = dart.notNull(length) - dart.notNull(dart.as(dart.dsend(dart.dload(parts[dartx.removeLast](), 'length'), '+', OVERHEAD), core.int));
|
| - if (elision == null) {
|
| - elision = "...";
|
| - length = dart.notNull(length) + (ELLIPSIS_SIZE + OVERHEAD);
|
| - }
|
| - }
|
| - if (elision != null) {
|
| - parts[dartx.add](elision);
|
| - }
|
| - parts[dartx.add](penultimateString);
|
| - parts[dartx.add](ultimateString);
|
| - }
|
| - [Symbol.iterator]() {
|
| - return new dart.JsIterator(this.iterator);
|
| - }
|
| }
|
| - IterableBase[dart.implements] = () => [core.Iterable$(E)];
|
| dart.setSignature(IterableBase, {
|
| constructors: () => ({IterableBase: [collection.IterableBase$(E), []]}),
|
| - methods: () => ({
|
| - map: [T => [core.Iterable$(T), [dart.functionType(T, [E])]]],
|
| - where: [core.Iterable$(E), [dart.functionType(core.bool, [E])]],
|
| - expand: [T => [core.Iterable$(T), [dart.functionType(core.Iterable$(T), [E])]]],
|
| - contains: [core.bool, [core.Object]],
|
| - forEach: [dart.void, [dart.functionType(dart.void, [E])]],
|
| - reduce: [E, [dart.functionType(E, [E, E])]],
|
| - fold: [T => [T, [T, dart.functionType(T, [T, E])]]],
|
| - every: [core.bool, [dart.functionType(core.bool, [E])]],
|
| - join: [core.String, [], [core.String]],
|
| - any: [core.bool, [dart.functionType(core.bool, [E])]],
|
| - toList: [core.List$(E), [], {growable: core.bool}],
|
| - toSet: [core.Set$(E), []],
|
| - take: [core.Iterable$(E), [core.int]],
|
| - takeWhile: [core.Iterable$(E), [dart.functionType(core.bool, [E])]],
|
| - skip: [core.Iterable$(E), [core.int]],
|
| - skipWhile: [core.Iterable$(E), [dart.functionType(core.bool, [E])]],
|
| - firstWhere: [E, [dart.functionType(core.bool, [E])], {orElse: dart.functionType(E, [])}],
|
| - lastWhere: [E, [dart.functionType(core.bool, [E])], {orElse: dart.functionType(E, [])}],
|
| - singleWhere: [E, [dart.functionType(core.bool, [E])]],
|
| - elementAt: [E, [core.int]]
|
| - }),
|
| statics: () => ({
|
| iterableToShortString: [core.String, [core.Iterable], [core.String, core.String]],
|
| - iterableToFullString: [core.String, [core.Iterable], [core.String, core.String]],
|
| - _isToStringVisiting: [core.bool, [core.Object]],
|
| - _iterablePartsToStrings: [dart.void, [core.Iterable, core.List]]
|
| + iterableToFullString: [core.String, [core.Iterable], [core.String, core.String]]
|
| }),
|
| - names: ['iterableToShortString', 'iterableToFullString', '_isToStringVisiting', '_iterablePartsToStrings']
|
| + names: ['iterableToShortString', 'iterableToFullString']
|
| });
|
| - dart.defineExtensionMembers(IterableBase, [
|
| - 'map',
|
| - 'where',
|
| - 'expand',
|
| - 'contains',
|
| - 'forEach',
|
| - 'reduce',
|
| - 'fold',
|
| - 'every',
|
| - 'join',
|
| - 'any',
|
| - 'toList',
|
| - 'toSet',
|
| - 'take',
|
| - 'takeWhile',
|
| - 'skip',
|
| - 'skipWhile',
|
| - 'firstWhere',
|
| - 'lastWhere',
|
| - 'singleWhere',
|
| - 'elementAt',
|
| - 'toString',
|
| - 'length',
|
| - 'isEmpty',
|
| - 'isNotEmpty',
|
| - 'first',
|
| - 'last',
|
| - 'single'
|
| - ]);
|
| return IterableBase;
|
| });
|
| collection.IterableBase = collection.IterableBase$();
|
| - dart.defineLazy(collection.IterableBase, {
|
| - get _toStringVisiting() {
|
| - return [];
|
| - }
|
| - });
|
| _js_helper.SyncIterable$ = dart.generic(E => {
|
| class SyncIterable extends collection.IterableBase$(E) {
|
| SyncIterable(generator, args) {
|
| @@ -21331,11 +20996,11 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| collection._defaultEquals = function(a, b) {
|
| return dart.equals(a, b);
|
| };
|
| - dart.lazyFn(collection._defaultEquals, () => [core.bool, [core.Object, core.Object]]);
|
| + dart.lazyFn(collection._defaultEquals, () => [core.bool, [dart.dynamic, dart.dynamic]]);
|
| collection._defaultHashCode = function(a) {
|
| return dart.hashCode(a);
|
| };
|
| - dart.fn(collection._defaultHashCode, core.int, [core.Object]);
|
| + dart.fn(collection._defaultHashCode, core.int, [dart.dynamic]);
|
| collection._Equality$ = dart.generic(K => {
|
| const _Equality = dart.typedef('_Equality', () => dart.functionType(core.bool, [K, K]));
|
| return _Equality;
|
| @@ -21447,10 +21112,8 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| }
|
| static from(elements) {
|
| let result = collection.HashSet$(E).new();
|
| - for (let e of elements) {
|
| - dart.as(e, E);
|
| - result.add(e);
|
| - }
|
| + for (let e of elements)
|
| + result.add(dart.as(e, E));
|
| return result;
|
| }
|
| [Symbol.iterator]() {
|
| @@ -21572,15 +21235,15 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| get isNotEmpty() {
|
| return !dart.notNull(this.isEmpty);
|
| }
|
| - take(n) {
|
| - return _internal.TakeIterable$(E).new(this, n);
|
| + take(count) {
|
| + return _internal.TakeIterable$(E).new(this, count);
|
| }
|
| takeWhile(test) {
|
| dart.as(test, dart.functionType(core.bool, [E]));
|
| return new (_internal.TakeWhileIterable$(E))(this, test);
|
| }
|
| - skip(n) {
|
| - return _internal.SkipIterable$(E).new(this, n);
|
| + skip(count) {
|
| + return _internal.SkipIterable$(E).new(this, count);
|
| }
|
| skipWhile(test) {
|
| dart.as(test, dart.functionType(core.bool, [E]));
|
| @@ -21727,6 +21390,95 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| return IterableMixin;
|
| });
|
| collection.IterableMixin = collection.IterableMixin$();
|
| + dart.defineLazy(collection, {
|
| + get _toStringVisiting() {
|
| + return [];
|
| + }
|
| + });
|
| + collection._isToStringVisiting = function(o) {
|
| + for (let i = 0; i < dart.notNull(collection._toStringVisiting[dartx.length]); i++) {
|
| + if (core.identical(o, collection._toStringVisiting[dartx.get](i))) return true;
|
| + }
|
| + return false;
|
| + };
|
| + dart.lazyFn(collection._isToStringVisiting, () => [core.bool, [core.Object]]);
|
| + collection._iterablePartsToStrings = function(iterable, parts) {
|
| + let LENGTH_LIMIT = 80;
|
| + let HEAD_COUNT = 3;
|
| + let TAIL_COUNT = 2;
|
| + let MAX_COUNT = 100;
|
| + let OVERHEAD = 2;
|
| + let ELLIPSIS_SIZE = 3;
|
| + let length = 0;
|
| + let count = 0;
|
| + let it = iterable[dartx.iterator];
|
| + while (dart.notNull(length) < LENGTH_LIMIT || count < HEAD_COUNT) {
|
| + if (!dart.notNull(it.moveNext())) return;
|
| + let next = `${it.current}`;
|
| + parts[dartx.add](next);
|
| + length = dart.notNull(length) + (dart.notNull(next[dartx.length]) + OVERHEAD);
|
| + count++;
|
| + }
|
| + let penultimateString = null;
|
| + let ultimateString = null;
|
| + let penultimate = null;
|
| + let ultimate = null;
|
| + if (!dart.notNull(it.moveNext())) {
|
| + if (count <= HEAD_COUNT + TAIL_COUNT) return;
|
| + ultimateString = dart.as(parts[dartx.removeLast](), core.String);
|
| + penultimateString = dart.as(parts[dartx.removeLast](), core.String);
|
| + } else {
|
| + penultimate = it.current;
|
| + count++;
|
| + if (!dart.notNull(it.moveNext())) {
|
| + if (count <= HEAD_COUNT + 1) {
|
| + parts[dartx.add](`${penultimate}`);
|
| + return;
|
| + }
|
| + ultimateString = `${penultimate}`;
|
| + penultimateString = dart.as(parts[dartx.removeLast](), core.String);
|
| + length = dart.notNull(length) + (dart.notNull(ultimateString[dartx.length]) + OVERHEAD);
|
| + } else {
|
| + ultimate = it.current;
|
| + count++;
|
| + dart.assert(count < MAX_COUNT);
|
| + while (dart.notNull(it.moveNext())) {
|
| + penultimate = ultimate;
|
| + ultimate = it.current;
|
| + count++;
|
| + if (count > MAX_COUNT) {
|
| + while (dart.notNull(length) > LENGTH_LIMIT - ELLIPSIS_SIZE - OVERHEAD && count > HEAD_COUNT) {
|
| + length = dart.notNull(length) - dart.notNull(dart.as(dart.dsend(dart.dload(parts[dartx.removeLast](), 'length'), '+', OVERHEAD), core.int));
|
| + count--;
|
| + }
|
| + parts[dartx.add]("...");
|
| + return;
|
| + }
|
| + }
|
| + penultimateString = `${penultimate}`;
|
| + ultimateString = `${ultimate}`;
|
| + length = dart.notNull(length) + (dart.notNull(ultimateString[dartx.length]) + dart.notNull(penultimateString[dartx.length]) + 2 * OVERHEAD);
|
| + }
|
| + }
|
| + let elision = null;
|
| + if (count > dart.notNull(parts[dartx.length]) + TAIL_COUNT) {
|
| + elision = "...";
|
| + length = dart.notNull(length) + (ELLIPSIS_SIZE + OVERHEAD);
|
| + }
|
| + while (dart.notNull(length) > LENGTH_LIMIT && dart.notNull(parts[dartx.length]) > HEAD_COUNT) {
|
| + length = dart.notNull(length) - dart.notNull(dart.as(dart.dsend(dart.dload(parts[dartx.removeLast](), 'length'), '+', OVERHEAD), core.int));
|
| + if (elision == null) {
|
| + elision = "...";
|
| + length = dart.notNull(length) + (ELLIPSIS_SIZE + OVERHEAD);
|
| + }
|
| + }
|
| + if (elision != null) {
|
| + parts[dartx.add](elision);
|
| + }
|
| + parts[dartx.add](penultimateString);
|
| + parts[dartx.add](ultimateString);
|
| + };
|
| + dart.lazyFn(collection._iterablePartsToStrings, () => [dart.void, [core.Iterable, core.List]]);
|
| const _iterator$0 = Symbol('_iterator');
|
| const _state$ = Symbol('_state');
|
| const _move = Symbol('_move');
|
| @@ -21743,7 +21495,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| next() {
|
| if (!dart.notNull(this.hasNext)) dart.throw(new core.StateError("No more elements"));
|
| dart.assert(this[_state$] == collection.HasNextIterator._HAS_NEXT_AND_NEXT_IN_CURRENT);
|
| - let result = dart.as(this[_iterator$0].current, E);
|
| + let result = this[_iterator$0].current;
|
| this[_move]();
|
| return result;
|
| }
|
| @@ -21756,7 +21508,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| }
|
| }
|
| dart.setSignature(HasNextIterator, {
|
| - constructors: () => ({HasNextIterator: [collection.HasNextIterator$(E), [core.Iterator]]}),
|
| + constructors: () => ({HasNextIterator: [collection.HasNextIterator$(E), [core.Iterator$(E)]]}),
|
| methods: () => ({
|
| next: [E, []],
|
| [_move]: [dart.void, []]
|
| @@ -21878,7 +21630,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| static from(elements) {
|
| let result = collection.LinkedHashSet$(E).new();
|
| for (let element of elements) {
|
| - result.add(element);
|
| + result.add(dart.as(element, E));
|
| }
|
| return result;
|
| }
|
| @@ -21891,7 +21643,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| constructors: () => ({
|
| new: [collection.LinkedHashSet$(E), [], {equals: dart.functionType(core.bool, [E, E]), hashCode: dart.functionType(core.int, [E]), isValidKey: dart.functionType(core.bool, [core.Object])}],
|
| identity: [collection.LinkedHashSet$(E), []],
|
| - from: [collection.LinkedHashSet$(E), [core.Iterable$(E)]]
|
| + from: [collection.LinkedHashSet$(E), [core.Iterable]]
|
| })
|
| });
|
| return LinkedHashSet;
|
| @@ -22138,7 +21890,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| putIfAbsent(key, ifAbsent) {
|
| dart.as(key, K);
|
| dart.as(ifAbsent, dart.functionType(V, []));
|
| - if (dart.notNull(this.keys[dartx.contains](key))) {
|
| + if (dart.notNull(this.containsKey(key))) {
|
| return this.get(key);
|
| }
|
| return this.set(key, ifAbsent());
|
| @@ -22156,7 +21908,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| return this.keys[dartx.isNotEmpty];
|
| }
|
| get values() {
|
| - return new (collection._MapBaseValueIterable$(V))(this);
|
| + return new (collection._MapBaseValueIterable$(K, V))(this);
|
| }
|
| toString() {
|
| return collection.Maps.mapToString(this);
|
| @@ -22244,11 +21996,11 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| return UnmodifiableMapBase;
|
| });
|
| collection.UnmodifiableMapBase = collection.UnmodifiableMapBase$();
|
| - collection._MapBaseValueIterable$ = dart.generic(V => {
|
| - class _MapBaseValueIterable extends collection.IterableBase$(V) {
|
| + collection._MapBaseValueIterable$ = dart.generic((K, V) => {
|
| + class _MapBaseValueIterable extends core.Iterable$(V) {
|
| _MapBaseValueIterable(map) {
|
| this[_map$] = map;
|
| - super.IterableBase();
|
| + super.Iterable();
|
| }
|
| get length() {
|
| return this[_map$][dartx.length];
|
| @@ -22260,21 +22012,21 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| return this[_map$][dartx.isNotEmpty];
|
| }
|
| get first() {
|
| - return dart.as(this[_map$][dartx.get](this[_map$][dartx.keys][dartx.first]), V);
|
| + return this[_map$][dartx.get](this[_map$][dartx.keys][dartx.first]);
|
| }
|
| get single() {
|
| - return dart.as(this[_map$][dartx.get](this[_map$][dartx.keys][dartx.single]), V);
|
| + return this[_map$][dartx.get](this[_map$][dartx.keys][dartx.single]);
|
| }
|
| get last() {
|
| - return dart.as(this[_map$][dartx.get](this[_map$][dartx.keys][dartx.last]), V);
|
| + return this[_map$][dartx.get](this[_map$][dartx.keys][dartx.last]);
|
| }
|
| get iterator() {
|
| - return new (collection._MapBaseValueIterator$(V))(this[_map$]);
|
| + return new (collection._MapBaseValueIterator$(K, V))(this[_map$]);
|
| }
|
| }
|
| _MapBaseValueIterable[dart.implements] = () => [_internal.EfficientLength];
|
| dart.setSignature(_MapBaseValueIterable, {
|
| - constructors: () => ({_MapBaseValueIterable: [collection._MapBaseValueIterable$(V), [core.Map]]})
|
| + constructors: () => ({_MapBaseValueIterable: [collection._MapBaseValueIterable$(K, V), [core.Map$(K, V)]]})
|
| });
|
| dart.defineExtensionMembers(_MapBaseValueIterable, [
|
| 'length',
|
| @@ -22288,7 +22040,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| return _MapBaseValueIterable;
|
| });
|
| collection._MapBaseValueIterable = collection._MapBaseValueIterable$();
|
| - collection._MapBaseValueIterator$ = dart.generic(V => {
|
| + collection._MapBaseValueIterator$ = dart.generic((K, V) => {
|
| class _MapBaseValueIterator extends core.Object {
|
| _MapBaseValueIterator(map) {
|
| this[_map$] = map;
|
| @@ -22297,7 +22049,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| }
|
| moveNext() {
|
| if (dart.notNull(this[_keys].moveNext())) {
|
| - this[_current$2] = dart.as(this[_map$][dartx.get](this[_keys].current), V);
|
| + this[_current$2] = this[_map$][dartx.get](this[_keys].current);
|
| return true;
|
| }
|
| this[_current$2] = null;
|
| @@ -22309,7 +22061,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| }
|
| _MapBaseValueIterator[dart.implements] = () => [core.Iterator$(V)];
|
| dart.setSignature(_MapBaseValueIterator, {
|
| - constructors: () => ({_MapBaseValueIterator: [collection._MapBaseValueIterator$(V), [core.Map]]}),
|
| + constructors: () => ({_MapBaseValueIterator: [collection._MapBaseValueIterator$(K, V), [core.Map$(K, V)]]}),
|
| methods: () => ({moveNext: [core.bool, []]})
|
| });
|
| return _MapBaseValueIterator;
|
| @@ -22419,7 +22171,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| collection.Maps = class Maps extends core.Object {
|
| static containsValue(map, value) {
|
| for (let v of map[dartx.values]) {
|
| - if (dart.equals(value, v)) {
|
| + if (dart.equals(v, value)) {
|
| return true;
|
| }
|
| }
|
| @@ -22427,7 +22179,7 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| }
|
| static containsKey(map, key) {
|
| for (let k of map[dartx.keys]) {
|
| - if (dart.equals(key, k)) {
|
| + if (dart.equals(k, key)) {
|
| return true;
|
| }
|
| }
|
| @@ -22464,12 +22216,12 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| return map[dartx.keys][dartx.isNotEmpty];
|
| }
|
| static mapToString(m) {
|
| - if (dart.notNull(collection.IterableBase._isToStringVisiting(m))) {
|
| + if (dart.notNull(collection._isToStringVisiting(m))) {
|
| return '{...}';
|
| }
|
| let result = new core.StringBuffer();
|
| try {
|
| - collection.IterableBase._toStringVisiting[dartx.add](m);
|
| + collection._toStringVisiting[dartx.add](m);
|
| result.write('{');
|
| let first = true;
|
| m[dartx.forEach](dart.fn((k, v) => {
|
| @@ -22483,8 +22235,8 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| }, dart.void, [dart.dynamic, dart.dynamic]));
|
| result.write('}');
|
| } finally {
|
| - dart.assert(core.identical(collection.IterableBase._toStringVisiting[dartx.last], m));
|
| - collection.IterableBase._toStringVisiting[dartx.removeLast]();
|
| + dart.assert(core.identical(collection._toStringVisiting[dartx.last], m));
|
| + collection._toStringVisiting[dartx.removeLast]();
|
| }
|
| return result.toString();
|
| }
|
| @@ -22515,8 +22267,8 @@ dart_library.library('dart_sdk', null, /* Imports */[
|
| };
|
| dart.setSignature(collection.Maps, {
|
| statics: () => ({
|
| - containsValue: [core.bool, [core.Map, dart.dynamic]],
|
| - containsKey: [core.bool, [core.Map, dart.dynamic]],
|
| + containsValue: [core.bool, [core.Map, core.Object]],
|
| + containsKey: [core.bool, [core.Map, core.Object]],
|
| putIfAbsent: [dart.dynamic, [core.Map, dart.dynamic, dart.functionType(dart.dynamic, [])]],
|
| clear: [dart.dynamic, [core.Map]],
|
| forEach: [dart.dynamic, [core.Map, dart.functionType(dart.void, [dart.dynamic, dart.dynamic])]],
|
|
|