OLD | NEW |
1 var core; | 1 var core; |
2 (function(exports) { | 2 (function(exports) { |
3 'use strict'; | 3 'use strict'; |
4 class Object { | 4 class Object { |
5 constructor() { | 5 constructor() { |
6 let name = this.constructor.name; | 6 let name = this.constructor.name; |
7 let init = this[name]; | 7 let init = this[name]; |
8 let result = void 0; | 8 let result = void 0; |
9 if (init) | 9 if (init) |
10 result = init.apply(this, arguments); | 10 result = init.apply(this, arguments); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 class bool extends Object { | 64 class bool extends Object { |
65 fromEnvironment(name, opts) { | 65 fromEnvironment(name, opts) { |
66 let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : fa
lse; | 66 let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : fa
lse; |
67 throw new UnsupportedError('bool.fromEnvironment can only be used as a con
st constructor'); | 67 throw new UnsupportedError('bool.fromEnvironment can only be used as a con
st constructor'); |
68 } | 68 } |
69 toString() { | 69 toString() { |
70 return this ? "true" : "false"; | 70 return this ? "true" : "false"; |
71 } | 71 } |
72 } | 72 } |
73 dart.defineNamedConstructor(bool, 'fromEnvironment'); | 73 dart.defineNamedConstructor(bool, 'fromEnvironment'); |
74 let _toMangledNames = dart.JsSymbol('_toMangledNames'); | |
75 class Function extends Object { | 74 class Function extends Object { |
76 static apply(f, positionalArguments, namedArguments) { | 75 static apply(f, positionalArguments, namedArguments) { |
77 if (namedArguments === void 0) | 76 if (namedArguments === void 0) |
78 namedArguments = null; | 77 namedArguments = null; |
79 return _js_helper.Primitives.applyFunction(f, positionalArguments, namedAr
guments == null ? null : Function[_toMangledNames](namedArguments)); | 78 return _js_helper.Primitives.applyFunction(f, positionalArguments, namedAr
guments == null ? null : Function._toMangledNames(namedArguments)); |
80 } | 79 } |
81 static [_toMangledNames](namedArguments) { | 80 static _toMangledNames(namedArguments) { |
82 let result = dart.map(); | 81 let result = dart.map(); |
83 namedArguments.forEach((symbol, value) => { | 82 namedArguments.forEach((symbol, value) => { |
84 result.set(_symbolToString(dart.as(symbol, Symbol)), value); | 83 result.set(_symbolToString(dart.as(symbol, Symbol)), value); |
85 }); | 84 }); |
86 return result; | 85 return result; |
87 } | 86 } |
88 } | 87 } |
89 let Comparator$ = dart.generic(function(T) { | 88 let Comparator$ = dart.generic(function(T) { |
90 let Comparator = dart.typedef('Comparator', () => dart.functionType(int, [T,
T])); | 89 let Comparator = dart.typedef('Comparator', () => dart.functionType(int, [T,
T])); |
91 return Comparator; | 90 return Comparator; |
92 }); | 91 }); |
93 let Comparator = Comparator$(); | 92 let Comparator = Comparator$(); |
94 let Comparable$ = dart.generic(function(T) { | 93 let Comparable$ = dart.generic(function(T) { |
95 class Comparable extends Object { | 94 class Comparable extends Object { |
96 static compare(a, b) { | 95 static compare(a, b) { |
97 return a.compareTo(b); | 96 return a.compareTo(b); |
98 } | 97 } |
99 } | 98 } |
100 return Comparable; | 99 return Comparable; |
101 }); | 100 }); |
102 let Comparable = Comparable$(); | 101 let Comparable = Comparable$(); |
103 let _internal$ = dart.JsSymbol('_internal'); | |
104 let _now = dart.JsSymbol('_now'); | |
105 let _brokenDownDateToMillisecondsSinceEpoch = dart.JsSymbol('_brokenDownDateTo
MillisecondsSinceEpoch'); | |
106 let _MAX_MILLISECONDS_SINCE_EPOCH = dart.JsSymbol('_MAX_MILLISECONDS_SINCE_EPO
CH'); | |
107 let _fourDigits = dart.JsSymbol('_fourDigits'); | |
108 let _sixDigits = dart.JsSymbol('_sixDigits'); | |
109 let _threeDigits = dart.JsSymbol('_threeDigits'); | |
110 let _twoDigits = dart.JsSymbol('_twoDigits'); | |
111 class DateTime extends Object { | 102 class DateTime extends Object { |
112 DateTime(year, month, day, hour, minute, second, millisecond) { | 103 DateTime(year, month, day, hour, minute, second, millisecond) { |
113 if (month === void 0) | 104 if (month === void 0) |
114 month = 1; | 105 month = 1; |
115 if (day === void 0) | 106 if (day === void 0) |
116 day = 1; | 107 day = 1; |
117 if (hour === void 0) | 108 if (hour === void 0) |
118 hour = 0; | 109 hour = 0; |
119 if (minute === void 0) | 110 if (minute === void 0) |
120 minute = 0; | 111 minute = 0; |
121 if (second === void 0) | 112 if (second === void 0) |
122 second = 0; | 113 second = 0; |
123 if (millisecond === void 0) | 114 if (millisecond === void 0) |
124 millisecond = 0; | 115 millisecond = 0; |
125 this[_internal$](year, month, day, hour, minute, second, millisecond, fals
e); | 116 this._internal(year, month, day, hour, minute, second, millisecond, false)
; |
126 } | 117 } |
127 utc(year, month, day, hour, minute, second, millisecond) { | 118 utc(year, month, day, hour, minute, second, millisecond) { |
128 if (month === void 0) | 119 if (month === void 0) |
129 month = 1; | 120 month = 1; |
130 if (day === void 0) | 121 if (day === void 0) |
131 day = 1; | 122 day = 1; |
132 if (hour === void 0) | 123 if (hour === void 0) |
133 hour = 0; | 124 hour = 0; |
134 if (minute === void 0) | 125 if (minute === void 0) |
135 minute = 0; | 126 minute = 0; |
136 if (second === void 0) | 127 if (second === void 0) |
137 second = 0; | 128 second = 0; |
138 if (millisecond === void 0) | 129 if (millisecond === void 0) |
139 millisecond = 0; | 130 millisecond = 0; |
140 this[_internal$](year, month, day, hour, minute, second, millisecond, true
); | 131 this._internal(year, month, day, hour, minute, second, millisecond, true); |
141 } | 132 } |
142 now() { | 133 now() { |
143 this[_now](); | 134 this._now(); |
144 } | 135 } |
145 static parse(formattedString) { | 136 static parse(formattedString) { |
146 let re = new RegExp('^([+-]?\\d{4,6})-?(\\d\\d)-?(\\d\\d)' + '(?:[ T](\\d\
\d)(?::?(\\d\\d)(?::?(\\d\\d)(.\\d{1,6})?)?)?' + '( ?[zZ]| ?([-+])(\\d\\d)(?::?(
\\d\\d))?)?)?$'); | 137 let re = new RegExp('^([+-]?\\d{4,6})-?(\\d\\d)-?(\\d\\d)' + '(?:[ T](\\d\
\d)(?::?(\\d\\d)(?::?(\\d\\d)(.\\d{1,6})?)?)?' + '( ?[zZ]| ?([-+])(\\d\\d)(?::?(
\\d\\d))?)?)?$'); |
147 let match = re.firstMatch(formattedString); | 138 let match = re.firstMatch(formattedString); |
148 if (match != null) { | 139 if (match != null) { |
149 // Function parseIntOrZero: (String) → int | 140 // Function parseIntOrZero: (String) → int |
150 function parseIntOrZero(matched) { | 141 function parseIntOrZero(matched) { |
151 if (matched == null) | 142 if (matched == null) |
152 return 0; | 143 return 0; |
153 return int.parse(matched); | 144 return int.parse(matched); |
(...skipping 20 matching lines...) Expand all Loading... |
174 if (match.get(8) != null) { | 165 if (match.get(8) != null) { |
175 isUtc = true; | 166 isUtc = true; |
176 if (match.get(9) != null) { | 167 if (match.get(9) != null) { |
177 let sign = match.get(9) == '-' ? -1 : 1; | 168 let sign = match.get(9) == '-' ? -1 : 1; |
178 let hourDifference = int.parse(match.get(10)); | 169 let hourDifference = int.parse(match.get(10)); |
179 let minuteDifference = parseIntOrZero(match.get(11)); | 170 let minuteDifference = parseIntOrZero(match.get(11)); |
180 minuteDifference = dart.notNull(minuteDifference) + 60 * dart.notNul
l(hourDifference); | 171 minuteDifference = dart.notNull(minuteDifference) + 60 * dart.notNul
l(hourDifference); |
181 minute = dart.notNull(minute) - dart.notNull(sign) * dart.notNull(mi
nuteDifference); | 172 minute = dart.notNull(minute) - dart.notNull(sign) * dart.notNull(mi
nuteDifference); |
182 } | 173 } |
183 } | 174 } |
184 let millisecondsSinceEpoch = DateTime[_brokenDownDateToMillisecondsSince
Epoch](years, month, day, hour, minute, second, millisecond, isUtc); | 175 let millisecondsSinceEpoch = DateTime._brokenDownDateToMillisecondsSince
Epoch(years, month, day, hour, minute, second, millisecond, isUtc); |
185 if (millisecondsSinceEpoch == null) { | 176 if (millisecondsSinceEpoch == null) { |
186 throw new FormatException("Time out of range", formattedString); | 177 throw new FormatException("Time out of range", formattedString); |
187 } | 178 } |
188 if (addOneMillisecond) { | 179 if (addOneMillisecond) { |
189 millisecondsSinceEpoch = dart.notNull(millisecondsSinceEpoch) + 1; | 180 millisecondsSinceEpoch = dart.notNull(millisecondsSinceEpoch) + 1; |
190 } | 181 } |
191 return new DateTime.fromMillisecondsSinceEpoch(millisecondsSinceEpoch, {
isUtc: isUtc}); | 182 return new DateTime.fromMillisecondsSinceEpoch(millisecondsSinceEpoch, {
isUtc: isUtc}); |
192 } else { | 183 } else { |
193 throw new FormatException("Invalid date format", formattedString); | 184 throw new FormatException("Invalid date format", formattedString); |
194 } | 185 } |
195 } | 186 } |
196 fromMillisecondsSinceEpoch(millisecondsSinceEpoch, opts) { | 187 fromMillisecondsSinceEpoch(millisecondsSinceEpoch, opts) { |
197 let isUtc = opts && 'isUtc' in opts ? opts.isUtc : false; | 188 let isUtc = opts && 'isUtc' in opts ? opts.isUtc : false; |
198 this.millisecondsSinceEpoch = millisecondsSinceEpoch; | 189 this.millisecondsSinceEpoch = millisecondsSinceEpoch; |
199 this.isUtc = isUtc; | 190 this.isUtc = isUtc; |
200 if (dart.notNull(millisecondsSinceEpoch.abs()) > dart.notNull(DateTime[_MA
X_MILLISECONDS_SINCE_EPOCH])) { | 191 if (dart.notNull(millisecondsSinceEpoch.abs()) > dart.notNull(DateTime._MA
X_MILLISECONDS_SINCE_EPOCH)) { |
201 throw new ArgumentError(millisecondsSinceEpoch); | 192 throw new ArgumentError(millisecondsSinceEpoch); |
202 } | 193 } |
203 if (isUtc == null) | 194 if (isUtc == null) |
204 throw new ArgumentError(isUtc); | 195 throw new ArgumentError(isUtc); |
205 } | 196 } |
206 ['=='](other) { | 197 ['=='](other) { |
207 if (!dart.is(other, DateTime)) | 198 if (!dart.is(other, DateTime)) |
208 return false; | 199 return false; |
209 return dart.equals(this.millisecondsSinceEpoch, dart.dload(other, 'millise
condsSinceEpoch')) && dart.equals(this.isUtc, dart.dload(other, 'isUtc')); | 200 return dart.equals(this.millisecondsSinceEpoch, dart.dload(other, 'millise
condsSinceEpoch')) && dart.equals(this.isUtc, dart.dload(other, 'isUtc')); |
210 } | 201 } |
(...skipping 16 matching lines...) Expand all Loading... |
227 if (this.isUtc) { | 218 if (this.isUtc) { |
228 return new DateTime.fromMillisecondsSinceEpoch(this.millisecondsSinceEpo
ch, {isUtc: false}); | 219 return new DateTime.fromMillisecondsSinceEpoch(this.millisecondsSinceEpo
ch, {isUtc: false}); |
229 } | 220 } |
230 return this; | 221 return this; |
231 } | 222 } |
232 toUtc() { | 223 toUtc() { |
233 if (this.isUtc) | 224 if (this.isUtc) |
234 return this; | 225 return this; |
235 return new DateTime.fromMillisecondsSinceEpoch(this.millisecondsSinceEpoch
, {isUtc: true}); | 226 return new DateTime.fromMillisecondsSinceEpoch(this.millisecondsSinceEpoch
, {isUtc: true}); |
236 } | 227 } |
237 static [_fourDigits](n) { | 228 static _fourDigits(n) { |
238 let absN = n.abs(); | 229 let absN = n.abs(); |
239 let sign = dart.notNull(n) < 0 ? "-" : ""; | 230 let sign = dart.notNull(n) < 0 ? "-" : ""; |
240 if (dart.notNull(absN) >= 1000) | 231 if (dart.notNull(absN) >= 1000) |
241 return `${n}`; | 232 return `${n}`; |
242 if (dart.notNull(absN) >= 100) | 233 if (dart.notNull(absN) >= 100) |
243 return `${sign}0${absN}`; | 234 return `${sign}0${absN}`; |
244 if (dart.notNull(absN) >= 10) | 235 if (dart.notNull(absN) >= 10) |
245 return `${sign}00${absN}`; | 236 return `${sign}00${absN}`; |
246 return `${sign}000${absN}`; | 237 return `${sign}000${absN}`; |
247 } | 238 } |
248 static [_sixDigits](n) { | 239 static _sixDigits(n) { |
249 dart.assert(dart.notNull(n) < -9999 || dart.notNull(n) > 9999); | 240 dart.assert(dart.notNull(n) < -9999 || dart.notNull(n) > 9999); |
250 let absN = n.abs(); | 241 let absN = n.abs(); |
251 let sign = dart.notNull(n) < 0 ? "-" : "+"; | 242 let sign = dart.notNull(n) < 0 ? "-" : "+"; |
252 if (dart.notNull(absN) >= 100000) | 243 if (dart.notNull(absN) >= 100000) |
253 return `${sign}${absN}`; | 244 return `${sign}${absN}`; |
254 return `${sign}0${absN}`; | 245 return `${sign}0${absN}`; |
255 } | 246 } |
256 static [_threeDigits](n) { | 247 static _threeDigits(n) { |
257 if (dart.notNull(n) >= 100) | 248 if (dart.notNull(n) >= 100) |
258 return `${n}`; | 249 return `${n}`; |
259 if (dart.notNull(n) >= 10) | 250 if (dart.notNull(n) >= 10) |
260 return `0${n}`; | 251 return `0${n}`; |
261 return `00${n}`; | 252 return `00${n}`; |
262 } | 253 } |
263 static [_twoDigits](n) { | 254 static _twoDigits(n) { |
264 if (dart.notNull(n) >= 10) | 255 if (dart.notNull(n) >= 10) |
265 return `${n}`; | 256 return `${n}`; |
266 return `0${n}`; | 257 return `0${n}`; |
267 } | 258 } |
268 toString() { | 259 toString() { |
269 let y = DateTime[_fourDigits](this.year); | 260 let y = DateTime._fourDigits(this.year); |
270 let m = DateTime[_twoDigits](this.month); | 261 let m = DateTime._twoDigits(this.month); |
271 let d = DateTime[_twoDigits](this.day); | 262 let d = DateTime._twoDigits(this.day); |
272 let h = DateTime[_twoDigits](this.hour); | 263 let h = DateTime._twoDigits(this.hour); |
273 let min = DateTime[_twoDigits](this.minute); | 264 let min = DateTime._twoDigits(this.minute); |
274 let sec = DateTime[_twoDigits](this.second); | 265 let sec = DateTime._twoDigits(this.second); |
275 let ms = DateTime[_threeDigits](this.millisecond); | 266 let ms = DateTime._threeDigits(this.millisecond); |
276 if (this.isUtc) { | 267 if (this.isUtc) { |
277 return `${y}-${m}-${d} ${h}:${min}:${sec}.${ms}Z`; | 268 return `${y}-${m}-${d} ${h}:${min}:${sec}.${ms}Z`; |
278 } else { | 269 } else { |
279 return `${y}-${m}-${d} ${h}:${min}:${sec}.${ms}`; | 270 return `${y}-${m}-${d} ${h}:${min}:${sec}.${ms}`; |
280 } | 271 } |
281 } | 272 } |
282 toIso8601String() { | 273 toIso8601String() { |
283 let y = dart.notNull(this.year) >= -9999 && dart.notNull(this.year) <= 999
9 ? DateTime[_fourDigits](this.year) : DateTime[_sixDigits](this.year); | 274 let y = dart.notNull(this.year) >= -9999 && dart.notNull(this.year) <= 999
9 ? DateTime._fourDigits(this.year) : DateTime._sixDigits(this.year); |
284 let m = DateTime[_twoDigits](this.month); | 275 let m = DateTime._twoDigits(this.month); |
285 let d = DateTime[_twoDigits](this.day); | 276 let d = DateTime._twoDigits(this.day); |
286 let h = DateTime[_twoDigits](this.hour); | 277 let h = DateTime._twoDigits(this.hour); |
287 let min = DateTime[_twoDigits](this.minute); | 278 let min = DateTime._twoDigits(this.minute); |
288 let sec = DateTime[_twoDigits](this.second); | 279 let sec = DateTime._twoDigits(this.second); |
289 let ms = DateTime[_threeDigits](this.millisecond); | 280 let ms = DateTime._threeDigits(this.millisecond); |
290 if (this.isUtc) { | 281 if (this.isUtc) { |
291 return `${y}-${m}-${d}T${h}:${min}:${sec}.${ms}Z`; | 282 return `${y}-${m}-${d}T${h}:${min}:${sec}.${ms}Z`; |
292 } else { | 283 } else { |
293 return `${y}-${m}-${d}T${h}:${min}:${sec}.${ms}`; | 284 return `${y}-${m}-${d}T${h}:${min}:${sec}.${ms}`; |
294 } | 285 } |
295 } | 286 } |
296 add(duration) { | 287 add(duration) { |
297 let ms = this.millisecondsSinceEpoch; | 288 let ms = this.millisecondsSinceEpoch; |
298 return new DateTime.fromMillisecondsSinceEpoch(dart.notNull(ms) + dart.not
Null(duration.inMilliseconds), {isUtc: this.isUtc}); | 289 return new DateTime.fromMillisecondsSinceEpoch(dart.notNull(ms) + dart.not
Null(duration.inMilliseconds), {isUtc: this.isUtc}); |
299 } | 290 } |
300 subtract(duration) { | 291 subtract(duration) { |
301 let ms = this.millisecondsSinceEpoch; | 292 let ms = this.millisecondsSinceEpoch; |
302 return new DateTime.fromMillisecondsSinceEpoch(dart.notNull(ms) - dart.not
Null(duration.inMilliseconds), {isUtc: this.isUtc}); | 293 return new DateTime.fromMillisecondsSinceEpoch(dart.notNull(ms) - dart.not
Null(duration.inMilliseconds), {isUtc: this.isUtc}); |
303 } | 294 } |
304 difference(other) { | 295 difference(other) { |
305 let ms = this.millisecondsSinceEpoch; | 296 let ms = this.millisecondsSinceEpoch; |
306 let otherMs = other.millisecondsSinceEpoch; | 297 let otherMs = other.millisecondsSinceEpoch; |
307 return new Duration({milliseconds: dart.notNull(ms) - dart.notNull(otherMs
)}); | 298 return new Duration({milliseconds: dart.notNull(ms) - dart.notNull(otherMs
)}); |
308 } | 299 } |
309 [_internal$](year, month, day, hour, minute, second, millisecond, isUtc) { | 300 _internal(year, month, day, hour, minute, second, millisecond, isUtc) { |
310 this.isUtc = typeof isUtc == 'boolean' ? isUtc : dart.throw_(new ArgumentE
rror(isUtc)); | 301 this.isUtc = typeof isUtc == 'boolean' ? isUtc : dart.throw_(new ArgumentE
rror(isUtc)); |
311 this.millisecondsSinceEpoch = dart.as(_js_helper.checkInt(_js_helper.Primi
tives.valueFromDecomposedDate(year, month, day, hour, minute, second, millisecon
d, isUtc)), int); | 302 this.millisecondsSinceEpoch = dart.as(_js_helper.checkInt(_js_helper.Primi
tives.valueFromDecomposedDate(year, month, day, hour, minute, second, millisecon
d, isUtc)), int); |
312 } | 303 } |
313 [_now]() { | 304 _now() { |
314 this.isUtc = false; | 305 this.isUtc = false; |
315 this.millisecondsSinceEpoch = _js_helper.Primitives.dateNow(); | 306 this.millisecondsSinceEpoch = _js_helper.Primitives.dateNow(); |
316 } | 307 } |
317 static [_brokenDownDateToMillisecondsSinceEpoch](year, month, day, hour, min
ute, second, millisecond, isUtc) { | 308 static _brokenDownDateToMillisecondsSinceEpoch(year, month, day, hour, minut
e, second, millisecond, isUtc) { |
318 return dart.as(_js_helper.Primitives.valueFromDecomposedDate(year, month,
day, hour, minute, second, millisecond, isUtc), int); | 309 return dart.as(_js_helper.Primitives.valueFromDecomposedDate(year, month,
day, hour, minute, second, millisecond, isUtc), int); |
319 } | 310 } |
320 get timeZoneName() { | 311 get timeZoneName() { |
321 if (this.isUtc) | 312 if (this.isUtc) |
322 return "UTC"; | 313 return "UTC"; |
323 return _js_helper.Primitives.getTimeZoneName(this); | 314 return _js_helper.Primitives.getTimeZoneName(this); |
324 } | 315 } |
325 get timeZoneOffset() { | 316 get timeZoneOffset() { |
326 if (this.isUtc) | 317 if (this.isUtc) |
327 return new Duration(); | 318 return new Duration(); |
(...skipping 21 matching lines...) Expand all Loading... |
349 return dart.as(_js_helper.Primitives.getMilliseconds(this), int); | 340 return dart.as(_js_helper.Primitives.getMilliseconds(this), int); |
350 } | 341 } |
351 get weekday() { | 342 get weekday() { |
352 return dart.as(_js_helper.Primitives.getWeekday(this), int); | 343 return dart.as(_js_helper.Primitives.getWeekday(this), int); |
353 } | 344 } |
354 } | 345 } |
355 DateTime[dart.implements] = () => [Comparable]; | 346 DateTime[dart.implements] = () => [Comparable]; |
356 dart.defineNamedConstructor(DateTime, 'utc'); | 347 dart.defineNamedConstructor(DateTime, 'utc'); |
357 dart.defineNamedConstructor(DateTime, 'now'); | 348 dart.defineNamedConstructor(DateTime, 'now'); |
358 dart.defineNamedConstructor(DateTime, 'fromMillisecondsSinceEpoch'); | 349 dart.defineNamedConstructor(DateTime, 'fromMillisecondsSinceEpoch'); |
359 dart.defineNamedConstructor(DateTime, _internal$); | 350 dart.defineNamedConstructor(DateTime, '_internal'); |
360 dart.defineNamedConstructor(DateTime, _now); | 351 dart.defineNamedConstructor(DateTime, '_now'); |
361 DateTime.MONDAY = 1; | 352 DateTime.MONDAY = 1; |
362 DateTime.TUESDAY = 2; | 353 DateTime.TUESDAY = 2; |
363 DateTime.WEDNESDAY = 3; | 354 DateTime.WEDNESDAY = 3; |
364 DateTime.THURSDAY = 4; | 355 DateTime.THURSDAY = 4; |
365 DateTime.FRIDAY = 5; | 356 DateTime.FRIDAY = 5; |
366 DateTime.SATURDAY = 6; | 357 DateTime.SATURDAY = 6; |
367 DateTime.SUNDAY = 7; | 358 DateTime.SUNDAY = 7; |
368 DateTime.DAYS_PER_WEEK = 7; | 359 DateTime.DAYS_PER_WEEK = 7; |
369 DateTime.JANUARY = 1; | 360 DateTime.JANUARY = 1; |
370 DateTime.FEBRUARY = 2; | 361 DateTime.FEBRUARY = 2; |
371 DateTime.MARCH = 3; | 362 DateTime.MARCH = 3; |
372 DateTime.APRIL = 4; | 363 DateTime.APRIL = 4; |
373 DateTime.MAY = 5; | 364 DateTime.MAY = 5; |
374 DateTime.JUNE = 6; | 365 DateTime.JUNE = 6; |
375 DateTime.JULY = 7; | 366 DateTime.JULY = 7; |
376 DateTime.AUGUST = 8; | 367 DateTime.AUGUST = 8; |
377 DateTime.SEPTEMBER = 9; | 368 DateTime.SEPTEMBER = 9; |
378 DateTime.OCTOBER = 10; | 369 DateTime.OCTOBER = 10; |
379 DateTime.NOVEMBER = 11; | 370 DateTime.NOVEMBER = 11; |
380 DateTime.DECEMBER = 12; | 371 DateTime.DECEMBER = 12; |
381 DateTime.MONTHS_PER_YEAR = 12; | 372 DateTime.MONTHS_PER_YEAR = 12; |
382 DateTime._MAX_MILLISECONDS_SINCE_EPOCH = 8640000000000000; | 373 DateTime._MAX_MILLISECONDS_SINCE_EPOCH = 8640000000000000; |
383 let _parseError = dart.JsSymbol('_parseError'); | |
384 let _onParseErrorInt = dart.JsSymbol('_onParseErrorInt'); | |
385 let _onParseErrorDouble = dart.JsSymbol('_onParseErrorDouble'); | |
386 class num extends Object { | 374 class num extends Object { |
387 static parse(input, onError) { | 375 static parse(input, onError) { |
388 if (onError === void 0) | 376 if (onError === void 0) |
389 onError = null; | 377 onError = null; |
390 let source = input.trim(); | 378 let source = input.trim(); |
391 num[_parseError] = false; | 379 num._parseError = false; |
392 let result = int.parse(source, {onError: num[_onParseErrorInt]}); | 380 let result = int.parse(source, {onError: num._onParseErrorInt}); |
393 if (!dart.notNull(num[_parseError])) | 381 if (!dart.notNull(num._parseError)) |
394 return result; | 382 return result; |
395 num[_parseError] = false; | 383 num._parseError = false; |
396 result = double.parse(source, num[_onParseErrorDouble]); | 384 result = double.parse(source, num._onParseErrorDouble); |
397 if (!dart.notNull(num[_parseError])) | 385 if (!dart.notNull(num._parseError)) |
398 return result; | 386 return result; |
399 if (onError == null) | 387 if (onError == null) |
400 throw new FormatException(input); | 388 throw new FormatException(input); |
401 return onError(input); | 389 return onError(input); |
402 } | 390 } |
403 static [_onParseErrorInt](_) { | 391 static _onParseErrorInt(_) { |
404 num[_parseError] = true; | 392 num._parseError = true; |
405 return 0; | 393 return 0; |
406 } | 394 } |
407 static [_onParseErrorDouble](_) { | 395 static _onParseErrorDouble(_) { |
408 num[_parseError] = true; | 396 num._parseError = true; |
409 return 0.0; | 397 return 0.0; |
410 } | 398 } |
411 } | 399 } |
412 num[dart.implements] = () => [Comparable$(num)]; | 400 num[dart.implements] = () => [Comparable$(num)]; |
413 num._parseError = false; | 401 num._parseError = false; |
414 class double extends num { | 402 class double extends num { |
415 static parse(source, onError) { | 403 static parse(source, onError) { |
416 if (onError === void 0) | 404 if (onError === void 0) |
417 onError = null; | 405 onError = null; |
418 return _js_helper.Primitives.parseDouble(source, onError); | 406 return _js_helper.Primitives.parseDouble(source, onError); |
419 } | 407 } |
420 } | 408 } |
421 double.NAN = 0.0 / 0.0; | 409 double.NAN = 0.0 / 0.0; |
422 double.INFINITY = 1.0 / 0.0; | 410 double.INFINITY = 1.0 / 0.0; |
423 double.NEGATIVE_INFINITY = -dart.notNull(double.INFINITY); | 411 double.NEGATIVE_INFINITY = -dart.notNull(double.INFINITY); |
424 double.MIN_POSITIVE = 5e-324; | 412 double.MIN_POSITIVE = 5e-324; |
425 double.MAX_FINITE = 1.7976931348623157e+308; | 413 double.MAX_FINITE = 1.7976931348623157e+308; |
| 414 let _duration = dart.JsSymbol('_duration'); |
426 let _microseconds = dart.JsSymbol('_microseconds'); | 415 let _microseconds = dart.JsSymbol('_microseconds'); |
427 let _duration = dart.JsSymbol('_duration'); | |
428 class Duration extends Object { | 416 class Duration extends Object { |
429 Duration(opts) { | 417 Duration(opts) { |
430 let days = opts && 'days' in opts ? opts.days : 0; | 418 let days = opts && 'days' in opts ? opts.days : 0; |
431 let hours = opts && 'hours' in opts ? opts.hours : 0; | 419 let hours = opts && 'hours' in opts ? opts.hours : 0; |
432 let minutes = opts && 'minutes' in opts ? opts.minutes : 0; | 420 let minutes = opts && 'minutes' in opts ? opts.minutes : 0; |
433 let seconds = opts && 'seconds' in opts ? opts.seconds : 0; | 421 let seconds = opts && 'seconds' in opts ? opts.seconds : 0; |
434 let milliseconds = opts && 'milliseconds' in opts ? opts.milliseconds : 0; | 422 let milliseconds = opts && 'milliseconds' in opts ? opts.milliseconds : 0; |
435 let microseconds = opts && 'microseconds' in opts ? opts.microseconds : 0; | 423 let microseconds = opts && 'microseconds' in opts ? opts.microseconds : 0; |
436 this[_microseconds](dart.notNull(days) * dart.notNull(Duration.MICROSECOND
S_PER_DAY) + dart.notNull(hours) * dart.notNull(Duration.MICROSECONDS_PER_HOUR)
+ dart.notNull(minutes) * dart.notNull(Duration.MICROSECONDS_PER_MINUTE) + dart.
notNull(seconds) * dart.notNull(Duration.MICROSECONDS_PER_SECOND) + dart.notNull
(milliseconds) * dart.notNull(Duration.MICROSECONDS_PER_MILLISECOND) + dart.notN
ull(microseconds)); | 424 this._microseconds(dart.notNull(days) * dart.notNull(Duration.MICROSECONDS
_PER_DAY) + dart.notNull(hours) * dart.notNull(Duration.MICROSECONDS_PER_HOUR) +
dart.notNull(minutes) * dart.notNull(Duration.MICROSECONDS_PER_MINUTE) + dart.n
otNull(seconds) * dart.notNull(Duration.MICROSECONDS_PER_SECOND) + dart.notNull(
milliseconds) * dart.notNull(Duration.MICROSECONDS_PER_MILLISECOND) + dart.notNu
ll(microseconds)); |
437 } | 425 } |
438 [_microseconds](duration) { | 426 _microseconds(duration) { |
439 this[_duration] = duration; | 427 this[_duration] = duration; |
440 } | 428 } |
441 ['+'](other) { | 429 ['+'](other) { |
442 return new Duration[_microseconds](dart.notNull(this[_duration]) + dart.no
tNull(other[_duration])); | 430 return new Duration[_microseconds](dart.notNull(this[_duration]) + dart.no
tNull(other[_duration])); |
443 } | 431 } |
444 ['-'](other) { | 432 ['-'](other) { |
445 return new Duration[_microseconds](dart.notNull(this[_duration]) - dart.no
tNull(other[_duration])); | 433 return new Duration[_microseconds](dart.notNull(this[_duration]) - dart.no
tNull(other[_duration])); |
446 } | 434 } |
447 ['*'](factor) { | 435 ['*'](factor) { |
448 return new Duration[_microseconds]((dart.notNull(this[_duration]) * dart.n
otNull(factor)).round()); | 436 return new Duration[_microseconds]((dart.notNull(this[_duration]) * dart.n
otNull(factor)).round()); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
526 return dart.notNull(this[_duration]) < 0; | 514 return dart.notNull(this[_duration]) < 0; |
527 } | 515 } |
528 abs() { | 516 abs() { |
529 return new Duration[_microseconds](this[_duration].abs()); | 517 return new Duration[_microseconds](this[_duration].abs()); |
530 } | 518 } |
531 ['unary-']() { | 519 ['unary-']() { |
532 return new Duration[_microseconds](-dart.notNull(this[_duration])); | 520 return new Duration[_microseconds](-dart.notNull(this[_duration])); |
533 } | 521 } |
534 } | 522 } |
535 Duration[dart.implements] = () => [Comparable$(Duration)]; | 523 Duration[dart.implements] = () => [Comparable$(Duration)]; |
536 dart.defineNamedConstructor(Duration, _microseconds); | 524 dart.defineNamedConstructor(Duration, '_microseconds'); |
537 Duration.MICROSECONDS_PER_MILLISECOND = 1000; | 525 Duration.MICROSECONDS_PER_MILLISECOND = 1000; |
538 Duration.MILLISECONDS_PER_SECOND = 1000; | 526 Duration.MILLISECONDS_PER_SECOND = 1000; |
539 Duration.SECONDS_PER_MINUTE = 60; | 527 Duration.SECONDS_PER_MINUTE = 60; |
540 Duration.MINUTES_PER_HOUR = 60; | 528 Duration.MINUTES_PER_HOUR = 60; |
541 Duration.HOURS_PER_DAY = 24; | 529 Duration.HOURS_PER_DAY = 24; |
542 Duration.MICROSECONDS_PER_SECOND = dart.notNull(Duration.MICROSECONDS_PER_MILL
ISECOND) * dart.notNull(Duration.MILLISECONDS_PER_SECOND); | 530 Duration.MICROSECONDS_PER_SECOND = dart.notNull(Duration.MICROSECONDS_PER_MILL
ISECOND) * dart.notNull(Duration.MILLISECONDS_PER_SECOND); |
543 Duration.MICROSECONDS_PER_MINUTE = dart.notNull(Duration.MICROSECONDS_PER_SECO
ND) * dart.notNull(Duration.SECONDS_PER_MINUTE); | 531 Duration.MICROSECONDS_PER_MINUTE = dart.notNull(Duration.MICROSECONDS_PER_SECO
ND) * dart.notNull(Duration.SECONDS_PER_MINUTE); |
544 Duration.MICROSECONDS_PER_HOUR = dart.notNull(Duration.MICROSECONDS_PER_MINUTE
) * dart.notNull(Duration.MINUTES_PER_HOUR); | 532 Duration.MICROSECONDS_PER_HOUR = dart.notNull(Duration.MICROSECONDS_PER_MINUTE
) * dart.notNull(Duration.MINUTES_PER_HOUR); |
545 Duration.MICROSECONDS_PER_DAY = dart.notNull(Duration.MICROSECONDS_PER_HOUR) *
dart.notNull(Duration.HOURS_PER_DAY); | 533 Duration.MICROSECONDS_PER_DAY = dart.notNull(Duration.MICROSECONDS_PER_HOUR) *
dart.notNull(Duration.HOURS_PER_DAY); |
546 Duration.MILLISECONDS_PER_MINUTE = dart.notNull(Duration.MILLISECONDS_PER_SECO
ND) * dart.notNull(Duration.SECONDS_PER_MINUTE); | 534 Duration.MILLISECONDS_PER_MINUTE = dart.notNull(Duration.MILLISECONDS_PER_SECO
ND) * dart.notNull(Duration.SECONDS_PER_MINUTE); |
547 Duration.MILLISECONDS_PER_HOUR = dart.notNull(Duration.MILLISECONDS_PER_MINUTE
) * dart.notNull(Duration.MINUTES_PER_HOUR); | 535 Duration.MILLISECONDS_PER_HOUR = dart.notNull(Duration.MILLISECONDS_PER_MINUTE
) * dart.notNull(Duration.MINUTES_PER_HOUR); |
548 Duration.MILLISECONDS_PER_DAY = dart.notNull(Duration.MILLISECONDS_PER_HOUR) *
dart.notNull(Duration.HOURS_PER_DAY); | 536 Duration.MILLISECONDS_PER_DAY = dart.notNull(Duration.MILLISECONDS_PER_HOUR) *
dart.notNull(Duration.HOURS_PER_DAY); |
549 Duration.SECONDS_PER_HOUR = dart.notNull(Duration.SECONDS_PER_MINUTE) * dart.n
otNull(Duration.MINUTES_PER_HOUR); | 537 Duration.SECONDS_PER_HOUR = dart.notNull(Duration.SECONDS_PER_MINUTE) * dart.n
otNull(Duration.MINUTES_PER_HOUR); |
550 Duration.SECONDS_PER_DAY = dart.notNull(Duration.SECONDS_PER_HOUR) * dart.notN
ull(Duration.HOURS_PER_DAY); | 538 Duration.SECONDS_PER_DAY = dart.notNull(Duration.SECONDS_PER_HOUR) * dart.notN
ull(Duration.HOURS_PER_DAY); |
551 Duration.MINUTES_PER_DAY = dart.notNull(Duration.MINUTES_PER_HOUR) * dart.notN
ull(Duration.HOURS_PER_DAY); | 539 Duration.MINUTES_PER_DAY = dart.notNull(Duration.MINUTES_PER_HOUR) * dart.notN
ull(Duration.HOURS_PER_DAY); |
552 Duration.ZERO = dart.const(new Duration({seconds: 0})); | 540 Duration.ZERO = dart.const(new Duration({seconds: 0})); |
553 let _stringToSafeString = dart.JsSymbol('_stringToSafeString'); | |
554 let _objectToString = dart.JsSymbol('_objectToString'); | |
555 class Error extends Object { | 541 class Error extends Object { |
556 Error() { | 542 Error() { |
557 } | 543 } |
558 static safeToString(object) { | 544 static safeToString(object) { |
559 if (dart.is(object, num) || typeof object == 'boolean' || dart.notNull(nul
l == object)) { | 545 if (dart.is(object, num) || typeof object == 'boolean' || dart.notNull(nul
l == object)) { |
560 return dart.toString(object); | 546 return dart.toString(object); |
561 } | 547 } |
562 if (typeof object == 'string') { | 548 if (typeof object == 'string') { |
563 return Error[_stringToSafeString](object); | 549 return Error._stringToSafeString(object); |
564 } | 550 } |
565 return Error[_objectToString](object); | 551 return Error._objectToString(object); |
566 } | 552 } |
567 static [_stringToSafeString](string) { | 553 static _stringToSafeString(string) { |
568 return _js_helper.jsonEncodeNative(string); | 554 return _js_helper.jsonEncodeNative(string); |
569 } | 555 } |
570 static [_objectToString](object) { | 556 static _objectToString(object) { |
571 return _js_helper.Primitives.objectToString(object); | 557 return _js_helper.Primitives.objectToString(object); |
572 } | 558 } |
573 get stackTrace() { | 559 get stackTrace() { |
574 return _js_helper.Primitives.extractStackTrace(this); | 560 return _js_helper.Primitives.extractStackTrace(this); |
575 } | 561 } |
576 } | 562 } |
577 class AssertionError extends Error {} | 563 class AssertionError extends Error {} |
578 class TypeError extends AssertionError {} | 564 class TypeError extends AssertionError {} |
579 class CastError extends Error {} | 565 class CastError extends Error {} |
580 class NullThrownError extends Error { | 566 class NullThrownError extends Error { |
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1014 } | 1000 } |
1015 FormatException[dart.implements] = () => [Exception]; | 1001 FormatException[dart.implements] = () => [Exception]; |
1016 class IntegerDivisionByZeroException extends Object { | 1002 class IntegerDivisionByZeroException extends Object { |
1017 IntegerDivisionByZeroException() { | 1003 IntegerDivisionByZeroException() { |
1018 } | 1004 } |
1019 toString() { | 1005 toString() { |
1020 return "IntegerDivisionByZeroException"; | 1006 return "IntegerDivisionByZeroException"; |
1021 } | 1007 } |
1022 } | 1008 } |
1023 IntegerDivisionByZeroException[dart.implements] = () => [Exception]; | 1009 IntegerDivisionByZeroException[dart.implements] = () => [Exception]; |
1024 let _EXPANDO_PROPERTY_NAME = dart.JsSymbol('_EXPANDO_PROPERTY_NAME'); | |
1025 let _getKey = dart.JsSymbol('_getKey'); | 1010 let _getKey = dart.JsSymbol('_getKey'); |
1026 let _KEY_PROPERTY_NAME = dart.JsSymbol('_KEY_PROPERTY_NAME'); | |
1027 let _keyCount = dart.JsSymbol('_keyCount'); | |
1028 let Expando$ = dart.generic(function(T) { | 1011 let Expando$ = dart.generic(function(T) { |
1029 class Expando extends Object { | 1012 class Expando extends Object { |
1030 Expando(name) { | 1013 Expando(name) { |
1031 if (name === void 0) | 1014 if (name === void 0) |
1032 name = null; | 1015 name = null; |
1033 this.name = name; | 1016 this.name = name; |
1034 } | 1017 } |
1035 toString() { | 1018 toString() { |
1036 return `Expando:${this.name}`; | 1019 return `Expando:${this.name}`; |
1037 } | 1020 } |
1038 get(object) { | 1021 get(object) { |
1039 let values = _js_helper.Primitives.getProperty(object, Expando[_EXPANDO_
PROPERTY_NAME]); | 1022 let values = _js_helper.Primitives.getProperty(object, Expando._EXPANDO_
PROPERTY_NAME); |
1040 return dart.as(values == null ? null : _js_helper.Primitives.getProperty
(values, this[_getKey]()), T); | 1023 return dart.as(values == null ? null : _js_helper.Primitives.getProperty
(values, this[_getKey]()), T); |
1041 } | 1024 } |
1042 set(object, value) { | 1025 set(object, value) { |
1043 let values = _js_helper.Primitives.getProperty(object, Expando[_EXPANDO_
PROPERTY_NAME]); | 1026 let values = _js_helper.Primitives.getProperty(object, Expando._EXPANDO_
PROPERTY_NAME); |
1044 if (values == null) { | 1027 if (values == null) { |
1045 values = new Object(); | 1028 values = new Object(); |
1046 _js_helper.Primitives.setProperty(object, Expando[_EXPANDO_PROPERTY_NA
ME], values); | 1029 _js_helper.Primitives.setProperty(object, Expando._EXPANDO_PROPERTY_NA
ME, values); |
1047 } | 1030 } |
1048 _js_helper.Primitives.setProperty(values, this[_getKey](), value); | 1031 _js_helper.Primitives.setProperty(values, this[_getKey](), value); |
1049 } | 1032 } |
1050 [_getKey]() { | 1033 [_getKey]() { |
1051 let key = dart.as(_js_helper.Primitives.getProperty(this, Expando[_KEY_P
ROPERTY_NAME]), String); | 1034 let key = dart.as(_js_helper.Primitives.getProperty(this, Expando._KEY_P
ROPERTY_NAME), String); |
1052 if (key == null) { | 1035 if (key == null) { |
1053 key = `expando$key$${(() => { | 1036 key = `expando$key$${(() => { |
1054 let x = Expando[_keyCount]; | 1037 let x = Expando._keyCount; |
1055 Expando[_keyCount] = dart.notNull(x) + 1; | 1038 Expando._keyCount = dart.notNull(x) + 1; |
1056 return x; | 1039 return x; |
1057 })()}`; | 1040 })()}`; |
1058 _js_helper.Primitives.setProperty(this, Expando[_KEY_PROPERTY_NAME], k
ey); | 1041 _js_helper.Primitives.setProperty(this, Expando._KEY_PROPERTY_NAME, ke
y); |
1059 } | 1042 } |
1060 return key; | 1043 return key; |
1061 } | 1044 } |
1062 } | 1045 } |
1063 Expando._KEY_PROPERTY_NAME = 'expando$key'; | 1046 Expando._KEY_PROPERTY_NAME = 'expando$key'; |
1064 Expando._EXPANDO_PROPERTY_NAME = 'expando$values'; | 1047 Expando._EXPANDO_PROPERTY_NAME = 'expando$values'; |
1065 Expando._keyCount = 0; | 1048 Expando._keyCount = 0; |
1066 return Expando; | 1049 return Expando; |
1067 }); | 1050 }); |
1068 let Expando = Expando$(); | 1051 let Expando = Expando$(); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1122 } | 1105 } |
1123 dart.defineNamedConstructor(Iterable, 'generate'); | 1106 dart.defineNamedConstructor(Iterable, 'generate'); |
1124 return Iterable; | 1107 return Iterable; |
1125 }); | 1108 }); |
1126 let Iterable = Iterable$(); | 1109 let Iterable = Iterable$(); |
1127 let _Generator$ = dart.generic(function(E) { | 1110 let _Generator$ = dart.generic(function(E) { |
1128 let _Generator = dart.typedef('_Generator', () => dart.functionType(E, [int]
)); | 1111 let _Generator = dart.typedef('_Generator', () => dart.functionType(E, [int]
)); |
1129 return _Generator; | 1112 return _Generator; |
1130 }); | 1113 }); |
1131 let _Generator = _Generator$(); | 1114 let _Generator = _Generator$(); |
1132 let _id = dart.JsSymbol('_id'); | |
1133 let _end = dart.JsSymbol('_end'); | 1115 let _end = dart.JsSymbol('_end'); |
1134 let _start = dart.JsSymbol('_start'); | 1116 let _start = dart.JsSymbol('_start'); |
1135 let _generator = dart.JsSymbol('_generator'); | 1117 let _generator = dart.JsSymbol('_generator'); |
1136 let $iterator = dart.JsSymbol('$iterator'); | 1118 let $iterator = dart.JsSymbol('$iterator'); |
1137 let $skip = dart.JsSymbol('$skip'); | 1119 let $skip = dart.JsSymbol('$skip'); |
1138 let $take = dart.JsSymbol('$take'); | 1120 let $take = dart.JsSymbol('$take'); |
1139 let _GeneratorIterable$ = dart.generic(function(E) { | 1121 let _GeneratorIterable$ = dart.generic(function(E) { |
1140 class _GeneratorIterable extends collection.IterableBase$(E) { | 1122 class _GeneratorIterable extends collection.IterableBase$(E) { |
1141 _GeneratorIterable(end, generator) { | 1123 _GeneratorIterable(end, generator) { |
1142 this[_end] = end; | 1124 this[_end] = end; |
1143 this[_start] = 0; | 1125 this[_start] = 0; |
1144 this[_generator] = dart.as(generator != null ? generator : _GeneratorIte
rable[_id], _Generator$(E)); | 1126 this[_generator] = dart.as(generator != null ? generator : _GeneratorIte
rable._id, _Generator$(E)); |
1145 super.IterableBase(); | 1127 super.IterableBase(); |
1146 } | 1128 } |
1147 slice(start, end, generator) { | 1129 slice(start, end, generator) { |
1148 this[_start] = start; | 1130 this[_start] = start; |
1149 this[_end] = end; | 1131 this[_end] = end; |
1150 this[_generator] = generator; | 1132 this[_generator] = generator; |
1151 super.IterableBase(); | 1133 super.IterableBase(); |
1152 } | 1134 } |
1153 get [$iterator]() { | 1135 get [$iterator]() { |
1154 return new (_GeneratorIterator$(E))(this[_start], this[_end], this[_gene
rator]); | 1136 return new (_GeneratorIterator$(E))(this[_start], this[_end], this[_gene
rator]); |
(...skipping 12 matching lines...) Expand all Loading... |
1167 } | 1149 } |
1168 [$take](count) { | 1150 [$take](count) { |
1169 RangeError.checkNotNegative(count, "count"); | 1151 RangeError.checkNotNegative(count, "count"); |
1170 if (count == 0) | 1152 if (count == 0) |
1171 return new (_internal.EmptyIterable$(E))(); | 1153 return new (_internal.EmptyIterable$(E))(); |
1172 let newEnd = dart.notNull(this[_start]) + dart.notNull(count); | 1154 let newEnd = dart.notNull(this[_start]) + dart.notNull(count); |
1173 if (dart.notNull(newEnd) >= dart.notNull(this[_end])) | 1155 if (dart.notNull(newEnd) >= dart.notNull(this[_end])) |
1174 return this; | 1156 return this; |
1175 return new exports._GeneratorIterable$(E).slice(this[_start], newEnd, th
is[_generator]); | 1157 return new exports._GeneratorIterable$(E).slice(this[_start], newEnd, th
is[_generator]); |
1176 } | 1158 } |
1177 static [_id](n) { | 1159 static _id(n) { |
1178 return n; | 1160 return n; |
1179 } | 1161 } |
1180 } | 1162 } |
1181 _GeneratorIterable[dart.implements] = () => [_internal.EfficientLength]; | 1163 _GeneratorIterable[dart.implements] = () => [_internal.EfficientLength]; |
1182 dart.defineNamedConstructor(_GeneratorIterable, 'slice'); | 1164 dart.defineNamedConstructor(_GeneratorIterable, 'slice'); |
1183 return _GeneratorIterable; | 1165 return _GeneratorIterable; |
1184 }); | 1166 }); |
1185 dart.defineLazyClassGeneric(exports, '_GeneratorIterable', {get: _GeneratorIte
rable$}); | 1167 dart.defineLazyClassGeneric(exports, '_GeneratorIterable', {get: _GeneratorIte
rable$}); |
1186 let _index = dart.JsSymbol('_index'); | 1168 let _index = dart.JsSymbol('_index'); |
1187 let _current = dart.JsSymbol('_current'); | 1169 let _current = dart.JsSymbol('_current'); |
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1635 return new collection.LinkedHashMap$(K, V).fromIterables(keys, values); | 1617 return new collection.LinkedHashMap$(K, V).fromIterables(keys, values); |
1636 } | 1618 } |
1637 } | 1619 } |
1638 dart.defineNamedConstructor(Map, 'from'); | 1620 dart.defineNamedConstructor(Map, 'from'); |
1639 dart.defineNamedConstructor(Map, 'identity'); | 1621 dart.defineNamedConstructor(Map, 'identity'); |
1640 dart.defineNamedConstructor(Map, 'fromIterable'); | 1622 dart.defineNamedConstructor(Map, 'fromIterable'); |
1641 dart.defineNamedConstructor(Map, 'fromIterables'); | 1623 dart.defineNamedConstructor(Map, 'fromIterables'); |
1642 return Map; | 1624 return Map; |
1643 }); | 1625 }); |
1644 let Map = Map$(); | 1626 let Map = Map$(); |
1645 let _uninstantiable = dart.JsSymbol('_uninstantiable'); | |
1646 class Null extends Object { | 1627 class Null extends Object { |
1647 [_uninstantiable]() { | 1628 _uninstantiable() { |
1648 throw new UnsupportedError('class Null cannot be instantiated'); | 1629 throw new UnsupportedError('class Null cannot be instantiated'); |
1649 } | 1630 } |
1650 toString() { | 1631 toString() { |
1651 return "null"; | 1632 return "null"; |
1652 } | 1633 } |
1653 } | 1634 } |
1654 dart.defineNamedConstructor(Null, _uninstantiable); | 1635 dart.defineNamedConstructor(Null, '_uninstantiable'); |
1655 class Pattern extends Object {} | 1636 class Pattern extends Object {} |
1656 // Function print: (Object) → void | 1637 // Function print: (Object) → void |
1657 function print(object) { | 1638 function print(object) { |
1658 let line = `${object}`; | 1639 let line = `${object}`; |
1659 if (_internal.printToZone == null) { | 1640 if (_internal.printToZone == null) { |
1660 _internal.printToConsole(line); | 1641 _internal.printToConsole(line); |
1661 } else { | 1642 } else { |
1662 dart.dcall(_internal.printToZone, line); | 1643 dart.dcall(_internal.printToZone, line); |
1663 } | 1644 } |
1664 } | 1645 } |
(...skipping 23 matching lines...) Expand all Loading... |
1688 dart.defineNamedConstructor(Set, 'from'); | 1669 dart.defineNamedConstructor(Set, 'from'); |
1689 return Set; | 1670 return Set; |
1690 }); | 1671 }); |
1691 dart.defineLazyClassGeneric(exports, 'Set', {get: Set$}); | 1672 dart.defineLazyClassGeneric(exports, 'Set', {get: Set$}); |
1692 let Sink$ = dart.generic(function(T) { | 1673 let Sink$ = dart.generic(function(T) { |
1693 class Sink extends Object {} | 1674 class Sink extends Object {} |
1694 return Sink; | 1675 return Sink; |
1695 }); | 1676 }); |
1696 let Sink = Sink$(); | 1677 let Sink = Sink$(); |
1697 class StackTrace extends Object {} | 1678 class StackTrace extends Object {} |
1698 let _frequency = dart.JsSymbol('_frequency'); | |
1699 let _stop = dart.JsSymbol('_stop'); | 1679 let _stop = dart.JsSymbol('_stop'); |
1700 let _initTicker = dart.JsSymbol('_initTicker'); | |
1701 class Stopwatch extends Object { | 1680 class Stopwatch extends Object { |
1702 get frequency() { | 1681 get frequency() { |
1703 return Stopwatch[_frequency]; | 1682 return Stopwatch._frequency; |
1704 } | 1683 } |
1705 Stopwatch() { | 1684 Stopwatch() { |
1706 this[_start] = null; | 1685 this[_start] = null; |
1707 this[_stop] = null; | 1686 this[_stop] = null; |
1708 Stopwatch[_initTicker](); | 1687 Stopwatch._initTicker(); |
1709 } | 1688 } |
1710 start() { | 1689 start() { |
1711 if (this.isRunning) | 1690 if (this.isRunning) |
1712 return; | 1691 return; |
1713 if (this[_start] == null) { | 1692 if (this[_start] == null) { |
1714 this[_start] = Stopwatch[_now](); | 1693 this[_start] = Stopwatch._now(); |
1715 } else { | 1694 } else { |
1716 this[_start] = dart.notNull(Stopwatch[_now]()) - (dart.notNull(this[_sto
p]) - dart.notNull(this[_start])); | 1695 this[_start] = dart.notNull(Stopwatch._now()) - (dart.notNull(this[_stop
]) - dart.notNull(this[_start])); |
1717 this[_stop] = null; | 1696 this[_stop] = null; |
1718 } | 1697 } |
1719 } | 1698 } |
1720 stop() { | 1699 stop() { |
1721 if (!dart.notNull(this.isRunning)) | 1700 if (!dart.notNull(this.isRunning)) |
1722 return; | 1701 return; |
1723 this[_stop] = Stopwatch[_now](); | 1702 this[_stop] = Stopwatch._now(); |
1724 } | 1703 } |
1725 reset() { | 1704 reset() { |
1726 if (this[_start] == null) | 1705 if (this[_start] == null) |
1727 return; | 1706 return; |
1728 this[_start] = Stopwatch[_now](); | 1707 this[_start] = Stopwatch._now(); |
1729 if (this[_stop] != null) { | 1708 if (this[_stop] != null) { |
1730 this[_stop] = this[_start]; | 1709 this[_stop] = this[_start]; |
1731 } | 1710 } |
1732 } | 1711 } |
1733 get elapsedTicks() { | 1712 get elapsedTicks() { |
1734 if (this[_start] == null) { | 1713 if (this[_start] == null) { |
1735 return 0; | 1714 return 0; |
1736 } | 1715 } |
1737 return this[_stop] == null ? dart.notNull(Stopwatch[_now]()) - dart.notNul
l(this[_start]) : dart.notNull(this[_stop]) - dart.notNull(this[_start]); | 1716 return this[_stop] == null ? dart.notNull(Stopwatch._now()) - dart.notNull
(this[_start]) : dart.notNull(this[_stop]) - dart.notNull(this[_start]); |
1738 } | 1717 } |
1739 get elapsed() { | 1718 get elapsed() { |
1740 return new Duration({microseconds: this.elapsedMicroseconds}); | 1719 return new Duration({microseconds: this.elapsedMicroseconds}); |
1741 } | 1720 } |
1742 get elapsedMicroseconds() { | 1721 get elapsedMicroseconds() { |
1743 return (dart.notNull(this.elapsedTicks) * 1000000 / dart.notNull(this.freq
uency)).truncate(); | 1722 return (dart.notNull(this.elapsedTicks) * 1000000 / dart.notNull(this.freq
uency)).truncate(); |
1744 } | 1723 } |
1745 get elapsedMilliseconds() { | 1724 get elapsedMilliseconds() { |
1746 return (dart.notNull(this.elapsedTicks) * 1000 / dart.notNull(this.frequen
cy)).truncate(); | 1725 return (dart.notNull(this.elapsedTicks) * 1000 / dart.notNull(this.frequen
cy)).truncate(); |
1747 } | 1726 } |
1748 get isRunning() { | 1727 get isRunning() { |
1749 return this[_start] != null && this[_stop] == null; | 1728 return this[_start] != null && this[_stop] == null; |
1750 } | 1729 } |
1751 static [_initTicker]() { | 1730 static _initTicker() { |
1752 _js_helper.Primitives.initTicker(); | 1731 _js_helper.Primitives.initTicker(); |
1753 Stopwatch[_frequency] = _js_helper.Primitives.timerFrequency; | 1732 Stopwatch._frequency = _js_helper.Primitives.timerFrequency; |
1754 } | 1733 } |
1755 static [_now]() { | 1734 static _now() { |
1756 return dart.as(dart.dcall(_js_helper.Primitives.timerTicks), int); | 1735 return dart.as(dart.dcall(_js_helper.Primitives.timerTicks), int); |
1757 } | 1736 } |
1758 } | 1737 } |
1759 Stopwatch._frequency = null; | 1738 Stopwatch._frequency = null; |
1760 let _stringFromIterable = dart.JsSymbol('_stringFromIterable'); | |
1761 class String extends Object { | 1739 class String extends Object { |
1762 fromCharCodes(charCodes, start, end) { | 1740 fromCharCodes(charCodes, start, end) { |
1763 if (start === void 0) | 1741 if (start === void 0) |
1764 start = 0; | 1742 start = 0; |
1765 if (end === void 0) | 1743 if (end === void 0) |
1766 end = null; | 1744 end = null; |
1767 if (!dart.is(charCodes, _interceptors.JSArray)) { | 1745 if (!dart.is(charCodes, _interceptors.JSArray)) { |
1768 return String[_stringFromIterable](charCodes, start, end); | 1746 return String._stringFromIterable(charCodes, start, end); |
1769 } | 1747 } |
1770 let list = dart.as(charCodes, List); | 1748 let list = dart.as(charCodes, List); |
1771 let len = list[$length]; | 1749 let len = list[$length]; |
1772 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(len)) { | 1750 if (dart.notNull(start) < 0 || dart.notNull(start) > dart.notNull(len)) { |
1773 throw new RangeError.range(start, 0, len); | 1751 throw new RangeError.range(start, 0, len); |
1774 } | 1752 } |
1775 if (end == null) { | 1753 if (end == null) { |
1776 end = len; | 1754 end = len; |
1777 } else if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) >
dart.notNull(len)) { | 1755 } else if (dart.notNull(end) < dart.notNull(start) || dart.notNull(end) >
dart.notNull(len)) { |
1778 throw new RangeError.range(end, start, len); | 1756 throw new RangeError.range(end, start, len); |
1779 } | 1757 } |
1780 if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(len)) { | 1758 if (dart.notNull(start) > 0 || dart.notNull(end) < dart.notNull(len)) { |
1781 list = list[$sublist](start, end); | 1759 list = list[$sublist](start, end); |
1782 } | 1760 } |
1783 return _js_helper.Primitives.stringFromCharCodes(list); | 1761 return _js_helper.Primitives.stringFromCharCodes(list); |
1784 } | 1762 } |
1785 fromCharCode(charCode) { | 1763 fromCharCode(charCode) { |
1786 return _js_helper.Primitives.stringFromCharCode(charCode); | 1764 return _js_helper.Primitives.stringFromCharCode(charCode); |
1787 } | 1765 } |
1788 fromEnvironment(name, opts) { | 1766 fromEnvironment(name, opts) { |
1789 let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : nu
ll; | 1767 let defaultValue = opts && 'defaultValue' in opts ? opts.defaultValue : nu
ll; |
1790 throw new UnsupportedError('String.fromEnvironment can only be used as a c
onst constructor'); | 1768 throw new UnsupportedError('String.fromEnvironment can only be used as a c
onst constructor'); |
1791 } | 1769 } |
1792 static [_stringFromIterable](charCodes, start, end) { | 1770 static _stringFromIterable(charCodes, start, end) { |
1793 if (dart.notNull(start) < 0) | 1771 if (dart.notNull(start) < 0) |
1794 throw new RangeError.range(start, 0, charCodes[$length]); | 1772 throw new RangeError.range(start, 0, charCodes[$length]); |
1795 if (end != null && dart.notNull(end) < dart.notNull(start)) { | 1773 if (end != null && dart.notNull(end) < dart.notNull(start)) { |
1796 throw new RangeError.range(end, start, charCodes[$length]); | 1774 throw new RangeError.range(end, start, charCodes[$length]); |
1797 } | 1775 } |
1798 let it = charCodes[$iterator]; | 1776 let it = charCodes[$iterator]; |
1799 for (let i = 0; dart.notNull(i) < dart.notNull(start); i = dart.notNull(i)
+ 1) { | 1777 for (let i = 0; dart.notNull(i) < dart.notNull(start); i = dart.notNull(i)
+ 1) { |
1800 if (!dart.notNull(it.moveNext())) { | 1778 if (!dart.notNull(it.moveNext())) { |
1801 throw new RangeError.range(start, 0, i); | 1779 throw new RangeError.range(start, 0, i); |
1802 } | 1780 } |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2018 class Symbol extends Object { | 1996 class Symbol extends Object { |
2019 Symbol(name) { | 1997 Symbol(name) { |
2020 return new _internal.Symbol(name); | 1998 return new _internal.Symbol(name); |
2021 } | 1999 } |
2022 } | 2000 } |
2023 class Type extends Object {} | 2001 class Type extends Object {} |
2024 let _writeAuthority = dart.JsSymbol('_writeAuthority'); | 2002 let _writeAuthority = dart.JsSymbol('_writeAuthority'); |
2025 let _userInfo = dart.JsSymbol('_userInfo'); | 2003 let _userInfo = dart.JsSymbol('_userInfo'); |
2026 let _host = dart.JsSymbol('_host'); | 2004 let _host = dart.JsSymbol('_host'); |
2027 let _port = dart.JsSymbol('_port'); | 2005 let _port = dart.JsSymbol('_port'); |
2028 let _defaultPort = dart.JsSymbol('_defaultPort'); | |
2029 let _path = dart.JsSymbol('_path'); | 2006 let _path = dart.JsSymbol('_path'); |
2030 let _query = dart.JsSymbol('_query'); | 2007 let _query = dart.JsSymbol('_query'); |
2031 let _fragment = dart.JsSymbol('_fragment'); | 2008 let _fragment = dart.JsSymbol('_fragment'); |
2032 let _regNameTable = dart.JsSymbol('_regNameTable'); | 2009 let _internal$ = dart.JsSymbol('_internal'); |
2033 let _SLASH = dart.JsSymbol('_SLASH'); | |
2034 let _QUESTION = dart.JsSymbol('_QUESTION'); | |
2035 let _NUMBER_SIGN = dart.JsSymbol('_NUMBER_SIGN'); | |
2036 let _AT_SIGN = dart.JsSymbol('_AT_SIGN'); | |
2037 let _COLON = dart.JsSymbol('_COLON'); | |
2038 let _LEFT_BRACKET = dart.JsSymbol('_LEFT_BRACKET'); | |
2039 let _makeUserInfo = dart.JsSymbol('_makeUserInfo'); | |
2040 let _ZERO = dart.JsSymbol('_ZERO'); | |
2041 let _NINE = dart.JsSymbol('_NINE'); | |
2042 let _fail = dart.JsSymbol('_fail'); | |
2043 let _makePort = dart.JsSymbol('_makePort'); | |
2044 let _makeHost = dart.JsSymbol('_makeHost'); | |
2045 let _makeScheme = dart.JsSymbol('_makeScheme'); | |
2046 let _makePath = dart.JsSymbol('_makePath'); | |
2047 let _makeQuery = dart.JsSymbol('_makeQuery'); | |
2048 let _makeFragment = dart.JsSymbol('_makeFragment'); | |
2049 let _pathSegments = dart.JsSymbol('_pathSegments'); | 2010 let _pathSegments = dart.JsSymbol('_pathSegments'); |
2050 let _queryParameters = dart.JsSymbol('_queryParameters'); | 2011 let _queryParameters = dart.JsSymbol('_queryParameters'); |
2051 let _stringOrNullLength = dart.JsSymbol('_stringOrNullLength'); | |
2052 let _makeHttpUri = dart.JsSymbol('_makeHttpUri'); | |
2053 let _RIGHT_BRACKET = dart.JsSymbol('_RIGHT_BRACKET'); | |
2054 let _isWindows = dart.JsSymbol('_isWindows'); | |
2055 let _makeWindowsFileUrl = dart.JsSymbol('_makeWindowsFileUrl'); | |
2056 let _makeFileUri = dart.JsSymbol('_makeFileUri'); | |
2057 let _checkNonWindowsPathReservedCharacters = dart.JsSymbol('_checkNonWindowsPa
thReservedCharacters'); | |
2058 let _checkWindowsPathReservedCharacters = dart.JsSymbol('_checkWindowsPathRese
rvedCharacters'); | |
2059 let _checkWindowsDriveLetter = dart.JsSymbol('_checkWindowsDriveLetter'); | |
2060 let _UPPER_CASE_A = dart.JsSymbol('_UPPER_CASE_A'); | |
2061 let _UPPER_CASE_Z = dart.JsSymbol('_UPPER_CASE_Z'); | |
2062 let _LOWER_CASE_A = dart.JsSymbol('_LOWER_CASE_A'); | |
2063 let _LOWER_CASE_Z = dart.JsSymbol('_LOWER_CASE_Z'); | |
2064 let _BACKSLASH = dart.JsSymbol('_BACKSLASH'); | |
2065 let _normalizeRegName = dart.JsSymbol('_normalizeRegName'); | |
2066 let _isRegNameChar = dart.JsSymbol('_isRegNameChar'); | |
2067 let _PERCENT = dart.JsSymbol('_PERCENT'); | |
2068 let _normalizeEscape = dart.JsSymbol('_normalizeEscape'); | |
2069 let _isGeneralDelimiter = dart.JsSymbol('_isGeneralDelimiter'); | |
2070 let _escapeChar = dart.JsSymbol('_escapeChar'); | |
2071 let _isAlphabeticCharacter = dart.JsSymbol('_isAlphabeticCharacter'); | |
2072 let _isSchemeCharacter = dart.JsSymbol('_isSchemeCharacter'); | |
2073 let _normalize = dart.JsSymbol('_normalize'); | |
2074 let _userinfoTable = dart.JsSymbol('_userinfoTable'); | |
2075 let _pathCharOrSlashTable = dart.JsSymbol('_pathCharOrSlashTable'); | |
2076 let _uriEncode = dart.JsSymbol('_uriEncode'); | |
2077 let _pathCharTable = dart.JsSymbol('_pathCharTable'); | |
2078 let _queryCharTable = dart.JsSymbol('_queryCharTable'); | |
2079 let _isHexDigit = dart.JsSymbol('_isHexDigit'); | |
2080 let _LOWER_CASE_F = dart.JsSymbol('_LOWER_CASE_F'); | |
2081 let _hexValue = dart.JsSymbol('_hexValue'); | |
2082 let _isUnreservedChar = dart.JsSymbol('_isUnreservedChar'); | |
2083 let _unreservedTable = dart.JsSymbol('_unreservedTable'); | |
2084 let _schemeTable = dart.JsSymbol('_schemeTable'); | |
2085 let _genDelimitersTable = dart.JsSymbol('_genDelimitersTable'); | |
2086 let _merge = dart.JsSymbol('_merge'); | 2012 let _merge = dart.JsSymbol('_merge'); |
2087 let _DOT = dart.JsSymbol('_DOT'); | |
2088 let _hasDotSegments = dart.JsSymbol('_hasDotSegments'); | 2013 let _hasDotSegments = dart.JsSymbol('_hasDotSegments'); |
2089 let _removeDotSegments = dart.JsSymbol('_removeDotSegments'); | 2014 let _removeDotSegments = dart.JsSymbol('_removeDotSegments'); |
2090 let _toWindowsFilePath = dart.JsSymbol('_toWindowsFilePath'); | 2015 let _toWindowsFilePath = dart.JsSymbol('_toWindowsFilePath'); |
2091 let _toFilePath = dart.JsSymbol('_toFilePath'); | 2016 let _toFilePath = dart.JsSymbol('_toFilePath'); |
2092 let _isPathAbsolute = dart.JsSymbol('_isPathAbsolute'); | 2017 let _isPathAbsolute = dart.JsSymbol('_isPathAbsolute'); |
2093 let _addIfNonEmpty = dart.JsSymbol('_addIfNonEmpty'); | |
2094 let _unreserved2396Table = dart.JsSymbol('_unreserved2396Table'); | |
2095 let _uriDecode = dart.JsSymbol('_uriDecode'); | |
2096 let _encodeFullTable = dart.JsSymbol('_encodeFullTable'); | |
2097 let _SPACE = dart.JsSymbol('_SPACE'); | |
2098 let _PLUS = dart.JsSymbol('_PLUS'); | |
2099 let _hexCharPairToByte = dart.JsSymbol('_hexCharPairToByte'); | |
2100 class Uri extends Object { | 2018 class Uri extends Object { |
2101 get authority() { | 2019 get authority() { |
2102 if (!dart.notNull(this.hasAuthority)) | 2020 if (!dart.notNull(this.hasAuthority)) |
2103 return ""; | 2021 return ""; |
2104 let sb = new StringBuffer(); | 2022 let sb = new StringBuffer(); |
2105 this[_writeAuthority](sb); | 2023 this[_writeAuthority](sb); |
2106 return dart.toString(sb); | 2024 return dart.toString(sb); |
2107 } | 2025 } |
2108 get userInfo() { | 2026 get userInfo() { |
2109 return this[_userInfo]; | 2027 return this[_userInfo]; |
2110 } | 2028 } |
2111 get host() { | 2029 get host() { |
2112 if (this[_host] == null) | 2030 if (this[_host] == null) |
2113 return ""; | 2031 return ""; |
2114 if (this[_host].startsWith('[')) { | 2032 if (this[_host].startsWith('[')) { |
2115 return this[_host].substring(1, dart.notNull(this[_host].length) - 1); | 2033 return this[_host].substring(1, dart.notNull(this[_host].length) - 1); |
2116 } | 2034 } |
2117 return this[_host]; | 2035 return this[_host]; |
2118 } | 2036 } |
2119 get port() { | 2037 get port() { |
2120 if (this[_port] == null) | 2038 if (this[_port] == null) |
2121 return Uri[_defaultPort](this.scheme); | 2039 return Uri._defaultPort(this.scheme); |
2122 return this[_port]; | 2040 return this[_port]; |
2123 } | 2041 } |
2124 static [_defaultPort](scheme) { | 2042 static _defaultPort(scheme) { |
2125 if (scheme == "http") | 2043 if (scheme == "http") |
2126 return 80; | 2044 return 80; |
2127 if (scheme == "https") | 2045 if (scheme == "https") |
2128 return 443; | 2046 return 443; |
2129 return 0; | 2047 return 0; |
2130 } | 2048 } |
2131 get path() { | 2049 get path() { |
2132 return this[_path]; | 2050 return this[_path]; |
2133 } | 2051 } |
2134 get query() { | 2052 get query() { |
2135 return this[_query] == null ? "" : this[_query]; | 2053 return this[_query] == null ? "" : this[_query]; |
2136 } | 2054 } |
2137 get fragment() { | 2055 get fragment() { |
2138 return this[_fragment] == null ? "" : this[_fragment]; | 2056 return this[_fragment] == null ? "" : this[_fragment]; |
2139 } | 2057 } |
2140 static parse(uri) { | 2058 static parse(uri) { |
2141 // Function isRegName: (int) → bool | 2059 // Function isRegName: (int) → bool |
2142 function isRegName(ch) { | 2060 function isRegName(ch) { |
2143 return dart.notNull(ch) < 128 && dart.notNull(!dart.equals(dart.dsend(Ur
i[_regNameTable][$get](dart.notNull(ch) >> 4), '&', 1 << (dart.notNull(ch) & 15)
), 0)); | 2061 return dart.notNull(ch) < 128 && dart.notNull(!dart.equals(dart.dsend(Ur
i._regNameTable[$get](dart.notNull(ch) >> 4), '&', 1 << (dart.notNull(ch) & 15))
, 0)); |
2144 } | 2062 } |
2145 let EOI = -1; | 2063 let EOI = -1; |
2146 let scheme = ""; | 2064 let scheme = ""; |
2147 let userinfo = ""; | 2065 let userinfo = ""; |
2148 let host = null; | 2066 let host = null; |
2149 let port = null; | 2067 let port = null; |
2150 let path = null; | 2068 let path = null; |
2151 let query = null; | 2069 let query = null; |
2152 let fragment = null; | 2070 let fragment = null; |
2153 let index = 0; | 2071 let index = 0; |
2154 let pathStart = 0; | 2072 let pathStart = 0; |
2155 let char = EOI; | 2073 let char = EOI; |
2156 // Function parseAuth: () → void | 2074 // Function parseAuth: () → void |
2157 function parseAuth() { | 2075 function parseAuth() { |
2158 if (index == uri.length) { | 2076 if (index == uri.length) { |
2159 char = EOI; | 2077 char = EOI; |
2160 return; | 2078 return; |
2161 } | 2079 } |
2162 let authStart = index; | 2080 let authStart = index; |
2163 let lastColon = -1; | 2081 let lastColon = -1; |
2164 let lastAt = -1; | 2082 let lastAt = -1; |
2165 char = uri.codeUnitAt(index); | 2083 char = uri.codeUnitAt(index); |
2166 while (dart.notNull(index) < dart.notNull(uri.length)) { | 2084 while (dart.notNull(index) < dart.notNull(uri.length)) { |
2167 char = uri.codeUnitAt(index); | 2085 char = uri.codeUnitAt(index); |
2168 if (char == Uri[_SLASH] || char == Uri[_QUESTION] || char == Uri[_NUMB
ER_SIGN]) { | 2086 if (char == Uri._SLASH || char == Uri._QUESTION || char == Uri._NUMBER
_SIGN) { |
2169 break; | 2087 break; |
2170 } | 2088 } |
2171 if (char == Uri[_AT_SIGN]) { | 2089 if (char == Uri._AT_SIGN) { |
2172 lastAt = index; | 2090 lastAt = index; |
2173 lastColon = -1; | 2091 lastColon = -1; |
2174 } else if (char == Uri[_COLON]) { | 2092 } else if (char == Uri._COLON) { |
2175 lastColon = index; | 2093 lastColon = index; |
2176 } else if (char == Uri[_LEFT_BRACKET]) { | 2094 } else if (char == Uri._LEFT_BRACKET) { |
2177 lastColon = -1; | 2095 lastColon = -1; |
2178 let endBracket = uri.indexOf(']', dart.notNull(index) + 1); | 2096 let endBracket = uri.indexOf(']', dart.notNull(index) + 1); |
2179 if (endBracket == -1) { | 2097 if (endBracket == -1) { |
2180 index = uri.length; | 2098 index = uri.length; |
2181 char = EOI; | 2099 char = EOI; |
2182 break; | 2100 break; |
2183 } else { | 2101 } else { |
2184 index = endBracket; | 2102 index = endBracket; |
2185 } | 2103 } |
2186 } | 2104 } |
2187 index = dart.notNull(index) + 1; | 2105 index = dart.notNull(index) + 1; |
2188 char = EOI; | 2106 char = EOI; |
2189 } | 2107 } |
2190 let hostStart = authStart; | 2108 let hostStart = authStart; |
2191 let hostEnd = index; | 2109 let hostEnd = index; |
2192 if (dart.notNull(lastAt) >= 0) { | 2110 if (dart.notNull(lastAt) >= 0) { |
2193 userinfo = Uri[_makeUserInfo](uri, authStart, lastAt); | 2111 userinfo = Uri._makeUserInfo(uri, authStart, lastAt); |
2194 hostStart = dart.notNull(lastAt) + 1; | 2112 hostStart = dart.notNull(lastAt) + 1; |
2195 } | 2113 } |
2196 if (dart.notNull(lastColon) >= 0) { | 2114 if (dart.notNull(lastColon) >= 0) { |
2197 let portNumber = null; | 2115 let portNumber = null; |
2198 if (dart.notNull(lastColon) + 1 < dart.notNull(index)) { | 2116 if (dart.notNull(lastColon) + 1 < dart.notNull(index)) { |
2199 portNumber = 0; | 2117 portNumber = 0; |
2200 for (let i = dart.notNull(lastColon) + 1; dart.notNull(i) < dart.not
Null(index); i = dart.notNull(i) + 1) { | 2118 for (let i = dart.notNull(lastColon) + 1; dart.notNull(i) < dart.not
Null(index); i = dart.notNull(i) + 1) { |
2201 let digit = uri.codeUnitAt(i); | 2119 let digit = uri.codeUnitAt(i); |
2202 if (dart.notNull(Uri[_ZERO]) > dart.notNull(digit) || dart.notNull
(Uri[_NINE]) < dart.notNull(digit)) { | 2120 if (dart.notNull(Uri._ZERO) > dart.notNull(digit) || dart.notNull(
Uri._NINE) < dart.notNull(digit)) { |
2203 Uri[_fail](uri, i, "Invalid port number"); | 2121 Uri._fail(uri, i, "Invalid port number"); |
2204 } | 2122 } |
2205 portNumber = dart.notNull(portNumber) * 10 + (dart.notNull(digit)
- dart.notNull(Uri[_ZERO])); | 2123 portNumber = dart.notNull(portNumber) * 10 + (dart.notNull(digit)
- dart.notNull(Uri._ZERO)); |
2206 } | 2124 } |
2207 } | 2125 } |
2208 port = Uri[_makePort](portNumber, scheme); | 2126 port = Uri._makePort(portNumber, scheme); |
2209 hostEnd = lastColon; | 2127 hostEnd = lastColon; |
2210 } | 2128 } |
2211 host = Uri[_makeHost](uri, hostStart, hostEnd, true); | 2129 host = Uri._makeHost(uri, hostStart, hostEnd, true); |
2212 if (dart.notNull(index) < dart.notNull(uri.length)) { | 2130 if (dart.notNull(index) < dart.notNull(uri.length)) { |
2213 char = uri.codeUnitAt(index); | 2131 char = uri.codeUnitAt(index); |
2214 } | 2132 } |
2215 } | 2133 } |
2216 let NOT_IN_PATH = 0; | 2134 let NOT_IN_PATH = 0; |
2217 let IN_PATH = 1; | 2135 let IN_PATH = 1; |
2218 let ALLOW_AUTH = 2; | 2136 let ALLOW_AUTH = 2; |
2219 let state = NOT_IN_PATH; | 2137 let state = NOT_IN_PATH; |
2220 let i = index; | 2138 let i = index; |
2221 while (dart.notNull(i) < dart.notNull(uri.length)) { | 2139 while (dart.notNull(i) < dart.notNull(uri.length)) { |
2222 char = uri.codeUnitAt(i); | 2140 char = uri.codeUnitAt(i); |
2223 if (char == Uri[_QUESTION] || char == Uri[_NUMBER_SIGN]) { | 2141 if (char == Uri._QUESTION || char == Uri._NUMBER_SIGN) { |
2224 state = NOT_IN_PATH; | 2142 state = NOT_IN_PATH; |
2225 break; | 2143 break; |
2226 } | 2144 } |
2227 if (char == Uri[_SLASH]) { | 2145 if (char == Uri._SLASH) { |
2228 state = i == 0 ? ALLOW_AUTH : IN_PATH; | 2146 state = i == 0 ? ALLOW_AUTH : IN_PATH; |
2229 break; | 2147 break; |
2230 } | 2148 } |
2231 if (char == Uri[_COLON]) { | 2149 if (char == Uri._COLON) { |
2232 if (i == 0) | 2150 if (i == 0) |
2233 Uri[_fail](uri, 0, "Invalid empty scheme"); | 2151 Uri._fail(uri, 0, "Invalid empty scheme"); |
2234 scheme = Uri[_makeScheme](uri, i); | 2152 scheme = Uri._makeScheme(uri, i); |
2235 i = dart.notNull(i) + 1; | 2153 i = dart.notNull(i) + 1; |
2236 pathStart = i; | 2154 pathStart = i; |
2237 if (i == uri.length) { | 2155 if (i == uri.length) { |
2238 char = EOI; | 2156 char = EOI; |
2239 state = NOT_IN_PATH; | 2157 state = NOT_IN_PATH; |
2240 } else { | 2158 } else { |
2241 char = uri.codeUnitAt(i); | 2159 char = uri.codeUnitAt(i); |
2242 if (char == Uri[_QUESTION] || char == Uri[_NUMBER_SIGN]) { | 2160 if (char == Uri._QUESTION || char == Uri._NUMBER_SIGN) { |
2243 state = NOT_IN_PATH; | 2161 state = NOT_IN_PATH; |
2244 } else if (char == Uri[_SLASH]) { | 2162 } else if (char == Uri._SLASH) { |
2245 state = ALLOW_AUTH; | 2163 state = ALLOW_AUTH; |
2246 } else { | 2164 } else { |
2247 state = IN_PATH; | 2165 state = IN_PATH; |
2248 } | 2166 } |
2249 } | 2167 } |
2250 break; | 2168 break; |
2251 } | 2169 } |
2252 i = dart.notNull(i) + 1; | 2170 i = dart.notNull(i) + 1; |
2253 char = EOI; | 2171 char = EOI; |
2254 } | 2172 } |
2255 index = i; | 2173 index = i; |
2256 if (state == ALLOW_AUTH) { | 2174 if (state == ALLOW_AUTH) { |
2257 dart.assert(char == Uri[_SLASH]); | 2175 dart.assert(char == Uri._SLASH); |
2258 index = dart.notNull(index) + 1; | 2176 index = dart.notNull(index) + 1; |
2259 if (index == uri.length) { | 2177 if (index == uri.length) { |
2260 char = EOI; | 2178 char = EOI; |
2261 state = NOT_IN_PATH; | 2179 state = NOT_IN_PATH; |
2262 } else { | 2180 } else { |
2263 char = uri.codeUnitAt(index); | 2181 char = uri.codeUnitAt(index); |
2264 if (char == Uri[_SLASH]) { | 2182 if (char == Uri._SLASH) { |
2265 index = dart.notNull(index) + 1; | 2183 index = dart.notNull(index) + 1; |
2266 parseAuth(); | 2184 parseAuth(); |
2267 pathStart = index; | 2185 pathStart = index; |
2268 } | 2186 } |
2269 if (char == Uri[_QUESTION] || char == Uri[_NUMBER_SIGN] || char == EOI
) { | 2187 if (char == Uri._QUESTION || char == Uri._NUMBER_SIGN || char == EOI)
{ |
2270 state = NOT_IN_PATH; | 2188 state = NOT_IN_PATH; |
2271 } else { | 2189 } else { |
2272 state = IN_PATH; | 2190 state = IN_PATH; |
2273 } | 2191 } |
2274 } | 2192 } |
2275 } | 2193 } |
2276 dart.assert(state == IN_PATH || state == NOT_IN_PATH); | 2194 dart.assert(state == IN_PATH || state == NOT_IN_PATH); |
2277 if (state == IN_PATH) { | 2195 if (state == IN_PATH) { |
2278 while ((index = dart.notNull(index) + 1) < dart.notNull(uri.length)) { | 2196 while ((index = dart.notNull(index) + 1) < dart.notNull(uri.length)) { |
2279 char = uri.codeUnitAt(index); | 2197 char = uri.codeUnitAt(index); |
2280 if (char == Uri[_QUESTION] || char == Uri[_NUMBER_SIGN]) { | 2198 if (char == Uri._QUESTION || char == Uri._NUMBER_SIGN) { |
2281 break; | 2199 break; |
2282 } | 2200 } |
2283 char = EOI; | 2201 char = EOI; |
2284 } | 2202 } |
2285 state = NOT_IN_PATH; | 2203 state = NOT_IN_PATH; |
2286 } | 2204 } |
2287 dart.assert(state == NOT_IN_PATH); | 2205 dart.assert(state == NOT_IN_PATH); |
2288 let isFile = scheme == "file"; | 2206 let isFile = scheme == "file"; |
2289 let ensureLeadingSlash = host != null; | 2207 let ensureLeadingSlash = host != null; |
2290 path = Uri[_makePath](uri, pathStart, index, null, ensureLeadingSlash, isF
ile); | 2208 path = Uri._makePath(uri, pathStart, index, null, ensureLeadingSlash, isFi
le); |
2291 if (char == Uri[_QUESTION]) { | 2209 if (char == Uri._QUESTION) { |
2292 let numberSignIndex = uri.indexOf('#', dart.notNull(index) + 1); | 2210 let numberSignIndex = uri.indexOf('#', dart.notNull(index) + 1); |
2293 if (dart.notNull(numberSignIndex) < 0) { | 2211 if (dart.notNull(numberSignIndex) < 0) { |
2294 query = Uri[_makeQuery](uri, dart.notNull(index) + 1, uri.length, null
); | 2212 query = Uri._makeQuery(uri, dart.notNull(index) + 1, uri.length, null)
; |
2295 } else { | 2213 } else { |
2296 query = Uri[_makeQuery](uri, dart.notNull(index) + 1, numberSignIndex,
null); | 2214 query = Uri._makeQuery(uri, dart.notNull(index) + 1, numberSignIndex,
null); |
2297 fragment = Uri[_makeFragment](uri, dart.notNull(numberSignIndex) + 1,
uri.length); | 2215 fragment = Uri._makeFragment(uri, dart.notNull(numberSignIndex) + 1, u
ri.length); |
2298 } | 2216 } |
2299 } else if (char == Uri[_NUMBER_SIGN]) { | 2217 } else if (char == Uri._NUMBER_SIGN) { |
2300 fragment = Uri[_makeFragment](uri, dart.notNull(index) + 1, uri.length); | 2218 fragment = Uri._makeFragment(uri, dart.notNull(index) + 1, uri.length); |
2301 } | 2219 } |
2302 return new Uri[_internal$](scheme, userinfo, host, port, path, query, frag
ment); | 2220 return new Uri[_internal$](scheme, userinfo, host, port, path, query, frag
ment); |
2303 } | 2221 } |
2304 static [_fail](uri, index, message) { | 2222 static _fail(uri, index, message) { |
2305 throw new FormatException(message, uri, index); | 2223 throw new FormatException(message, uri, index); |
2306 } | 2224 } |
2307 [_internal$](scheme, userInfo, host, port, path, query, fragment) { | 2225 _internal(scheme, userInfo, host, port, path, query, fragment) { |
2308 this.scheme = scheme; | 2226 this.scheme = scheme; |
2309 this[_userInfo] = userInfo; | 2227 this[_userInfo] = userInfo; |
2310 this[_host] = host; | 2228 this[_host] = host; |
2311 this[_port] = port; | 2229 this[_port] = port; |
2312 this[_path] = path; | 2230 this[_path] = path; |
2313 this[_query] = query; | 2231 this[_query] = query; |
2314 this[_fragment] = fragment; | 2232 this[_fragment] = fragment; |
2315 this[_pathSegments] = null; | 2233 this[_pathSegments] = null; |
2316 this[_queryParameters] = null; | 2234 this[_queryParameters] = null; |
2317 } | 2235 } |
2318 Uri(opts) { | 2236 Uri(opts) { |
2319 let scheme = opts && 'scheme' in opts ? opts.scheme : ""; | 2237 let scheme = opts && 'scheme' in opts ? opts.scheme : ""; |
2320 let userInfo = opts && 'userInfo' in opts ? opts.userInfo : ""; | 2238 let userInfo = opts && 'userInfo' in opts ? opts.userInfo : ""; |
2321 let host = opts && 'host' in opts ? opts.host : null; | 2239 let host = opts && 'host' in opts ? opts.host : null; |
2322 let port = opts && 'port' in opts ? opts.port : null; | 2240 let port = opts && 'port' in opts ? opts.port : null; |
2323 let path = opts && 'path' in opts ? opts.path : null; | 2241 let path = opts && 'path' in opts ? opts.path : null; |
2324 let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : nu
ll; | 2242 let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : nu
ll; |
2325 let query = opts && 'query' in opts ? opts.query : null; | 2243 let query = opts && 'query' in opts ? opts.query : null; |
2326 let queryParameters = opts && 'queryParameters' in opts ? opts.queryParame
ters : null; | 2244 let queryParameters = opts && 'queryParameters' in opts ? opts.queryParame
ters : null; |
2327 let fragment = opts && 'fragment' in opts ? opts.fragment : null; | 2245 let fragment = opts && 'fragment' in opts ? opts.fragment : null; |
2328 scheme = Uri[_makeScheme](scheme, Uri[_stringOrNullLength](scheme)); | 2246 scheme = Uri._makeScheme(scheme, Uri._stringOrNullLength(scheme)); |
2329 userInfo = Uri[_makeUserInfo](userInfo, 0, Uri[_stringOrNullLength](userIn
fo)); | 2247 userInfo = Uri._makeUserInfo(userInfo, 0, Uri._stringOrNullLength(userInfo
)); |
2330 host = Uri[_makeHost](host, 0, Uri[_stringOrNullLength](host), false); | 2248 host = Uri._makeHost(host, 0, Uri._stringOrNullLength(host), false); |
2331 if (query == "") | 2249 if (query == "") |
2332 query = null; | 2250 query = null; |
2333 query = Uri[_makeQuery](query, 0, Uri[_stringOrNullLength](query), queryPa
rameters); | 2251 query = Uri._makeQuery(query, 0, Uri._stringOrNullLength(query), queryPara
meters); |
2334 fragment = Uri[_makeFragment](fragment, 0, Uri[_stringOrNullLength](fragme
nt)); | 2252 fragment = Uri._makeFragment(fragment, 0, Uri._stringOrNullLength(fragment
)); |
2335 port = Uri[_makePort](port, scheme); | 2253 port = Uri._makePort(port, scheme); |
2336 let isFile = scheme == "file"; | 2254 let isFile = scheme == "file"; |
2337 if (host == null && (dart.notNull(userInfo.isNotEmpty) || port != null ||
dart.notNull(isFile))) { | 2255 if (host == null && (dart.notNull(userInfo.isNotEmpty) || port != null ||
dart.notNull(isFile))) { |
2338 host = ""; | 2256 host = ""; |
2339 } | 2257 } |
2340 let ensureLeadingSlash = host != null; | 2258 let ensureLeadingSlash = host != null; |
2341 path = Uri[_makePath](path, 0, Uri[_stringOrNullLength](path), pathSegment
s, ensureLeadingSlash, isFile); | 2259 path = Uri._makePath(path, 0, Uri._stringOrNullLength(path), pathSegments,
ensureLeadingSlash, isFile); |
2342 return new Uri[_internal$](scheme, userInfo, host, port, path, query, frag
ment); | 2260 return new Uri[_internal$](scheme, userInfo, host, port, path, query, frag
ment); |
2343 } | 2261 } |
2344 http(authority, unencodedPath, queryParameters) { | 2262 http(authority, unencodedPath, queryParameters) { |
2345 if (queryParameters === void 0) | 2263 if (queryParameters === void 0) |
2346 queryParameters = null; | 2264 queryParameters = null; |
2347 return Uri[_makeHttpUri]("http", authority, unencodedPath, queryParameters
); | 2265 return Uri._makeHttpUri("http", authority, unencodedPath, queryParameters)
; |
2348 } | 2266 } |
2349 https(authority, unencodedPath, queryParameters) { | 2267 https(authority, unencodedPath, queryParameters) { |
2350 if (queryParameters === void 0) | 2268 if (queryParameters === void 0) |
2351 queryParameters = null; | 2269 queryParameters = null; |
2352 return Uri[_makeHttpUri]("https", authority, unencodedPath, queryParameter
s); | 2270 return Uri._makeHttpUri("https", authority, unencodedPath, queryParameters
); |
2353 } | 2271 } |
2354 static [_makeHttpUri](scheme, authority, unencodedPath, queryParameters) { | 2272 static _makeHttpUri(scheme, authority, unencodedPath, queryParameters) { |
2355 let userInfo = ""; | 2273 let userInfo = ""; |
2356 let host = null; | 2274 let host = null; |
2357 let port = null; | 2275 let port = null; |
2358 if (authority != null && dart.notNull(authority.isNotEmpty)) { | 2276 if (authority != null && dart.notNull(authority.isNotEmpty)) { |
2359 let hostStart = 0; | 2277 let hostStart = 0; |
2360 let hasUserInfo = false; | 2278 let hasUserInfo = false; |
2361 for (let i = 0; dart.notNull(i) < dart.notNull(authority.length); i = da
rt.notNull(i) + 1) { | 2279 for (let i = 0; dart.notNull(i) < dart.notNull(authority.length); i = da
rt.notNull(i) + 1) { |
2362 if (authority.codeUnitAt(i) == Uri[_AT_SIGN]) { | 2280 if (authority.codeUnitAt(i) == Uri._AT_SIGN) { |
2363 hasUserInfo = true; | 2281 hasUserInfo = true; |
2364 userInfo = authority.substring(0, i); | 2282 userInfo = authority.substring(0, i); |
2365 hostStart = dart.notNull(i) + 1; | 2283 hostStart = dart.notNull(i) + 1; |
2366 break; | 2284 break; |
2367 } | 2285 } |
2368 } | 2286 } |
2369 let hostEnd = hostStart; | 2287 let hostEnd = hostStart; |
2370 if (dart.notNull(hostStart) < dart.notNull(authority.length) && authorit
y.codeUnitAt(hostStart) == Uri[_LEFT_BRACKET]) { | 2288 if (dart.notNull(hostStart) < dart.notNull(authority.length) && authorit
y.codeUnitAt(hostStart) == Uri._LEFT_BRACKET) { |
2371 for (; dart.notNull(hostEnd) < dart.notNull(authority.length); hostEnd
= dart.notNull(hostEnd) + 1) { | 2289 for (; dart.notNull(hostEnd) < dart.notNull(authority.length); hostEnd
= dart.notNull(hostEnd) + 1) { |
2372 if (authority.codeUnitAt(hostEnd) == Uri[_RIGHT_BRACKET]) | 2290 if (authority.codeUnitAt(hostEnd) == Uri._RIGHT_BRACKET) |
2373 break; | 2291 break; |
2374 } | 2292 } |
2375 if (hostEnd == authority.length) { | 2293 if (hostEnd == authority.length) { |
2376 throw new FormatException("Invalid IPv6 host entry.", authority, hos
tStart); | 2294 throw new FormatException("Invalid IPv6 host entry.", authority, hos
tStart); |
2377 } | 2295 } |
2378 Uri.parseIPv6Address(authority, dart.notNull(hostStart) + 1, hostEnd); | 2296 Uri.parseIPv6Address(authority, dart.notNull(hostStart) + 1, hostEnd); |
2379 hostEnd = dart.notNull(hostEnd) + 1; | 2297 hostEnd = dart.notNull(hostEnd) + 1; |
2380 if (hostEnd != authority.length && authority.codeUnitAt(hostEnd) != Ur
i[_COLON]) { | 2298 if (hostEnd != authority.length && authority.codeUnitAt(hostEnd) != Ur
i._COLON) { |
2381 throw new FormatException("Invalid end of authority", authority, hos
tEnd); | 2299 throw new FormatException("Invalid end of authority", authority, hos
tEnd); |
2382 } | 2300 } |
2383 } | 2301 } |
2384 let hasPort = false; | 2302 let hasPort = false; |
2385 for (; dart.notNull(hostEnd) < dart.notNull(authority.length); hostEnd =
dart.notNull(hostEnd) + 1) { | 2303 for (; dart.notNull(hostEnd) < dart.notNull(authority.length); hostEnd =
dart.notNull(hostEnd) + 1) { |
2386 if (authority.codeUnitAt(hostEnd) == Uri[_COLON]) { | 2304 if (authority.codeUnitAt(hostEnd) == Uri._COLON) { |
2387 let portString = authority.substring(dart.notNull(hostEnd) + 1); | 2305 let portString = authority.substring(dart.notNull(hostEnd) + 1); |
2388 if (portString.isNotEmpty) | 2306 if (portString.isNotEmpty) |
2389 port = int.parse(portString); | 2307 port = int.parse(portString); |
2390 break; | 2308 break; |
2391 } | 2309 } |
2392 } | 2310 } |
2393 host = authority.substring(hostStart, hostEnd); | 2311 host = authority.substring(hostStart, hostEnd); |
2394 } | 2312 } |
2395 return new Uri({scheme: scheme, userInfo: userInfo, host: dart.as(host, St
ring), port: dart.as(port, int), pathSegments: unencodedPath.split("/"), queryPa
rameters: queryParameters}); | 2313 return new Uri({scheme: scheme, userInfo: userInfo, host: dart.as(host, St
ring), port: dart.as(port, int), pathSegments: unencodedPath.split("/"), queryPa
rameters: queryParameters}); |
2396 } | 2314 } |
2397 file(path, opts) { | 2315 file(path, opts) { |
2398 let windows = opts && 'windows' in opts ? opts.windows : null; | 2316 let windows = opts && 'windows' in opts ? opts.windows : null; |
2399 windows = windows == null ? Uri[_isWindows] : windows; | 2317 windows = windows == null ? Uri._isWindows : windows; |
2400 return dart.as(windows ? Uri[_makeWindowsFileUrl](path) : Uri[_makeFileUri
](path), Uri); | 2318 return dart.as(windows ? Uri._makeWindowsFileUrl(path) : Uri._makeFileUri(
path), Uri); |
2401 } | 2319 } |
2402 static get base() { | 2320 static get base() { |
2403 let uri = _js_helper.Primitives.currentUri(); | 2321 let uri = _js_helper.Primitives.currentUri(); |
2404 if (uri != null) | 2322 if (uri != null) |
2405 return Uri.parse(uri); | 2323 return Uri.parse(uri); |
2406 throw new UnsupportedError("'Uri.base' is not supported"); | 2324 throw new UnsupportedError("'Uri.base' is not supported"); |
2407 } | 2325 } |
2408 static get [_isWindows]() { | 2326 static get _isWindows() { |
2409 return false; | 2327 return false; |
2410 } | 2328 } |
2411 static [_checkNonWindowsPathReservedCharacters](segments, argumentError) { | 2329 static _checkNonWindowsPathReservedCharacters(segments, argumentError) { |
2412 segments[$forEach](segment => { | 2330 segments[$forEach](segment => { |
2413 if (dart.dsend(segment, 'contains', "/")) { | 2331 if (dart.dsend(segment, 'contains', "/")) { |
2414 if (argumentError) { | 2332 if (argumentError) { |
2415 throw new ArgumentError(`Illegal path character ${segment}`); | 2333 throw new ArgumentError(`Illegal path character ${segment}`); |
2416 } else { | 2334 } else { |
2417 throw new UnsupportedError(`Illegal path character ${segment}`); | 2335 throw new UnsupportedError(`Illegal path character ${segment}`); |
2418 } | 2336 } |
2419 } | 2337 } |
2420 }); | 2338 }); |
2421 } | 2339 } |
2422 static [_checkWindowsPathReservedCharacters](segments, argumentError, firstS
egment) { | 2340 static _checkWindowsPathReservedCharacters(segments, argumentError, firstSeg
ment) { |
2423 if (firstSegment === void 0) | 2341 if (firstSegment === void 0) |
2424 firstSegment = 0; | 2342 firstSegment = 0; |
2425 segments[$skip](firstSegment)[$forEach](segment => { | 2343 segments[$skip](firstSegment)[$forEach](segment => { |
2426 if (dart.dsend(segment, 'contains', new RegExp('["*/:<>?\\\\|]'))) { | 2344 if (dart.dsend(segment, 'contains', new RegExp('["*/:<>?\\\\|]'))) { |
2427 if (argumentError) { | 2345 if (argumentError) { |
2428 throw new ArgumentError("Illegal character in path"); | 2346 throw new ArgumentError("Illegal character in path"); |
2429 } else { | 2347 } else { |
2430 throw new UnsupportedError("Illegal character in path"); | 2348 throw new UnsupportedError("Illegal character in path"); |
2431 } | 2349 } |
2432 } | 2350 } |
2433 }); | 2351 }); |
2434 } | 2352 } |
2435 static [_checkWindowsDriveLetter](charCode, argumentError) { | 2353 static _checkWindowsDriveLetter(charCode, argumentError) { |
2436 if (dart.notNull(Uri[_UPPER_CASE_A]) <= dart.notNull(charCode) && dart.not
Null(charCode) <= dart.notNull(Uri[_UPPER_CASE_Z]) || dart.notNull(Uri[_LOWER_CA
SE_A]) <= dart.notNull(charCode) && dart.notNull(charCode) <= dart.notNull(Uri[_
LOWER_CASE_Z])) { | 2354 if (dart.notNull(Uri._UPPER_CASE_A) <= dart.notNull(charCode) && dart.notN
ull(charCode) <= dart.notNull(Uri._UPPER_CASE_Z) || dart.notNull(Uri._LOWER_CASE
_A) <= dart.notNull(charCode) && dart.notNull(charCode) <= dart.notNull(Uri._LOW
ER_CASE_Z)) { |
2437 return; | 2355 return; |
2438 } | 2356 } |
2439 if (argumentError) { | 2357 if (argumentError) { |
2440 throw new ArgumentError("Illegal drive letter " + dart.notNull(new Strin
g.fromCharCode(charCode))); | 2358 throw new ArgumentError("Illegal drive letter " + dart.notNull(new Strin
g.fromCharCode(charCode))); |
2441 } else { | 2359 } else { |
2442 throw new UnsupportedError("Illegal drive letter " + dart.notNull(new St
ring.fromCharCode(charCode))); | 2360 throw new UnsupportedError("Illegal drive letter " + dart.notNull(new St
ring.fromCharCode(charCode))); |
2443 } | 2361 } |
2444 } | 2362 } |
2445 static [_makeFileUri](path) { | 2363 static _makeFileUri(path) { |
2446 let sep = "/"; | 2364 let sep = "/"; |
2447 if (path.startsWith(sep)) { | 2365 if (path.startsWith(sep)) { |
2448 return new Uri({scheme: "file", pathSegments: path.split(sep)}); | 2366 return new Uri({scheme: "file", pathSegments: path.split(sep)}); |
2449 } else { | 2367 } else { |
2450 return new Uri({pathSegments: path.split(sep)}); | 2368 return new Uri({pathSegments: path.split(sep)}); |
2451 } | 2369 } |
2452 } | 2370 } |
2453 static [_makeWindowsFileUrl](path) { | 2371 static _makeWindowsFileUrl(path) { |
2454 if (path.startsWith("\\\\?\\")) { | 2372 if (path.startsWith("\\\\?\\")) { |
2455 if (path.startsWith("\\\\?\\UNC\\")) { | 2373 if (path.startsWith("\\\\?\\UNC\\")) { |
2456 path = `\\${path.substring(7)}`; | 2374 path = `\\${path.substring(7)}`; |
2457 } else { | 2375 } else { |
2458 path = path.substring(4); | 2376 path = path.substring(4); |
2459 if (dart.notNull(path.length) < 3 || path.codeUnitAt(1) != Uri[_COLON]
|| path.codeUnitAt(2) != Uri[_BACKSLASH]) { | 2377 if (dart.notNull(path.length) < 3 || path.codeUnitAt(1) != Uri._COLON
|| path.codeUnitAt(2) != Uri._BACKSLASH) { |
2460 throw new ArgumentError("Windows paths with \\\\?\\ prefix must be a
bsolute"); | 2378 throw new ArgumentError("Windows paths with \\\\?\\ prefix must be a
bsolute"); |
2461 } | 2379 } |
2462 } | 2380 } |
2463 } else { | 2381 } else { |
2464 path = path.replaceAll("/", "\\"); | 2382 path = path.replaceAll("/", "\\"); |
2465 } | 2383 } |
2466 let sep = "\\"; | 2384 let sep = "\\"; |
2467 if (dart.notNull(path.length) > 1 && String.get(path, 1) == ":") { | 2385 if (dart.notNull(path.length) > 1 && String.get(path, 1) == ":") { |
2468 Uri[_checkWindowsDriveLetter](path.codeUnitAt(0), true); | 2386 Uri._checkWindowsDriveLetter(path.codeUnitAt(0), true); |
2469 if (path.length == 2 || path.codeUnitAt(2) != Uri[_BACKSLASH]) { | 2387 if (path.length == 2 || path.codeUnitAt(2) != Uri._BACKSLASH) { |
2470 throw new ArgumentError("Windows paths with drive letter must be absol
ute"); | 2388 throw new ArgumentError("Windows paths with drive letter must be absol
ute"); |
2471 } | 2389 } |
2472 let pathSegments = path.split(sep); | 2390 let pathSegments = path.split(sep); |
2473 Uri[_checkWindowsPathReservedCharacters](pathSegments, true, 1); | 2391 Uri._checkWindowsPathReservedCharacters(pathSegments, true, 1); |
2474 return new Uri({scheme: "file", pathSegments: pathSegments}); | 2392 return new Uri({scheme: "file", pathSegments: pathSegments}); |
2475 } | 2393 } |
2476 if (dart.notNull(path.length) > 0 && String.get(path, 0) == sep) { | 2394 if (dart.notNull(path.length) > 0 && String.get(path, 0) == sep) { |
2477 if (dart.notNull(path.length) > 1 && String.get(path, 1) == sep) { | 2395 if (dart.notNull(path.length) > 1 && String.get(path, 1) == sep) { |
2478 let pathStart = path.indexOf("\\", 2); | 2396 let pathStart = path.indexOf("\\", 2); |
2479 let hostPart = pathStart == -1 ? path.substring(2) : path.substring(2,
pathStart); | 2397 let hostPart = pathStart == -1 ? path.substring(2) : path.substring(2,
pathStart); |
2480 let pathPart = pathStart == -1 ? "" : path.substring(dart.notNull(path
Start) + 1); | 2398 let pathPart = pathStart == -1 ? "" : path.substring(dart.notNull(path
Start) + 1); |
2481 let pathSegments = pathPart.split(sep); | 2399 let pathSegments = pathPart.split(sep); |
2482 Uri[_checkWindowsPathReservedCharacters](pathSegments, true); | 2400 Uri._checkWindowsPathReservedCharacters(pathSegments, true); |
2483 return new Uri({scheme: "file", host: hostPart, pathSegments: pathSegm
ents}); | 2401 return new Uri({scheme: "file", host: hostPart, pathSegments: pathSegm
ents}); |
2484 } else { | 2402 } else { |
2485 let pathSegments = path.split(sep); | 2403 let pathSegments = path.split(sep); |
2486 Uri[_checkWindowsPathReservedCharacters](pathSegments, true); | 2404 Uri._checkWindowsPathReservedCharacters(pathSegments, true); |
2487 return new Uri({scheme: "file", pathSegments: pathSegments}); | 2405 return new Uri({scheme: "file", pathSegments: pathSegments}); |
2488 } | 2406 } |
2489 } else { | 2407 } else { |
2490 let pathSegments = path.split(sep); | 2408 let pathSegments = path.split(sep); |
2491 Uri[_checkWindowsPathReservedCharacters](pathSegments, true); | 2409 Uri._checkWindowsPathReservedCharacters(pathSegments, true); |
2492 return new Uri({pathSegments: pathSegments}); | 2410 return new Uri({pathSegments: pathSegments}); |
2493 } | 2411 } |
2494 } | 2412 } |
2495 replace(opts) { | 2413 replace(opts) { |
2496 let scheme = opts && 'scheme' in opts ? opts.scheme : null; | 2414 let scheme = opts && 'scheme' in opts ? opts.scheme : null; |
2497 let userInfo = opts && 'userInfo' in opts ? opts.userInfo : null; | 2415 let userInfo = opts && 'userInfo' in opts ? opts.userInfo : null; |
2498 let host = opts && 'host' in opts ? opts.host : null; | 2416 let host = opts && 'host' in opts ? opts.host : null; |
2499 let port = opts && 'port' in opts ? opts.port : null; | 2417 let port = opts && 'port' in opts ? opts.port : null; |
2500 let path = opts && 'path' in opts ? opts.path : null; | 2418 let path = opts && 'path' in opts ? opts.path : null; |
2501 let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : nu
ll; | 2419 let pathSegments = opts && 'pathSegments' in opts ? opts.pathSegments : nu
ll; |
2502 let query = opts && 'query' in opts ? opts.query : null; | 2420 let query = opts && 'query' in opts ? opts.query : null; |
2503 let queryParameters = opts && 'queryParameters' in opts ? opts.queryParame
ters : null; | 2421 let queryParameters = opts && 'queryParameters' in opts ? opts.queryParame
ters : null; |
2504 let fragment = opts && 'fragment' in opts ? opts.fragment : null; | 2422 let fragment = opts && 'fragment' in opts ? opts.fragment : null; |
2505 let schemeChanged = false; | 2423 let schemeChanged = false; |
2506 if (scheme != null) { | 2424 if (scheme != null) { |
2507 scheme = Uri[_makeScheme](scheme, scheme.length); | 2425 scheme = Uri._makeScheme(scheme, scheme.length); |
2508 schemeChanged = true; | 2426 schemeChanged = true; |
2509 } else { | 2427 } else { |
2510 scheme = this.scheme; | 2428 scheme = this.scheme; |
2511 } | 2429 } |
2512 let isFile = scheme == "file"; | 2430 let isFile = scheme == "file"; |
2513 if (userInfo != null) { | 2431 if (userInfo != null) { |
2514 userInfo = Uri[_makeUserInfo](userInfo, 0, userInfo.length); | 2432 userInfo = Uri._makeUserInfo(userInfo, 0, userInfo.length); |
2515 } else { | 2433 } else { |
2516 userInfo = this.userInfo; | 2434 userInfo = this.userInfo; |
2517 } | 2435 } |
2518 if (port != null) { | 2436 if (port != null) { |
2519 port = Uri[_makePort](port, scheme); | 2437 port = Uri._makePort(port, scheme); |
2520 } else { | 2438 } else { |
2521 port = this[_port]; | 2439 port = this[_port]; |
2522 if (schemeChanged) { | 2440 if (schemeChanged) { |
2523 port = Uri[_makePort](port, scheme); | 2441 port = Uri._makePort(port, scheme); |
2524 } | 2442 } |
2525 } | 2443 } |
2526 if (host != null) { | 2444 if (host != null) { |
2527 host = Uri[_makeHost](host, 0, host.length, false); | 2445 host = Uri._makeHost(host, 0, host.length, false); |
2528 } else if (this.hasAuthority) { | 2446 } else if (this.hasAuthority) { |
2529 host = this.host; | 2447 host = this.host; |
2530 } else if (dart.notNull(userInfo.isNotEmpty) || port != null || dart.notNu
ll(isFile)) { | 2448 } else if (dart.notNull(userInfo.isNotEmpty) || port != null || dart.notNu
ll(isFile)) { |
2531 host = ""; | 2449 host = ""; |
2532 } | 2450 } |
2533 let ensureLeadingSlash = host != null; | 2451 let ensureLeadingSlash = host != null; |
2534 if (path != null || dart.notNull(pathSegments != null)) { | 2452 if (path != null || dart.notNull(pathSegments != null)) { |
2535 path = Uri[_makePath](path, 0, Uri[_stringOrNullLength](path), pathSegme
nts, ensureLeadingSlash, isFile); | 2453 path = Uri._makePath(path, 0, Uri._stringOrNullLength(path), pathSegment
s, ensureLeadingSlash, isFile); |
2536 } else { | 2454 } else { |
2537 path = this.path; | 2455 path = this.path; |
2538 if ((dart.notNull(isFile) || dart.notNull(ensureLeadingSlash) && !dart.n
otNull(path.isEmpty)) && !dart.notNull(path.startsWith('/'))) { | 2456 if ((dart.notNull(isFile) || dart.notNull(ensureLeadingSlash) && !dart.n
otNull(path.isEmpty)) && !dart.notNull(path.startsWith('/'))) { |
2539 path = `/${path}`; | 2457 path = `/${path}`; |
2540 } | 2458 } |
2541 } | 2459 } |
2542 if (query != null || dart.notNull(queryParameters != null)) { | 2460 if (query != null || dart.notNull(queryParameters != null)) { |
2543 query = Uri[_makeQuery](query, 0, Uri[_stringOrNullLength](query), query
Parameters); | 2461 query = Uri._makeQuery(query, 0, Uri._stringOrNullLength(query), queryPa
rameters); |
2544 } else if (this.hasQuery) { | 2462 } else if (this.hasQuery) { |
2545 query = this.query; | 2463 query = this.query; |
2546 } | 2464 } |
2547 if (fragment != null) { | 2465 if (fragment != null) { |
2548 fragment = Uri[_makeFragment](fragment, 0, fragment.length); | 2466 fragment = Uri._makeFragment(fragment, 0, fragment.length); |
2549 } else if (this.hasFragment) { | 2467 } else if (this.hasFragment) { |
2550 fragment = this.fragment; | 2468 fragment = this.fragment; |
2551 } | 2469 } |
2552 return new Uri[_internal$](scheme, userInfo, host, port, path, query, frag
ment); | 2470 return new Uri[_internal$](scheme, userInfo, host, port, path, query, frag
ment); |
2553 } | 2471 } |
2554 get pathSegments() { | 2472 get pathSegments() { |
2555 if (this[_pathSegments] == null) { | 2473 if (this[_pathSegments] == null) { |
2556 let pathToSplit = !dart.notNull(this.path.isEmpty) && this.path.codeUnit
At(0) == Uri[_SLASH] ? this.path.substring(1) : this.path; | 2474 let pathToSplit = !dart.notNull(this.path.isEmpty) && this.path.codeUnit
At(0) == Uri._SLASH ? this.path.substring(1) : this.path; |
2557 this[_pathSegments] = new collection.UnmodifiableListView(pathToSplit ==
"" ? dart.const(dart.setType([], List$(String))) : pathToSplit.split("/")[$map]
(dart.bind(Uri, 'decodeComponent'))[$toList]({growable: false})); | 2475 this[_pathSegments] = new collection.UnmodifiableListView(pathToSplit ==
"" ? dart.const(dart.setType([], List$(String))) : pathToSplit.split("/")[$map]
(dart.bind(Uri, 'decodeComponent'))[$toList]({growable: false})); |
2558 } | 2476 } |
2559 return this[_pathSegments]; | 2477 return this[_pathSegments]; |
2560 } | 2478 } |
2561 get queryParameters() { | 2479 get queryParameters() { |
2562 if (this[_queryParameters] == null) { | 2480 if (this[_queryParameters] == null) { |
2563 this[_queryParameters] = new (collection.UnmodifiableMapView$(String, St
ring))(Uri.splitQueryString(this.query)); | 2481 this[_queryParameters] = new (collection.UnmodifiableMapView$(String, St
ring))(Uri.splitQueryString(this.query)); |
2564 } | 2482 } |
2565 return this[_queryParameters]; | 2483 return this[_queryParameters]; |
2566 } | 2484 } |
2567 static [_makePort](port, scheme) { | 2485 static _makePort(port, scheme) { |
2568 if (port != null && port == Uri[_defaultPort](scheme)) | 2486 if (port != null && port == Uri._defaultPort(scheme)) |
2569 return null; | 2487 return null; |
2570 return port; | 2488 return port; |
2571 } | 2489 } |
2572 static [_makeHost](host, start, end, strictIPv6) { | 2490 static _makeHost(host, start, end, strictIPv6) { |
2573 if (host == null) | 2491 if (host == null) |
2574 return null; | 2492 return null; |
2575 if (start == end) | 2493 if (start == end) |
2576 return ""; | 2494 return ""; |
2577 if (host.codeUnitAt(start) == Uri[_LEFT_BRACKET]) { | 2495 if (host.codeUnitAt(start) == Uri._LEFT_BRACKET) { |
2578 if (host.codeUnitAt(dart.notNull(end) - 1) != Uri[_RIGHT_BRACKET]) { | 2496 if (host.codeUnitAt(dart.notNull(end) - 1) != Uri._RIGHT_BRACKET) { |
2579 Uri[_fail](host, start, 'Missing end `]` to match `[` in host'); | 2497 Uri._fail(host, start, 'Missing end `]` to match `[` in host'); |
2580 } | 2498 } |
2581 Uri.parseIPv6Address(host, dart.notNull(start) + 1, dart.notNull(end) -
1); | 2499 Uri.parseIPv6Address(host, dart.notNull(start) + 1, dart.notNull(end) -
1); |
2582 return host.substring(start, end).toLowerCase(); | 2500 return host.substring(start, end).toLowerCase(); |
2583 } | 2501 } |
2584 if (!dart.notNull(strictIPv6)) { | 2502 if (!dart.notNull(strictIPv6)) { |
2585 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul
l(i) + 1) { | 2503 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNul
l(i) + 1) { |
2586 if (host.codeUnitAt(i) == Uri[_COLON]) { | 2504 if (host.codeUnitAt(i) == Uri._COLON) { |
2587 Uri.parseIPv6Address(host, start, end); | 2505 Uri.parseIPv6Address(host, start, end); |
2588 return `[${host}]`; | 2506 return `[${host}]`; |
2589 } | 2507 } |
2590 } | 2508 } |
2591 } | 2509 } |
2592 return Uri[_normalizeRegName](host, start, end); | 2510 return Uri._normalizeRegName(host, start, end); |
2593 } | 2511 } |
2594 static [_isRegNameChar](char) { | 2512 static _isRegNameChar(char) { |
2595 return dart.notNull(char) < 127 && dart.notNull(!dart.equals(dart.dsend(Ur
i[_regNameTable][$get](dart.notNull(char) >> 4), '&', 1 << (dart.notNull(char) &
15)), 0)); | 2513 return dart.notNull(char) < 127 && dart.notNull(!dart.equals(dart.dsend(Ur
i._regNameTable[$get](dart.notNull(char) >> 4), '&', 1 << (dart.notNull(char) &
15)), 0)); |
2596 } | 2514 } |
2597 static [_normalizeRegName](host, start, end) { | 2515 static _normalizeRegName(host, start, end) { |
2598 let buffer = null; | 2516 let buffer = null; |
2599 let sectionStart = start; | 2517 let sectionStart = start; |
2600 let index = start; | 2518 let index = start; |
2601 let isNormalized = true; | 2519 let isNormalized = true; |
2602 while (dart.notNull(index) < dart.notNull(end)) { | 2520 while (dart.notNull(index) < dart.notNull(end)) { |
2603 let char = host.codeUnitAt(index); | 2521 let char = host.codeUnitAt(index); |
2604 if (char == Uri[_PERCENT]) { | 2522 if (char == Uri._PERCENT) { |
2605 let replacement = Uri[_normalizeEscape](host, index, true); | 2523 let replacement = Uri._normalizeEscape(host, index, true); |
2606 if (replacement == null && dart.notNull(isNormalized)) { | 2524 if (replacement == null && dart.notNull(isNormalized)) { |
2607 index = dart.notNull(index) + 3; | 2525 index = dart.notNull(index) + 3; |
2608 continue; | 2526 continue; |
2609 } | 2527 } |
2610 if (buffer == null) | 2528 if (buffer == null) |
2611 buffer = new StringBuffer(); | 2529 buffer = new StringBuffer(); |
2612 let slice = host.substring(sectionStart, index); | 2530 let slice = host.substring(sectionStart, index); |
2613 if (!dart.notNull(isNormalized)) | 2531 if (!dart.notNull(isNormalized)) |
2614 slice = slice.toLowerCase(); | 2532 slice = slice.toLowerCase(); |
2615 buffer.write(slice); | 2533 buffer.write(slice); |
2616 let sourceLength = 3; | 2534 let sourceLength = 3; |
2617 if (replacement == null) { | 2535 if (replacement == null) { |
2618 replacement = host.substring(index, dart.notNull(index) + 3); | 2536 replacement = host.substring(index, dart.notNull(index) + 3); |
2619 } else if (replacement == "%") { | 2537 } else if (replacement == "%") { |
2620 replacement = "%25"; | 2538 replacement = "%25"; |
2621 sourceLength = 1; | 2539 sourceLength = 1; |
2622 } | 2540 } |
2623 buffer.write(replacement); | 2541 buffer.write(replacement); |
2624 index = dart.notNull(index) + dart.notNull(sourceLength); | 2542 index = dart.notNull(index) + dart.notNull(sourceLength); |
2625 sectionStart = index; | 2543 sectionStart = index; |
2626 isNormalized = true; | 2544 isNormalized = true; |
2627 } else if (Uri[_isRegNameChar](char)) { | 2545 } else if (Uri._isRegNameChar(char)) { |
2628 if (dart.notNull(isNormalized) && dart.notNull(Uri[_UPPER_CASE_A]) <=
dart.notNull(char) && dart.notNull(Uri[_UPPER_CASE_Z]) >= dart.notNull(char)) { | 2546 if (dart.notNull(isNormalized) && dart.notNull(Uri._UPPER_CASE_A) <= d
art.notNull(char) && dart.notNull(Uri._UPPER_CASE_Z) >= dart.notNull(char)) { |
2629 if (buffer == null) | 2547 if (buffer == null) |
2630 buffer = new StringBuffer(); | 2548 buffer = new StringBuffer(); |
2631 if (dart.notNull(sectionStart) < dart.notNull(index)) { | 2549 if (dart.notNull(sectionStart) < dart.notNull(index)) { |
2632 buffer.write(host.substring(sectionStart, index)); | 2550 buffer.write(host.substring(sectionStart, index)); |
2633 sectionStart = index; | 2551 sectionStart = index; |
2634 } | 2552 } |
2635 isNormalized = false; | 2553 isNormalized = false; |
2636 } | 2554 } |
2637 index = dart.notNull(index) + 1; | 2555 index = dart.notNull(index) + 1; |
2638 } else if (Uri[_isGeneralDelimiter](char)) { | 2556 } else if (Uri._isGeneralDelimiter(char)) { |
2639 Uri[_fail](host, index, "Invalid character"); | 2557 Uri._fail(host, index, "Invalid character"); |
2640 } else { | 2558 } else { |
2641 let sourceLength = 1; | 2559 let sourceLength = 1; |
2642 if ((dart.notNull(char) & 64512) == 55296 && dart.notNull(index) + 1 <
dart.notNull(end)) { | 2560 if ((dart.notNull(char) & 64512) == 55296 && dart.notNull(index) + 1 <
dart.notNull(end)) { |
2643 let tail = host.codeUnitAt(dart.notNull(index) + 1); | 2561 let tail = host.codeUnitAt(dart.notNull(index) + 1); |
2644 if ((dart.notNull(tail) & 64512) == 56320) { | 2562 if ((dart.notNull(tail) & 64512) == 56320) { |
2645 char = 65536 | (dart.notNull(char) & 1023) << 10 | dart.notNull(ta
il) & 1023; | 2563 char = 65536 | (dart.notNull(char) & 1023) << 10 | dart.notNull(ta
il) & 1023; |
2646 sourceLength = 2; | 2564 sourceLength = 2; |
2647 } | 2565 } |
2648 } | 2566 } |
2649 if (buffer == null) | 2567 if (buffer == null) |
2650 buffer = new StringBuffer(); | 2568 buffer = new StringBuffer(); |
2651 let slice = host.substring(sectionStart, index); | 2569 let slice = host.substring(sectionStart, index); |
2652 if (!dart.notNull(isNormalized)) | 2570 if (!dart.notNull(isNormalized)) |
2653 slice = slice.toLowerCase(); | 2571 slice = slice.toLowerCase(); |
2654 buffer.write(slice); | 2572 buffer.write(slice); |
2655 buffer.write(Uri[_escapeChar](char)); | 2573 buffer.write(Uri._escapeChar(char)); |
2656 index = dart.notNull(index) + dart.notNull(sourceLength); | 2574 index = dart.notNull(index) + dart.notNull(sourceLength); |
2657 sectionStart = index; | 2575 sectionStart = index; |
2658 } | 2576 } |
2659 } | 2577 } |
2660 if (buffer == null) | 2578 if (buffer == null) |
2661 return host.substring(start, end); | 2579 return host.substring(start, end); |
2662 if (dart.notNull(sectionStart) < dart.notNull(end)) { | 2580 if (dart.notNull(sectionStart) < dart.notNull(end)) { |
2663 let slice = host.substring(sectionStart, end); | 2581 let slice = host.substring(sectionStart, end); |
2664 if (!dart.notNull(isNormalized)) | 2582 if (!dart.notNull(isNormalized)) |
2665 slice = slice.toLowerCase(); | 2583 slice = slice.toLowerCase(); |
2666 buffer.write(slice); | 2584 buffer.write(slice); |
2667 } | 2585 } |
2668 return dart.toString(buffer); | 2586 return dart.toString(buffer); |
2669 } | 2587 } |
2670 static [_makeScheme](scheme, end) { | 2588 static _makeScheme(scheme, end) { |
2671 if (end == 0) | 2589 if (end == 0) |
2672 return ""; | 2590 return ""; |
2673 let firstCodeUnit = scheme.codeUnitAt(0); | 2591 let firstCodeUnit = scheme.codeUnitAt(0); |
2674 if (!dart.notNull(Uri[_isAlphabeticCharacter](firstCodeUnit))) { | 2592 if (!dart.notNull(Uri._isAlphabeticCharacter(firstCodeUnit))) { |
2675 Uri[_fail](scheme, 0, "Scheme not starting with alphabetic character"); | 2593 Uri._fail(scheme, 0, "Scheme not starting with alphabetic character"); |
2676 } | 2594 } |
2677 let allLowercase = dart.notNull(firstCodeUnit) >= dart.notNull(Uri[_LOWER_
CASE_A]); | 2595 let allLowercase = dart.notNull(firstCodeUnit) >= dart.notNull(Uri._LOWER_
CASE_A); |
2678 for (let i = 0; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) +
1) { | 2596 for (let i = 0; dart.notNull(i) < dart.notNull(end); i = dart.notNull(i) +
1) { |
2679 let codeUnit = scheme.codeUnitAt(i); | 2597 let codeUnit = scheme.codeUnitAt(i); |
2680 if (!dart.notNull(Uri[_isSchemeCharacter](codeUnit))) { | 2598 if (!dart.notNull(Uri._isSchemeCharacter(codeUnit))) { |
2681 Uri[_fail](scheme, i, "Illegal scheme character"); | 2599 Uri._fail(scheme, i, "Illegal scheme character"); |
2682 } | 2600 } |
2683 if (dart.notNull(codeUnit) < dart.notNull(Uri[_LOWER_CASE_A]) || dart.no
tNull(codeUnit) > dart.notNull(Uri[_LOWER_CASE_Z])) { | 2601 if (dart.notNull(codeUnit) < dart.notNull(Uri._LOWER_CASE_A) || dart.not
Null(codeUnit) > dart.notNull(Uri._LOWER_CASE_Z)) { |
2684 allLowercase = false; | 2602 allLowercase = false; |
2685 } | 2603 } |
2686 } | 2604 } |
2687 scheme = scheme.substring(0, end); | 2605 scheme = scheme.substring(0, end); |
2688 if (!dart.notNull(allLowercase)) | 2606 if (!dart.notNull(allLowercase)) |
2689 scheme = scheme.toLowerCase(); | 2607 scheme = scheme.toLowerCase(); |
2690 return scheme; | 2608 return scheme; |
2691 } | 2609 } |
2692 static [_makeUserInfo](userInfo, start, end) { | 2610 static _makeUserInfo(userInfo, start, end) { |
2693 if (userInfo == null) | 2611 if (userInfo == null) |
2694 return ""; | 2612 return ""; |
2695 return Uri[_normalize](userInfo, start, end, dart.as(Uri[_userinfoTable],
List$(int))); | 2613 return Uri._normalize(userInfo, start, end, dart.as(Uri._userinfoTable, Li
st$(int))); |
2696 } | 2614 } |
2697 static [_makePath](path, start, end, pathSegments, ensureLeadingSlash, isFil
e) { | 2615 static _makePath(path, start, end, pathSegments, ensureLeadingSlash, isFile)
{ |
2698 if (path == null && dart.notNull(pathSegments == null)) | 2616 if (path == null && dart.notNull(pathSegments == null)) |
2699 return isFile ? "/" : ""; | 2617 return isFile ? "/" : ""; |
2700 if (path != null && dart.notNull(pathSegments != null)) { | 2618 if (path != null && dart.notNull(pathSegments != null)) { |
2701 throw new ArgumentError('Both path and pathSegments specified'); | 2619 throw new ArgumentError('Both path and pathSegments specified'); |
2702 } | 2620 } |
2703 let result = null; | 2621 let result = null; |
2704 if (path != null) { | 2622 if (path != null) { |
2705 result = Uri[_normalize](path, start, end, dart.as(Uri[_pathCharOrSlashT
able], List$(int))); | 2623 result = Uri._normalize(path, start, end, dart.as(Uri._pathCharOrSlashTa
ble, List$(int))); |
2706 } else { | 2624 } else { |
2707 result = pathSegments[$map](s => Uri[_uriEncode](dart.as(Uri[_pathCharTa
ble], List$(int)), dart.as(s, String)))[$join]("/"); | 2625 result = pathSegments[$map](s => Uri._uriEncode(dart.as(Uri._pathCharTab
le, List$(int)), dart.as(s, String)))[$join]("/"); |
2708 } | 2626 } |
2709 if (dart.dload(result, 'isEmpty')) { | 2627 if (dart.dload(result, 'isEmpty')) { |
2710 if (isFile) | 2628 if (isFile) |
2711 return "/"; | 2629 return "/"; |
2712 } else if ((dart.notNull(isFile) || dart.notNull(ensureLeadingSlash)) && d
art.notNull(!dart.equals(dart.dsend(result, 'codeUnitAt', 0), Uri[_SLASH]))) { | 2630 } else if ((dart.notNull(isFile) || dart.notNull(ensureLeadingSlash)) && d
art.notNull(!dart.equals(dart.dsend(result, 'codeUnitAt', 0), Uri._SLASH))) { |
2713 return `/${result}`; | 2631 return `/${result}`; |
2714 } | 2632 } |
2715 return dart.as(result, String); | 2633 return dart.as(result, String); |
2716 } | 2634 } |
2717 static [_makeQuery](query, start, end, queryParameters) { | 2635 static _makeQuery(query, start, end, queryParameters) { |
2718 if (query == null && dart.notNull(queryParameters == null)) | 2636 if (query == null && dart.notNull(queryParameters == null)) |
2719 return null; | 2637 return null; |
2720 if (query != null && dart.notNull(queryParameters != null)) { | 2638 if (query != null && dart.notNull(queryParameters != null)) { |
2721 throw new ArgumentError('Both query and queryParameters specified'); | 2639 throw new ArgumentError('Both query and queryParameters specified'); |
2722 } | 2640 } |
2723 if (query != null) | 2641 if (query != null) |
2724 return Uri[_normalize](query, start, end, dart.as(Uri[_queryCharTable],
List$(int))); | 2642 return Uri._normalize(query, start, end, dart.as(Uri._queryCharTable, Li
st$(int))); |
2725 let result = new StringBuffer(); | 2643 let result = new StringBuffer(); |
2726 let first = true; | 2644 let first = true; |
2727 queryParameters.forEach((key, value) => { | 2645 queryParameters.forEach((key, value) => { |
2728 if (!dart.notNull(first)) { | 2646 if (!dart.notNull(first)) { |
2729 result.write("&"); | 2647 result.write("&"); |
2730 } | 2648 } |
2731 first = false; | 2649 first = false; |
2732 result.write(Uri.encodeQueryComponent(dart.as(key, String))); | 2650 result.write(Uri.encodeQueryComponent(dart.as(key, String))); |
2733 if (dart.notNull(value != null) && dart.notNull(dart.dsend(dart.dload(va
lue, 'isEmpty'), '!'))) { | 2651 if (dart.notNull(value != null) && dart.notNull(dart.dsend(dart.dload(va
lue, 'isEmpty'), '!'))) { |
2734 result.write("="); | 2652 result.write("="); |
2735 result.write(Uri.encodeQueryComponent(dart.as(value, String))); | 2653 result.write(Uri.encodeQueryComponent(dart.as(value, String))); |
2736 } | 2654 } |
2737 }); | 2655 }); |
2738 return dart.toString(result); | 2656 return dart.toString(result); |
2739 } | 2657 } |
2740 static [_makeFragment](fragment, start, end) { | 2658 static _makeFragment(fragment, start, end) { |
2741 if (fragment == null) | 2659 if (fragment == null) |
2742 return null; | 2660 return null; |
2743 return Uri[_normalize](fragment, start, end, dart.as(Uri[_queryCharTable],
List$(int))); | 2661 return Uri._normalize(fragment, start, end, dart.as(Uri._queryCharTable, L
ist$(int))); |
2744 } | 2662 } |
2745 static [_stringOrNullLength](s) { | 2663 static _stringOrNullLength(s) { |
2746 return s == null ? 0 : s.length; | 2664 return s == null ? 0 : s.length; |
2747 } | 2665 } |
2748 static [_isHexDigit](char) { | 2666 static _isHexDigit(char) { |
2749 if (dart.notNull(Uri[_NINE]) >= dart.notNull(char)) | 2667 if (dart.notNull(Uri._NINE) >= dart.notNull(char)) |
2750 return dart.notNull(Uri[_ZERO]) <= dart.notNull(char); | 2668 return dart.notNull(Uri._ZERO) <= dart.notNull(char); |
2751 char = dart.notNull(char) | 32; | 2669 char = dart.notNull(char) | 32; |
2752 return dart.notNull(Uri[_LOWER_CASE_A]) <= dart.notNull(char) && dart.notN
ull(Uri[_LOWER_CASE_F]) >= dart.notNull(char); | 2670 return dart.notNull(Uri._LOWER_CASE_A) <= dart.notNull(char) && dart.notNu
ll(Uri._LOWER_CASE_F) >= dart.notNull(char); |
2753 } | 2671 } |
2754 static [_hexValue](char) { | 2672 static _hexValue(char) { |
2755 dart.assert(Uri[_isHexDigit](char)); | 2673 dart.assert(Uri._isHexDigit(char)); |
2756 if (dart.notNull(Uri[_NINE]) >= dart.notNull(char)) | 2674 if (dart.notNull(Uri._NINE) >= dart.notNull(char)) |
2757 return dart.notNull(char) - dart.notNull(Uri[_ZERO]); | 2675 return dart.notNull(char) - dart.notNull(Uri._ZERO); |
2758 char = dart.notNull(char) | 32; | 2676 char = dart.notNull(char) | 32; |
2759 return dart.notNull(char) - (dart.notNull(Uri[_LOWER_CASE_A]) - 10); | 2677 return dart.notNull(char) - (dart.notNull(Uri._LOWER_CASE_A) - 10); |
2760 } | 2678 } |
2761 static [_normalizeEscape](source, index, lowerCase) { | 2679 static _normalizeEscape(source, index, lowerCase) { |
2762 dart.assert(source.codeUnitAt(index) == Uri[_PERCENT]); | 2680 dart.assert(source.codeUnitAt(index) == Uri._PERCENT); |
2763 if (dart.notNull(index) + 2 >= dart.notNull(source.length)) { | 2681 if (dart.notNull(index) + 2 >= dart.notNull(source.length)) { |
2764 return "%"; | 2682 return "%"; |
2765 } | 2683 } |
2766 let firstDigit = source.codeUnitAt(dart.notNull(index) + 1); | 2684 let firstDigit = source.codeUnitAt(dart.notNull(index) + 1); |
2767 let secondDigit = source.codeUnitAt(dart.notNull(index) + 2); | 2685 let secondDigit = source.codeUnitAt(dart.notNull(index) + 2); |
2768 if (!dart.notNull(Uri[_isHexDigit](firstDigit)) || !dart.notNull(Uri[_isHe
xDigit](secondDigit))) { | 2686 if (!dart.notNull(Uri._isHexDigit(firstDigit)) || !dart.notNull(Uri._isHex
Digit(secondDigit))) { |
2769 return "%"; | 2687 return "%"; |
2770 } | 2688 } |
2771 let value = dart.notNull(Uri[_hexValue](firstDigit)) * 16 + dart.notNull(U
ri[_hexValue](secondDigit)); | 2689 let value = dart.notNull(Uri._hexValue(firstDigit)) * 16 + dart.notNull(Ur
i._hexValue(secondDigit)); |
2772 if (Uri[_isUnreservedChar](value)) { | 2690 if (Uri._isUnreservedChar(value)) { |
2773 if (dart.notNull(lowerCase) && dart.notNull(Uri[_UPPER_CASE_A]) <= dart.
notNull(value) && dart.notNull(Uri[_UPPER_CASE_Z]) >= dart.notNull(value)) { | 2691 if (dart.notNull(lowerCase) && dart.notNull(Uri._UPPER_CASE_A) <= dart.n
otNull(value) && dart.notNull(Uri._UPPER_CASE_Z) >= dart.notNull(value)) { |
2774 value = dart.notNull(value) | 32; | 2692 value = dart.notNull(value) | 32; |
2775 } | 2693 } |
2776 return new String.fromCharCode(value); | 2694 return new String.fromCharCode(value); |
2777 } | 2695 } |
2778 if (dart.notNull(firstDigit) >= dart.notNull(Uri[_LOWER_CASE_A]) || dart.n
otNull(secondDigit) >= dart.notNull(Uri[_LOWER_CASE_A])) { | 2696 if (dart.notNull(firstDigit) >= dart.notNull(Uri._LOWER_CASE_A) || dart.no
tNull(secondDigit) >= dart.notNull(Uri._LOWER_CASE_A)) { |
2779 return source.substring(index, dart.notNull(index) + 3).toUpperCase(); | 2697 return source.substring(index, dart.notNull(index) + 3).toUpperCase(); |
2780 } | 2698 } |
2781 return null; | 2699 return null; |
2782 } | 2700 } |
2783 static [_isUnreservedChar](ch) { | 2701 static _isUnreservedChar(ch) { |
2784 return dart.notNull(ch) < 127 && dart.notNull(!dart.equals(dart.dsend(Uri[
_unreservedTable][$get](dart.notNull(ch) >> 4), '&', 1 << (dart.notNull(ch) & 15
)), 0)); | 2702 return dart.notNull(ch) < 127 && dart.notNull(!dart.equals(dart.dsend(Uri.
_unreservedTable[$get](dart.notNull(ch) >> 4), '&', 1 << (dart.notNull(ch) & 15)
), 0)); |
2785 } | 2703 } |
2786 static [_escapeChar](char) { | 2704 static _escapeChar(char) { |
2787 dart.assert(dart.dsend(char, '<=', 1114111)); | 2705 dart.assert(dart.dsend(char, '<=', 1114111)); |
2788 let hexDigits = "0123456789ABCDEF"; | 2706 let hexDigits = "0123456789ABCDEF"; |
2789 let codeUnits = null; | 2707 let codeUnits = null; |
2790 if (dart.dsend(char, '<', 128)) { | 2708 if (dart.dsend(char, '<', 128)) { |
2791 codeUnits = new List(3); | 2709 codeUnits = new List(3); |
2792 codeUnits[$set](0, Uri[_PERCENT]); | 2710 codeUnits[$set](0, Uri._PERCENT); |
2793 codeUnits[$set](1, hexDigits.codeUnitAt(dart.as(dart.dsend(char, '>>', 4
), int))); | 2711 codeUnits[$set](1, hexDigits.codeUnitAt(dart.as(dart.dsend(char, '>>', 4
), int))); |
2794 codeUnits[$set](2, hexDigits.codeUnitAt(dart.as(dart.dsend(char, '&', 15
), int))); | 2712 codeUnits[$set](2, hexDigits.codeUnitAt(dart.as(dart.dsend(char, '&', 15
), int))); |
2795 } else { | 2713 } else { |
2796 let flag = 192; | 2714 let flag = 192; |
2797 let encodedBytes = 2; | 2715 let encodedBytes = 2; |
2798 if (dart.dsend(char, '>', 2047)) { | 2716 if (dart.dsend(char, '>', 2047)) { |
2799 flag = 224; | 2717 flag = 224; |
2800 encodedBytes = 3; | 2718 encodedBytes = 3; |
2801 if (dart.dsend(char, '>', 65535)) { | 2719 if (dart.dsend(char, '>', 65535)) { |
2802 encodedBytes = 4; | 2720 encodedBytes = 4; |
2803 flag = 240; | 2721 flag = 240; |
2804 } | 2722 } |
2805 } | 2723 } |
2806 codeUnits = new List(3 * dart.notNull(encodedBytes)); | 2724 codeUnits = new List(3 * dart.notNull(encodedBytes)); |
2807 let index = 0; | 2725 let index = 0; |
2808 while ((encodedBytes = dart.notNull(encodedBytes) - 1) >= 0) { | 2726 while ((encodedBytes = dart.notNull(encodedBytes) - 1) >= 0) { |
2809 let byte = dart.as(dart.dsend(dart.dsend(dart.dsend(char, '>>', 6 * da
rt.notNull(encodedBytes)), '&', 63), '|', flag), int); | 2727 let byte = dart.as(dart.dsend(dart.dsend(dart.dsend(char, '>>', 6 * da
rt.notNull(encodedBytes)), '&', 63), '|', flag), int); |
2810 codeUnits[$set](index, Uri[_PERCENT]); | 2728 codeUnits[$set](index, Uri._PERCENT); |
2811 codeUnits[$set](dart.notNull(index) + 1, hexDigits.codeUnitAt(dart.not
Null(byte) >> 4)); | 2729 codeUnits[$set](dart.notNull(index) + 1, hexDigits.codeUnitAt(dart.not
Null(byte) >> 4)); |
2812 codeUnits[$set](dart.notNull(index) + 2, hexDigits.codeUnitAt(dart.not
Null(byte) & 15)); | 2730 codeUnits[$set](dart.notNull(index) + 2, hexDigits.codeUnitAt(dart.not
Null(byte) & 15)); |
2813 index = dart.notNull(index) + 3; | 2731 index = dart.notNull(index) + 3; |
2814 flag = 128; | 2732 flag = 128; |
2815 } | 2733 } |
2816 } | 2734 } |
2817 return new String.fromCharCodes(dart.as(codeUnits, Iterable$(int))); | 2735 return new String.fromCharCodes(dart.as(codeUnits, Iterable$(int))); |
2818 } | 2736 } |
2819 static [_normalize](component, start, end, charTable) { | 2737 static _normalize(component, start, end, charTable) { |
2820 let buffer = null; | 2738 let buffer = null; |
2821 let sectionStart = start; | 2739 let sectionStart = start; |
2822 let index = start; | 2740 let index = start; |
2823 while (dart.notNull(index) < dart.notNull(end)) { | 2741 while (dart.notNull(index) < dart.notNull(end)) { |
2824 let char = component.codeUnitAt(index); | 2742 let char = component.codeUnitAt(index); |
2825 if (dart.notNull(char) < 127 && (dart.notNull(charTable[$get](dart.notNu
ll(char) >> 4)) & 1 << (dart.notNull(char) & 15)) != 0) { | 2743 if (dart.notNull(char) < 127 && (dart.notNull(charTable[$get](dart.notNu
ll(char) >> 4)) & 1 << (dart.notNull(char) & 15)) != 0) { |
2826 index = dart.notNull(index) + 1; | 2744 index = dart.notNull(index) + 1; |
2827 } else { | 2745 } else { |
2828 let replacement = null; | 2746 let replacement = null; |
2829 let sourceLength = null; | 2747 let sourceLength = null; |
2830 if (char == Uri[_PERCENT]) { | 2748 if (char == Uri._PERCENT) { |
2831 replacement = Uri[_normalizeEscape](component, index, false); | 2749 replacement = Uri._normalizeEscape(component, index, false); |
2832 if (replacement == null) { | 2750 if (replacement == null) { |
2833 index = dart.notNull(index) + 3; | 2751 index = dart.notNull(index) + 3; |
2834 continue; | 2752 continue; |
2835 } | 2753 } |
2836 if ("%" == replacement) { | 2754 if ("%" == replacement) { |
2837 replacement = "%25"; | 2755 replacement = "%25"; |
2838 sourceLength = 1; | 2756 sourceLength = 1; |
2839 } else { | 2757 } else { |
2840 sourceLength = 3; | 2758 sourceLength = 3; |
2841 } | 2759 } |
2842 } else if (Uri[_isGeneralDelimiter](char)) { | 2760 } else if (Uri._isGeneralDelimiter(char)) { |
2843 Uri[_fail](component, index, "Invalid character"); | 2761 Uri._fail(component, index, "Invalid character"); |
2844 } else { | 2762 } else { |
2845 sourceLength = 1; | 2763 sourceLength = 1; |
2846 if ((dart.notNull(char) & 64512) == 55296) { | 2764 if ((dart.notNull(char) & 64512) == 55296) { |
2847 if (dart.notNull(index) + 1 < dart.notNull(end)) { | 2765 if (dart.notNull(index) + 1 < dart.notNull(end)) { |
2848 let tail = component.codeUnitAt(dart.notNull(index) + 1); | 2766 let tail = component.codeUnitAt(dart.notNull(index) + 1); |
2849 if ((dart.notNull(tail) & 64512) == 56320) { | 2767 if ((dart.notNull(tail) & 64512) == 56320) { |
2850 sourceLength = 2; | 2768 sourceLength = 2; |
2851 char = 65536 | (dart.notNull(char) & 1023) << 10 | dart.notNul
l(tail) & 1023; | 2769 char = 65536 | (dart.notNull(char) & 1023) << 10 | dart.notNul
l(tail) & 1023; |
2852 } | 2770 } |
2853 } | 2771 } |
2854 } | 2772 } |
2855 replacement = Uri[_escapeChar](char); | 2773 replacement = Uri._escapeChar(char); |
2856 } | 2774 } |
2857 if (buffer == null) | 2775 if (buffer == null) |
2858 buffer = new StringBuffer(); | 2776 buffer = new StringBuffer(); |
2859 buffer.write(component.substring(sectionStart, index)); | 2777 buffer.write(component.substring(sectionStart, index)); |
2860 buffer.write(replacement); | 2778 buffer.write(replacement); |
2861 index = dart.notNull(index) + dart.notNull(sourceLength); | 2779 index = dart.notNull(index) + dart.notNull(sourceLength); |
2862 sectionStart = index; | 2780 sectionStart = index; |
2863 } | 2781 } |
2864 } | 2782 } |
2865 if (buffer == null) { | 2783 if (buffer == null) { |
2866 return component.substring(start, end); | 2784 return component.substring(start, end); |
2867 } | 2785 } |
2868 if (dart.notNull(sectionStart) < dart.notNull(end)) { | 2786 if (dart.notNull(sectionStart) < dart.notNull(end)) { |
2869 buffer.write(component.substring(sectionStart, end)); | 2787 buffer.write(component.substring(sectionStart, end)); |
2870 } | 2788 } |
2871 return dart.toString(buffer); | 2789 return dart.toString(buffer); |
2872 } | 2790 } |
2873 static [_isSchemeCharacter](ch) { | 2791 static _isSchemeCharacter(ch) { |
2874 return dart.notNull(ch) < 128 && dart.notNull(!dart.equals(dart.dsend(Uri[
_schemeTable][$get](dart.notNull(ch) >> 4), '&', 1 << (dart.notNull(ch) & 15)),
0)); | 2792 return dart.notNull(ch) < 128 && dart.notNull(!dart.equals(dart.dsend(Uri.
_schemeTable[$get](dart.notNull(ch) >> 4), '&', 1 << (dart.notNull(ch) & 15)), 0
)); |
2875 } | 2793 } |
2876 static [_isGeneralDelimiter](ch) { | 2794 static _isGeneralDelimiter(ch) { |
2877 return dart.notNull(ch) <= dart.notNull(Uri[_RIGHT_BRACKET]) && dart.notNu
ll(!dart.equals(dart.dsend(Uri[_genDelimitersTable][$get](dart.notNull(ch) >> 4)
, '&', 1 << (dart.notNull(ch) & 15)), 0)); | 2795 return dart.notNull(ch) <= dart.notNull(Uri._RIGHT_BRACKET) && dart.notNul
l(!dart.equals(dart.dsend(Uri._genDelimitersTable[$get](dart.notNull(ch) >> 4),
'&', 1 << (dart.notNull(ch) & 15)), 0)); |
2878 } | 2796 } |
2879 get isAbsolute() { | 2797 get isAbsolute() { |
2880 return this.scheme != "" && this.fragment == ""; | 2798 return this.scheme != "" && this.fragment == ""; |
2881 } | 2799 } |
2882 [_merge](base, reference) { | 2800 [_merge](base, reference) { |
2883 if (base.isEmpty) | 2801 if (base.isEmpty) |
2884 return `/${reference}`; | 2802 return `/${reference}`; |
2885 let backCount = 0; | 2803 let backCount = 0; |
2886 let refStart = 0; | 2804 let refStart = 0; |
2887 while (reference.startsWith("../", refStart)) { | 2805 while (reference.startsWith("../", refStart)) { |
2888 refStart = dart.notNull(refStart) + 3; | 2806 refStart = dart.notNull(refStart) + 3; |
2889 backCount = dart.notNull(backCount) + 1; | 2807 backCount = dart.notNull(backCount) + 1; |
2890 } | 2808 } |
2891 let baseEnd = base.lastIndexOf('/'); | 2809 let baseEnd = base.lastIndexOf('/'); |
2892 while (dart.notNull(baseEnd) > 0 && dart.notNull(backCount) > 0) { | 2810 while (dart.notNull(baseEnd) > 0 && dart.notNull(backCount) > 0) { |
2893 let newEnd = base.lastIndexOf('/', dart.notNull(baseEnd) - 1); | 2811 let newEnd = base.lastIndexOf('/', dart.notNull(baseEnd) - 1); |
2894 if (dart.notNull(newEnd) < 0) { | 2812 if (dart.notNull(newEnd) < 0) { |
2895 break; | 2813 break; |
2896 } | 2814 } |
2897 let delta = dart.notNull(baseEnd) - dart.notNull(newEnd); | 2815 let delta = dart.notNull(baseEnd) - dart.notNull(newEnd); |
2898 if ((delta == 2 || delta == 3) && base.codeUnitAt(dart.notNull(newEnd) +
1) == Uri[_DOT] && (delta == 2 || base.codeUnitAt(dart.notNull(newEnd) + 2) ==
Uri[_DOT])) { | 2816 if ((delta == 2 || delta == 3) && base.codeUnitAt(dart.notNull(newEnd) +
1) == Uri._DOT && (delta == 2 || base.codeUnitAt(dart.notNull(newEnd) + 2) == U
ri._DOT)) { |
2899 break; | 2817 break; |
2900 } | 2818 } |
2901 baseEnd = newEnd; | 2819 baseEnd = newEnd; |
2902 backCount = dart.notNull(backCount) - 1; | 2820 backCount = dart.notNull(backCount) - 1; |
2903 } | 2821 } |
2904 return dart.notNull(base.substring(0, dart.notNull(baseEnd) + 1)) + dart.n
otNull(reference.substring(dart.notNull(refStart) - 3 * dart.notNull(backCount))
); | 2822 return dart.notNull(base.substring(0, dart.notNull(baseEnd) + 1)) + dart.n
otNull(reference.substring(dart.notNull(refStart) - 3 * dart.notNull(backCount))
); |
2905 } | 2823 } |
2906 [_hasDotSegments](path) { | 2824 [_hasDotSegments](path) { |
2907 if (dart.notNull(path.length) > 0 && path.codeUnitAt(0) == Uri[_DOT]) | 2825 if (dart.notNull(path.length) > 0 && path.codeUnitAt(0) == Uri._DOT) |
2908 return true; | 2826 return true; |
2909 let index = path.indexOf("/."); | 2827 let index = path.indexOf("/."); |
2910 return index != -1; | 2828 return index != -1; |
2911 } | 2829 } |
2912 [_removeDotSegments](path) { | 2830 [_removeDotSegments](path) { |
2913 if (!dart.notNull(this[_hasDotSegments](path))) | 2831 if (!dart.notNull(this[_hasDotSegments](path))) |
2914 return path; | 2832 return path; |
2915 let output = dart.setType([], List$(String)); | 2833 let output = dart.setType([], List$(String)); |
2916 let appendSlash = false; | 2834 let appendSlash = false; |
2917 for (let segment of path.split("/")) { | 2835 for (let segment of path.split("/")) { |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2949 } | 2867 } |
2950 targetPath = this[_removeDotSegments](reference.path); | 2868 targetPath = this[_removeDotSegments](reference.path); |
2951 if (reference.hasQuery) { | 2869 if (reference.hasQuery) { |
2952 targetQuery = reference.query; | 2870 targetQuery = reference.query; |
2953 } | 2871 } |
2954 } else { | 2872 } else { |
2955 targetScheme = this.scheme; | 2873 targetScheme = this.scheme; |
2956 if (reference.hasAuthority) { | 2874 if (reference.hasAuthority) { |
2957 targetUserInfo = reference.userInfo; | 2875 targetUserInfo = reference.userInfo; |
2958 targetHost = reference.host; | 2876 targetHost = reference.host; |
2959 targetPort = Uri[_makePort](reference.hasPort ? reference.port : null,
targetScheme); | 2877 targetPort = Uri._makePort(reference.hasPort ? reference.port : null,
targetScheme); |
2960 targetPath = this[_removeDotSegments](reference.path); | 2878 targetPath = this[_removeDotSegments](reference.path); |
2961 if (reference.hasQuery) | 2879 if (reference.hasQuery) |
2962 targetQuery = reference.query; | 2880 targetQuery = reference.query; |
2963 } else { | 2881 } else { |
2964 if (reference.path == "") { | 2882 if (reference.path == "") { |
2965 targetPath = this[_path]; | 2883 targetPath = this[_path]; |
2966 if (reference.hasQuery) { | 2884 if (reference.hasQuery) { |
2967 targetQuery = reference.query; | 2885 targetQuery = reference.query; |
2968 } else { | 2886 } else { |
2969 targetQuery = this[_query]; | 2887 targetQuery = this[_query]; |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3013 if (this.scheme != "" && this.scheme != "file") { | 2931 if (this.scheme != "" && this.scheme != "file") { |
3014 throw new UnsupportedError(`Cannot extract a file path from a ${this.sch
eme} URI`); | 2932 throw new UnsupportedError(`Cannot extract a file path from a ${this.sch
eme} URI`); |
3015 } | 2933 } |
3016 if (this.query != "") { | 2934 if (this.query != "") { |
3017 throw new UnsupportedError("Cannot extract a file path from a URI with a
query component"); | 2935 throw new UnsupportedError("Cannot extract a file path from a URI with a
query component"); |
3018 } | 2936 } |
3019 if (this.fragment != "") { | 2937 if (this.fragment != "") { |
3020 throw new UnsupportedError("Cannot extract a file path from a URI with a
fragment component"); | 2938 throw new UnsupportedError("Cannot extract a file path from a URI with a
fragment component"); |
3021 } | 2939 } |
3022 if (windows == null) | 2940 if (windows == null) |
3023 windows = Uri[_isWindows]; | 2941 windows = Uri._isWindows; |
3024 return windows ? this[_toWindowsFilePath]() : this[_toFilePath](); | 2942 return windows ? this[_toWindowsFilePath]() : this[_toFilePath](); |
3025 } | 2943 } |
3026 [_toFilePath]() { | 2944 [_toFilePath]() { |
3027 if (this.host != "") { | 2945 if (this.host != "") { |
3028 throw new UnsupportedError("Cannot extract a non-Windows file path from
a file URI " + "with an authority"); | 2946 throw new UnsupportedError("Cannot extract a non-Windows file path from
a file URI " + "with an authority"); |
3029 } | 2947 } |
3030 Uri[_checkNonWindowsPathReservedCharacters](this.pathSegments, false); | 2948 Uri._checkNonWindowsPathReservedCharacters(this.pathSegments, false); |
3031 let result = new StringBuffer(); | 2949 let result = new StringBuffer(); |
3032 if (this[_isPathAbsolute]) | 2950 if (this[_isPathAbsolute]) |
3033 result.write("/"); | 2951 result.write("/"); |
3034 result.writeAll(this.pathSegments, "/"); | 2952 result.writeAll(this.pathSegments, "/"); |
3035 return dart.toString(result); | 2953 return dart.toString(result); |
3036 } | 2954 } |
3037 [_toWindowsFilePath]() { | 2955 [_toWindowsFilePath]() { |
3038 let hasDriveLetter = false; | 2956 let hasDriveLetter = false; |
3039 let segments = this.pathSegments; | 2957 let segments = this.pathSegments; |
3040 if (dart.notNull(segments[$length]) > 0 && segments[$get](0).length == 2 &
& segments[$get](0).codeUnitAt(1) == Uri[_COLON]) { | 2958 if (dart.notNull(segments[$length]) > 0 && segments[$get](0).length == 2 &
& segments[$get](0).codeUnitAt(1) == Uri._COLON) { |
3041 Uri[_checkWindowsDriveLetter](segments[$get](0).codeUnitAt(0), false); | 2959 Uri._checkWindowsDriveLetter(segments[$get](0).codeUnitAt(0), false); |
3042 Uri[_checkWindowsPathReservedCharacters](segments, false, 1); | 2960 Uri._checkWindowsPathReservedCharacters(segments, false, 1); |
3043 hasDriveLetter = true; | 2961 hasDriveLetter = true; |
3044 } else { | 2962 } else { |
3045 Uri[_checkWindowsPathReservedCharacters](segments, false); | 2963 Uri._checkWindowsPathReservedCharacters(segments, false); |
3046 } | 2964 } |
3047 let result = new StringBuffer(); | 2965 let result = new StringBuffer(); |
3048 if (dart.notNull(this[_isPathAbsolute]) && !dart.notNull(hasDriveLetter)) | 2966 if (dart.notNull(this[_isPathAbsolute]) && !dart.notNull(hasDriveLetter)) |
3049 result.write("\\"); | 2967 result.write("\\"); |
3050 if (this.host != "") { | 2968 if (this.host != "") { |
3051 result.write("\\"); | 2969 result.write("\\"); |
3052 result.write(this.host); | 2970 result.write(this.host); |
3053 result.write("\\"); | 2971 result.write("\\"); |
3054 } | 2972 } |
3055 result.writeAll(segments, "\\"); | 2973 result.writeAll(segments, "\\"); |
(...skipping 13 matching lines...) Expand all Loading... |
3069 } | 2987 } |
3070 if (this[_host] != null) | 2988 if (this[_host] != null) |
3071 ss.write(this[_host]); | 2989 ss.write(this[_host]); |
3072 if (this[_port] != null) { | 2990 if (this[_port] != null) { |
3073 ss.write(":"); | 2991 ss.write(":"); |
3074 ss.write(this[_port]); | 2992 ss.write(this[_port]); |
3075 } | 2993 } |
3076 } | 2994 } |
3077 toString() { | 2995 toString() { |
3078 let sb = new StringBuffer(); | 2996 let sb = new StringBuffer(); |
3079 Uri[_addIfNonEmpty](sb, this.scheme, this.scheme, ':'); | 2997 Uri._addIfNonEmpty(sb, this.scheme, this.scheme, ':'); |
3080 if (dart.notNull(this.hasAuthority) || dart.notNull(this.path.startsWith("
//")) || this.scheme == "file") { | 2998 if (dart.notNull(this.hasAuthority) || dart.notNull(this.path.startsWith("
//")) || this.scheme == "file") { |
3081 sb.write("//"); | 2999 sb.write("//"); |
3082 this[_writeAuthority](sb); | 3000 this[_writeAuthority](sb); |
3083 } | 3001 } |
3084 sb.write(this.path); | 3002 sb.write(this.path); |
3085 if (this[_query] != null) { | 3003 if (this[_query] != null) { |
3086 sb.write("?"); | 3004 sb.write("?"); |
3087 sb.write(this[_query]); | 3005 sb.write(this[_query]); |
3088 } | 3006 } |
3089 if (this[_fragment] != null) { | 3007 if (this[_fragment] != null) { |
3090 sb.write("#"); | 3008 sb.write("#"); |
3091 sb.write(this[_fragment]); | 3009 sb.write(this[_fragment]); |
3092 } | 3010 } |
3093 return dart.toString(sb); | 3011 return dart.toString(sb); |
3094 } | 3012 } |
3095 ['=='](other) { | 3013 ['=='](other) { |
3096 if (!dart.is(other, Uri)) | 3014 if (!dart.is(other, Uri)) |
3097 return false; | 3015 return false; |
3098 let uri = dart.as(other, Uri); | 3016 let uri = dart.as(other, Uri); |
3099 return this.scheme == uri.scheme && this.hasAuthority == uri.hasAuthority
&& this.userInfo == uri.userInfo && this.host == uri.host && this.port == uri.po
rt && this.path == uri.path && this.hasQuery == uri.hasQuery && this.query == ur
i.query && this.hasFragment == uri.hasFragment && this.fragment == uri.fragment; | 3017 return this.scheme == uri.scheme && this.hasAuthority == uri.hasAuthority
&& this.userInfo == uri.userInfo && this.host == uri.host && this.port == uri.po
rt && this.path == uri.path && this.hasQuery == uri.hasQuery && this.query == ur
i.query && this.hasFragment == uri.hasFragment && this.fragment == uri.fragment; |
3100 } | 3018 } |
3101 get hashCode() { | 3019 get hashCode() { |
3102 // Function combine: (dynamic, dynamic) → int | 3020 // Function combine: (dynamic, dynamic) → int |
3103 function combine(part, current) { | 3021 function combine(part, current) { |
3104 return dart.as(dart.dsend(dart.dsend(dart.dsend(current, '*', 31), '+',
dart.hashCode(part)), '&', 1073741823), int); | 3022 return dart.as(dart.dsend(dart.dsend(dart.dsend(current, '*', 31), '+',
dart.hashCode(part)), '&', 1073741823), int); |
3105 } | 3023 } |
3106 return combine(this.scheme, combine(this.userInfo, combine(this.host, comb
ine(this.port, combine(this.path, combine(this.query, combine(this.fragment, 1))
))))); | 3024 return combine(this.scheme, combine(this.userInfo, combine(this.host, comb
ine(this.port, combine(this.path, combine(this.query, combine(this.fragment, 1))
))))); |
3107 } | 3025 } |
3108 static [_addIfNonEmpty](sb, test, first, second) { | 3026 static _addIfNonEmpty(sb, test, first, second) { |
3109 if ("" != test) { | 3027 if ("" != test) { |
3110 sb.write(first); | 3028 sb.write(first); |
3111 sb.write(second); | 3029 sb.write(second); |
3112 } | 3030 } |
3113 } | 3031 } |
3114 static encodeComponent(component) { | 3032 static encodeComponent(component) { |
3115 return Uri[_uriEncode](dart.as(Uri[_unreserved2396Table], List$(int)), com
ponent); | 3033 return Uri._uriEncode(dart.as(Uri._unreserved2396Table, List$(int)), compo
nent); |
3116 } | 3034 } |
3117 static encodeQueryComponent(component, opts) { | 3035 static encodeQueryComponent(component, opts) { |
3118 let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8; | 3036 let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8; |
3119 return Uri[_uriEncode](dart.as(Uri[_unreservedTable], List$(int)), compone
nt, {encoding: encoding, spaceToPlus: true}); | 3037 return Uri._uriEncode(dart.as(Uri._unreservedTable, List$(int)), component
, {encoding: encoding, spaceToPlus: true}); |
3120 } | 3038 } |
3121 static decodeComponent(encodedComponent) { | 3039 static decodeComponent(encodedComponent) { |
3122 return Uri[_uriDecode](encodedComponent); | 3040 return Uri._uriDecode(encodedComponent); |
3123 } | 3041 } |
3124 static decodeQueryComponent(encodedComponent, opts) { | 3042 static decodeQueryComponent(encodedComponent, opts) { |
3125 let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8; | 3043 let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8; |
3126 return Uri[_uriDecode](encodedComponent, {plusToSpace: true, encoding: enc
oding}); | 3044 return Uri._uriDecode(encodedComponent, {plusToSpace: true, encoding: enco
ding}); |
3127 } | 3045 } |
3128 static encodeFull(uri) { | 3046 static encodeFull(uri) { |
3129 return Uri[_uriEncode](dart.as(Uri[_encodeFullTable], List$(int)), uri); | 3047 return Uri._uriEncode(dart.as(Uri._encodeFullTable, List$(int)), uri); |
3130 } | 3048 } |
3131 static decodeFull(uri) { | 3049 static decodeFull(uri) { |
3132 return Uri[_uriDecode](uri); | 3050 return Uri._uriDecode(uri); |
3133 } | 3051 } |
3134 static splitQueryString(query, opts) { | 3052 static splitQueryString(query, opts) { |
3135 let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8; | 3053 let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8; |
3136 return dart.as(query.split("&")[$fold](dart.map(), (map, element) => { | 3054 return dart.as(query.split("&")[$fold](dart.map(), (map, element) => { |
3137 let index = dart.as(dart.dsend(element, 'indexOf', "="), int); | 3055 let index = dart.as(dart.dsend(element, 'indexOf', "="), int); |
3138 if (index == -1) { | 3056 if (index == -1) { |
3139 if (!dart.equals(element, "")) { | 3057 if (!dart.equals(element, "")) { |
3140 dart.dsetindex(map, Uri.decodeQueryComponent(dart.as(element, String
), {encoding: encoding}), ""); | 3058 dart.dsetindex(map, Uri.decodeQueryComponent(dart.as(element, String
), {encoding: encoding}), ""); |
3141 } | 3059 } |
3142 } else if (index != 0) { | 3060 } else if (index != 0) { |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3187 error('each part must be in the range of `0x0..0xFFFF`', start); | 3105 error('each part must be in the range of `0x0..0xFFFF`', start); |
3188 } | 3106 } |
3189 return value; | 3107 return value; |
3190 } | 3108 } |
3191 if (dart.notNull(host.length) < 2) | 3109 if (dart.notNull(host.length) < 2) |
3192 error('address is too short'); | 3110 error('address is too short'); |
3193 let parts = dart.setType([], List$(int)); | 3111 let parts = dart.setType([], List$(int)); |
3194 let wildcardSeen = false; | 3112 let wildcardSeen = false; |
3195 let partStart = start; | 3113 let partStart = start; |
3196 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(
i) + 1) { | 3114 for (let i = start; dart.notNull(i) < dart.notNull(end); i = dart.notNull(
i) + 1) { |
3197 if (host.codeUnitAt(i) == Uri[_COLON]) { | 3115 if (host.codeUnitAt(i) == Uri._COLON) { |
3198 if (i == start) { | 3116 if (i == start) { |
3199 i = dart.notNull(i) + 1; | 3117 i = dart.notNull(i) + 1; |
3200 if (host.codeUnitAt(i) != Uri[_COLON]) { | 3118 if (host.codeUnitAt(i) != Uri._COLON) { |
3201 error('invalid start colon.', i); | 3119 error('invalid start colon.', i); |
3202 } | 3120 } |
3203 partStart = i; | 3121 partStart = i; |
3204 } | 3122 } |
3205 if (i == partStart) { | 3123 if (i == partStart) { |
3206 if (wildcardSeen) { | 3124 if (wildcardSeen) { |
3207 error('only one wildcard `::` is allowed', i); | 3125 error('only one wildcard `::` is allowed', i); |
3208 } | 3126 } |
3209 wildcardSeen = true; | 3127 wildcardSeen = true; |
3210 parts[$add](-1); | 3128 parts[$add](-1); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3254 index = dart.notNull(index) + 2; | 3172 index = dart.notNull(index) + 2; |
3255 } | 3173 } |
3256 } else { | 3174 } else { |
3257 bytes[$set](index, dart.notNull(value) >> 8); | 3175 bytes[$set](index, dart.notNull(value) >> 8); |
3258 bytes[$set](dart.notNull(index) + 1, dart.notNull(value) & 255); | 3176 bytes[$set](dart.notNull(index) + 1, dart.notNull(value) & 255); |
3259 index = dart.notNull(index) + 2; | 3177 index = dart.notNull(index) + 2; |
3260 } | 3178 } |
3261 } | 3179 } |
3262 return dart.as(bytes, List$(int)); | 3180 return dart.as(bytes, List$(int)); |
3263 } | 3181 } |
3264 static [_uriEncode](canonicalTable, text, opts) { | 3182 static _uriEncode(canonicalTable, text, opts) { |
3265 let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8; | 3183 let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8; |
3266 let spaceToPlus = opts && 'spaceToPlus' in opts ? opts.spaceToPlus : false
; | 3184 let spaceToPlus = opts && 'spaceToPlus' in opts ? opts.spaceToPlus : false
; |
3267 // Function byteToHex: (dynamic, dynamic) → dynamic | 3185 // Function byteToHex: (dynamic, dynamic) → dynamic |
3268 function byteToHex(byte, buffer) { | 3186 function byteToHex(byte, buffer) { |
3269 let hex = '0123456789ABCDEF'; | 3187 let hex = '0123456789ABCDEF'; |
3270 dart.dsend(buffer, 'writeCharCode', hex.codeUnitAt(dart.as(dart.dsend(by
te, '>>', 4), int))); | 3188 dart.dsend(buffer, 'writeCharCode', hex.codeUnitAt(dart.as(dart.dsend(by
te, '>>', 4), int))); |
3271 dart.dsend(buffer, 'writeCharCode', hex.codeUnitAt(dart.as(dart.dsend(by
te, '&', 15), int))); | 3189 dart.dsend(buffer, 'writeCharCode', hex.codeUnitAt(dart.as(dart.dsend(by
te, '&', 15), int))); |
3272 } | 3190 } |
3273 let result = new StringBuffer(); | 3191 let result = new StringBuffer(); |
3274 let bytes = encoding.encode(text); | 3192 let bytes = encoding.encode(text); |
3275 for (let i = 0; dart.notNull(i) < dart.notNull(bytes[$length]); i = dart.n
otNull(i) + 1) { | 3193 for (let i = 0; dart.notNull(i) < dart.notNull(bytes[$length]); i = dart.n
otNull(i) + 1) { |
3276 let byte = bytes[$get](i); | 3194 let byte = bytes[$get](i); |
3277 if (dart.notNull(byte) < 128 && (dart.notNull(canonicalTable[$get](dart.
notNull(byte) >> 4)) & 1 << (dart.notNull(byte) & 15)) != 0) { | 3195 if (dart.notNull(byte) < 128 && (dart.notNull(canonicalTable[$get](dart.
notNull(byte) >> 4)) & 1 << (dart.notNull(byte) & 15)) != 0) { |
3278 result.writeCharCode(byte); | 3196 result.writeCharCode(byte); |
3279 } else if (dart.notNull(spaceToPlus) && byte == Uri[_SPACE]) { | 3197 } else if (dart.notNull(spaceToPlus) && byte == Uri._SPACE) { |
3280 result.writeCharCode(Uri[_PLUS]); | 3198 result.writeCharCode(Uri._PLUS); |
3281 } else { | 3199 } else { |
3282 result.writeCharCode(Uri[_PERCENT]); | 3200 result.writeCharCode(Uri._PERCENT); |
3283 byteToHex(byte, result); | 3201 byteToHex(byte, result); |
3284 } | 3202 } |
3285 } | 3203 } |
3286 return dart.toString(result); | 3204 return dart.toString(result); |
3287 } | 3205 } |
3288 static [_hexCharPairToByte](s, pos) { | 3206 static _hexCharPairToByte(s, pos) { |
3289 let byte = 0; | 3207 let byte = 0; |
3290 for (let i = 0; dart.notNull(i) < 2; i = dart.notNull(i) + 1) { | 3208 for (let i = 0; dart.notNull(i) < 2; i = dart.notNull(i) + 1) { |
3291 let charCode = s.codeUnitAt(dart.notNull(pos) + dart.notNull(i)); | 3209 let charCode = s.codeUnitAt(dart.notNull(pos) + dart.notNull(i)); |
3292 if (48 <= dart.notNull(charCode) && dart.notNull(charCode) <= 57) { | 3210 if (48 <= dart.notNull(charCode) && dart.notNull(charCode) <= 57) { |
3293 byte = dart.notNull(byte) * 16 + dart.notNull(charCode) - 48; | 3211 byte = dart.notNull(byte) * 16 + dart.notNull(charCode) - 48; |
3294 } else { | 3212 } else { |
3295 charCode = dart.notNull(charCode) | 32; | 3213 charCode = dart.notNull(charCode) | 32; |
3296 if (97 <= dart.notNull(charCode) && dart.notNull(charCode) <= 102) { | 3214 if (97 <= dart.notNull(charCode) && dart.notNull(charCode) <= 102) { |
3297 byte = dart.notNull(byte) * 16 + dart.notNull(charCode) - 87; | 3215 byte = dart.notNull(byte) * 16 + dart.notNull(charCode) - 87; |
3298 } else { | 3216 } else { |
3299 throw new ArgumentError("Invalid URL encoding"); | 3217 throw new ArgumentError("Invalid URL encoding"); |
3300 } | 3218 } |
3301 } | 3219 } |
3302 } | 3220 } |
3303 return byte; | 3221 return byte; |
3304 } | 3222 } |
3305 static [_uriDecode](text, opts) { | 3223 static _uriDecode(text, opts) { |
3306 let plusToSpace = opts && 'plusToSpace' in opts ? opts.plusToSpace : false
; | 3224 let plusToSpace = opts && 'plusToSpace' in opts ? opts.plusToSpace : false
; |
3307 let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8; | 3225 let encoding = opts && 'encoding' in opts ? opts.encoding : convert.UTF8; |
3308 let simple = true; | 3226 let simple = true; |
3309 for (let i = 0; dart.notNull(i) < dart.notNull(text.length) && dart.notNul
l(simple); i = dart.notNull(i) + 1) { | 3227 for (let i = 0; dart.notNull(i) < dart.notNull(text.length) && dart.notNul
l(simple); i = dart.notNull(i) + 1) { |
3310 let codeUnit = text.codeUnitAt(i); | 3228 let codeUnit = text.codeUnitAt(i); |
3311 simple = codeUnit != Uri[_PERCENT] && codeUnit != Uri[_PLUS]; | 3229 simple = codeUnit != Uri._PERCENT && codeUnit != Uri._PLUS; |
3312 } | 3230 } |
3313 let bytes = null; | 3231 let bytes = null; |
3314 if (simple) { | 3232 if (simple) { |
3315 if (dart.notNull(dart.equals(encoding, convert.UTF8)) || dart.notNull(da
rt.equals(encoding, convert.LATIN1))) { | 3233 if (dart.notNull(dart.equals(encoding, convert.UTF8)) || dart.notNull(da
rt.equals(encoding, convert.LATIN1))) { |
3316 return text; | 3234 return text; |
3317 } else { | 3235 } else { |
3318 bytes = text.codeUnits; | 3236 bytes = text.codeUnits; |
3319 } | 3237 } |
3320 } else { | 3238 } else { |
3321 bytes = new (List$(int))(); | 3239 bytes = new (List$(int))(); |
3322 for (let i = 0; dart.notNull(i) < dart.notNull(text.length); i = dart.no
tNull(i) + 1) { | 3240 for (let i = 0; dart.notNull(i) < dart.notNull(text.length); i = dart.no
tNull(i) + 1) { |
3323 let codeUnit = text.codeUnitAt(i); | 3241 let codeUnit = text.codeUnitAt(i); |
3324 if (dart.notNull(codeUnit) > 127) { | 3242 if (dart.notNull(codeUnit) > 127) { |
3325 throw new ArgumentError("Illegal percent encoding in URI"); | 3243 throw new ArgumentError("Illegal percent encoding in URI"); |
3326 } | 3244 } |
3327 if (codeUnit == Uri[_PERCENT]) { | 3245 if (codeUnit == Uri._PERCENT) { |
3328 if (dart.notNull(i) + 3 > dart.notNull(text.length)) { | 3246 if (dart.notNull(i) + 3 > dart.notNull(text.length)) { |
3329 throw new ArgumentError('Truncated URI'); | 3247 throw new ArgumentError('Truncated URI'); |
3330 } | 3248 } |
3331 bytes[$add](Uri[_hexCharPairToByte](text, dart.notNull(i) + 1)); | 3249 bytes[$add](Uri._hexCharPairToByte(text, dart.notNull(i) + 1)); |
3332 i = dart.notNull(i) + 2; | 3250 i = dart.notNull(i) + 2; |
3333 } else if (dart.notNull(plusToSpace) && codeUnit == Uri[_PLUS]) { | 3251 } else if (dart.notNull(plusToSpace) && codeUnit == Uri._PLUS) { |
3334 bytes[$add](Uri[_SPACE]); | 3252 bytes[$add](Uri._SPACE); |
3335 } else { | 3253 } else { |
3336 bytes[$add](codeUnit); | 3254 bytes[$add](codeUnit); |
3337 } | 3255 } |
3338 } | 3256 } |
3339 } | 3257 } |
3340 return encoding.decode(bytes); | 3258 return encoding.decode(bytes); |
3341 } | 3259 } |
3342 static [_isAlphabeticCharacter](codeUnit) { | 3260 static _isAlphabeticCharacter(codeUnit) { |
3343 return dart.notNull(codeUnit) >= dart.notNull(Uri[_LOWER_CASE_A]) && dart.
notNull(codeUnit) <= dart.notNull(Uri[_LOWER_CASE_Z]) || dart.notNull(codeUnit)
>= dart.notNull(Uri[_UPPER_CASE_A]) && dart.notNull(codeUnit) <= dart.notNull(Ur
i[_UPPER_CASE_Z]); | 3261 return dart.notNull(codeUnit) >= dart.notNull(Uri._LOWER_CASE_A) && dart.n
otNull(codeUnit) <= dart.notNull(Uri._LOWER_CASE_Z) || dart.notNull(codeUnit) >=
dart.notNull(Uri._UPPER_CASE_A) && dart.notNull(codeUnit) <= dart.notNull(Uri._
UPPER_CASE_Z); |
3344 } | 3262 } |
3345 } | 3263 } |
3346 dart.defineNamedConstructor(Uri, _internal$); | 3264 dart.defineNamedConstructor(Uri, '_internal'); |
3347 dart.defineNamedConstructor(Uri, 'http'); | 3265 dart.defineNamedConstructor(Uri, 'http'); |
3348 dart.defineNamedConstructor(Uri, 'https'); | 3266 dart.defineNamedConstructor(Uri, 'https'); |
3349 dart.defineNamedConstructor(Uri, 'file'); | 3267 dart.defineNamedConstructor(Uri, 'file'); |
3350 Uri._SPACE = 32; | 3268 Uri._SPACE = 32; |
3351 Uri._DOUBLE_QUOTE = 34; | 3269 Uri._DOUBLE_QUOTE = 34; |
3352 Uri._NUMBER_SIGN = 35; | 3270 Uri._NUMBER_SIGN = 35; |
3353 Uri._PERCENT = 37; | 3271 Uri._PERCENT = 37; |
3354 Uri._ASTERISK = 42; | 3272 Uri._ASTERISK = 42; |
3355 Uri._PLUS = 43; | 3273 Uri._PLUS = 43; |
3356 Uri._DOT = 46; | 3274 Uri._DOT = 46; |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3525 exports.StackTrace = StackTrace; | 3443 exports.StackTrace = StackTrace; |
3526 exports.Stopwatch = Stopwatch; | 3444 exports.Stopwatch = Stopwatch; |
3527 exports.String = String; | 3445 exports.String = String; |
3528 exports.RuneIterator = RuneIterator; | 3446 exports.RuneIterator = RuneIterator; |
3529 exports.StringBuffer = StringBuffer; | 3447 exports.StringBuffer = StringBuffer; |
3530 exports.StringSink = StringSink; | 3448 exports.StringSink = StringSink; |
3531 exports.Symbol = Symbol; | 3449 exports.Symbol = Symbol; |
3532 exports.Type = Type; | 3450 exports.Type = Type; |
3533 exports.Uri = Uri; | 3451 exports.Uri = Uri; |
3534 })(core || (core = {})); | 3452 })(core || (core = {})); |
OLD | NEW |