| Index: lib/runtime/dart/_internal.js
|
| diff --git a/lib/runtime/dart/_internal.js b/lib/runtime/dart/_internal.js
|
| index bd7cd046a0d1413b6e9dee9b2b7a26190ce1a503..d8e517416d31bb38579108774aa88659fe978f0f 100644
|
| --- a/lib/runtime/dart/_internal.js
|
| +++ b/lib/runtime/dart/_internal.js
|
| @@ -221,7 +221,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| let result = null;
|
| if (dart.notNull(growable)) {
|
| result = core.List$(E).new();
|
| - result.length = this.length;
|
| + result[dartx.length] = this.length;
|
| } else {
|
| result = core.List$(E).new(this.length);
|
| }
|
| @@ -309,19 +309,19 @@ dart.library('dart/_internal', null, /* Imports */[
|
| }
|
| }
|
| get [_endIndex]() {
|
| - let length = this[_iterable].length;
|
| + let length = this[_iterable][dartx.length];
|
| if (this[_endOrLength] == null || dart.notNull(this[_endOrLength]) > dart.notNull(length))
|
| return length;
|
| return this[_endOrLength];
|
| }
|
| get [_startIndex]() {
|
| - let length = this[_iterable].length;
|
| + let length = this[_iterable][dartx.length];
|
| if (dart.notNull(this[_start]) > dart.notNull(length))
|
| return length;
|
| return this[_start];
|
| }
|
| get length() {
|
| - let length = this[_iterable].length;
|
| + let length = this[_iterable][dartx.length];
|
| if (dart.notNull(this[_start]) >= dart.notNull(length))
|
| return 0;
|
| if (this[_endOrLength] == null || dart.notNull(this[_endOrLength]) >= dart.notNull(length)) {
|
| @@ -358,7 +358,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| toList(opts) {
|
| let growable = opts && 'growable' in opts ? opts.growable : true;
|
| let start = this[_start];
|
| - let end = this[_iterable].length;
|
| + let end = this[_iterable][dartx.length];
|
| if (this[_endOrLength] != null && dart.notNull(this[_endOrLength]) < dart.notNull(end))
|
| end = this[_endOrLength];
|
| let length = dart.notNull(end) - dart.notNull(start);
|
| @@ -366,12 +366,12 @@ dart.library('dart/_internal', null, /* Imports */[
|
| length = 0;
|
| let result = dart.notNull(growable) ? (() => {
|
| let _ = core.List$(E).new();
|
| - _.length = length;
|
| + _[dartx.length] = length;
|
| return _;
|
| })() : core.List$(E).new(length);
|
| for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull(i) + 1) {
|
| result[dartx.set](i, this[_iterable][dartx.elementAt](dart.notNull(start) + dart.notNull(i)));
|
| - if (dart.notNull(this[_iterable].length) < dart.notNull(end))
|
| + if (dart.notNull(this[_iterable][dartx.length]) < dart.notNull(end))
|
| throw new core.ConcurrentModificationError(this);
|
| }
|
| return dart.as(result, core.List$(E));
|
| @@ -403,7 +403,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| class ListIterator extends core.Object {
|
| ListIterator(iterable) {
|
| this[_iterable] = iterable;
|
| - this[_length] = iterable.length;
|
| + this[_length] = iterable[dartx.length];
|
| this[_index] = 0;
|
| this[_current] = null;
|
| }
|
| @@ -411,7 +411,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| return this[_current];
|
| }
|
| moveNext() {
|
| - let length = this[_iterable].length;
|
| + let length = this[_iterable][dartx.length];
|
| if (this[_length] != length) {
|
| throw new core.ConcurrentModificationError(this[_iterable]);
|
| }
|
| @@ -455,7 +455,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| return new (MappedIterator$(S, T))(this[_iterable][dartx.iterator], this[_f]);
|
| }
|
| get length() {
|
| - return this[_iterable].length;
|
| + return this[_iterable][dartx.length];
|
| }
|
| get isEmpty() {
|
| return this[_iterable][dartx.isEmpty];
|
| @@ -542,7 +542,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| super.ListIterable();
|
| }
|
| get length() {
|
| - return this[_source].length;
|
| + return this[_source][dartx.length];
|
| }
|
| elementAt(index) {
|
| return this[_f](this[_source][dartx.elementAt](index));
|
| @@ -707,7 +707,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| super._(iterable, takeCount);
|
| }
|
| get length() {
|
| - let iterableLength = this[_iterable].length;
|
| + let iterableLength = this[_iterable][dartx.length];
|
| if (dart.notNull(iterableLength) > dart.notNull(this[_takeCount]))
|
| return this[_takeCount];
|
| return iterableLength;
|
| @@ -845,7 +845,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| super._(iterable, skipCount);
|
| }
|
| get length() {
|
| - let length = dart.notNull(this[_iterable].length) - dart.notNull(this[_skipCount]);
|
| + let length = dart.notNull(this[_iterable][dartx.length]) - dart.notNull(this[_skipCount]);
|
| if (dart.notNull(length) >= 0)
|
| return length;
|
| return 0;
|
| @@ -1169,20 +1169,20 @@ dart.library('dart/_internal', null, /* Imports */[
|
| static removeWhereList(list, test) {
|
| dart.as(test, dart.functionType(core.bool, [dart.bottom]));
|
| let retained = [];
|
| - let length = list.length;
|
| + 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))) {
|
| retained[dartx.add](element);
|
| }
|
| - if (length != list.length) {
|
| + if (length != list[dartx.length]) {
|
| throw new core.ConcurrentModificationError(list);
|
| }
|
| }
|
| - if (retained.length == length)
|
| + if (retained[dartx.length] == length)
|
| return;
|
| - list.length = retained.length;
|
| - for (let i = 0; dart.notNull(i) < dart.notNull(retained.length); i = dart.notNull(i) + 1) {
|
| + list[dartx.length] = retained[dartx.length];
|
| + for (let i = 0; dart.notNull(i) < dart.notNull(retained[dartx.length]); i = dart.notNull(i) + 1) {
|
| list[dartx.set](i, retained[dartx.get](i));
|
| }
|
| }
|
| @@ -1247,7 +1247,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| static lastWhereList(list, test, orElse) {
|
| dart.as(test, dart.functionType(core.bool, [dart.bottom]));
|
| dart.as(orElse, dart.functionType(core.Object, []));
|
| - for (let i = dart.notNull(list.length) - 1; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
|
| + 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;
|
| @@ -1297,16 +1297,16 @@ dart.library('dart/_internal', null, /* Imports */[
|
| separator = null;
|
| if (dart.notNull(list[dartx.isEmpty]))
|
| return "";
|
| - if (list.length == 1)
|
| + if (list[dartx.length] == 1)
|
| return `${list[dartx.get](0)}`;
|
| let buffer = new core.StringBuffer();
|
| if (dart.notNull(separator[dartx.isEmpty])) {
|
| - for (let i = 0; dart.notNull(i) < dart.notNull(list.length); i = dart.notNull(i) + 1) {
|
| + for (let i = 0; dart.notNull(i) < dart.notNull(list[dartx.length]); i = dart.notNull(i) + 1) {
|
| buffer.write(list[dartx.get](i));
|
| }
|
| } else {
|
| buffer.write(list[dartx.get](0));
|
| - for (let i = 1; dart.notNull(i) < dart.notNull(list.length); i = dart.notNull(i) + 1) {
|
| + for (let i = 1; dart.notNull(i) < dart.notNull(list[dartx.length]); i = dart.notNull(i) + 1) {
|
| buffer.write(separator);
|
| buffer.write(list[dartx.get](i));
|
| }
|
| @@ -1355,7 +1355,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| static shuffleList(list, random) {
|
| if (random == null)
|
| random = math.Random.new();
|
| - let length = list.length;
|
| + let length = list[dartx.length];
|
| while (dart.notNull(length) > 1) {
|
| let pos = random.nextInt(length);
|
| length = dart.notNull(length) - 1;
|
| @@ -1365,15 +1365,15 @@ dart.library('dart/_internal', null, /* Imports */[
|
| }
|
| }
|
| static indexOfList(list, element, start) {
|
| - return Lists.indexOf(list, element, start, list.length);
|
| + return Lists.indexOf(list, element, start, list[dartx.length]);
|
| }
|
| static lastIndexOfList(list, element, start) {
|
| if (start == null)
|
| - start = dart.notNull(list.length) - 1;
|
| + start = dart.notNull(list[dartx.length]) - 1;
|
| return Lists.lastIndexOf(list, element, start);
|
| }
|
| static _rangeCheck(list, start, end) {
|
| - core.RangeError.checkValidRange(start, end, list.length);
|
| + core.RangeError.checkValidRange(start, end, list[dartx.length]);
|
| }
|
| getRangeList(list, start, end) {
|
| IterableMixinWorkaround$()._rangeCheck(list, start, end);
|
| @@ -1395,7 +1395,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| otherList = from[dartx.skip](skipCount)[dartx.toList]({growable: false});
|
| otherStart = 0;
|
| }
|
| - if (dart.notNull(otherStart) + dart.notNull(length) > dart.notNull(otherList.length)) {
|
| + if (dart.notNull(otherStart) + dart.notNull(length) > dart.notNull(otherList[dartx.length])) {
|
| throw IterableElementError.tooFew();
|
| }
|
| Lists.copy(otherList, otherStart, list, start, length);
|
| @@ -1406,21 +1406,21 @@ dart.library('dart/_internal', null, /* Imports */[
|
| iterable = iterable[dartx.toList]();
|
| }
|
| let removeLength = dart.notNull(end) - dart.notNull(start);
|
| - let insertLength = iterable.length;
|
| + let insertLength = iterable[dartx.length];
|
| if (dart.notNull(removeLength) >= dart.notNull(insertLength)) {
|
| let delta = dart.notNull(removeLength) - dart.notNull(insertLength);
|
| let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
|
| - let newEnd = dart.notNull(list.length) - dart.notNull(delta);
|
| + let newEnd = dart.notNull(list[dartx.length]) - dart.notNull(delta);
|
| list[dartx.setRange](start, insertEnd, iterable);
|
| if (delta != 0) {
|
| list[dartx.setRange](insertEnd, newEnd, list, end);
|
| - list.length = newEnd;
|
| + list[dartx.length] = newEnd;
|
| }
|
| } else {
|
| let delta = dart.notNull(insertLength) - dart.notNull(removeLength);
|
| - let newLength = dart.notNull(list.length) + dart.notNull(delta);
|
| + let newLength = dart.notNull(list[dartx.length]) + dart.notNull(delta);
|
| let insertEnd = dart.notNull(start) + dart.notNull(insertLength);
|
| - list.length = newLength;
|
| + list[dartx.length] = newLength;
|
| list[dartx.setRange](insertEnd, newLength, list, end);
|
| list[dartx.setRange](start, insertEnd, iterable);
|
| }
|
| @@ -1432,13 +1432,13 @@ dart.library('dart/_internal', null, /* Imports */[
|
| }
|
| }
|
| static insertAllList(list, index, iterable) {
|
| - core.RangeError.checkValueInInterval(index, 0, list.length, "index");
|
| + core.RangeError.checkValueInInterval(index, 0, list[dartx.length], "index");
|
| if (!dart.is(iterable, EfficientLength)) {
|
| iterable = iterable[dartx.toList]({growable: false});
|
| }
|
| - let insertionLength = iterable.length;
|
| - list.length = dart.notNull(list.length) + dart.notNull(insertionLength);
|
| - list[dartx.setRange](dart.notNull(index) + dart.notNull(insertionLength), list.length, list, index);
|
| + let insertionLength = iterable[dartx.length];
|
| + list[dartx.length] = dart.notNull(list[dartx.length]) + dart.notNull(insertionLength);
|
| + list[dartx.setRange](dart.notNull(index) + dart.notNull(insertionLength), list[dartx.length], list, index);
|
| for (let element of iterable) {
|
| list[dartx.set]((() => {
|
| let x = index;
|
| @@ -1448,7 +1448,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| }
|
| }
|
| static setAllList(list, index, iterable) {
|
| - core.RangeError.checkValueInInterval(index, 0, list.length, "index");
|
| + core.RangeError.checkValueInInterval(index, 0, list[dartx.length], "index");
|
| for (let element of iterable) {
|
| list[dartx.set]((() => {
|
| let x = index;
|
| @@ -1802,7 +1802,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| super.ListIterable();
|
| }
|
| get length() {
|
| - return this[_backedList].length;
|
| + return this[_backedList][dartx.length];
|
| }
|
| elementAt(index) {
|
| core.RangeError.checkValidIndex(index, this);
|
| @@ -1824,7 +1824,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| return dart.notNull(this.containsKey(key)) ? this[_values][dartx.get](dart.as(key, core.int)) : null;
|
| }
|
| get length() {
|
| - return this[_values].length;
|
| + return this[_values][dartx.length];
|
| }
|
| get values() {
|
| return new (SubListIterable$(E))(this[_values], 0, null);
|
| @@ -1846,10 +1846,10 @@ dart.library('dart/_internal', null, /* Imports */[
|
| }
|
| forEach(f) {
|
| dart.as(f, dart.functionType(dart.void, [core.int, E]));
|
| - let length = this[_values].length;
|
| + let length = this[_values][dartx.length];
|
| for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull(i) + 1) {
|
| f(i, this[_values][dartx.get](i));
|
| - if (length != this[_values].length) {
|
| + if (length != this[_values][dartx.length]) {
|
| throw new core.ConcurrentModificationError(this[_values]);
|
| }
|
| }
|
| @@ -1901,10 +1901,10 @@ dart.library('dart/_internal', null, /* Imports */[
|
| super.ListIterable();
|
| }
|
| get length() {
|
| - return this[_source].length;
|
| + return this[_source][dartx.length];
|
| }
|
| elementAt(index) {
|
| - return this[_source][dartx.elementAt](dart.notNull(this[_source].length) - 1 - dart.notNull(index));
|
| + return this[_source][dartx.elementAt](dart.notNull(this[_source][dartx.length]) - 1 - dart.notNull(index));
|
| }
|
| }
|
| dart.setSignature(ReversedListIterable, {
|
| @@ -1979,7 +1979,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| return true;
|
| if (!dart.is(b, core.List))
|
| return false;
|
| - let length = a.length;
|
| + let length = a[dartx.length];
|
| if (!dart.equals(length, dart.dload(b, 'length')))
|
| return false;
|
| for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull(i) + 1) {
|
| @@ -1989,7 +1989,7 @@ dart.library('dart/_internal', null, /* Imports */[
|
| return true;
|
| }
|
| static indexOf(a, element, startIndex, endIndex) {
|
| - if (dart.notNull(startIndex) >= dart.notNull(a.length)) {
|
| + if (dart.notNull(startIndex) >= dart.notNull(a[dartx.length])) {
|
| return -1;
|
| }
|
| if (dart.notNull(startIndex) < 0) {
|
| @@ -2006,8 +2006,8 @@ dart.library('dart/_internal', null, /* Imports */[
|
| if (dart.notNull(startIndex) < 0) {
|
| return -1;
|
| }
|
| - if (dart.notNull(startIndex) >= dart.notNull(a.length)) {
|
| - startIndex = dart.notNull(a.length) - 1;
|
| + if (dart.notNull(startIndex) >= dart.notNull(a[dartx.length])) {
|
| + startIndex = dart.notNull(a[dartx.length]) - 1;
|
| }
|
| for (let i = startIndex; dart.notNull(i) >= 0; i = dart.notNull(i) - 1) {
|
| if (dart.equals(a[dartx.get](i), element)) {
|
| @@ -2017,14 +2017,14 @@ dart.library('dart/_internal', null, /* Imports */[
|
| return -1;
|
| }
|
| static indicesCheck(a, start, end) {
|
| - core.RangeError.checkValidRange(start, end, a.length);
|
| + core.RangeError.checkValidRange(start, end, a[dartx.length]);
|
| }
|
| static rangeCheck(a, start, length) {
|
| core.RangeError.checkNotNegative(length);
|
| core.RangeError.checkNotNegative(start);
|
| - if (dart.notNull(start) + dart.notNull(length) > dart.notNull(a.length)) {
|
| - let message = `${start} + ${length} must be in the range [0..${a.length}]`;
|
| - throw new core.RangeError.range(length, 0, dart.notNull(a.length) - dart.notNull(start), "length", message);
|
| + if (dart.notNull(start) + dart.notNull(length) > dart.notNull(a[dartx.length])) {
|
| + let message = `${start} + ${length} must be in the range [0..${a[dartx.length]}]`;
|
| + throw new core.RangeError.range(length, 0, dart.notNull(a[dartx.length]) - dart.notNull(start), "length", message);
|
| }
|
| }
|
| }
|
| @@ -2046,10 +2046,10 @@ dart.library('dart/_internal', null, /* Imports */[
|
| dart.fn(printToConsole, dart.void, [core.String]);
|
| class Sort extends core.Object {
|
| static sort(a, compare) {
|
| - Sort._doSort(a, 0, dart.notNull(a.length) - 1, compare);
|
| + Sort._doSort(a, 0, dart.notNull(a[dartx.length]) - 1, compare);
|
| }
|
| static sortRange(a, from, to, compare) {
|
| - if (dart.notNull(from) < 0 || dart.notNull(to) > dart.notNull(a.length) || dart.notNull(to) < dart.notNull(from)) {
|
| + if (dart.notNull(from) < 0 || dart.notNull(to) > dart.notNull(a[dartx.length]) || dart.notNull(to) < dart.notNull(from)) {
|
| throw "OutOfRange";
|
| }
|
| Sort._doSort(a, from, dart.notNull(to) - 1, compare);
|
|
|