| OLD | NEW |
| 1 dart.library('dart/core', null, /* Imports */[ | 1 dart.library('dart/core', null, /* Imports */[ |
| 2 ], /* Lazy imports */[ | 2 ], /* Lazy imports */[ |
| 3 'dart/_js_helper', | 3 'dart/_js_helper', |
| 4 'dart/_internal', | 4 'dart/_internal', |
| 5 'dart/collection', | 5 'dart/collection', |
| 6 'dart/_interceptors', | 6 'dart/_interceptors', |
| 7 'dart/convert' | 7 'dart/convert' |
| 8 ], function(exports, _js_helper, _internal, collection, _interceptors, convert)
{ | 8 ], function(exports, _js_helper, _internal, collection, _interceptors, convert)
{ |
| 9 'use strict'; | 9 'use strict'; |
| 10 class Object { | 10 class Object { |
| (...skipping 870 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 881 this[_memberName] = memberName; | 881 this[_memberName] = memberName; |
| 882 this[_arguments] = positionalArguments; | 882 this[_arguments] = positionalArguments; |
| 883 this[_namedArguments] = namedArguments; | 883 this[_namedArguments] = namedArguments; |
| 884 this[_existingArgumentNames] = existingArgumentNames; | 884 this[_existingArgumentNames] = existingArgumentNames; |
| 885 super.Error(); | 885 super.Error(); |
| 886 } | 886 } |
| 887 toString() { | 887 toString() { |
| 888 let sb = new StringBuffer(); | 888 let sb = new StringBuffer(); |
| 889 let i = 0; | 889 let i = 0; |
| 890 if (this[_arguments] != null) { | 890 if (this[_arguments] != null) { |
| 891 for (; dart.notNull(i) < dart.notNull(this[_arguments].length); i = dart
.notNull(i) + 1) { | 891 for (; dart.notNull(i) < dart.notNull(this[_arguments][dartx.length]); i
= dart.notNull(i) + 1) { |
| 892 if (dart.notNull(i) > 0) { | 892 if (dart.notNull(i) > 0) { |
| 893 sb.write(", "); | 893 sb.write(", "); |
| 894 } | 894 } |
| 895 sb.write(Error.safeToString(this[_arguments][dartx.get](i))); | 895 sb.write(Error.safeToString(this[_arguments][dartx.get](i))); |
| 896 } | 896 } |
| 897 } | 897 } |
| 898 if (this[_namedArguments] != null) { | 898 if (this[_namedArguments] != null) { |
| 899 this[_namedArguments].forEach(dart.fn((key, value) => { | 899 this[_namedArguments].forEach(dart.fn((key, value) => { |
| 900 if (dart.notNull(i) > 0) { | 900 if (dart.notNull(i) > 0) { |
| 901 sb.write(", "); | 901 sb.write(", "); |
| 902 } | 902 } |
| 903 sb.write(_symbolToString(key)); | 903 sb.write(_symbolToString(key)); |
| 904 sb.write(": "); | 904 sb.write(": "); |
| 905 sb.write(Error.safeToString(value)); | 905 sb.write(Error.safeToString(value)); |
| 906 i = dart.notNull(i) + 1; | 906 i = dart.notNull(i) + 1; |
| 907 }, Object, [Symbol, Object])); | 907 }, Object, [Symbol, Object])); |
| 908 } | 908 } |
| 909 if (this[_existingArgumentNames] == null) { | 909 if (this[_existingArgumentNames] == null) { |
| 910 return `NoSuchMethodError : method not found: '${this[_memberName]}'\n`
+ `Receiver: ${Error.safeToString(this[_receiver])}\n` + `Arguments: [${sb}]`; | 910 return `NoSuchMethodError : method not found: '${this[_memberName]}'\n`
+ `Receiver: ${Error.safeToString(this[_receiver])}\n` + `Arguments: [${sb}]`; |
| 911 } else { | 911 } else { |
| 912 let actualParameters = dart.toString(sb); | 912 let actualParameters = dart.toString(sb); |
| 913 sb = new StringBuffer(); | 913 sb = new StringBuffer(); |
| 914 for (let i = 0; dart.notNull(i) < dart.notNull(this[_existingArgumentNam
es].length); i = dart.notNull(i) + 1) { | 914 for (let i = 0; dart.notNull(i) < dart.notNull(this[_existingArgumentNam
es][dartx.length]); i = dart.notNull(i) + 1) { |
| 915 if (dart.notNull(i) > 0) { | 915 if (dart.notNull(i) > 0) { |
| 916 sb.write(", "); | 916 sb.write(", "); |
| 917 } | 917 } |
| 918 sb.write(this[_existingArgumentNames][dartx.get](i)); | 918 sb.write(this[_existingArgumentNames][dartx.get](i)); |
| 919 } | 919 } |
| 920 let formalParameters = dart.toString(sb); | 920 let formalParameters = dart.toString(sb); |
| 921 return "NoSuchMethodError: incorrect number of arguments passed to " + `
method named '${this[_memberName]}'\n` + `Receiver: ${Error.safeToString(this[_r
eceiver])}\n` + `Tried calling: ${this[_memberName]}(${actualParameters})\n` + `
Found: ${this[_memberName]}(${formalParameters})`; | 921 return "NoSuchMethodError: incorrect number of arguments passed to " + `
method named '${this[_memberName]}'\n` + `Receiver: ${Error.safeToString(this[_r
eceiver])}\n` + `Tried calling: ${this[_memberName]}(${actualParameters})\n` + `
Found: ${this[_memberName]}(${formalParameters})`; |
| 922 } | 922 } |
| 923 } | 923 } |
| 924 } | 924 } |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1071 if (offset != -1) { | 1071 if (offset != -1) { |
| 1072 report = dart.notNull(report) + ` (at offset ${offset})`; | 1072 report = dart.notNull(report) + ` (at offset ${offset})`; |
| 1073 } | 1073 } |
| 1074 return report; | 1074 return report; |
| 1075 } | 1075 } |
| 1076 if (offset != -1 && (dart.notNull(offset) < 0 || dart.notNull(offset) > da
rt.notNull(dart.as(dart.dload(this.source, 'length'), num)))) { | 1076 if (offset != -1 && (dart.notNull(offset) < 0 || dart.notNull(offset) > da
rt.notNull(dart.as(dart.dload(this.source, 'length'), num)))) { |
| 1077 offset = -1; | 1077 offset = -1; |
| 1078 } | 1078 } |
| 1079 if (offset == -1) { | 1079 if (offset == -1) { |
| 1080 let source = dart.as(this.source, String); | 1080 let source = dart.as(this.source, String); |
| 1081 if (dart.notNull(source.length) > 78) { | 1081 if (dart.notNull(source[dartx.length]) > 78) { |
| 1082 source = dart.notNull(source[dartx.substring](0, 75)) + "..."; | 1082 source = dart.notNull(source[dartx.substring](0, 75)) + "..."; |
| 1083 } | 1083 } |
| 1084 return `${report}\n${source}`; | 1084 return `${report}\n${source}`; |
| 1085 } | 1085 } |
| 1086 let lineNum = 1; | 1086 let lineNum = 1; |
| 1087 let lineStart = 0; | 1087 let lineStart = 0; |
| 1088 let lastWasCR = null; | 1088 let lastWasCR = null; |
| 1089 for (let i = 0; dart.notNull(i) < dart.notNull(offset); i = dart.notNull(i
) + 1) { | 1089 for (let i = 0; dart.notNull(i) < dart.notNull(offset); i = dart.notNull(i
) + 1) { |
| 1090 let char = dart.as(dart.dsend(this.source, 'codeUnitAt', i), int); | 1090 let char = dart.as(dart.dsend(this.source, 'codeUnitAt', i), int); |
| 1091 if (char == 10) { | 1091 if (char == 10) { |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1126 } else if (dart.notNull(end) - dart.notNull(offset) < 75) { | 1126 } else if (dart.notNull(end) - dart.notNull(offset) < 75) { |
| 1127 start = dart.notNull(end) - 75; | 1127 start = dart.notNull(end) - 75; |
| 1128 prefix = "..."; | 1128 prefix = "..."; |
| 1129 } else { | 1129 } else { |
| 1130 start = dart.notNull(offset) - 36; | 1130 start = dart.notNull(offset) - 36; |
| 1131 end = dart.notNull(offset) + 36; | 1131 end = dart.notNull(offset) + 36; |
| 1132 prefix = postfix = "..."; | 1132 prefix = postfix = "..."; |
| 1133 } | 1133 } |
| 1134 } | 1134 } |
| 1135 let slice = dart.as(dart.dsend(this.source, 'substring', start, end), Stri
ng); | 1135 let slice = dart.as(dart.dsend(this.source, 'substring', start, end), Stri
ng); |
| 1136 let markOffset = dart.notNull(offset) - dart.notNull(start) + dart.notNull
(prefix.length); | 1136 let markOffset = dart.notNull(offset) - dart.notNull(start) + dart.notNull
(prefix[dartx.length]); |
| 1137 return `${report}${prefix}${slice}${postfix}\n${" "[dartx['*']](markOffset
)}^\n`; | 1137 return `${report}${prefix}${slice}${postfix}\n${" "[dartx['*']](markOffset
)}^\n`; |
| 1138 } | 1138 } |
| 1139 } | 1139 } |
| 1140 FormatException[dart.implements] = () => [Exception]; | 1140 FormatException[dart.implements] = () => [Exception]; |
| 1141 dart.setSignature(FormatException, { | 1141 dart.setSignature(FormatException, { |
| 1142 constructors: () => ({FormatException: [FormatException, [], [String, Object
, int]]}) | 1142 constructors: () => ({FormatException: [FormatException, [], [String, Object
, int]]}) |
| 1143 }); | 1143 }); |
| 1144 class IntegerDivisionByZeroException extends Object { | 1144 class IntegerDivisionByZeroException extends Object { |
| 1145 IntegerDivisionByZeroException() { | 1145 IntegerDivisionByZeroException() { |
| 1146 } | 1146 } |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1408 if (!(typeof length == 'number') || dart.notNull(length) < 0) { | 1408 if (!(typeof length == 'number') || dart.notNull(length) < 0) { |
| 1409 throw new ArgumentError(`Length must be a non-negative integer: ${le
ngth}`); | 1409 throw new ArgumentError(`Length must be a non-negative integer: ${le
ngth}`); |
| 1410 } | 1410 } |
| 1411 list = _interceptors.JSArray.markFixedList(dart.as(new Array(length),
List$())); | 1411 list = _interceptors.JSArray.markFixedList(dart.as(new Array(length),
List$())); |
| 1412 } | 1412 } |
| 1413 return _interceptors.JSArray$(E).typed(list); | 1413 return _interceptors.JSArray$(E).typed(list); |
| 1414 } | 1414 } |
| 1415 static filled(length, fill) { | 1415 static filled(length, fill) { |
| 1416 let result = List$(E).new(length); | 1416 let result = List$(E).new(length); |
| 1417 if (length != 0 && fill != null) { | 1417 if (length != 0 && fill != null) { |
| 1418 for (let i = 0; dart.notNull(i) < dart.notNull(result.length); i = dar
t.notNull(i) + 1) { | 1418 for (let i = 0; dart.notNull(i) < dart.notNull(result[dartx.length]);
i = dart.notNull(i) + 1) { |
| 1419 result[dartx.set](i, fill); | 1419 result[dartx.set](i, fill); |
| 1420 } | 1420 } |
| 1421 } | 1421 } |
| 1422 return result; | 1422 return result; |
| 1423 } | 1423 } |
| 1424 static from(elements, opts) { | 1424 static from(elements, opts) { |
| 1425 let growable = opts && 'growable' in opts ? opts.growable : true; | 1425 let growable = opts && 'growable' in opts ? opts.growable : true; |
| 1426 let list = List$(E).new(); | 1426 let list = List$(E).new(); |
| 1427 for (let e of elements) { | 1427 for (let e of elements) { |
| 1428 list[dartx.add](dart.as(e, E)); | 1428 list[dartx.add](dart.as(e, E)); |
| 1429 } | 1429 } |
| 1430 if (dart.notNull(growable)) | 1430 if (dart.notNull(growable)) |
| 1431 return list; | 1431 return list; |
| 1432 return dart.as(_internal.makeListFixedLength(list), List$(E)); | 1432 return dart.as(_internal.makeListFixedLength(list), List$(E)); |
| 1433 } | 1433 } |
| 1434 static generate(length, generator, opts) { | 1434 static generate(length, generator, opts) { |
| 1435 let growable = opts && 'growable' in opts ? opts.growable : true; | 1435 let growable = opts && 'growable' in opts ? opts.growable : true; |
| 1436 let result = null; | 1436 let result = null; |
| 1437 if (dart.notNull(growable)) { | 1437 if (dart.notNull(growable)) { |
| 1438 result = dart.list([], E); | 1438 result = dart.list([], E); |
| 1439 result.length = length; | 1439 result[dartx.length] = length; |
| 1440 } else { | 1440 } else { |
| 1441 result = List$(E).new(length); | 1441 result = List$(E).new(length); |
| 1442 } | 1442 } |
| 1443 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { | 1443 for (let i = 0; dart.notNull(i) < dart.notNull(length); i = dart.notNull
(i) + 1) { |
| 1444 result[dartx.set](i, generator(i)); | 1444 result[dartx.set](i, generator(i)); |
| 1445 } | 1445 } |
| 1446 return result; | 1446 return result; |
| 1447 } | 1447 } |
| 1448 [dart.JsSymbol.iterator]() { | 1448 [dart.JsSymbol.iterator]() { |
| 1449 return new dart.JsIterator(this[dartx.iterator]); | 1449 return new dart.JsIterator(this[dartx.iterator]); |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1630 class String extends Object { | 1630 class String extends Object { |
| 1631 static fromCharCodes(charCodes, start, end) { | 1631 static fromCharCodes(charCodes, start, end) { |
| 1632 if (start === void 0) | 1632 if (start === void 0) |
| 1633 start = 0; | 1633 start = 0; |
| 1634 if (end === void 0) | 1634 if (end === void 0) |
| 1635 end = null; | 1635 end = null; |
| 1636 if (!dart.is(charCodes, _interceptors.JSArray)) { | 1636 if (!dart.is(charCodes, _interceptors.JSArray)) { |
| 1637 return String._stringFromIterable(charCodes, start, end); | 1637 return String._stringFromIterable(charCodes, start, end); |
| 1638 } | 1638 } |
| 1639 let list = dart.as(charCodes, List); | 1639 let list = dart.as(charCodes, List); |
| 1640 let len = list.length; | 1640 let len = list[dartx.length]; |
| 1641 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(len)) { | 1641 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(len)) { |
| 1642 throw new RangeError.range(start, 0, len); | 1642 throw new RangeError.range(start, 0, len); |
| 1643 } | 1643 } |
| 1644 if (end == null) { | 1644 if (end == null) { |
| 1645 end = len; | 1645 end = len; |
| 1646 } else if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) >
dart.notNull(len)) { | 1646 } else if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) >
dart.notNull(len)) { |
| 1647 throw new RangeError.range(end, start, len); | 1647 throw new RangeError.range(end, start, len); |
| 1648 } | 1648 } |
| 1649 if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(len)) { | 1649 if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(len)) { |
| 1650 list = list[dartx.sublist](start, end); | 1650 list = list[dartx.sublist](start, end); |
| 1651 } | 1651 } |
| 1652 return _js_helper.Primitives.stringFromCharCodes(list); | 1652 return _js_helper.Primitives.stringFromCharCodes(list); |
| 1653 } | 1653 } |
| 1654 static fromCharCode(charCode) { | 1654 static fromCharCode(charCode) { |
| 1655 return _js_helper.Primitives.stringFromCharCode(charCode); | 1655 return _js_helper.Primitives.stringFromCharCode(charCode); |
| 1656 } | 1656 } |
| 1657 static fromEnvironment(name, opts) { | 1657 static fromEnvironment(name, opts) { |
| 1658 let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : nu
ll; | 1658 let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : nu
ll; |
| 1659 throw new UnsupportedError('String.fromEnvironment can only be used as a c
onst constructor'); | 1659 throw new UnsupportedError('String.fromEnvironment can only be used as a c
onst constructor'); |
| 1660 } | 1660 } |
| 1661 static _stringFromIterable(charCodes, start, end) { | 1661 static _stringFromIterable(charCodes, start, end) { |
| 1662 if (dart.notNull(start) < 0) | 1662 if (dart.notNull(start) < 0) |
| 1663 throw new RangeError.range(start, 0, charCodes.length); | 1663 throw new RangeError.range(start, 0, charCodes[dartx.length]); |
| 1664 if (end != null && dart.notNull(end) < dart.notNull(start)) { | 1664 if (end != null && dart.notNull(end) < dart.notNull(start)) { |
| 1665 throw new RangeError.range(end, start, charCodes.length); | 1665 throw new RangeError.range(end, start, charCodes[dartx.length]); |
| 1666 } | 1666 } |
| 1667 let it = charCodes[dartx.iterator]; | 1667 let it = charCodes[dartx.iterator]; |
| 1668 for (let i = 0; dart.notNull(i) < dart.notNull(start); i = dart.notNull(i)
+ 1) { | 1668 for (let i = 0; dart.notNull(i) < dart.notNull(start); i = dart.notNull(i)
+ 1) { |
| 1669 if (!dart.notNull(it.moveNext())) { | 1669 if (!dart.notNull(it.moveNext())) { |
| 1670 throw new RangeError.range(start, 0, i); | 1670 throw new RangeError.range(start, 0, i); |
| 1671 } | 1671 } |
| 1672 } | 1672 } |
| 1673 let list = []; | 1673 let list = []; |
| 1674 if (end == null) { | 1674 if (end == null) { |
| 1675 while (dart.notNull(it.moveNext())) | 1675 while (dart.notNull(it.moveNext())) |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1699 get Runes() { | 1699 get Runes() { |
| 1700 class Runes extends collection.IterableBase$(int) { | 1700 class Runes extends collection.IterableBase$(int) { |
| 1701 Runes(string) { | 1701 Runes(string) { |
| 1702 this.string = string; | 1702 this.string = string; |
| 1703 super.IterableBase(); | 1703 super.IterableBase(); |
| 1704 } | 1704 } |
| 1705 get iterator() { | 1705 get iterator() { |
| 1706 return new RuneIterator(this.string); | 1706 return new RuneIterator(this.string); |
| 1707 } | 1707 } |
| 1708 get last() { | 1708 get last() { |
| 1709 if (this.string.length == 0) { | 1709 if (this.string[dartx.length] == 0) { |
| 1710 throw new StateError('No elements.'); | 1710 throw new StateError('No elements.'); |
| 1711 } | 1711 } |
| 1712 let length = this.string.length; | 1712 let length = this.string[dartx.length]; |
| 1713 let code = this.string[dartx.codeUnitAt](dart.notNull(length) - 1); | 1713 let code = this.string[dartx.codeUnitAt](dart.notNull(length) - 1); |
| 1714 if (dart.notNull(_isTrailSurrogate(code)) && dart.notNull(this.string.
length) > 1) { | 1714 if (dart.notNull(_isTrailSurrogate(code)) && dart.notNull(this.string[
dartx.length]) > 1) { |
| 1715 let previousCode = this.string[dartx.codeUnitAt](dart.notNull(length
) - 2); | 1715 let previousCode = this.string[dartx.codeUnitAt](dart.notNull(length
) - 2); |
| 1716 if (dart.notNull(_isLeadSurrogate(previousCode))) { | 1716 if (dart.notNull(_isLeadSurrogate(previousCode))) { |
| 1717 return _combineSurrogatePair(previousCode, code); | 1717 return _combineSurrogatePair(previousCode, code); |
| 1718 } | 1718 } |
| 1719 } | 1719 } |
| 1720 return code; | 1720 return code; |
| 1721 } | 1721 } |
| 1722 } | 1722 } |
| 1723 dart.setSignature(Runes, { | 1723 dart.setSignature(Runes, { |
| 1724 constructors: () => ({Runes: [exports.Runes, [String]]}) | 1724 constructors: () => ({Runes: [exports.Runes, [String]]}) |
| (...skipping 23 matching lines...) Expand all Loading... |
| 1748 this.string = string; | 1748 this.string = string; |
| 1749 this[_position] = 0; | 1749 this[_position] = 0; |
| 1750 this[_nextPosition] = 0; | 1750 this[_nextPosition] = 0; |
| 1751 this[_currentCodePoint] = null; | 1751 this[_currentCodePoint] = null; |
| 1752 } | 1752 } |
| 1753 at(string, index) { | 1753 at(string, index) { |
| 1754 this.string = string; | 1754 this.string = string; |
| 1755 this[_position] = index; | 1755 this[_position] = index; |
| 1756 this[_nextPosition] = index; | 1756 this[_nextPosition] = index; |
| 1757 this[_currentCodePoint] = null; | 1757 this[_currentCodePoint] = null; |
| 1758 RangeError.checkValueInInterval(index, 0, string.length); | 1758 RangeError.checkValueInInterval(index, 0, string[dartx.length]); |
| 1759 this[_checkSplitSurrogate](index); | 1759 this[_checkSplitSurrogate](index); |
| 1760 } | 1760 } |
| 1761 [_checkSplitSurrogate](index) { | 1761 [_checkSplitSurrogate](index) { |
| 1762 if (dart.notNull(index) > 0 && dart.notNull(index) < dart.notNull(this.str
ing.length) && dart.notNull(_isLeadSurrogate(this.string[dartx.codeUnitAt](dart.
notNull(index) - 1))) && dart.notNull(_isTrailSurrogate(this.string[dartx.codeUn
itAt](index)))) { | 1762 if (dart.notNull(index) > 0 && dart.notNull(index) < dart.notNull(this.str
ing[dartx.length]) && dart.notNull(_isLeadSurrogate(this.string[dartx.codeUnitAt
](dart.notNull(index) - 1))) && dart.notNull(_isTrailSurrogate(this.string[dartx
.codeUnitAt](index)))) { |
| 1763 throw new ArgumentError(`Index inside surrogate pair: ${index}`); | 1763 throw new ArgumentError(`Index inside surrogate pair: ${index}`); |
| 1764 } | 1764 } |
| 1765 } | 1765 } |
| 1766 get rawIndex() { | 1766 get rawIndex() { |
| 1767 return this[_position] != this[_nextPosition] ? this[_position] : null; | 1767 return this[_position] != this[_nextPosition] ? this[_position] : null; |
| 1768 } | 1768 } |
| 1769 set rawIndex(rawIndex) { | 1769 set rawIndex(rawIndex) { |
| 1770 RangeError.checkValidIndex(rawIndex, this.string, "rawIndex"); | 1770 RangeError.checkValidIndex(rawIndex, this.string, "rawIndex"); |
| 1771 this.reset(rawIndex); | 1771 this.reset(rawIndex); |
| 1772 this.moveNext(); | 1772 this.moveNext(); |
| 1773 } | 1773 } |
| 1774 reset(rawIndex) { | 1774 reset(rawIndex) { |
| 1775 if (rawIndex === void 0) | 1775 if (rawIndex === void 0) |
| 1776 rawIndex = 0; | 1776 rawIndex = 0; |
| 1777 RangeError.checkValueInInterval(rawIndex, 0, this.string.length, "rawIndex
"); | 1777 RangeError.checkValueInInterval(rawIndex, 0, this.string[dartx.length], "r
awIndex"); |
| 1778 this[_checkSplitSurrogate](rawIndex); | 1778 this[_checkSplitSurrogate](rawIndex); |
| 1779 this[_position] = this[_nextPosition] = rawIndex; | 1779 this[_position] = this[_nextPosition] = rawIndex; |
| 1780 this[_currentCodePoint] = null; | 1780 this[_currentCodePoint] = null; |
| 1781 } | 1781 } |
| 1782 get current() { | 1782 get current() { |
| 1783 return this[_currentCodePoint]; | 1783 return this[_currentCodePoint]; |
| 1784 } | 1784 } |
| 1785 get currentSize() { | 1785 get currentSize() { |
| 1786 return dart.notNull(this[_nextPosition]) - dart.notNull(this[_position]); | 1786 return dart.notNull(this[_nextPosition]) - dart.notNull(this[_position]); |
| 1787 } | 1787 } |
| 1788 get currentAsString() { | 1788 get currentAsString() { |
| 1789 if (this[_position] == this[_nextPosition]) | 1789 if (this[_position] == this[_nextPosition]) |
| 1790 return null; | 1790 return null; |
| 1791 if (dart.notNull(this[_position]) + 1 == this[_nextPosition]) | 1791 if (dart.notNull(this[_position]) + 1 == this[_nextPosition]) |
| 1792 return this.string[dartx.get](this[_position]); | 1792 return this.string[dartx.get](this[_position]); |
| 1793 return this.string[dartx.substring](this[_position], this[_nextPosition]); | 1793 return this.string[dartx.substring](this[_position], this[_nextPosition]); |
| 1794 } | 1794 } |
| 1795 moveNext() { | 1795 moveNext() { |
| 1796 this[_position] = this[_nextPosition]; | 1796 this[_position] = this[_nextPosition]; |
| 1797 if (this[_position] == this.string.length) { | 1797 if (this[_position] == this.string[dartx.length]) { |
| 1798 this[_currentCodePoint] = null; | 1798 this[_currentCodePoint] = null; |
| 1799 return false; | 1799 return false; |
| 1800 } | 1800 } |
| 1801 let codeUnit = this.string[dartx.codeUnitAt](this[_position]); | 1801 let codeUnit = this.string[dartx.codeUnitAt](this[_position]); |
| 1802 let nextPosition = dart.notNull(this[_position]) + 1; | 1802 let nextPosition = dart.notNull(this[_position]) + 1; |
| 1803 if (dart.notNull(_isLeadSurrogate(codeUnit)) && dart.notNull(nextPosition)
< dart.notNull(this.string.length)) { | 1803 if (dart.notNull(_isLeadSurrogate(codeUnit)) && dart.notNull(nextPosition)
< dart.notNull(this.string[dartx.length])) { |
| 1804 let nextCodeUnit = this.string[dartx.codeUnitAt](nextPosition); | 1804 let nextCodeUnit = this.string[dartx.codeUnitAt](nextPosition); |
| 1805 if (dart.notNull(_isTrailSurrogate(nextCodeUnit))) { | 1805 if (dart.notNull(_isTrailSurrogate(nextCodeUnit))) { |
| 1806 this[_nextPosition] = dart.notNull(nextPosition) + 1; | 1806 this[_nextPosition] = dart.notNull(nextPosition) + 1; |
| 1807 this[_currentCodePoint] = _combineSurrogatePair(codeUnit, nextCodeUnit
); | 1807 this[_currentCodePoint] = _combineSurrogatePair(codeUnit, nextCodeUnit
); |
| 1808 return true; | 1808 return true; |
| 1809 } | 1809 } |
| 1810 } | 1810 } |
| 1811 this[_nextPosition] = nextPosition; | 1811 this[_nextPosition] = nextPosition; |
| 1812 this[_currentCodePoint] = codeUnit; | 1812 this[_currentCodePoint] = codeUnit; |
| 1813 return true; | 1813 return true; |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1849 }); | 1849 }); |
| 1850 let _contents = dart.JsSymbol('_contents'); | 1850 let _contents = dart.JsSymbol('_contents'); |
| 1851 let _writeString = dart.JsSymbol('_writeString'); | 1851 let _writeString = dart.JsSymbol('_writeString'); |
| 1852 class StringBuffer extends Object { | 1852 class StringBuffer extends Object { |
| 1853 StringBuffer(content) { | 1853 StringBuffer(content) { |
| 1854 if (content === void 0) | 1854 if (content === void 0) |
| 1855 content = ""; | 1855 content = ""; |
| 1856 this[_contents] = `${content}`; | 1856 this[_contents] = `${content}`; |
| 1857 } | 1857 } |
| 1858 get length() { | 1858 get length() { |
| 1859 return this[_contents].length; | 1859 return this[_contents][dartx.length]; |
| 1860 } | 1860 } |
| 1861 get isEmpty() { | 1861 get isEmpty() { |
| 1862 return this.length == 0; | 1862 return this.length == 0; |
| 1863 } | 1863 } |
| 1864 get isNotEmpty() { | 1864 get isNotEmpty() { |
| 1865 return !dart.notNull(this.isEmpty); | 1865 return !dart.notNull(this.isEmpty); |
| 1866 } | 1866 } |
| 1867 write(obj) { | 1867 write(obj) { |
| 1868 this[_writeString](`${obj}`); | 1868 this[_writeString](`${obj}`); |
| 1869 } | 1869 } |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1949 this[_writeAuthority](sb); | 1949 this[_writeAuthority](sb); |
| 1950 return dart.toString(sb); | 1950 return dart.toString(sb); |
| 1951 } | 1951 } |
| 1952 get userInfo() { | 1952 get userInfo() { |
| 1953 return this[_userInfo]; | 1953 return this[_userInfo]; |
| 1954 } | 1954 } |
| 1955 get host() { | 1955 get host() { |
| 1956 if (this[_host] == null) | 1956 if (this[_host] == null) |
| 1957 return ""; | 1957 return ""; |
| 1958 if (dart.notNull(this[_host][dartx.startsWith]('['))) { | 1958 if (dart.notNull(this[_host][dartx.startsWith]('['))) { |
| 1959 return this[_host][dartx.substring](1, dart.notNull(this[_host].length)
- 1); | 1959 return this[_host][dartx.substring](1, dart.notNull(this[_host][dartx.le
ngth]) - 1); |
| 1960 } | 1960 } |
| 1961 return this[_host]; | 1961 return this[_host]; |
| 1962 } | 1962 } |
| 1963 get port() { | 1963 get port() { |
| 1964 if (this[_port] == null) | 1964 if (this[_port] == null) |
| 1965 return Uri._defaultPort(this.scheme); | 1965 return Uri._defaultPort(this.scheme); |
| 1966 return this[_port]; | 1966 return this[_port]; |
| 1967 } | 1967 } |
| 1968 static _defaultPort(scheme) { | 1968 static _defaultPort(scheme) { |
| 1969 if (scheme == "http") | 1969 if (scheme == "http") |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1991 let userinfo = ""; | 1991 let userinfo = ""; |
| 1992 let host = null; | 1992 let host = null; |
| 1993 let port = null; | 1993 let port = null; |
| 1994 let path = null; | 1994 let path = null; |
| 1995 let query = null; | 1995 let query = null; |
| 1996 let fragment = null; | 1996 let fragment = null; |
| 1997 let index = 0; | 1997 let index = 0; |
| 1998 let pathStart = 0; | 1998 let pathStart = 0; |
| 1999 let char = EOI; | 1999 let char = EOI; |
| 2000 let parseAuth = () => { | 2000 let parseAuth = () => { |
| 2001 if (index == uri.length) { | 2001 if (index == uri[dartx.length]) { |
| 2002 char = EOI; | 2002 char = EOI; |
| 2003 return; | 2003 return; |
| 2004 } | 2004 } |
| 2005 let authStart = index; | 2005 let authStart = index; |
| 2006 let lastColon = -1; | 2006 let lastColon = -1; |
| 2007 let lastAt = -1; | 2007 let lastAt = -1; |
| 2008 char = uri[dartx.codeUnitAt](index); | 2008 char = uri[dartx.codeUnitAt](index); |
| 2009 while (dart.notNull(index) < dart.notNull(uri.length)) { | 2009 while (dart.notNull(index) < dart.notNull(uri[dartx.length])) { |
| 2010 char = uri[dartx.codeUnitAt](index); | 2010 char = uri[dartx.codeUnitAt](index); |
| 2011 if (char == Uri._SLASH || char == Uri._QUESTION || char == Uri._NUMBER
_SIGN) { | 2011 if (char == Uri._SLASH || char == Uri._QUESTION || char == Uri._NUMBER
_SIGN) { |
| 2012 break; | 2012 break; |
| 2013 } | 2013 } |
| 2014 if (char == Uri._AT_SIGN) { | 2014 if (char == Uri._AT_SIGN) { |
| 2015 lastAt = index; | 2015 lastAt = index; |
| 2016 lastColon = -1; | 2016 lastColon = -1; |
| 2017 } else if (char == Uri._COLON) { | 2017 } else if (char == Uri._COLON) { |
| 2018 lastColon = index; | 2018 lastColon = index; |
| 2019 } else if (char == Uri._LEFT_BRACKET) { | 2019 } else if (char == Uri._LEFT_BRACKET) { |
| 2020 lastColon = -1; | 2020 lastColon = -1; |
| 2021 let endBracket = uri[dartx.indexOf](']', dart.notNull(index) + 1); | 2021 let endBracket = uri[dartx.indexOf](']', dart.notNull(index) + 1); |
| 2022 if (endBracket == -1) { | 2022 if (endBracket == -1) { |
| 2023 index = uri.length; | 2023 index = uri[dartx.length]; |
| 2024 char = EOI; | 2024 char = EOI; |
| 2025 break; | 2025 break; |
| 2026 } else { | 2026 } else { |
| 2027 index = endBracket; | 2027 index = endBracket; |
| 2028 } | 2028 } |
| 2029 } | 2029 } |
| 2030 index = dart.notNull(index) + 1; | 2030 index = dart.notNull(index) + 1; |
| 2031 char = EOI; | 2031 char = EOI; |
| 2032 } | 2032 } |
| 2033 let hostStart = authStart; | 2033 let hostStart = authStart; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 2045 if (dart.notNull(Uri._ZERO) > dart.notNull(digit) || dart.notNull(
Uri._NINE) < dart.notNull(digit)) { | 2045 if (dart.notNull(Uri._ZERO) > dart.notNull(digit) || dart.notNull(
Uri._NINE) < dart.notNull(digit)) { |
| 2046 Uri._fail(uri, i, "Invalid port number"); | 2046 Uri._fail(uri, i, "Invalid port number"); |
| 2047 } | 2047 } |
| 2048 portNumber = dart.notNull(portNumber) * 10 + (dart.notNull(digit)
- dart.notNull(Uri._ZERO)); | 2048 portNumber = dart.notNull(portNumber) * 10 + (dart.notNull(digit)
- dart.notNull(Uri._ZERO)); |
| 2049 } | 2049 } |
| 2050 } | 2050 } |
| 2051 port = Uri._makePort(portNumber, scheme); | 2051 port = Uri._makePort(portNumber, scheme); |
| 2052 hostEnd = lastColon; | 2052 hostEnd = lastColon; |
| 2053 } | 2053 } |
| 2054 host = Uri._makeHost(uri, hostStart, hostEnd, true); | 2054 host = Uri._makeHost(uri, hostStart, hostEnd, true); |
| 2055 if (dart.notNull(index) < dart.notNull(uri.length)) { | 2055 if (dart.notNull(index) < dart.notNull(uri[dartx.length])) { |
| 2056 char = uri[dartx.codeUnitAt](index); | 2056 char = uri[dartx.codeUnitAt](index); |
| 2057 } | 2057 } |
| 2058 }; | 2058 }; |
| 2059 dart.fn(parseAuth, dart.void, []); | 2059 dart.fn(parseAuth, dart.void, []); |
| 2060 let NOT_IN_PATH = 0; | 2060 let NOT_IN_PATH = 0; |
| 2061 let IN_PATH = 1; | 2061 let IN_PATH = 1; |
| 2062 let ALLOW_AUTH = 2; | 2062 let ALLOW_AUTH = 2; |
| 2063 let state = NOT_IN_PATH; | 2063 let state = NOT_IN_PATH; |
| 2064 let i = index; | 2064 let i = index; |
| 2065 while (dart.notNull(i) < dart.notNull(uri.length)) { | 2065 while (dart.notNull(i) < dart.notNull(uri[dartx.length])) { |
| 2066 char = uri[dartx.codeUnitAt](i); | 2066 char = uri[dartx.codeUnitAt](i); |
| 2067 if (char == Uri._QUESTION || char == Uri._NUMBER_SIGN) { | 2067 if (char == Uri._QUESTION || char == Uri._NUMBER_SIGN) { |
| 2068 state = NOT_IN_PATH; | 2068 state = NOT_IN_PATH; |
| 2069 break; | 2069 break; |
| 2070 } | 2070 } |
| 2071 if (char == Uri._SLASH) { | 2071 if (char == Uri._SLASH) { |
| 2072 state = i == 0 ? ALLOW_AUTH : IN_PATH; | 2072 state = i == 0 ? ALLOW_AUTH : IN_PATH; |
| 2073 break; | 2073 break; |
| 2074 } | 2074 } |
| 2075 if (char == Uri._COLON) { | 2075 if (char == Uri._COLON) { |
| 2076 if (i == 0) | 2076 if (i == 0) |
| 2077 Uri._fail(uri, 0, "Invalid empty scheme"); | 2077 Uri._fail(uri, 0, "Invalid empty scheme"); |
| 2078 scheme = Uri._makeScheme(uri, i); | 2078 scheme = Uri._makeScheme(uri, i); |
| 2079 i = dart.notNull(i) + 1; | 2079 i = dart.notNull(i) + 1; |
| 2080 pathStart = i; | 2080 pathStart = i; |
| 2081 if (i == uri.length) { | 2081 if (i == uri[dartx.length]) { |
| 2082 char = EOI; | 2082 char = EOI; |
| 2083 state = NOT_IN_PATH; | 2083 state = NOT_IN_PATH; |
| 2084 } else { | 2084 } else { |
| 2085 char = uri[dartx.codeUnitAt](i); | 2085 char = uri[dartx.codeUnitAt](i); |
| 2086 if (char == Uri._QUESTION || char == Uri._NUMBER_SIGN) { | 2086 if (char == Uri._QUESTION || char == Uri._NUMBER_SIGN) { |
| 2087 state = NOT_IN_PATH; | 2087 state = NOT_IN_PATH; |
| 2088 } else if (char == Uri._SLASH) { | 2088 } else if (char == Uri._SLASH) { |
| 2089 state = ALLOW_AUTH; | 2089 state = ALLOW_AUTH; |
| 2090 } else { | 2090 } else { |
| 2091 state = IN_PATH; | 2091 state = IN_PATH; |
| 2092 } | 2092 } |
| 2093 } | 2093 } |
| 2094 break; | 2094 break; |
| 2095 } | 2095 } |
| 2096 i = dart.notNull(i) + 1; | 2096 i = dart.notNull(i) + 1; |
| 2097 char = EOI; | 2097 char = EOI; |
| 2098 } | 2098 } |
| 2099 index = i; | 2099 index = i; |
| 2100 if (state == ALLOW_AUTH) { | 2100 if (state == ALLOW_AUTH) { |
| 2101 dart.assert(char == Uri._SLASH); | 2101 dart.assert(char == Uri._SLASH); |
| 2102 index = dart.notNull(index) + 1; | 2102 index = dart.notNull(index) + 1; |
| 2103 if (index == uri.length) { | 2103 if (index == uri[dartx.length]) { |
| 2104 char = EOI; | 2104 char = EOI; |
| 2105 state = NOT_IN_PATH; | 2105 state = NOT_IN_PATH; |
| 2106 } else { | 2106 } else { |
| 2107 char = uri[dartx.codeUnitAt](index); | 2107 char = uri[dartx.codeUnitAt](index); |
| 2108 if (char == Uri._SLASH) { | 2108 if (char == Uri._SLASH) { |
| 2109 index = dart.notNull(index) + 1; | 2109 index = dart.notNull(index) + 1; |
| 2110 parseAuth(); | 2110 parseAuth(); |
| 2111 pathStart = index; | 2111 pathStart = index; |
| 2112 } | 2112 } |
| 2113 if (char == Uri._QUESTION || char == Uri._NUMBER_SIGN || char == EOI)
{ | 2113 if (char == Uri._QUESTION || char == Uri._NUMBER_SIGN || char == EOI)
{ |
| 2114 state = NOT_IN_PATH; | 2114 state = NOT_IN_PATH; |
| 2115 } else { | 2115 } else { |
| 2116 state = IN_PATH; | 2116 state = IN_PATH; |
| 2117 } | 2117 } |
| 2118 } | 2118 } |
| 2119 } | 2119 } |
| 2120 dart.assert(state == IN_PATH || state == NOT_IN_PATH); | 2120 dart.assert(state == IN_PATH || state == NOT_IN_PATH); |
| 2121 if (state == IN_PATH) { | 2121 if (state == IN_PATH) { |
| 2122 while ((index = dart.notNull(index) + 1) < dart.notNull(uri.length)) { | 2122 while ((index = dart.notNull(index) + 1) < dart.notNull(uri[dartx.length
])) { |
| 2123 char = uri[dartx.codeUnitAt](index); | 2123 char = uri[dartx.codeUnitAt](index); |
| 2124 if (char == Uri._QUESTION || char == Uri._NUMBER_SIGN) { | 2124 if (char == Uri._QUESTION || char == Uri._NUMBER_SIGN) { |
| 2125 break; | 2125 break; |
| 2126 } | 2126 } |
| 2127 char = EOI; | 2127 char = EOI; |
| 2128 } | 2128 } |
| 2129 state = NOT_IN_PATH; | 2129 state = NOT_IN_PATH; |
| 2130 } | 2130 } |
| 2131 dart.assert(state == NOT_IN_PATH); | 2131 dart.assert(state == NOT_IN_PATH); |
| 2132 let isFile = scheme == "file"; | 2132 let isFile = scheme == "file"; |
| 2133 let ensureLeadingSlash = host != null; | 2133 let ensureLeadingSlash = host != null; |
| 2134 path = Uri._makePath(uri, pathStart, index, null, ensureLeadingSlash, isFi
le); | 2134 path = Uri._makePath(uri, pathStart, index, null, ensureLeadingSlash, isFi
le); |
| 2135 if (char == Uri._QUESTION) { | 2135 if (char == Uri._QUESTION) { |
| 2136 let numberSignIndex = uri[dartx.indexOf]('#', dart.notNull(index) + 1); | 2136 let numberSignIndex = uri[dartx.indexOf]('#', dart.notNull(index) + 1); |
| 2137 if (dart.notNull(numberSignIndex) < 0) { | 2137 if (dart.notNull(numberSignIndex) < 0) { |
| 2138 query = Uri._makeQuery(uri, dart.notNull(index) + 1, uri.length, null)
; | 2138 query = Uri._makeQuery(uri, dart.notNull(index) + 1, uri[dartx.length]
, null); |
| 2139 } else { | 2139 } else { |
| 2140 query = Uri._makeQuery(uri, dart.notNull(index) + 1, numberSignIndex,
null); | 2140 query = Uri._makeQuery(uri, dart.notNull(index) + 1, numberSignIndex,
null); |
| 2141 fragment = Uri._makeFragment(uri, dart.notNull(numberSignIndex) + 1, u
ri.length); | 2141 fragment = Uri._makeFragment(uri, dart.notNull(numberSignIndex) + 1, u
ri[dartx.length]); |
| 2142 } | 2142 } |
| 2143 } else if (char == Uri._NUMBER_SIGN) { | 2143 } else if (char == Uri._NUMBER_SIGN) { |
| 2144 fragment = Uri._makeFragment(uri, dart.notNull(index) + 1, uri.length); | 2144 fragment = Uri._makeFragment(uri, dart.notNull(index) + 1, uri[dartx.len
gth]); |
| 2145 } | 2145 } |
| 2146 return new Uri._internal(scheme, userinfo, host, port, path, query, fragme
nt); | 2146 return new Uri._internal(scheme, userinfo, host, port, path, query, fragme
nt); |
| 2147 } | 2147 } |
| 2148 static _fail(uri, index, message) { | 2148 static _fail(uri, index, message) { |
| 2149 throw new FormatException(message, uri, index); | 2149 throw new FormatException(message, uri, index); |
| 2150 } | 2150 } |
| 2151 _internal(scheme, userInfo, host, port, path, query, fragment) { | 2151 _internal(scheme, userInfo, host, port, path, query, fragment) { |
| 2152 this.scheme = scheme; | 2152 this.scheme = scheme; |
| 2153 this[_userInfo] = userInfo; | 2153 this[_userInfo] = userInfo; |
| 2154 this[_host] = host; | 2154 this[_host] = host; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2195 queryParameters = null; | 2195 queryParameters = null; |
| 2196 return Uri._makeHttpUri("https", authority, unencodedPath, queryParameters
); | 2196 return Uri._makeHttpUri("https", authority, unencodedPath, queryParameters
); |
| 2197 } | 2197 } |
| 2198 static _makeHttpUri(scheme, authority, unencodedPath, queryParameters) { | 2198 static _makeHttpUri(scheme, authority, unencodedPath, queryParameters) { |
| 2199 let userInfo = ""; | 2199 let userInfo = ""; |
| 2200 let host = null; | 2200 let host = null; |
| 2201 let port = null; | 2201 let port = null; |
| 2202 if (authority != null && dart.notNull(authority[dartx.isNotEmpty])) { | 2202 if (authority != null && dart.notNull(authority[dartx.isNotEmpty])) { |
| 2203 let hostStart = 0; | 2203 let hostStart = 0; |
| 2204 let hasUserInfo = false; | 2204 let hasUserInfo = false; |
| 2205 for (let i = 0; dart.notNull(i) < dart.notNull(authority.length); i = da
rt.notNull(i) + 1) { | 2205 for (let i = 0; dart.notNull(i) < dart.notNull(authority[dartx.length]);
i = dart.notNull(i) + 1) { |
| 2206 if (authority[dartx.codeUnitAt](i) == Uri._AT_SIGN) { | 2206 if (authority[dartx.codeUnitAt](i) == Uri._AT_SIGN) { |
| 2207 hasUserInfo = true; | 2207 hasUserInfo = true; |
| 2208 userInfo = authority[dartx.substring](0, i); | 2208 userInfo = authority[dartx.substring](0, i); |
| 2209 hostStart = dart.notNull(i) + 1; | 2209 hostStart = dart.notNull(i) + 1; |
| 2210 break; | 2210 break; |
| 2211 } | 2211 } |
| 2212 } | 2212 } |
| 2213 let hostEnd = hostStart; | 2213 let hostEnd = hostStart; |
| 2214 if (dart.notNull(hostStart) < dart.notNull(authority.length) && authorit
y[dartx.codeUnitAt](hostStart) == Uri._LEFT_BRACKET) { | 2214 if (dart.notNull(hostStart) < dart.notNull(authority[dartx.length]) && a
uthority[dartx.codeUnitAt](hostStart) == Uri._LEFT_BRACKET) { |
| 2215 for (; dart.notNull(hostEnd) < dart.notNull(authority.length); hostEnd
= dart.notNull(hostEnd) + 1) { | 2215 for (; dart.notNull(hostEnd) < dart.notNull(authority[dartx.length]);
hostEnd = dart.notNull(hostEnd) + 1) { |
| 2216 if (authority[dartx.codeUnitAt](hostEnd) == Uri._RIGHT_BRACKET) | 2216 if (authority[dartx.codeUnitAt](hostEnd) == Uri._RIGHT_BRACKET) |
| 2217 break; | 2217 break; |
| 2218 } | 2218 } |
| 2219 if (hostEnd == authority.length) { | 2219 if (hostEnd == authority[dartx.length]) { |
| 2220 throw new FormatException("Invalid IPv6 host entry.", authority, hos
tStart); | 2220 throw new FormatException("Invalid IPv6 host entry.", authority, hos
tStart); |
| 2221 } | 2221 } |
| 2222 Uri.parseIPv6Address(authority, dart.notNull(hostStart) + 1, hostEnd); | 2222 Uri.parseIPv6Address(authority, dart.notNull(hostStart) + 1, hostEnd); |
| 2223 hostEnd = dart.notNull(hostEnd) + 1; | 2223 hostEnd = dart.notNull(hostEnd) + 1; |
| 2224 if (hostEnd != authority.length && authority[dartx.codeUnitAt](hostEnd
) != Uri._COLON) { | 2224 if (hostEnd != authority[dartx.length] && authority[dartx.codeUnitAt](
hostEnd) != Uri._COLON) { |
| 2225 throw new FormatException("Invalid end of authority", authority, hos
tEnd); | 2225 throw new FormatException("Invalid end of authority", authority, hos
tEnd); |
| 2226 } | 2226 } |
| 2227 } | 2227 } |
| 2228 let hasPort = false; | 2228 let hasPort = false; |
| 2229 for (; dart.notNull(hostEnd) < dart.notNull(authority.length); hostEnd =
dart.notNull(hostEnd) + 1) { | 2229 for (; dart.notNull(hostEnd) < dart.notNull(authority[dartx.length]); ho
stEnd = dart.notNull(hostEnd) + 1) { |
| 2230 if (authority[dartx.codeUnitAt](hostEnd) == Uri._COLON) { | 2230 if (authority[dartx.codeUnitAt](hostEnd) == Uri._COLON) { |
| 2231 let portString = authority[dartx.substring](dart.notNull(hostEnd) +
1); | 2231 let portString = authority[dartx.substring](dart.notNull(hostEnd) +
1); |
| 2232 if (dart.notNull(portString[dartx.isNotEmpty])) | 2232 if (dart.notNull(portString[dartx.isNotEmpty])) |
| 2233 port = int.parse(portString); | 2233 port = int.parse(portString); |
| 2234 break; | 2234 break; |
| 2235 } | 2235 } |
| 2236 } | 2236 } |
| 2237 host = authority[dartx.substring](hostStart, hostEnd); | 2237 host = authority[dartx.substring](hostStart, hostEnd); |
| 2238 } | 2238 } |
| 2239 return Uri.new({scheme: scheme, userInfo: userInfo, host: dart.as(host, St
ring), port: dart.as(port, int), pathSegments: unencodedPath[dartx.split]("/"),
queryParameters: queryParameters}); | 2239 return Uri.new({scheme: scheme, userInfo: userInfo, host: dart.as(host, St
ring), port: dart.as(port, int), pathSegments: unencodedPath[dartx.split]("/"),
queryParameters: queryParameters}); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2293 } else { | 2293 } else { |
| 2294 return Uri.new({pathSegments: path[dartx.split](sep)}); | 2294 return Uri.new({pathSegments: path[dartx.split](sep)}); |
| 2295 } | 2295 } |
| 2296 } | 2296 } |
| 2297 static _makeWindowsFileUrl(path) { | 2297 static _makeWindowsFileUrl(path) { |
| 2298 if (dart.notNull(path[dartx.startsWith]("\\\\?\\"))) { | 2298 if (dart.notNull(path[dartx.startsWith]("\\\\?\\"))) { |
| 2299 if (dart.notNull(path[dartx.startsWith]("\\\\?\\UNC\\"))) { | 2299 if (dart.notNull(path[dartx.startsWith]("\\\\?\\UNC\\"))) { |
| 2300 path = `\\${path[dartx.substring](7)}`; | 2300 path = `\\${path[dartx.substring](7)}`; |
| 2301 } else { | 2301 } else { |
| 2302 path = path[dartx.substring](4); | 2302 path = path[dartx.substring](4); |
| 2303 if (dart.notNull(path.length) < 3 || path[dartx.codeUnitAt](1) != Uri.
_COLON || path[dartx.codeUnitAt](2) != Uri._BACKSLASH) { | 2303 if (dart.notNull(path[dartx.length]) < 3 || path[dartx.codeUnitAt](1)
!= Uri._COLON || path[dartx.codeUnitAt](2) != Uri._BACKSLASH) { |
| 2304 throw new ArgumentError("Windows paths with \\\\?\\ prefix must be a
bsolute"); | 2304 throw new ArgumentError("Windows paths with \\\\?\\ prefix must be a
bsolute"); |
| 2305 } | 2305 } |
| 2306 } | 2306 } |
| 2307 } else { | 2307 } else { |
| 2308 path = path[dartx.replaceAll]("/", "\\"); | 2308 path = path[dartx.replaceAll]("/", "\\"); |
| 2309 } | 2309 } |
| 2310 let sep = "\\"; | 2310 let sep = "\\"; |
| 2311 if (dart.notNull(path.length) > 1 && path[dartx.get](1) == ":") { | 2311 if (dart.notNull(path[dartx.length]) > 1 && path[dartx.get](1) == ":") { |
| 2312 Uri._checkWindowsDriveLetter(path[dartx.codeUnitAt](0), true); | 2312 Uri._checkWindowsDriveLetter(path[dartx.codeUnitAt](0), true); |
| 2313 if (path.length == 2 || path[dartx.codeUnitAt](2) != Uri._BACKSLASH) { | 2313 if (path[dartx.length] == 2 || path[dartx.codeUnitAt](2) != Uri._BACKSLA
SH) { |
| 2314 throw new ArgumentError("Windows paths with drive letter must be absol
ute"); | 2314 throw new ArgumentError("Windows paths with drive letter must be absol
ute"); |
| 2315 } | 2315 } |
| 2316 let pathSegments = path[dartx.split](sep); | 2316 let pathSegments = path[dartx.split](sep); |
| 2317 Uri._checkWindowsPathReservedCharacters(pathSegments, true, 1); | 2317 Uri._checkWindowsPathReservedCharacters(pathSegments, true, 1); |
| 2318 return Uri.new({scheme: "file", pathSegments: pathSegments}); | 2318 return Uri.new({scheme: "file", pathSegments: pathSegments}); |
| 2319 } | 2319 } |
| 2320 if (dart.notNull(path.length) > 0 && path[dartx.get](0) == sep) { | 2320 if (dart.notNull(path[dartx.length]) > 0 && path[dartx.get](0) == sep) { |
| 2321 if (dart.notNull(path.length) > 1 && path[dartx.get](1) == sep) { | 2321 if (dart.notNull(path[dartx.length]) > 1 && path[dartx.get](1) == sep) { |
| 2322 let pathStart = path[dartx.indexOf]("\\", 2); | 2322 let pathStart = path[dartx.indexOf]("\\", 2); |
| 2323 let hostPart = pathStart == -1 ? path[dartx.substring](2) : path[dartx
.substring](2, pathStart); | 2323 let hostPart = pathStart == -1 ? path[dartx.substring](2) : path[dartx
.substring](2, pathStart); |
| 2324 let pathPart = pathStart == -1 ? "" : path[dartx.substring](dart.notNu
ll(pathStart) + 1); | 2324 let pathPart = pathStart == -1 ? "" : path[dartx.substring](dart.notNu
ll(pathStart) + 1); |
| 2325 let pathSegments = pathPart[dartx.split](sep); | 2325 let pathSegments = pathPart[dartx.split](sep); |
| 2326 Uri._checkWindowsPathReservedCharacters(pathSegments, true); | 2326 Uri._checkWindowsPathReservedCharacters(pathSegments, true); |
| 2327 return Uri.new({scheme: "file", host: hostPart, pathSegments: pathSegm
ents}); | 2327 return Uri.new({scheme: "file", host: hostPart, pathSegments: pathSegm
ents}); |
| 2328 } else { | 2328 } else { |
| 2329 let pathSegments = path[dartx.split](sep); | 2329 let pathSegments = path[dartx.split](sep); |
| 2330 Uri._checkWindowsPathReservedCharacters(pathSegments, true); | 2330 Uri._checkWindowsPathReservedCharacters(pathSegments, true); |
| 2331 return Uri.new({scheme: "file", pathSegments: pathSegments}); | 2331 return Uri.new({scheme: "file", pathSegments: pathSegments}); |
| 2332 } | 2332 } |
| 2333 } else { | 2333 } else { |
| 2334 let pathSegments = path[dartx.split](sep); | 2334 let pathSegments = path[dartx.split](sep); |
| 2335 Uri._checkWindowsPathReservedCharacters(pathSegments, true); | 2335 Uri._checkWindowsPathReservedCharacters(pathSegments, true); |
| 2336 return Uri.new({pathSegments: pathSegments}); | 2336 return Uri.new({pathSegments: pathSegments}); |
| 2337 } | 2337 } |
| 2338 } | 2338 } |
| 2339 replace(opts) { | 2339 replace(opts) { |
| 2340 let scheme = opts && 'scheme' in opts ? opts.scheme : null; | 2340 let scheme = opts && 'scheme' in opts ? opts.scheme : null; |
| 2341 let userInfo = opts && 'userInfo' in opts ? opts.userInfo : null; | 2341 let userInfo = opts && 'userInfo' in opts ? opts.userInfo : null; |
| 2342 let host = opts && 'host' in opts ? opts.host : null; | 2342 let host = opts && 'host' in opts ? opts.host : null; |
| 2343 let port = opts && 'port' in opts ? opts.port : null; | 2343 let port = opts && 'port' in opts ? opts.port : null; |
| 2344 let path = opts && 'path' in opts ? opts.path : null; | 2344 let path = opts && 'path' in opts ? opts.path : null; |
| 2345 let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : nu
ll; | 2345 let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : nu
ll; |
| 2346 let query = opts && 'query' in opts ? opts.query : null; | 2346 let query = opts && 'query' in opts ? opts.query : null; |
| 2347 let queryParameters = opts && 'queryParameters' in opts ? opts.queryParame
ters : null; | 2347 let queryParameters = opts && 'queryParameters' in opts ? opts.queryParame
ters : null; |
| 2348 let fragment = opts && 'fragment' in opts ? opts.fragment : null; | 2348 let fragment = opts && 'fragment' in opts ? opts.fragment : null; |
| 2349 let schemeChanged = false; | 2349 let schemeChanged = false; |
| 2350 if (scheme != null) { | 2350 if (scheme != null) { |
| 2351 scheme = Uri._makeScheme(scheme, scheme.length); | 2351 scheme = Uri._makeScheme(scheme, scheme[dartx.length]); |
| 2352 schemeChanged = true; | 2352 schemeChanged = true; |
| 2353 } else { | 2353 } else { |
| 2354 scheme = this.scheme; | 2354 scheme = this.scheme; |
| 2355 } | 2355 } |
| 2356 let isFile = scheme == "file"; | 2356 let isFile = scheme == "file"; |
| 2357 if (userInfo != null) { | 2357 if (userInfo != null) { |
| 2358 userInfo = Uri._makeUserInfo(userInfo, 0, userInfo.length); | 2358 userInfo = Uri._makeUserInfo(userInfo, 0, userInfo[dartx.length]); |
| 2359 } else { | 2359 } else { |
| 2360 userInfo = this.userInfo; | 2360 userInfo = this.userInfo; |
| 2361 } | 2361 } |
| 2362 if (port != null) { | 2362 if (port != null) { |
| 2363 port = Uri._makePort(port, scheme); | 2363 port = Uri._makePort(port, scheme); |
| 2364 } else { | 2364 } else { |
| 2365 port = this[_port]; | 2365 port = this[_port]; |
| 2366 if (dart.notNull(schemeChanged)) { | 2366 if (dart.notNull(schemeChanged)) { |
| 2367 port = Uri._makePort(port, scheme); | 2367 port = Uri._makePort(port, scheme); |
| 2368 } | 2368 } |
| 2369 } | 2369 } |
| 2370 if (host != null) { | 2370 if (host != null) { |
| 2371 host = Uri._makeHost(host, 0, host.length, false); | 2371 host = Uri._makeHost(host, 0, host[dartx.length], false); |
| 2372 } else if (dart.notNull(this.hasAuthority)) { | 2372 } else if (dart.notNull(this.hasAuthority)) { |
| 2373 host = this.host; | 2373 host = this.host; |
| 2374 } else if (dart.notNull(userInfo[dartx.isNotEmpty]) || port != null || dar
t.notNull(isFile)) { | 2374 } else if (dart.notNull(userInfo[dartx.isNotEmpty]) || port != null || dar
t.notNull(isFile)) { |
| 2375 host = ""; | 2375 host = ""; |
| 2376 } | 2376 } |
| 2377 let ensureLeadingSlash = host != null; | 2377 let ensureLeadingSlash = host != null; |
| 2378 if (path != null || pathSegments != null) { | 2378 if (path != null || pathSegments != null) { |
| 2379 path = Uri._makePath(path, 0, Uri._stringOrNullLength(path), pathSegment
s, ensureLeadingSlash, isFile); | 2379 path = Uri._makePath(path, 0, Uri._stringOrNullLength(path), pathSegment
s, ensureLeadingSlash, isFile); |
| 2380 } else { | 2380 } else { |
| 2381 path = this.path; | 2381 path = this.path; |
| 2382 if ((dart.notNull(isFile) || dart.notNull(ensureLeadingSlash) && !dart.n
otNull(path[dartx.isEmpty])) && !dart.notNull(path[dartx.startsWith]('/'))) { | 2382 if ((dart.notNull(isFile) || dart.notNull(ensureLeadingSlash) && !dart.n
otNull(path[dartx.isEmpty])) && !dart.notNull(path[dartx.startsWith]('/'))) { |
| 2383 path = `/${path}`; | 2383 path = `/${path}`; |
| 2384 } | 2384 } |
| 2385 } | 2385 } |
| 2386 if (query != null || queryParameters != null) { | 2386 if (query != null || queryParameters != null) { |
| 2387 query = Uri._makeQuery(query, 0, Uri._stringOrNullLength(query), queryPa
rameters); | 2387 query = Uri._makeQuery(query, 0, Uri._stringOrNullLength(query), queryPa
rameters); |
| 2388 } else if (dart.notNull(this.hasQuery)) { | 2388 } else if (dart.notNull(this.hasQuery)) { |
| 2389 query = this.query; | 2389 query = this.query; |
| 2390 } | 2390 } |
| 2391 if (fragment != null) { | 2391 if (fragment != null) { |
| 2392 fragment = Uri._makeFragment(fragment, 0, fragment.length); | 2392 fragment = Uri._makeFragment(fragment, 0, fragment[dartx.length]); |
| 2393 } else if (dart.notNull(this.hasFragment)) { | 2393 } else if (dart.notNull(this.hasFragment)) { |
| 2394 fragment = this.fragment; | 2394 fragment = this.fragment; |
| 2395 } | 2395 } |
| 2396 return new Uri._internal(scheme, userInfo, host, port, path, query, fragme
nt); | 2396 return new Uri._internal(scheme, userInfo, host, port, path, query, fragme
nt); |
| 2397 } | 2397 } |
| 2398 get pathSegments() { | 2398 get pathSegments() { |
| 2399 if (this[_pathSegments] == null) { | 2399 if (this[_pathSegments] == null) { |
| 2400 let pathToSplit = !dart.notNull(this.path[dartx.isEmpty]) && this.path[d
artx.codeUnitAt](0) == Uri._SLASH ? this.path[dartx.substring](1) : this.path; | 2400 let pathToSplit = !dart.notNull(this.path[dartx.isEmpty]) && this.path[d
artx.codeUnitAt](0) == Uri._SLASH ? this.path[dartx.substring](1) : this.path; |
| 2401 this[_pathSegments] = new (collection.UnmodifiableListView$(String))(pat
hToSplit == "" ? dart.const(dart.list([], String)) : List$(String).from(pathToSp
lit[dartx.split]("/")[dartx.map](Uri.decodeComponent), {growable: false})); | 2401 this[_pathSegments] = new (collection.UnmodifiableListView$(String))(pat
hToSplit == "" ? dart.const(dart.list([], String)) : List$(String).from(pathToSp
lit[dartx.split]("/")[dartx.map](Uri.decodeComponent), {growable: false})); |
| 2402 } | 2402 } |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2580 } | 2580 } |
| 2581 })); | 2581 })); |
| 2582 return dart.toString(result); | 2582 return dart.toString(result); |
| 2583 } | 2583 } |
| 2584 static _makeFragment(fragment, start, end) { | 2584 static _makeFragment(fragment, start, end) { |
| 2585 if (fragment == null) | 2585 if (fragment == null) |
| 2586 return null; | 2586 return null; |
| 2587 return Uri._normalize(fragment, start, end, dart.as(Uri._queryCharTable, L
ist$(int))); | 2587 return Uri._normalize(fragment, start, end, dart.as(Uri._queryCharTable, L
ist$(int))); |
| 2588 } | 2588 } |
| 2589 static _stringOrNullLength(s) { | 2589 static _stringOrNullLength(s) { |
| 2590 return s == null ? 0 : s.length; | 2590 return s == null ? 0 : s[dartx.length]; |
| 2591 } | 2591 } |
| 2592 static _isHexDigit(char) { | 2592 static _isHexDigit(char) { |
| 2593 if (dart.notNull(Uri._NINE) >= dart.notNull(char)) | 2593 if (dart.notNull(Uri._NINE) >= dart.notNull(char)) |
| 2594 return dart.notNull(Uri._ZERO) <= dart.notNull(char); | 2594 return dart.notNull(Uri._ZERO) <= dart.notNull(char); |
| 2595 char = dart.notNull(char) | 32; | 2595 char = dart.notNull(char) | 32; |
| 2596 return dart.notNull(Uri._LOWER_CASE_A) <= dart.notNull(char) && dart.notNu
ll(Uri._LOWER_CASE_F) >= dart.notNull(char); | 2596 return dart.notNull(Uri._LOWER_CASE_A) <= dart.notNull(char) && dart.notNu
ll(Uri._LOWER_CASE_F) >= dart.notNull(char); |
| 2597 } | 2597 } |
| 2598 static _hexValue(char) { | 2598 static _hexValue(char) { |
| 2599 dart.assert(Uri._isHexDigit(char)); | 2599 dart.assert(Uri._isHexDigit(char)); |
| 2600 if (dart.notNull(Uri._NINE) >= dart.notNull(char)) | 2600 if (dart.notNull(Uri._NINE) >= dart.notNull(char)) |
| 2601 return dart.notNull(char) - dart.notNull(Uri._ZERO); | 2601 return dart.notNull(char) - dart.notNull(Uri._ZERO); |
| 2602 char = dart.notNull(char) | 32; | 2602 char = dart.notNull(char) | 32; |
| 2603 return dart.notNull(char) - (dart.notNull(Uri._LOWER_CASE_A) - 10); | 2603 return dart.notNull(char) - (dart.notNull(Uri._LOWER_CASE_A) - 10); |
| 2604 } | 2604 } |
| 2605 static _normalizeEscape(source, index, lowerCase) { | 2605 static _normalizeEscape(source, index, lowerCase) { |
| 2606 dart.assert(source[dartx.codeUnitAt](index) == Uri._PERCENT); | 2606 dart.assert(source[dartx.codeUnitAt](index) == Uri._PERCENT); |
| 2607 if (dart.notNull(index) + 2 >= dart.notNull(source.length)) { | 2607 if (dart.notNull(index) + 2 >= dart.notNull(source[dartx.length])) { |
| 2608 return "%"; | 2608 return "%"; |
| 2609 } | 2609 } |
| 2610 let firstDigit = source[dartx.codeUnitAt](dart.notNull(index) + 1); | 2610 let firstDigit = source[dartx.codeUnitAt](dart.notNull(index) + 1); |
| 2611 let secondDigit = source[dartx.codeUnitAt](dart.notNull(index) + 2); | 2611 let secondDigit = source[dartx.codeUnitAt](dart.notNull(index) + 2); |
| 2612 if (!dart.notNull(Uri._isHexDigit(firstDigit)) || !dart.notNull(Uri._isHex
Digit(secondDigit))) { | 2612 if (!dart.notNull(Uri._isHexDigit(firstDigit)) || !dart.notNull(Uri._isHex
Digit(secondDigit))) { |
| 2613 return "%"; | 2613 return "%"; |
| 2614 } | 2614 } |
| 2615 let value = dart.notNull(Uri._hexValue(firstDigit)) * 16 + dart.notNull(Ur
i._hexValue(secondDigit)); | 2615 let value = dart.notNull(Uri._hexValue(firstDigit)) * 16 + dart.notNull(Ur
i._hexValue(secondDigit)); |
| 2616 if (dart.notNull(Uri._isUnreservedChar(value))) { | 2616 if (dart.notNull(Uri._isUnreservedChar(value))) { |
| 2617 if (dart.notNull(lowerCase) && dart.notNull(Uri._UPPER_CASE_A) <= dart.n
otNull(value) && dart.notNull(Uri._UPPER_CASE_Z) >= dart.notNull(value)) { | 2617 if (dart.notNull(lowerCase) && dart.notNull(Uri._UPPER_CASE_A) <= dart.n
otNull(value) && dart.notNull(Uri._UPPER_CASE_Z) >= dart.notNull(value)) { |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2741 let delta = dart.notNull(baseEnd) - dart.notNull(newEnd); | 2741 let delta = dart.notNull(baseEnd) - dart.notNull(newEnd); |
| 2742 if ((delta == 2 || delta == 3) && base[dartx.codeUnitAt](dart.notNull(ne
wEnd) + 1) == Uri._DOT && (delta == 2 || base[dartx.codeUnitAt](dart.notNull(new
End) + 2) == Uri._DOT)) { | 2742 if ((delta == 2 || delta == 3) && base[dartx.codeUnitAt](dart.notNull(ne
wEnd) + 1) == Uri._DOT && (delta == 2 || base[dartx.codeUnitAt](dart.notNull(new
End) + 2) == Uri._DOT)) { |
| 2743 break; | 2743 break; |
| 2744 } | 2744 } |
| 2745 baseEnd = newEnd; | 2745 baseEnd = newEnd; |
| 2746 backCount = dart.notNull(backCount) - 1; | 2746 backCount = dart.notNull(backCount) - 1; |
| 2747 } | 2747 } |
| 2748 return dart.notNull(base[dartx.substring](0, dart.notNull(baseEnd) + 1)) +
dart.notNull(reference[dartx.substring](dart.notNull(refStart) - 3 * dart.notNu
ll(backCount))); | 2748 return dart.notNull(base[dartx.substring](0, dart.notNull(baseEnd) + 1)) +
dart.notNull(reference[dartx.substring](dart.notNull(refStart) - 3 * dart.notNu
ll(backCount))); |
| 2749 } | 2749 } |
| 2750 [_hasDotSegments](path) { | 2750 [_hasDotSegments](path) { |
| 2751 if (dart.notNull(path.length) > 0 && path[dartx.codeUnitAt](0) == Uri._DOT
) | 2751 if (dart.notNull(path[dartx.length]) > 0 && path[dartx.codeUnitAt](0) == U
ri._DOT) |
| 2752 return true; | 2752 return true; |
| 2753 let index = path[dartx.indexOf]("/."); | 2753 let index = path[dartx.indexOf]("/."); |
| 2754 return index != -1; | 2754 return index != -1; |
| 2755 } | 2755 } |
| 2756 [_removeDotSegments](path) { | 2756 [_removeDotSegments](path) { |
| 2757 if (!dart.notNull(this[_hasDotSegments](path))) | 2757 if (!dart.notNull(this[_hasDotSegments](path))) |
| 2758 return path; | 2758 return path; |
| 2759 let output = dart.list([], String); | 2759 let output = dart.list([], String); |
| 2760 let appendSlash = false; | 2760 let appendSlash = false; |
| 2761 for (let segment of path[dartx.split]("/")) { | 2761 for (let segment of path[dartx.split]("/")) { |
| 2762 appendSlash = false; | 2762 appendSlash = false; |
| 2763 if (segment == "..") { | 2763 if (segment == "..") { |
| 2764 if (!dart.notNull(output[dartx.isEmpty]) && (output.length != 1 || out
put[dartx.get](0) != "")) | 2764 if (!dart.notNull(output[dartx.isEmpty]) && (output[dartx.length] != 1
|| output[dartx.get](0) != "")) |
| 2765 output[dartx.removeLast](); | 2765 output[dartx.removeLast](); |
| 2766 appendSlash = true; | 2766 appendSlash = true; |
| 2767 } else if ("." == segment) { | 2767 } else if ("." == segment) { |
| 2768 appendSlash = true; | 2768 appendSlash = true; |
| 2769 } else { | 2769 } else { |
| 2770 output[dartx.add](segment); | 2770 output[dartx.add](segment); |
| 2771 } | 2771 } |
| 2772 } | 2772 } |
| 2773 if (dart.notNull(appendSlash)) | 2773 if (dart.notNull(appendSlash)) |
| 2774 output[dartx.add](""); | 2774 output[dartx.add](""); |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2874 Uri._checkNonWindowsPathReservedCharacters(this.pathSegments, false); | 2874 Uri._checkNonWindowsPathReservedCharacters(this.pathSegments, false); |
| 2875 let result = new StringBuffer(); | 2875 let result = new StringBuffer(); |
| 2876 if (dart.notNull(this[_isPathAbsolute])) | 2876 if (dart.notNull(this[_isPathAbsolute])) |
| 2877 result.write("/"); | 2877 result.write("/"); |
| 2878 result.writeAll(this.pathSegments, "/"); | 2878 result.writeAll(this.pathSegments, "/"); |
| 2879 return dart.toString(result); | 2879 return dart.toString(result); |
| 2880 } | 2880 } |
| 2881 [_toWindowsFilePath]() { | 2881 [_toWindowsFilePath]() { |
| 2882 let hasDriveLetter = false; | 2882 let hasDriveLetter = false; |
| 2883 let segments = this.pathSegments; | 2883 let segments = this.pathSegments; |
| 2884 if (dart.notNull(segments.length) > 0 && segments[dartx.get](0).length ==
2 && segments[dartx.get](0)[dartx.codeUnitAt](1) == Uri._COLON) { | 2884 if (dart.notNull(segments[dartx.length]) > 0 && segments[dartx.get](0)[dar
tx.length] == 2 && segments[dartx.get](0)[dartx.codeUnitAt](1) == Uri._COLON) { |
| 2885 Uri._checkWindowsDriveLetter(segments[dartx.get](0)[dartx.codeUnitAt](0)
, false); | 2885 Uri._checkWindowsDriveLetter(segments[dartx.get](0)[dartx.codeUnitAt](0)
, false); |
| 2886 Uri._checkWindowsPathReservedCharacters(segments, false, 1); | 2886 Uri._checkWindowsPathReservedCharacters(segments, false, 1); |
| 2887 hasDriveLetter = true; | 2887 hasDriveLetter = true; |
| 2888 } else { | 2888 } else { |
| 2889 Uri._checkWindowsPathReservedCharacters(segments, false); | 2889 Uri._checkWindowsPathReservedCharacters(segments, false); |
| 2890 } | 2890 } |
| 2891 let result = new StringBuffer(); | 2891 let result = new StringBuffer(); |
| 2892 if (dart.notNull(this[_isPathAbsolute]) && !dart.notNull(hasDriveLetter)) | 2892 if (dart.notNull(this[_isPathAbsolute]) && !dart.notNull(hasDriveLetter)) |
| 2893 result.write("\\"); | 2893 result.write("\\"); |
| 2894 if (this.host != "") { | 2894 if (this.host != "") { |
| 2895 result.write("\\"); | 2895 result.write("\\"); |
| 2896 result.write(this.host); | 2896 result.write(this.host); |
| 2897 result.write("\\"); | 2897 result.write("\\"); |
| 2898 } | 2898 } |
| 2899 result.writeAll(segments, "\\"); | 2899 result.writeAll(segments, "\\"); |
| 2900 if (dart.notNull(hasDriveLetter) && segments.length == 1) | 2900 if (dart.notNull(hasDriveLetter) && segments[dartx.length] == 1) |
| 2901 result.write("\\"); | 2901 result.write("\\"); |
| 2902 return dart.toString(result); | 2902 return dart.toString(result); |
| 2903 } | 2903 } |
| 2904 get [_isPathAbsolute]() { | 2904 get [_isPathAbsolute]() { |
| 2905 if (this.path == null || dart.notNull(this.path[dartx.isEmpty])) | 2905 if (this.path == null || dart.notNull(this.path[dartx.isEmpty])) |
| 2906 return false; | 2906 return false; |
| 2907 return this.path[dartx.startsWith]('/'); | 2907 return this.path[dartx.startsWith]('/'); |
| 2908 } | 2908 } |
| 2909 [_writeAuthority](ss) { | 2909 [_writeAuthority](ss) { |
| 2910 if (dart.notNull(this[_userInfo][dartx.isNotEmpty])) { | 2910 if (dart.notNull(this[_userInfo][dartx.isNotEmpty])) { |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2990 } | 2990 } |
| 2991 return map; | 2991 return map; |
| 2992 })), Map$(String, String)); | 2992 })), Map$(String, String)); |
| 2993 } | 2993 } |
| 2994 static parseIPv4Address(host) { | 2994 static parseIPv4Address(host) { |
| 2995 let error = msg => { | 2995 let error = msg => { |
| 2996 throw new FormatException(`Illegal IPv4 address, ${msg}`); | 2996 throw new FormatException(`Illegal IPv4 address, ${msg}`); |
| 2997 }; | 2997 }; |
| 2998 dart.fn(error, dart.void, [String]); | 2998 dart.fn(error, dart.void, [String]); |
| 2999 let bytes = host[dartx.split]('.'); | 2999 let bytes = host[dartx.split]('.'); |
| 3000 if (bytes.length != 4) { | 3000 if (bytes[dartx.length] != 4) { |
| 3001 error('IPv4 address should contain exactly 4 parts'); | 3001 error('IPv4 address should contain exactly 4 parts'); |
| 3002 } | 3002 } |
| 3003 return dart.as(bytes[dartx.map](dart.fn(byteString => { | 3003 return dart.as(bytes[dartx.map](dart.fn(byteString => { |
| 3004 let byte = int.parse(dart.as(byteString, String)); | 3004 let byte = int.parse(dart.as(byteString, String)); |
| 3005 if (dart.notNull(byte) < 0 || dart.notNull(byte) > 255) { | 3005 if (dart.notNull(byte) < 0 || dart.notNull(byte) > 255) { |
| 3006 error('each part must be in the range of `0..255`'); | 3006 error('each part must be in the range of `0..255`'); |
| 3007 } | 3007 } |
| 3008 return byte; | 3008 return byte; |
| 3009 }))[dartx.toList](), List$(int)); | 3009 }))[dartx.toList](), List$(int)); |
| 3010 } | 3010 } |
| 3011 static parseIPv6Address(host, start, end) { | 3011 static parseIPv6Address(host, start, end) { |
| 3012 if (start === void 0) | 3012 if (start === void 0) |
| 3013 start = 0; | 3013 start = 0; |
| 3014 if (end === void 0) | 3014 if (end === void 0) |
| 3015 end = null; | 3015 end = null; |
| 3016 if (end == null) | 3016 if (end == null) |
| 3017 end = host.length; | 3017 end = host[dartx.length]; |
| 3018 let error = (msg, position) => { | 3018 let error = (msg, position) => { |
| 3019 if (position === void 0) | 3019 if (position === void 0) |
| 3020 position = null; | 3020 position = null; |
| 3021 throw new FormatException(`Illegal IPv6 address, ${msg}`, host, dart.as(
position, int)); | 3021 throw new FormatException(`Illegal IPv6 address, ${msg}`, host, dart.as(
position, int)); |
| 3022 }; | 3022 }; |
| 3023 dart.fn(error, dart.void, [String], [Object]); | 3023 dart.fn(error, dart.void, [String], [Object]); |
| 3024 let parseHex = (start, end) => { | 3024 let parseHex = (start, end) => { |
| 3025 if (dart.notNull(end) - dart.notNull(start) > 4) { | 3025 if (dart.notNull(end) - dart.notNull(start) > 4) { |
| 3026 error('an IPv6 part can only contain a maximum of 4 hex digits', start
); | 3026 error('an IPv6 part can only contain a maximum of 4 hex digits', start
); |
| 3027 } | 3027 } |
| 3028 let value = int.parse(host[dartx.substring](start, end), {radix: 16}); | 3028 let value = int.parse(host[dartx.substring](start, end), {radix: 16}); |
| 3029 if (dart.notNull(value) < 0 || dart.notNull(value) > (1 << 16) - 1) { | 3029 if (dart.notNull(value) < 0 || dart.notNull(value) > (1 << 16) - 1) { |
| 3030 error('each part must be in the range of `0x0..0xFFFF`', start); | 3030 error('each part must be in the range of `0x0..0xFFFF`', start); |
| 3031 } | 3031 } |
| 3032 return value; | 3032 return value; |
| 3033 }; | 3033 }; |
| 3034 dart.fn(parseHex, int, [int, int]); | 3034 dart.fn(parseHex, int, [int, int]); |
| 3035 if (dart.notNull(host.length) < 2) | 3035 if (dart.notNull(host[dartx.length]) < 2) |
| 3036 error('address is too short'); | 3036 error('address is too short'); |
| 3037 let parts = dart.list([], int); | 3037 let parts = dart.list([], int); |
| 3038 let wildcardSeen = false; | 3038 let wildcardSeen = false; |
| 3039 let partStart = start; | 3039 let partStart = start; |
| 3040 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(
i) + 1) { | 3040 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(
i) + 1) { |
| 3041 if (host[dartx.codeUnitAt](i) == Uri._COLON) { | 3041 if (host[dartx.codeUnitAt](i) == Uri._COLON) { |
| 3042 if (i == start) { | 3042 if (i == start) { |
| 3043 i = dart.notNull(i) + 1; | 3043 i = dart.notNull(i) + 1; |
| 3044 if (host[dartx.codeUnitAt](i) != Uri._COLON) { | 3044 if (host[dartx.codeUnitAt](i) != Uri._COLON) { |
| 3045 error('invalid start colon.', i); | 3045 error('invalid start colon.', i); |
| 3046 } | 3046 } |
| 3047 partStart = i; | 3047 partStart = i; |
| 3048 } | 3048 } |
| 3049 if (i == partStart) { | 3049 if (i == partStart) { |
| 3050 if (dart.notNull(wildcardSeen)) { | 3050 if (dart.notNull(wildcardSeen)) { |
| 3051 error('only one wildcard `::` is allowed', i); | 3051 error('only one wildcard `::` is allowed', i); |
| 3052 } | 3052 } |
| 3053 wildcardSeen = true; | 3053 wildcardSeen = true; |
| 3054 parts[dartx.add](-1); | 3054 parts[dartx.add](-1); |
| 3055 } else { | 3055 } else { |
| 3056 parts[dartx.add](parseHex(partStart, i)); | 3056 parts[dartx.add](parseHex(partStart, i)); |
| 3057 } | 3057 } |
| 3058 partStart = dart.notNull(i) + 1; | 3058 partStart = dart.notNull(i) + 1; |
| 3059 } | 3059 } |
| 3060 } | 3060 } |
| 3061 if (parts.length == 0) | 3061 if (parts[dartx.length] == 0) |
| 3062 error('too few parts'); | 3062 error('too few parts'); |
| 3063 let atEnd = partStart == end; | 3063 let atEnd = partStart == end; |
| 3064 let isLastWildcard = parts[dartx.last] == -1; | 3064 let isLastWildcard = parts[dartx.last] == -1; |
| 3065 if (dart.notNull(atEnd) && !dart.notNull(isLastWildcard)) { | 3065 if (dart.notNull(atEnd) && !dart.notNull(isLastWildcard)) { |
| 3066 error('expected a part after last `:`', end); | 3066 error('expected a part after last `:`', end); |
| 3067 } | 3067 } |
| 3068 if (!dart.notNull(atEnd)) { | 3068 if (!dart.notNull(atEnd)) { |
| 3069 try { | 3069 try { |
| 3070 parts[dartx.add](parseHex(partStart, end)); | 3070 parts[dartx.add](parseHex(partStart, end)); |
| 3071 } catch (e) { | 3071 } catch (e) { |
| 3072 try { | 3072 try { |
| 3073 let last = Uri.parseIPv4Address(host[dartx.substring](partStart, end
)); | 3073 let last = Uri.parseIPv4Address(host[dartx.substring](partStart, end
)); |
| 3074 parts[dartx.add](dart.notNull(last[dartx.get](0)) << 8 | dart.notNul
l(last[dartx.get](1))); | 3074 parts[dartx.add](dart.notNull(last[dartx.get](0)) << 8 | dart.notNul
l(last[dartx.get](1))); |
| 3075 parts[dartx.add](dart.notNull(last[dartx.get](2)) << 8 | dart.notNul
l(last[dartx.get](3))); | 3075 parts[dartx.add](dart.notNull(last[dartx.get](2)) << 8 | dart.notNul
l(last[dartx.get](3))); |
| 3076 } catch (e) { | 3076 } catch (e) { |
| 3077 error('invalid end of IPv6 address.', partStart); | 3077 error('invalid end of IPv6 address.', partStart); |
| 3078 } | 3078 } |
| 3079 | 3079 |
| 3080 } | 3080 } |
| 3081 | 3081 |
| 3082 } | 3082 } |
| 3083 if (dart.notNull(wildcardSeen)) { | 3083 if (dart.notNull(wildcardSeen)) { |
| 3084 if (dart.notNull(parts.length) > 7) { | 3084 if (dart.notNull(parts[dartx.length]) > 7) { |
| 3085 error('an address with a wildcard must have less than 7 parts'); | 3085 error('an address with a wildcard must have less than 7 parts'); |
| 3086 } | 3086 } |
| 3087 } else if (parts.length != 8) { | 3087 } else if (parts[dartx.length] != 8) { |
| 3088 error('an address without a wildcard must contain exactly 8 parts'); | 3088 error('an address without a wildcard must contain exactly 8 parts'); |
| 3089 } | 3089 } |
| 3090 let bytes = List$(int).new(16); | 3090 let bytes = List$(int).new(16); |
| 3091 for (let i = 0, index = 0; dart.notNull(i) < dart.notNull(parts.length); i
= dart.notNull(i) + 1) { | 3091 for (let i = 0, index = 0; dart.notNull(i) < dart.notNull(parts[dartx.leng
th]); i = dart.notNull(i) + 1) { |
| 3092 let value = parts[dartx.get](i); | 3092 let value = parts[dartx.get](i); |
| 3093 if (value == -1) { | 3093 if (value == -1) { |
| 3094 let wildCardLength = 9 - dart.notNull(parts.length); | 3094 let wildCardLength = 9 - dart.notNull(parts[dartx.length]); |
| 3095 for (let j = 0; dart.notNull(j) < dart.notNull(wildCardLength); j = da
rt.notNull(j) + 1) { | 3095 for (let j = 0; dart.notNull(j) < dart.notNull(wildCardLength); j = da
rt.notNull(j) + 1) { |
| 3096 bytes[dartx.set](index, 0); | 3096 bytes[dartx.set](index, 0); |
| 3097 bytes[dartx.set](dart.notNull(index) + 1, 0); | 3097 bytes[dartx.set](dart.notNull(index) + 1, 0); |
| 3098 index = dart.notNull(index) + 2; | 3098 index = dart.notNull(index) + 2; |
| 3099 } | 3099 } |
| 3100 } else { | 3100 } else { |
| 3101 bytes[dartx.set](index, dart.notNull(value) >> 8); | 3101 bytes[dartx.set](index, dart.notNull(value) >> 8); |
| 3102 bytes[dartx.set](dart.notNull(index) + 1, dart.notNull(value) & 255); | 3102 bytes[dartx.set](dart.notNull(index) + 1, dart.notNull(value) & 255); |
| 3103 index = dart.notNull(index) + 2; | 3103 index = dart.notNull(index) + 2; |
| 3104 } | 3104 } |
| 3105 } | 3105 } |
| 3106 return dart.as(bytes, List$(int)); | 3106 return dart.as(bytes, List$(int)); |
| 3107 } | 3107 } |
| 3108 static _uriEncode(canonicalTable, text, opts) { | 3108 static _uriEncode(canonicalTable, text, opts) { |
| 3109 let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8; | 3109 let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8; |
| 3110 let spaceToPlus = opts && 'spaceToPlus' in opts ? opts.spaceToPlus : false
; | 3110 let spaceToPlus = opts && 'spaceToPlus' in opts ? opts.spaceToPlus : false
; |
| 3111 let byteToHex = (byte, buffer) => { | 3111 let byteToHex = (byte, buffer) => { |
| 3112 let hex = '0123456789ABCDEF'; | 3112 let hex = '0123456789ABCDEF'; |
| 3113 dart.dsend(buffer, 'writeCharCode', hex[dartx.codeUnitAt](dart.as(dart.d
send(byte, '>>', 4), int))); | 3113 dart.dsend(buffer, 'writeCharCode', hex[dartx.codeUnitAt](dart.as(dart.d
send(byte, '>>', 4), int))); |
| 3114 dart.dsend(buffer, 'writeCharCode', hex[dartx.codeUnitAt](dart.as(dart.d
send(byte, '&', 15), int))); | 3114 dart.dsend(buffer, 'writeCharCode', hex[dartx.codeUnitAt](dart.as(dart.d
send(byte, '&', 15), int))); |
| 3115 }; | 3115 }; |
| 3116 dart.fn(byteToHex); | 3116 dart.fn(byteToHex); |
| 3117 let result = new StringBuffer(); | 3117 let result = new StringBuffer(); |
| 3118 let bytes = encoding.encode(text); | 3118 let bytes = encoding.encode(text); |
| 3119 for (let i = 0; dart.notNull(i) < dart.notNull(bytes.length); i = dart.not
Null(i) + 1) { | 3119 for (let i = 0; dart.notNull(i) < dart.notNull(bytes[dartx.length]); i = d
art.notNull(i) + 1) { |
| 3120 let byte = bytes[dartx.get](i); | 3120 let byte = bytes[dartx.get](i); |
| 3121 if (dart.notNull(byte) < 128 && (dart.notNull(canonicalTable[dartx.get](
dart.notNull(byte) >> 4)) & 1 << (dart.notNull(byte) & 15)) != 0) { | 3121 if (dart.notNull(byte) < 128 && (dart.notNull(canonicalTable[dartx.get](
dart.notNull(byte) >> 4)) & 1 << (dart.notNull(byte) & 15)) != 0) { |
| 3122 result.writeCharCode(byte); | 3122 result.writeCharCode(byte); |
| 3123 } else if (dart.notNull(spaceToPlus) && byte == Uri._SPACE) { | 3123 } else if (dart.notNull(spaceToPlus) && byte == Uri._SPACE) { |
| 3124 result.writeCharCode(Uri._PLUS); | 3124 result.writeCharCode(Uri._PLUS); |
| 3125 } else { | 3125 } else { |
| 3126 result.writeCharCode(Uri._PERCENT); | 3126 result.writeCharCode(Uri._PERCENT); |
| 3127 byteToHex(byte, result); | 3127 byteToHex(byte, result); |
| 3128 } | 3128 } |
| 3129 } | 3129 } |
| (...skipping 13 matching lines...) Expand all Loading... |
| 3143 throw new ArgumentError("Invalid URL encoding"); | 3143 throw new ArgumentError("Invalid URL encoding"); |
| 3144 } | 3144 } |
| 3145 } | 3145 } |
| 3146 } | 3146 } |
| 3147 return byte; | 3147 return byte; |
| 3148 } | 3148 } |
| 3149 static _uriDecode(text, opts) { | 3149 static _uriDecode(text, opts) { |
| 3150 let plusToSpace = opts && 'plusToSpace' in opts ? opts.plusToSpace : false
; | 3150 let plusToSpace = opts && 'plusToSpace' in opts ? opts.plusToSpace : false
; |
| 3151 let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8; | 3151 let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8; |
| 3152 let simple = true; | 3152 let simple = true; |
| 3153 for (let i = 0; dart.notNull(i) < dart.notNull(text.length) && dart.notNul
l(simple); i = dart.notNull(i) + 1) { | 3153 for (let i = 0; dart.notNull(i) < dart.notNull(text[dartx.length]) && dart
.notNull(simple); i = dart.notNull(i) + 1) { |
| 3154 let codeUnit = text[dartx.codeUnitAt](i); | 3154 let codeUnit = text[dartx.codeUnitAt](i); |
| 3155 simple = codeUnit != Uri._PERCENT && codeUnit != Uri._PLUS; | 3155 simple = codeUnit != Uri._PERCENT && codeUnit != Uri._PLUS; |
| 3156 } | 3156 } |
| 3157 let bytes = null; | 3157 let bytes = null; |
| 3158 if (dart.notNull(simple)) { | 3158 if (dart.notNull(simple)) { |
| 3159 if (dart.equals(encoding, convert.UTF8) || dart.equals(encoding, convert
.LATIN1)) { | 3159 if (dart.equals(encoding, convert.UTF8) || dart.equals(encoding, convert
.LATIN1)) { |
| 3160 return text; | 3160 return text; |
| 3161 } else { | 3161 } else { |
| 3162 bytes = text[dartx.codeUnits]; | 3162 bytes = text[dartx.codeUnits]; |
| 3163 } | 3163 } |
| 3164 } else { | 3164 } else { |
| 3165 bytes = List$(int).new(); | 3165 bytes = List$(int).new(); |
| 3166 for (let i = 0; dart.notNull(i) < dart.notNull(text.length); i = dart.no
tNull(i) + 1) { | 3166 for (let i = 0; dart.notNull(i) < dart.notNull(text[dartx.length]); i =
dart.notNull(i) + 1) { |
| 3167 let codeUnit = text[dartx.codeUnitAt](i); | 3167 let codeUnit = text[dartx.codeUnitAt](i); |
| 3168 if (dart.notNull(codeUnit) > 127) { | 3168 if (dart.notNull(codeUnit) > 127) { |
| 3169 throw new ArgumentError("Illegal percent encoding in URI"); | 3169 throw new ArgumentError("Illegal percent encoding in URI"); |
| 3170 } | 3170 } |
| 3171 if (codeUnit == Uri._PERCENT) { | 3171 if (codeUnit == Uri._PERCENT) { |
| 3172 if (dart.notNull(i) + 3 > dart.notNull(text.length)) { | 3172 if (dart.notNull(i) + 3 > dart.notNull(text[dartx.length])) { |
| 3173 throw new ArgumentError('Truncated URI'); | 3173 throw new ArgumentError('Truncated URI'); |
| 3174 } | 3174 } |
| 3175 bytes[dartx.add](Uri._hexCharPairToByte(text, dart.notNull(i) + 1)); | 3175 bytes[dartx.add](Uri._hexCharPairToByte(text, dart.notNull(i) + 1)); |
| 3176 i = dart.notNull(i) + 2; | 3176 i = dart.notNull(i) + 2; |
| 3177 } else if (dart.notNull(plusToSpace) && codeUnit == Uri._PLUS) { | 3177 } else if (dart.notNull(plusToSpace) && codeUnit == Uri._PLUS) { |
| 3178 bytes[dartx.add](Uri._SPACE); | 3178 bytes[dartx.add](Uri._SPACE); |
| 3179 } else { | 3179 } else { |
| 3180 bytes[dartx.add](codeUnit); | 3180 bytes[dartx.add](codeUnit); |
| 3181 } | 3181 } |
| 3182 } | 3182 } |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3358 exports.StackTrace = StackTrace; | 3358 exports.StackTrace = StackTrace; |
| 3359 exports.Stopwatch = Stopwatch; | 3359 exports.Stopwatch = Stopwatch; |
| 3360 exports.String = String; | 3360 exports.String = String; |
| 3361 exports.RuneIterator = RuneIterator; | 3361 exports.RuneIterator = RuneIterator; |
| 3362 exports.StringBuffer = StringBuffer; | 3362 exports.StringBuffer = StringBuffer; |
| 3363 exports.StringSink = StringSink; | 3363 exports.StringSink = StringSink; |
| 3364 exports.Symbol = Symbol; | 3364 exports.Symbol = Symbol; |
| 3365 exports.Type = Type; | 3365 exports.Type = Type; |
| 3366 exports.Uri = Uri; | 3366 exports.Uri = Uri; |
| 3367 }); | 3367 }); |
| OLD | NEW |