OLD | NEW |
| (Empty) |
1 // Generated by dart2js, the Dart to JavaScript compiler version: 1.13.0-dev.3.1
. | |
2 // The code supports the following hooks: | |
3 // dartPrint(message): | |
4 // if this function is defined it is called instead of the Dart [print] | |
5 // method. | |
6 // | |
7 // dartMainRunner(main, args): | |
8 // if this function is defined, the Dart [main] method will not be invoked | |
9 // directly. Instead, a closure that will invoke [main], and its arguments | |
10 // [args] is passed to [dartMainRunner]. | |
11 // | |
12 // dartDeferredLibraryLoader(uri, successCallback, errorCallback): | |
13 // if this function is defined, it will be called when a deferered library | |
14 // is loaded. It should load and eval the javascript of `uri`, and call | |
15 // successCallback. If it fails to do so, it should call errorCallback with | |
16 // an error. | |
17 (function() { | |
18 // /* ::norenaming:: */ | |
19 var supportsDirectProtoAccess = function() { | |
20 var cls = function() { | |
21 }; | |
22 cls.prototype = {p: {}}; | |
23 var object = new cls(); | |
24 return object.__proto__ && object.__proto__.p === cls.prototype.p; | |
25 }(); | |
26 function map(x) { | |
27 x = Object.create(null); | |
28 x.x = 0; | |
29 delete x.x; | |
30 return x; | |
31 } | |
32 // The global objects start as so-called "slow objects". For V8, this | |
33 // means that it won't try to make map transitions as we add properties | |
34 // to these objects. Later on, we attempt to turn these objects into | |
35 // fast objects by calling "convertToFastObject" (see | |
36 // [emitConvertToFastObjectFunction]). | |
37 var A = map(); | |
38 var B = map(); | |
39 var C = map(); | |
40 var D = map(); | |
41 var E = map(); | |
42 var F = map(); | |
43 var G = map(); | |
44 var H = map(); | |
45 var J = map(); | |
46 var K = map(); | |
47 var L = map(); | |
48 var M = map(); | |
49 var N = map(); | |
50 var O = map(); | |
51 var P = map(); | |
52 var Q = map(); | |
53 var R = map(); | |
54 var S = map(); | |
55 var T = map(); | |
56 var U = map(); | |
57 var V = map(); | |
58 var W = map(); | |
59 var X = map(); | |
60 var Y = map(); | |
61 var Z = map(); | |
62 function Isolate() { | |
63 } | |
64 init(); | |
65 // Constructors are generated at runtime. | |
66 function setupProgram(programData, typesOffset) { | |
67 "use strict"; | |
68 function generateAccessor(fieldDescriptor, accessors, cls) { | |
69 var fieldInformation = fieldDescriptor.split("-"); | |
70 var field = fieldInformation[0]; | |
71 var len = field.length; | |
72 var code = field.charCodeAt(len - 1); | |
73 var reflectable; | |
74 if (fieldInformation.length > 1) | |
75 reflectable = true; | |
76 else | |
77 reflectable = false; | |
78 code = code >= 60 && code <= 64 ? code - 59 : code >= 123 && code <= 126 ?
code - 117 : code >= 37 && code <= 43 ? code - 27 : 0; | |
79 if (code) { | |
80 var getterCode = code & 3; | |
81 var setterCode = code >> 2; | |
82 var accessorName = field = field.substring(0, len - 1); | |
83 var divider = field.indexOf(":"); | |
84 if (divider > 0) { | |
85 accessorName = field.substring(0, divider); | |
86 field = field.substring(divider + 1); | |
87 } | |
88 if (getterCode) { | |
89 var args = getterCode & 2 ? "receiver" : ""; | |
90 var receiver = getterCode & 1 ? "this" : "receiver"; | |
91 var body = "return " + receiver + "." + field; | |
92 var property = cls + ".prototype.get$" + accessorName + "="; | |
93 var fn = "function(" + args + "){" + body + "}"; | |
94 if (reflectable) | |
95 accessors.push(property + "$reflectable(" + fn + ");\n"); | |
96 else | |
97 accessors.push(property + fn + ";\n"); | |
98 } | |
99 if (setterCode) { | |
100 var args = setterCode & 2 ? "receiver, value" : "value"; | |
101 var receiver = setterCode & 1 ? "this" : "receiver"; | |
102 var body = receiver + "." + field + " = value"; | |
103 var property = cls + ".prototype.set$" + accessorName + "="; | |
104 var fn = "function(" + args + "){" + body + "}"; | |
105 if (reflectable) | |
106 accessors.push(property + "$reflectable(" + fn + ");\n"); | |
107 else | |
108 accessors.push(property + fn + ";\n"); | |
109 } | |
110 } | |
111 return field; | |
112 } | |
113 function defineClass(name, fields) { | |
114 var accessors = []; | |
115 var str = "function " + name + "("; | |
116 var body = ""; | |
117 var fieldNames = ""; | |
118 for (var i = 0; i < fields.length; i++) { | |
119 if (i != 0) | |
120 str += ", "; | |
121 var field = generateAccessor(fields[i], accessors, name); | |
122 fieldNames += "'" + field + "',"; | |
123 var parameter = "p_" + field; | |
124 str += parameter; | |
125 body += "this." + field + " = " + parameter + ";\n"; | |
126 } | |
127 if (supportsDirectProtoAccess) | |
128 body += "this." + "$deferredAction" + "();"; | |
129 str += ") {\n" + body + "}\n"; | |
130 str += name + ".builtin$cls=\"" + name + "\";\n"; | |
131 str += "$desc=$collectedClasses." + name + "[1];\n"; | |
132 str += name + ".prototype = $desc;\n"; | |
133 if (typeof defineClass.name != "string") | |
134 str += name + ".name=\"" + name + "\";\n"; | |
135 str += name + "." + "$__fields__" + "=[" + fieldNames + "];\n"; | |
136 str += accessors.join(""); | |
137 return str; | |
138 } | |
139 init.createNewIsolate = function() { | |
140 return new Isolate(); | |
141 }; | |
142 init.classIdExtractor = function(o) { | |
143 return o.constructor.name; | |
144 }; | |
145 init.classFieldsExtractor = function(o) { | |
146 var fieldNames = o.constructor.$__fields__; | |
147 if (!fieldNames) | |
148 return []; | |
149 var result = []; | |
150 result.length = fieldNames.length; | |
151 for (var i = 0; i < fieldNames.length; i++) | |
152 result[i] = o[fieldNames[i]]; | |
153 return result; | |
154 }; | |
155 init.instanceFromClassId = function(name) { | |
156 return new init.allClasses[name](); | |
157 }; | |
158 init.initializeEmptyInstance = function(name, o, fields) { | |
159 init.allClasses[name].apply(o, fields); | |
160 return o; | |
161 }; | |
162 var inheritFrom = supportsDirectProtoAccess ? function(constructor, superCon
structor) { | |
163 var prototype = constructor.prototype; | |
164 prototype.__proto__ = superConstructor.prototype; | |
165 prototype.constructor = constructor; | |
166 prototype["$is" + constructor.name] = constructor; | |
167 return convertToFastObject(prototype); | |
168 } : function() { | |
169 function tmp() { | |
170 } | |
171 return function(constructor, superConstructor) { | |
172 tmp.prototype = superConstructor.prototype; | |
173 var object = new tmp(); | |
174 convertToSlowObject(object); | |
175 var properties = constructor.prototype; | |
176 var members = Object.keys(properties); | |
177 for (var i = 0; i < members.length; i++) { | |
178 var member = members[i]; | |
179 object[member] = properties[member]; | |
180 } | |
181 object["$is" + constructor.name] = constructor; | |
182 object.constructor = constructor; | |
183 constructor.prototype = object; | |
184 return object; | |
185 }; | |
186 }(); | |
187 function finishClasses(processedClasses) { | |
188 var allClasses = init.allClasses; | |
189 processedClasses.combinedConstructorFunction += "return [\n" + processedCl
asses.constructorsList.join(",\n ") + "\n]"; | |
190 var constructors = new Function("$collectedClasses", processedClasses.comb
inedConstructorFunction)(processedClasses.collected); | |
191 processedClasses.combinedConstructorFunction = null; | |
192 for (var i = 0; i < constructors.length; i++) { | |
193 var constructor = constructors[i]; | |
194 var cls = constructor.name; | |
195 var desc = processedClasses.collected[cls]; | |
196 var globalObject = desc[0]; | |
197 desc = desc[1]; | |
198 allClasses[cls] = constructor; | |
199 globalObject[cls] = constructor; | |
200 } | |
201 constructors = null; | |
202 var finishedClasses = init.finishedClasses; | |
203 function finishClass(cls) { | |
204 if (finishedClasses[cls]) | |
205 return; | |
206 finishedClasses[cls] = true; | |
207 var superclass = processedClasses.pending[cls]; | |
208 if (superclass && superclass.indexOf("+") > 0) { | |
209 var s = superclass.split("+"); | |
210 superclass = s[0]; | |
211 var mixinClass = s[1]; | |
212 finishClass(mixinClass); | |
213 var mixin = allClasses[mixinClass]; | |
214 var mixinPrototype = mixin.prototype; | |
215 var clsPrototype = allClasses[cls].prototype; | |
216 var properties = Object.keys(mixinPrototype); | |
217 for (var i = 0; i < properties.length; i++) { | |
218 var d = properties[i]; | |
219 if (!hasOwnProperty.call(clsPrototype, d)) | |
220 clsPrototype[d] = mixinPrototype[d]; | |
221 } | |
222 } | |
223 if (!superclass || typeof superclass != "string") { | |
224 var constructor = allClasses[cls]; | |
225 var prototype = constructor.prototype; | |
226 prototype.constructor = constructor; | |
227 prototype.$isObject = constructor; | |
228 prototype.$deferredAction = function() { | |
229 }; | |
230 return; | |
231 } | |
232 finishClass(superclass); | |
233 var superConstructor = allClasses[superclass]; | |
234 if (!superConstructor) | |
235 superConstructor = existingIsolateProperties[superclass]; | |
236 var constructor = allClasses[cls]; | |
237 var prototype = inheritFrom(constructor, superConstructor); | |
238 if (mixinPrototype) | |
239 prototype.$deferredAction = mixinDeferredActionHelper(mixinPrototype,
prototype); | |
240 if (Object.prototype.hasOwnProperty.call(prototype, "%")) { | |
241 var nativeSpec = prototype["%"].split(";"); | |
242 if (nativeSpec[0]) { | |
243 var tags = nativeSpec[0].split("|"); | |
244 for (var i = 0; i < tags.length; i++) { | |
245 init.interceptorsByTag[tags[i]] = constructor; | |
246 init.leafTags[tags[i]] = true; | |
247 } | |
248 } | |
249 if (nativeSpec[1]) { | |
250 tags = nativeSpec[1].split("|"); | |
251 if (nativeSpec[2]) { | |
252 var subclasses = nativeSpec[2].split("|"); | |
253 for (var i = 0; i < subclasses.length; i++) { | |
254 var subclass = allClasses[subclasses[i]]; | |
255 subclass.$nativeSuperclassTag = tags[0]; | |
256 } | |
257 } | |
258 for (i = 0; i < tags.length; i++) { | |
259 init.interceptorsByTag[tags[i]] = constructor; | |
260 init.leafTags[tags[i]] = false; | |
261 } | |
262 } | |
263 prototype.$deferredAction(); | |
264 } | |
265 if (prototype.$isInterceptor) | |
266 prototype.$deferredAction(); | |
267 } | |
268 var properties = Object.keys(processedClasses.pending); | |
269 for (var i = 0; i < properties.length; i++) | |
270 finishClass(properties[i]); | |
271 } | |
272 function finishAddStubsHelper() { | |
273 var prototype = this; | |
274 while (!prototype.hasOwnProperty("$deferredAction")) | |
275 prototype = prototype.__proto__; | |
276 delete prototype.$deferredAction; | |
277 var properties = Object.keys(prototype); | |
278 for (var index = 0; index < properties.length; index++) { | |
279 var property = properties[index]; | |
280 var firstChar = property.charCodeAt(0); | |
281 var elem; | |
282 if (property !== "^" && property !== "$reflectable" && firstChar !== 43
&& firstChar !== 42 && (elem = prototype[property]) != null && elem.constructor
=== Array && property !== "<>") | |
283 addStubs(prototype, elem, property, false, []); | |
284 } | |
285 convertToFastObject(prototype); | |
286 prototype = prototype.__proto__; | |
287 prototype.$deferredAction(); | |
288 } | |
289 function mixinDeferredActionHelper(mixinPrototype, targetPrototype) { | |
290 var chain; | |
291 if (targetPrototype.hasOwnProperty("$deferredAction")) | |
292 chain = targetPrototype.$deferredAction; | |
293 return function foo() { | |
294 var prototype = this; | |
295 while (!prototype.hasOwnProperty("$deferredAction")) | |
296 prototype = prototype.__proto__; | |
297 if (chain) | |
298 prototype.$deferredAction = chain; | |
299 else { | |
300 delete prototype.$deferredAction; | |
301 convertToFastObject(prototype); | |
302 } | |
303 mixinPrototype.$deferredAction(); | |
304 prototype.$deferredAction(); | |
305 }; | |
306 } | |
307 function processClassData(cls, descriptor, processedClasses) { | |
308 descriptor = convertToSlowObject(descriptor); | |
309 var previousProperty; | |
310 var properties = Object.keys(descriptor); | |
311 var hasDeferredWork = false; | |
312 var shouldDeferWork = supportsDirectProtoAccess && cls != "Object"; | |
313 for (var i = 0; i < properties.length; i++) { | |
314 var property = properties[i]; | |
315 var firstChar = property.charCodeAt(0); | |
316 if (property === "static") { | |
317 processStatics(init.statics[cls] = descriptor.static, processedClasses
); | |
318 delete descriptor.static; | |
319 } else if (firstChar === 43) { | |
320 mangledNames[previousProperty] = property.substring(1); | |
321 var flag = descriptor[property]; | |
322 if (flag > 0) | |
323 descriptor[previousProperty].$reflectable = flag; | |
324 } else if (firstChar === 42) { | |
325 descriptor[previousProperty].$defaultValues = descriptor[property]; | |
326 var optionalMethods = descriptor.$methodsWithOptionalArguments; | |
327 if (!optionalMethods) | |
328 descriptor.$methodsWithOptionalArguments = optionalMethods = {}; | |
329 optionalMethods[property] = previousProperty; | |
330 } else { | |
331 var elem = descriptor[property]; | |
332 if (property !== "^" && elem != null && elem.constructor === Array &&
property !== "<>") | |
333 if (shouldDeferWork) | |
334 hasDeferredWork = true; | |
335 else | |
336 addStubs(descriptor, elem, property, false, []); | |
337 else | |
338 previousProperty = property; | |
339 } | |
340 } | |
341 if (hasDeferredWork) | |
342 descriptor.$deferredAction = finishAddStubsHelper; | |
343 var classData = descriptor["^"], split, supr, fields = classData; | |
344 var s = fields.split(";"); | |
345 fields = s[1] ? s[1].split(",") : []; | |
346 supr = s[0]; | |
347 split = supr.split(":"); | |
348 if (split.length == 2) { | |
349 supr = split[0]; | |
350 var functionSignature = split[1]; | |
351 if (functionSignature) | |
352 descriptor.$signature = function(s) { | |
353 return function() { | |
354 return init.types[s]; | |
355 }; | |
356 }(functionSignature); | |
357 } | |
358 if (supr) | |
359 processedClasses.pending[cls] = supr; | |
360 processedClasses.combinedConstructorFunction += defineClass(cls, fields); | |
361 processedClasses.constructorsList.push(cls); | |
362 processedClasses.collected[cls] = [globalObject, descriptor]; | |
363 classes.push(cls); | |
364 } | |
365 function processStatics(descriptor, processedClasses) { | |
366 var properties = Object.keys(descriptor); | |
367 for (var i = 0; i < properties.length; i++) { | |
368 var property = properties[i]; | |
369 if (property === "^") | |
370 continue; | |
371 var element = descriptor[property]; | |
372 var firstChar = property.charCodeAt(0); | |
373 var previousProperty; | |
374 if (firstChar === 43) { | |
375 mangledGlobalNames[previousProperty] = property.substring(1); | |
376 var flag = descriptor[property]; | |
377 if (flag > 0) | |
378 descriptor[previousProperty].$reflectable = flag; | |
379 if (element && element.length) | |
380 init.typeInformation[previousProperty] = element; | |
381 } else if (firstChar === 42) { | |
382 globalObject[previousProperty].$defaultValues = element; | |
383 var optionalMethods = descriptor.$methodsWithOptionalArguments; | |
384 if (!optionalMethods) | |
385 descriptor.$methodsWithOptionalArguments = optionalMethods = {}; | |
386 optionalMethods[property] = previousProperty; | |
387 } else if (typeof element === "function") { | |
388 globalObject[previousProperty = property] = element; | |
389 functions.push(property); | |
390 init.globalFunctions[property] = element; | |
391 } else if (element.constructor === Array) | |
392 addStubs(globalObject, element, property, true, functions); | |
393 else { | |
394 previousProperty = property; | |
395 processClassData(property, element, processedClasses); | |
396 } | |
397 } | |
398 } | |
399 function addStubs(prototype, array, name, isStatic, functions) { | |
400 var index = 0, alias = array[index], f; | |
401 if (typeof alias == "string") | |
402 f = array[++index]; | |
403 else { | |
404 f = alias; | |
405 alias = name; | |
406 } | |
407 var funcs = [prototype[name] = prototype[alias] = f]; | |
408 f.$stubName = name; | |
409 functions.push(name); | |
410 for (index++; index < array.length; index++) { | |
411 f = array[index]; | |
412 if (typeof f != "function") | |
413 break; | |
414 if (!isStatic) | |
415 f.$stubName = array[++index]; | |
416 funcs.push(f); | |
417 if (f.$stubName) { | |
418 prototype[f.$stubName] = f; | |
419 functions.push(f.$stubName); | |
420 } | |
421 } | |
422 for (var i = 0; i < funcs.length; index++, i++) | |
423 funcs[i].$callName = array[index]; | |
424 var getterStubName = array[index]; | |
425 array = array.slice(++index); | |
426 var requiredParameterInfo = array[0]; | |
427 var requiredParameterCount = requiredParameterInfo >> 1; | |
428 var isAccessor = (requiredParameterInfo & 1) === 1; | |
429 var isSetter = requiredParameterInfo === 3; | |
430 var isGetter = requiredParameterInfo === 1; | |
431 var optionalParameterInfo = array[1]; | |
432 var optionalParameterCount = optionalParameterInfo >> 1; | |
433 var optionalParametersAreNamed = (optionalParameterInfo & 1) === 1; | |
434 var isIntercepted = requiredParameterCount + optionalParameterCount != fun
cs[0].length; | |
435 var functionTypeIndex = array[2]; | |
436 if (typeof functionTypeIndex == "number") | |
437 array[2] = functionTypeIndex + typesOffset; | |
438 var unmangledNameIndex = 2 * optionalParameterCount + requiredParameterCou
nt + 3; | |
439 if (getterStubName) { | |
440 f = tearOff(funcs, array, isStatic, name, isIntercepted); | |
441 prototype[name].$getter = f; | |
442 f.$getterStub = true; | |
443 if (isStatic) { | |
444 init.globalFunctions[name] = f; | |
445 functions.push(getterStubName); | |
446 } | |
447 prototype[getterStubName] = f; | |
448 funcs.push(f); | |
449 f.$stubName = getterStubName; | |
450 f.$callName = null; | |
451 } | |
452 } | |
453 function tearOffGetter(funcs, reflectionInfo, name, isIntercepted) { | |
454 return isIntercepted ? new Function("funcs", "reflectionInfo", "name", "H"
, "c", "return function tearOff_" + name + functionCounter++ + "(x) {" + "if (c
=== null) c = " + "H.closureFromTearOff" + "(" + "this, funcs, reflectionInfo, f
alse, [x], name);" + "return new c(this, funcs[0], x, name);" + "}")(funcs, refl
ectionInfo, name, H, null) : new Function("funcs", "reflectionInfo", "name", "H"
, "c", "return function tearOff_" + name + functionCounter++ + "() {" + "if (c =
== null) c = " + "H.closureFromTearOff" + "(" + "this, funcs, reflectionInfo, fa
lse, [], name);" + "return new c(this, funcs[0], null, name);" + "}")(funcs, ref
lectionInfo, name, H, null); | |
455 } | |
456 function tearOff(funcs, reflectionInfo, isStatic, name, isIntercepted) { | |
457 var cache; | |
458 return isStatic ? function() { | |
459 if (cache === void 0) | |
460 cache = H.closureFromTearOff(this, funcs, reflectionInfo, true, [], na
me).prototype; | |
461 return cache; | |
462 } : tearOffGetter(funcs, reflectionInfo, name, isIntercepted); | |
463 } | |
464 var functionCounter = 0; | |
465 if (!init.libraries) | |
466 init.libraries = []; | |
467 if (!init.mangledNames) | |
468 init.mangledNames = map(); | |
469 if (!init.mangledGlobalNames) | |
470 init.mangledGlobalNames = map(); | |
471 if (!init.statics) | |
472 init.statics = map(); | |
473 if (!init.typeInformation) | |
474 init.typeInformation = map(); | |
475 if (!init.globalFunctions) | |
476 init.globalFunctions = map(); | |
477 var libraries = init.libraries; | |
478 var mangledNames = init.mangledNames; | |
479 var mangledGlobalNames = init.mangledGlobalNames; | |
480 var hasOwnProperty = Object.prototype.hasOwnProperty; | |
481 var length = programData.length; | |
482 var processedClasses = map(); | |
483 processedClasses.collected = map(); | |
484 processedClasses.pending = map(); | |
485 processedClasses.constructorsList = []; | |
486 processedClasses.combinedConstructorFunction = "function $reflectable(fn){fn
.$reflectable=1;return fn};\n" + "var $desc;\n"; | |
487 for (var i = 0; i < length; i++) { | |
488 var data = programData[i]; | |
489 var name = data[0]; | |
490 var uri = data[1]; | |
491 var metadata = data[2]; | |
492 var globalObject = data[3]; | |
493 var descriptor = data[4]; | |
494 var isRoot = !!data[5]; | |
495 var fields = descriptor && descriptor["^"]; | |
496 if (fields instanceof Array) | |
497 fields = fields[0]; | |
498 var classes = []; | |
499 var functions = []; | |
500 processStatics(descriptor, processedClasses); | |
501 libraries.push([name, uri, classes, functions, metadata, fields, isRoot, g
lobalObject]); | |
502 } | |
503 finishClasses(processedClasses); | |
504 } | |
505 Isolate.functionThatReturnsNull = function() { | |
506 }; | |
507 var dart = [["_foreign_helper", "dart:_foreign_helper",, H, { | |
508 "^": "", | |
509 JS_CONST: { | |
510 "^": "Object;code" | |
511 } | |
512 }], ["_interceptors", "dart:_interceptors",, J, { | |
513 "^": "", | |
514 getInterceptor: function(object) { | |
515 return void 0; | |
516 }, | |
517 makeDispatchRecord: function(interceptor, proto, extension, indexability) { | |
518 return {i: interceptor, p: proto, e: extension, x: indexability}; | |
519 }, | |
520 getNativeInterceptor: function(object) { | |
521 var record, proto, objectProto, interceptor; | |
522 record = object[init.dispatchPropertyName]; | |
523 if (record == null) | |
524 if ($.initNativeDispatchFlag == null) { | |
525 H.initNativeDispatch(); | |
526 record = object[init.dispatchPropertyName]; | |
527 } | |
528 if (record != null) { | |
529 proto = record.p; | |
530 if (false === proto) | |
531 return record.i; | |
532 if (true === proto) | |
533 return object; | |
534 objectProto = Object.getPrototypeOf(object); | |
535 if (proto === objectProto) | |
536 return record.i; | |
537 if (record.e === objectProto) | |
538 throw H.wrapException(new P.UnimplementedError("Return interceptor for
" + H.S(proto(object, record)))); | |
539 } | |
540 interceptor = H.lookupAndCacheInterceptor(object); | |
541 if (interceptor == null) { | |
542 proto = Object.getPrototypeOf(object); | |
543 if (proto == null || proto === Object.prototype) | |
544 return C.PlainJavaScriptObject_methods; | |
545 else | |
546 return C.UnknownJavaScriptObject_methods; | |
547 } | |
548 return interceptor; | |
549 }, | |
550 Interceptor: { | |
551 "^": "Object;", | |
552 $eq: function(receiver, other) { | |
553 return receiver === other; | |
554 }, | |
555 get$hashCode: function(receiver) { | |
556 return H.Primitives_objectHashCode(receiver); | |
557 }, | |
558 toString$0: ["super$Interceptor$toString", function(receiver) { | |
559 return H.Primitives_objectToHumanReadableString(receiver); | |
560 }], | |
561 "%": "DOMImplementation|MediaError|MediaKeyError|Range|SVGAnimatedEnumerat
ion|SVGAnimatedLength|SVGAnimatedLengthList|SVGAnimatedNumber|SVGAnimatedNumberL
ist|SVGAnimatedString" | |
562 }, | |
563 JSBool: { | |
564 "^": "Interceptor;", | |
565 toString$0: function(receiver) { | |
566 return String(receiver); | |
567 }, | |
568 get$hashCode: function(receiver) { | |
569 return receiver ? 519018 : 218159; | |
570 }, | |
571 $isbool: 1 | |
572 }, | |
573 JSNull: { | |
574 "^": "Interceptor;", | |
575 $eq: function(receiver, other) { | |
576 return null == other; | |
577 }, | |
578 toString$0: function(receiver) { | |
579 return "null"; | |
580 }, | |
581 get$hashCode: function(receiver) { | |
582 return 0; | |
583 } | |
584 }, | |
585 JavaScriptObject: { | |
586 "^": "Interceptor;", | |
587 get$hashCode: function(_) { | |
588 return 0; | |
589 }, | |
590 $isJSObject: 1 | |
591 }, | |
592 PlainJavaScriptObject: { | |
593 "^": "JavaScriptObject;" | |
594 }, | |
595 UnknownJavaScriptObject: { | |
596 "^": "JavaScriptObject;", | |
597 toString$0: function(receiver) { | |
598 return String(receiver); | |
599 } | |
600 }, | |
601 JSArray: { | |
602 "^": "Interceptor;", | |
603 checkMutable$1: function(receiver, reason) { | |
604 if (!!receiver.immutable$list) | |
605 throw H.wrapException(new P.UnsupportedError(reason)); | |
606 }, | |
607 checkGrowable$1: function(receiver, reason) { | |
608 if (!!receiver.fixed$length) | |
609 throw H.wrapException(new P.UnsupportedError(reason)); | |
610 }, | |
611 add$1: function(receiver, value) { | |
612 this.checkGrowable$1(receiver, "add"); | |
613 receiver.push(value); | |
614 }, | |
615 removeAt$1: function(receiver, index) { | |
616 this.checkGrowable$1(receiver, "removeAt"); | |
617 if (index >= receiver.length) | |
618 throw H.wrapException(P.RangeError$value(index, null, null)); | |
619 return receiver.splice(index, 1)[0]; | |
620 }, | |
621 insert$2: function(receiver, index, value) { | |
622 this.checkGrowable$1(receiver, "insert"); | |
623 if (index > receiver.length) | |
624 throw H.wrapException(P.RangeError$value(index, null, null)); | |
625 receiver.splice(index, 0, value); | |
626 }, | |
627 insertAll$2: function(receiver, index, iterable) { | |
628 var insertionLength, end; | |
629 this.checkGrowable$1(receiver, "insertAll"); | |
630 P.RangeError_checkValueInInterval(index, 0, receiver.length, "index", nu
ll); | |
631 insertionLength = iterable.length; | |
632 this.set$length(receiver, receiver.length + insertionLength); | |
633 end = index + insertionLength; | |
634 this.setRange$4(receiver, end, receiver.length, receiver, index); | |
635 this.setRange$3(receiver, index, end, iterable); | |
636 }, | |
637 removeLast$0: function(receiver) { | |
638 this.checkGrowable$1(receiver, "removeLast"); | |
639 if (receiver.length === 0) | |
640 throw H.wrapException(H.diagnoseIndexError(receiver, -1)); | |
641 return receiver.pop(); | |
642 }, | |
643 where$1: function(receiver, f) { | |
644 return H.setRuntimeTypeInfo(new H.WhereIterable(receiver, f), [H.getType
ArgumentByIndex(receiver, 0)]); | |
645 }, | |
646 forEach$1: function(receiver, f) { | |
647 var end, i; | |
648 end = receiver.length; | |
649 for (i = 0; i < end; ++i) { | |
650 f.call$1(receiver[i]); | |
651 if (receiver.length !== end) | |
652 throw H.wrapException(new P.ConcurrentModificationError(receiver)); | |
653 } | |
654 }, | |
655 map$1: function(receiver, f) { | |
656 return H.setRuntimeTypeInfo(new H.MappedListIterable(receiver, f), [null
, null]); | |
657 }, | |
658 join$1: function(receiver, separator) { | |
659 var t1, list, i, t2; | |
660 t1 = receiver.length; | |
661 list = new Array(t1); | |
662 list.fixed$length = Array; | |
663 for (i = 0; i < receiver.length; ++i) { | |
664 t2 = H.S(receiver[i]); | |
665 if (i >= t1) | |
666 return H.ioore(list, i); | |
667 list[i] = t2; | |
668 } | |
669 return list.join(separator); | |
670 }, | |
671 elementAt$1: function(receiver, index) { | |
672 if (index >>> 0 !== index || index >= receiver.length) | |
673 return H.ioore(receiver, index); | |
674 return receiver[index]; | |
675 }, | |
676 sublist$2: function(receiver, start, end) { | |
677 if (start < 0 || start > receiver.length) | |
678 throw H.wrapException(P.RangeError$range(start, 0, receiver.length, "s
tart", null)); | |
679 if (end < start || end > receiver.length) | |
680 throw H.wrapException(P.RangeError$range(end, start, receiver.length,
"end", null)); | |
681 if (start === end) | |
682 return H.setRuntimeTypeInfo([], [H.getTypeArgumentByIndex(receiver, 0)
]); | |
683 return H.setRuntimeTypeInfo(receiver.slice(start, end), [H.getTypeArgume
ntByIndex(receiver, 0)]); | |
684 }, | |
685 get$first: function(receiver) { | |
686 if (receiver.length > 0) | |
687 return receiver[0]; | |
688 throw H.wrapException(H.IterableElementError_noElement()); | |
689 }, | |
690 get$last: function(receiver) { | |
691 var t1 = receiver.length; | |
692 if (t1 > 0) | |
693 return receiver[t1 - 1]; | |
694 throw H.wrapException(H.IterableElementError_noElement()); | |
695 }, | |
696 setRange$4: function(receiver, start, end, iterable, skipCount) { | |
697 var $length, i, t1; | |
698 this.checkMutable$1(receiver, "set range"); | |
699 P.RangeError_checkValidRange(start, end, receiver.length, null, null, nu
ll); | |
700 $length = end - start; | |
701 if ($length === 0) | |
702 return; | |
703 if (skipCount < 0) | |
704 H.throwExpression(P.RangeError$range(skipCount, 0, null, "skipCount",
null)); | |
705 if (skipCount + $length > iterable.length) | |
706 throw H.wrapException(H.IterableElementError_tooFew()); | |
707 if (skipCount < start) | |
708 for (i = $length - 1; i >= 0; --i) { | |
709 t1 = skipCount + i; | |
710 if (t1 < 0 || t1 >= iterable.length) | |
711 return H.ioore(iterable, t1); | |
712 receiver[start + i] = iterable[t1]; | |
713 } | |
714 else | |
715 for (i = 0; i < $length; ++i) { | |
716 t1 = skipCount + i; | |
717 if (t1 < 0 || t1 >= iterable.length) | |
718 return H.ioore(iterable, t1); | |
719 receiver[start + i] = iterable[t1]; | |
720 } | |
721 }, | |
722 setRange$3: function($receiver, start, end, iterable) { | |
723 return this.setRange$4($receiver, start, end, iterable, 0); | |
724 }, | |
725 any$1: function(receiver, test) { | |
726 var end, i; | |
727 end = receiver.length; | |
728 for (i = 0; i < end; ++i) { | |
729 if (test.call$1(receiver[i]) === true) | |
730 return true; | |
731 if (receiver.length !== end) | |
732 throw H.wrapException(new P.ConcurrentModificationError(receiver)); | |
733 } | |
734 return false; | |
735 }, | |
736 indexOf$2: function(receiver, element, start) { | |
737 var i, t1; | |
738 if (start >= receiver.length) | |
739 return -1; | |
740 if (start < 0) | |
741 start = 0; | |
742 for (i = start; t1 = receiver.length, i < t1; ++i) { | |
743 if (i < 0) | |
744 return H.ioore(receiver, i); | |
745 if (J.$eq$(receiver[i], element)) | |
746 return i; | |
747 } | |
748 return -1; | |
749 }, | |
750 indexOf$1: function($receiver, element) { | |
751 return this.indexOf$2($receiver, element, 0); | |
752 }, | |
753 lastIndexOf$2: function(receiver, element, startIndex) { | |
754 var t1, i; | |
755 if (startIndex < 0) | |
756 return -1; | |
757 t1 = receiver.length; | |
758 if (startIndex >= t1) | |
759 startIndex = t1 - 1; | |
760 for (i = startIndex; i >= 0; --i) { | |
761 if (i >= receiver.length) | |
762 return H.ioore(receiver, i); | |
763 if (J.$eq$(receiver[i], element)) | |
764 return i; | |
765 } | |
766 return -1; | |
767 }, | |
768 contains$1: function(receiver, other) { | |
769 var i; | |
770 for (i = 0; i < receiver.length; ++i) | |
771 if (J.$eq$(receiver[i], other)) | |
772 return true; | |
773 return false; | |
774 }, | |
775 get$isEmpty: function(receiver) { | |
776 return receiver.length === 0; | |
777 }, | |
778 get$isNotEmpty: function(receiver) { | |
779 return receiver.length !== 0; | |
780 }, | |
781 toString$0: function(receiver) { | |
782 return P.IterableBase_iterableToFullString(receiver, "[", "]"); | |
783 }, | |
784 get$iterator: function(receiver) { | |
785 return H.setRuntimeTypeInfo(new J.ArrayIterator(receiver, receiver.lengt
h, 0, null), [H.getTypeArgumentByIndex(receiver, 0)]); | |
786 }, | |
787 get$hashCode: function(receiver) { | |
788 return H.Primitives_objectHashCode(receiver); | |
789 }, | |
790 get$length: function(receiver) { | |
791 return receiver.length; | |
792 }, | |
793 set$length: function(receiver, newLength) { | |
794 this.checkGrowable$1(receiver, "set length"); | |
795 if (newLength < 0) | |
796 throw H.wrapException(P.RangeError$range(newLength, 0, null, "newLengt
h", null)); | |
797 receiver.length = newLength; | |
798 }, | |
799 $index: function(receiver, index) { | |
800 if (typeof index !== "number" || Math.floor(index) !== index) | |
801 throw H.wrapException(H.diagnoseIndexError(receiver, index)); | |
802 if (index >= receiver.length || index < 0) | |
803 throw H.wrapException(H.diagnoseIndexError(receiver, index)); | |
804 return receiver[index]; | |
805 }, | |
806 $indexSet: function(receiver, index, value) { | |
807 if (!!receiver.immutable$list) | |
808 H.throwExpression(new P.UnsupportedError("indexed set")); | |
809 if (index >= receiver.length || index < 0) | |
810 throw H.wrapException(H.diagnoseIndexError(receiver, index)); | |
811 receiver[index] = value; | |
812 }, | |
813 $isJSIndexable: 1, | |
814 $isList: 1, | |
815 $asList: null, | |
816 $isEfficientLength: 1, | |
817 static: {JSArray_JSArray$fixed: function($length, $E) { | |
818 var t1; | |
819 if (typeof $length !== "number" || Math.floor($length) !== $length) | |
820 throw H.wrapException(P.ArgumentError$value($length, "length", "is n
ot an integer")); | |
821 if ($length < 0 || $length > 4294967295) | |
822 throw H.wrapException(P.RangeError$range($length, 0, 4294967295, "le
ngth", null)); | |
823 t1 = H.setRuntimeTypeInfo(new Array($length), [$E]); | |
824 t1.fixed$length = Array; | |
825 return t1; | |
826 }} | |
827 }, | |
828 JSUnmodifiableArray: { | |
829 "^": "JSArray;" | |
830 }, | |
831 ArrayIterator: { | |
832 "^": "Object;__interceptors$_iterable,__interceptors$_length,__interceptor
s$_index,__interceptors$_current", | |
833 get$current: function() { | |
834 return this.__interceptors$_current; | |
835 }, | |
836 moveNext$0: function() { | |
837 var t1, $length, t2; | |
838 t1 = this.__interceptors$_iterable; | |
839 $length = t1.length; | |
840 if (this.__interceptors$_length !== $length) | |
841 throw H.wrapException(new P.ConcurrentModificationError(t1)); | |
842 t2 = this.__interceptors$_index; | |
843 if (t2 >= $length) { | |
844 this.__interceptors$_current = null; | |
845 return false; | |
846 } | |
847 this.__interceptors$_current = t1[t2]; | |
848 this.__interceptors$_index = t2 + 1; | |
849 return true; | |
850 } | |
851 }, | |
852 JSNumber: { | |
853 "^": "Interceptor;", | |
854 get$isNegative: function(receiver) { | |
855 return receiver === 0 ? 1 / receiver < 0 : receiver < 0; | |
856 }, | |
857 get$isNaN: function(receiver) { | |
858 return isNaN(receiver); | |
859 }, | |
860 remainder$1: function(receiver, b) { | |
861 return receiver % b; | |
862 }, | |
863 abs$0: function(receiver) { | |
864 return Math.abs(receiver); | |
865 }, | |
866 toInt$0: function(receiver) { | |
867 var t1; | |
868 if (receiver >= -2147483648 && receiver <= 2147483647) | |
869 return receiver | 0; | |
870 if (isFinite(receiver)) { | |
871 t1 = receiver < 0 ? Math.ceil(receiver) : Math.floor(receiver); | |
872 return t1 + 0; | |
873 } | |
874 throw H.wrapException(new P.UnsupportedError("" + receiver)); | |
875 }, | |
876 toRadixString$1: function(receiver, radix) { | |
877 var result, match, t1, exponent; | |
878 H.checkInt(radix); | |
879 if (radix < 2 || radix > 36) | |
880 throw H.wrapException(P.RangeError$range(radix, 2, 36, "radix", null))
; | |
881 result = receiver.toString(radix); | |
882 if (C.JSString_methods.codeUnitAt$1(result, result.length - 1) !== 41) | |
883 return result; | |
884 match = /^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(result); | |
885 if (match == null) | |
886 H.throwExpression(new P.UnsupportedError("Unexpected toString result:
" + result)); | |
887 t1 = J.getInterceptor$asx(match); | |
888 result = t1.$index(match, 1); | |
889 exponent = +t1.$index(match, 3); | |
890 if (t1.$index(match, 2) != null) { | |
891 result += t1.$index(match, 2); | |
892 exponent -= t1.$index(match, 2).length; | |
893 } | |
894 return result + C.JSString_methods.$mul("0", exponent); | |
895 }, | |
896 toString$0: function(receiver) { | |
897 if (receiver === 0 && 1 / receiver < 0) | |
898 return "-0.0"; | |
899 else | |
900 return "" + receiver; | |
901 }, | |
902 get$hashCode: function(receiver) { | |
903 return receiver & 0x1FFFFFFF; | |
904 }, | |
905 $negate: function(receiver) { | |
906 return -receiver; | |
907 }, | |
908 $add: function(receiver, other) { | |
909 if (typeof other !== "number") | |
910 throw H.wrapException(H.argumentErrorValue(other)); | |
911 return receiver + other; | |
912 }, | |
913 $sub: function(receiver, other) { | |
914 if (typeof other !== "number") | |
915 throw H.wrapException(H.argumentErrorValue(other)); | |
916 return receiver - other; | |
917 }, | |
918 _tdivFast$1: function(receiver, other) { | |
919 return (receiver | 0) === receiver ? receiver / other | 0 : this.toInt$0
(receiver / other); | |
920 }, | |
921 $shl: function(receiver, other) { | |
922 if (other < 0) | |
923 throw H.wrapException(H.argumentErrorValue(other)); | |
924 return other > 31 ? 0 : receiver << other >>> 0; | |
925 }, | |
926 _shlPositive$1: function(receiver, other) { | |
927 return other > 31 ? 0 : receiver << other >>> 0; | |
928 }, | |
929 _shrOtherPositive$1: function(receiver, other) { | |
930 var t1; | |
931 if (receiver > 0) | |
932 t1 = other > 31 ? 0 : receiver >>> other; | |
933 else { | |
934 t1 = other > 31 ? 31 : other; | |
935 t1 = receiver >> t1 >>> 0; | |
936 } | |
937 return t1; | |
938 }, | |
939 _shrReceiverPositive$1: function(receiver, other) { | |
940 if (other < 0) | |
941 throw H.wrapException(H.argumentErrorValue(other)); | |
942 return other > 31 ? 0 : receiver >>> other; | |
943 }, | |
944 $or: function(receiver, other) { | |
945 if (typeof other !== "number") | |
946 throw H.wrapException(H.argumentErrorValue(other)); | |
947 return (receiver | other) >>> 0; | |
948 }, | |
949 $lt: function(receiver, other) { | |
950 if (typeof other !== "number") | |
951 throw H.wrapException(H.argumentErrorValue(other)); | |
952 return receiver < other; | |
953 }, | |
954 $gt: function(receiver, other) { | |
955 if (typeof other !== "number") | |
956 throw H.wrapException(H.argumentErrorValue(other)); | |
957 return receiver > other; | |
958 }, | |
959 $isnum: 1 | |
960 }, | |
961 JSInt: { | |
962 "^": "JSNumber;", | |
963 $is$double: 1, | |
964 $isnum: 1, | |
965 $is$int: 1 | |
966 }, | |
967 JSDouble: { | |
968 "^": "JSNumber;", | |
969 $is$double: 1, | |
970 $isnum: 1 | |
971 }, | |
972 JSString: { | |
973 "^": "Interceptor;", | |
974 codeUnitAt$1: function(receiver, index) { | |
975 if (typeof index !== "number" || Math.floor(index) !== index) | |
976 throw H.wrapException(H.diagnoseIndexError(receiver, index)); | |
977 if (index < 0) | |
978 throw H.wrapException(H.diagnoseIndexError(receiver, index)); | |
979 if (index >= receiver.length) | |
980 throw H.wrapException(H.diagnoseIndexError(receiver, index)); | |
981 return receiver.charCodeAt(index); | |
982 }, | |
983 allMatches$2: function(receiver, string, start) { | |
984 H.checkString(string); | |
985 H.checkInt(start); | |
986 if (start > string.length) | |
987 throw H.wrapException(P.RangeError$range(start, 0, string.length, null
, null)); | |
988 return new H._StringAllMatchesIterable(string, receiver, start); | |
989 }, | |
990 allMatches$1: function($receiver, string) { | |
991 return this.allMatches$2($receiver, string, 0); | |
992 }, | |
993 matchAsPrefix$2: function(receiver, string, start) { | |
994 var t1, i; | |
995 if (start < 0 || start > string.length) | |
996 throw H.wrapException(P.RangeError$range(start, 0, string.length, null
, null)); | |
997 t1 = receiver.length; | |
998 if (start + t1 > string.length) | |
999 return; | |
1000 for (i = 0; i < t1; ++i) | |
1001 if (this.codeUnitAt$1(string, start + i) !== this.codeUnitAt$1(receive
r, i)) | |
1002 return; | |
1003 return new H.StringMatch(start, string, receiver); | |
1004 }, | |
1005 $add: function(receiver, other) { | |
1006 if (typeof other !== "string") | |
1007 throw H.wrapException(P.ArgumentError$value(other, null, null)); | |
1008 return receiver + other; | |
1009 }, | |
1010 endsWith$1: function(receiver, other) { | |
1011 var otherLength, t1; | |
1012 H.checkString(other); | |
1013 otherLength = other.length; | |
1014 t1 = receiver.length; | |
1015 if (otherLength > t1) | |
1016 return false; | |
1017 return other === this.substring$1(receiver, t1 - otherLength); | |
1018 }, | |
1019 replaceAll$2: function(receiver, from, to) { | |
1020 H.checkString(to); | |
1021 return H.stringReplaceAllUnchecked(receiver, from, to); | |
1022 }, | |
1023 replaceAllMapped$2: function(receiver, from, convert) { | |
1024 return H.stringReplaceAllFuncUnchecked(receiver, from, convert, null); | |
1025 }, | |
1026 split$1: function(receiver, pattern) { | |
1027 return receiver.split(pattern); | |
1028 }, | |
1029 replaceRange$3: function(receiver, start, end, replacement) { | |
1030 H.checkString(replacement); | |
1031 H.checkInt(start); | |
1032 end = P.RangeError_checkValidRange(start, end, receiver.length, null, nu
ll, null); | |
1033 H.checkInt(end); | |
1034 return H.stringReplaceRangeUnchecked(receiver, start, end, replacement); | |
1035 }, | |
1036 startsWith$2: function(receiver, pattern, index) { | |
1037 var endIndex; | |
1038 H.checkInt(index); | |
1039 if (index < 0 || index > receiver.length) | |
1040 throw H.wrapException(P.RangeError$range(index, 0, receiver.length, nu
ll, null)); | |
1041 endIndex = index + pattern.length; | |
1042 if (endIndex > receiver.length) | |
1043 return false; | |
1044 return pattern === receiver.substring(index, endIndex); | |
1045 }, | |
1046 startsWith$1: function($receiver, pattern) { | |
1047 return this.startsWith$2($receiver, pattern, 0); | |
1048 }, | |
1049 substring$2: function(receiver, startIndex, endIndex) { | |
1050 var t1; | |
1051 if (typeof startIndex !== "number" || Math.floor(startIndex) !== startIn
dex) | |
1052 H.throwExpression(H.argumentErrorValue(startIndex)); | |
1053 if (endIndex == null) | |
1054 endIndex = receiver.length; | |
1055 if (typeof endIndex !== "number" || Math.floor(endIndex) !== endIndex) | |
1056 H.throwExpression(H.argumentErrorValue(endIndex)); | |
1057 t1 = J.getInterceptor$n(startIndex); | |
1058 if (t1.$lt(startIndex, 0)) | |
1059 throw H.wrapException(P.RangeError$value(startIndex, null, null)); | |
1060 if (t1.$gt(startIndex, endIndex)) | |
1061 throw H.wrapException(P.RangeError$value(startIndex, null, null)); | |
1062 if (J.$gt$n(endIndex, receiver.length)) | |
1063 throw H.wrapException(P.RangeError$value(endIndex, null, null)); | |
1064 return receiver.substring(startIndex, endIndex); | |
1065 }, | |
1066 substring$1: function($receiver, startIndex) { | |
1067 return this.substring$2($receiver, startIndex, null); | |
1068 }, | |
1069 toLowerCase$0: function(receiver) { | |
1070 return receiver.toLowerCase(); | |
1071 }, | |
1072 trim$0: function(receiver) { | |
1073 var result, endIndex, startIndex, t1, endIndex0; | |
1074 result = receiver.trim(); | |
1075 endIndex = result.length; | |
1076 if (endIndex === 0) | |
1077 return result; | |
1078 if (this.codeUnitAt$1(result, 0) === 133) { | |
1079 startIndex = J.JSString__skipLeadingWhitespace(result, 1); | |
1080 if (startIndex === endIndex) | |
1081 return ""; | |
1082 } else | |
1083 startIndex = 0; | |
1084 t1 = endIndex - 1; | |
1085 endIndex0 = this.codeUnitAt$1(result, t1) === 133 ? J.JSString__skipTrai
lingWhitespace(result, t1) : endIndex; | |
1086 if (startIndex === 0 && endIndex0 === endIndex) | |
1087 return result; | |
1088 return result.substring(startIndex, endIndex0); | |
1089 }, | |
1090 $mul: function(receiver, times) { | |
1091 var s, result; | |
1092 if (0 >= times) | |
1093 return ""; | |
1094 if (times === 1 || receiver.length === 0) | |
1095 return receiver; | |
1096 if (times !== times >>> 0) | |
1097 throw H.wrapException(C.C_OutOfMemoryError); | |
1098 for (s = receiver, result = ""; true;) { | |
1099 if ((times & 1) === 1) | |
1100 result = s + result; | |
1101 times = times >>> 1; | |
1102 if (times === 0) | |
1103 break; | |
1104 s += s; | |
1105 } | |
1106 return result; | |
1107 }, | |
1108 get$codeUnits: function(receiver) { | |
1109 return new H.CodeUnits(receiver); | |
1110 }, | |
1111 indexOf$2: function(receiver, pattern, start) { | |
1112 var t1, match, t2, i; | |
1113 if (pattern == null) | |
1114 H.throwExpression(H.argumentErrorValue(pattern)); | |
1115 if (start < 0 || start > receiver.length) | |
1116 throw H.wrapException(P.RangeError$range(start, 0, receiver.length, nu
ll, null)); | |
1117 if (typeof pattern === "string") | |
1118 return receiver.indexOf(pattern, start); | |
1119 t1 = J.getInterceptor(pattern); | |
1120 if (!!t1.$isJSSyntaxRegExp) { | |
1121 match = pattern._execGlobal$2(receiver, start); | |
1122 return match == null ? -1 : match._match.index; | |
1123 } | |
1124 for (t2 = receiver.length, i = start; i <= t2; ++i) | |
1125 if (t1.matchAsPrefix$2(pattern, receiver, i) != null) | |
1126 return i; | |
1127 return -1; | |
1128 }, | |
1129 indexOf$1: function($receiver, pattern) { | |
1130 return this.indexOf$2($receiver, pattern, 0); | |
1131 }, | |
1132 lastIndexOf$2: function(receiver, pattern, start) { | |
1133 var t1, t2; | |
1134 if (start == null) | |
1135 start = receiver.length; | |
1136 else if (start < 0 || start > receiver.length) | |
1137 throw H.wrapException(P.RangeError$range(start, 0, receiver.length, nu
ll, null)); | |
1138 t1 = pattern.length; | |
1139 if (typeof start !== "number") | |
1140 return start.$add(); | |
1141 t2 = receiver.length; | |
1142 if (start + t1 > t2) | |
1143 start = t2 - t1; | |
1144 return receiver.lastIndexOf(pattern, start); | |
1145 }, | |
1146 lastIndexOf$1: function($receiver, pattern) { | |
1147 return this.lastIndexOf$2($receiver, pattern, null); | |
1148 }, | |
1149 contains$2: function(receiver, other, startIndex) { | |
1150 if (other == null) | |
1151 H.throwExpression(H.argumentErrorValue(other)); | |
1152 if (startIndex > receiver.length) | |
1153 throw H.wrapException(P.RangeError$range(startIndex, 0, receiver.lengt
h, null, null)); | |
1154 return H.stringContainsUnchecked(receiver, other, startIndex); | |
1155 }, | |
1156 contains$1: function($receiver, other) { | |
1157 return this.contains$2($receiver, other, 0); | |
1158 }, | |
1159 get$isEmpty: function(receiver) { | |
1160 return receiver.length === 0; | |
1161 }, | |
1162 get$isNotEmpty: function(receiver) { | |
1163 return receiver.length !== 0; | |
1164 }, | |
1165 toString$0: function(receiver) { | |
1166 return receiver; | |
1167 }, | |
1168 get$hashCode: function(receiver) { | |
1169 var t1, hash, i; | |
1170 for (t1 = receiver.length, hash = 0, i = 0; i < t1; ++i) { | |
1171 hash = 536870911 & hash + receiver.charCodeAt(i); | |
1172 hash = 536870911 & hash + ((524287 & hash) << 10 >>> 0); | |
1173 hash ^= hash >> 6; | |
1174 } | |
1175 hash = 536870911 & hash + ((67108863 & hash) << 3 >>> 0); | |
1176 hash ^= hash >> 11; | |
1177 return 536870911 & hash + ((16383 & hash) << 15 >>> 0); | |
1178 }, | |
1179 get$length: function(receiver) { | |
1180 return receiver.length; | |
1181 }, | |
1182 $index: function(receiver, index) { | |
1183 if (typeof index !== "number" || Math.floor(index) !== index) | |
1184 throw H.wrapException(H.diagnoseIndexError(receiver, index)); | |
1185 if (index >= receiver.length || index < 0) | |
1186 throw H.wrapException(H.diagnoseIndexError(receiver, index)); | |
1187 return receiver[index]; | |
1188 }, | |
1189 $isJSIndexable: 1, | |
1190 $isString: 1, | |
1191 $isPattern: 1, | |
1192 static: {JSString__isWhitespace: function(codeUnit) { | |
1193 if (codeUnit < 256) | |
1194 switch (codeUnit) { | |
1195 case 9: | |
1196 case 10: | |
1197 case 11: | |
1198 case 12: | |
1199 case 13: | |
1200 case 32: | |
1201 case 133: | |
1202 case 160: | |
1203 return true; | |
1204 default: | |
1205 return false; | |
1206 } | |
1207 switch (codeUnit) { | |
1208 case 5760: | |
1209 case 6158: | |
1210 case 8192: | |
1211 case 8193: | |
1212 case 8194: | |
1213 case 8195: | |
1214 case 8196: | |
1215 case 8197: | |
1216 case 8198: | |
1217 case 8199: | |
1218 case 8200: | |
1219 case 8201: | |
1220 case 8202: | |
1221 case 8232: | |
1222 case 8233: | |
1223 case 8239: | |
1224 case 8287: | |
1225 case 12288: | |
1226 case 65279: | |
1227 return true; | |
1228 default: | |
1229 return false; | |
1230 } | |
1231 }, JSString__skipLeadingWhitespace: function(string, index) { | |
1232 var t1, codeUnit; | |
1233 for (t1 = string.length; index < t1;) { | |
1234 codeUnit = C.JSString_methods.codeUnitAt$1(string, index); | |
1235 if (codeUnit !== 32 && codeUnit !== 13 && !J.JSString__isWhitespace(
codeUnit)) | |
1236 break; | |
1237 ++index; | |
1238 } | |
1239 return index; | |
1240 }, JSString__skipTrailingWhitespace: function(string, index) { | |
1241 var index0, codeUnit; | |
1242 for (; index > 0; index = index0) { | |
1243 index0 = index - 1; | |
1244 codeUnit = C.JSString_methods.codeUnitAt$1(string, index0); | |
1245 if (codeUnit !== 32 && codeUnit !== 13 && !J.JSString__isWhitespace(
codeUnit)) | |
1246 break; | |
1247 } | |
1248 return index; | |
1249 }} | |
1250 } | |
1251 }], ["_isolate_helper", "dart:_isolate_helper",, H, { | |
1252 "^": "", | |
1253 _callInIsolate: function(isolate, $function) { | |
1254 var result = isolate.eval$1($function); | |
1255 if (!init.globalState.currentContext._isExecutingEvent) | |
1256 init.globalState.topEventLoop.run$0(); | |
1257 return result; | |
1258 }, | |
1259 leaveJsAsync: function() { | |
1260 --init.globalState.topEventLoop._activeJsAsyncCount; | |
1261 }, | |
1262 startRootIsolate: function(entry, args) { | |
1263 var t1, t2, t3, t4, t5, rootContext; | |
1264 t1 = {}; | |
1265 t1._captured_args_0 = args; | |
1266 if (args == null) { | |
1267 args = []; | |
1268 t1._captured_args_0 = args; | |
1269 t2 = args; | |
1270 } else | |
1271 t2 = args; | |
1272 if (!J.getInterceptor(t2).$isList) | |
1273 throw H.wrapException(P.ArgumentError$("Arguments to main must be a List
: " + H.S(t2))); | |
1274 init.globalState = new H._Manager(0, 0, 1, null, null, null, null, null, n
ull, null, null, null, entry); | |
1275 t2 = init.globalState; | |
1276 t3 = self.window == null; | |
1277 t4 = self.Worker; | |
1278 t5 = t3 && !!self.postMessage; | |
1279 t2.isWorker = t5; | |
1280 t5 = !t5; | |
1281 if (t5) | |
1282 t4 = t4 != null && $.$get$IsolateNatives_thisScript() != null; | |
1283 else | |
1284 t4 = true; | |
1285 t2.supportsWorkers = t4; | |
1286 t2.fromCommandLine = t3 && t5; | |
1287 t2.topEventLoop = new H._EventLoop(P.ListQueue$(null, H._IsolateEvent), 0)
; | |
1288 t2.isolates = H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, nu
ll, null, null, 0), [P.$int, H._IsolateContext]); | |
1289 t2.managers = H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, nu
ll, null, null, 0), [P.$int, null]); | |
1290 if (t2.isWorker === true) { | |
1291 t3 = new H._MainManagerStub(); | |
1292 t2.mainManager = t3; | |
1293 self.onmessage = function(f, a) { | |
1294 return function(e) { | |
1295 f(a, e); | |
1296 }; | |
1297 }(H.IsolateNatives__processWorkerMessage, t3); | |
1298 self.dartPrint = self.dartPrint || function(serialize) { | |
1299 return function(object) { | |
1300 if (self.console && self.console.log) | |
1301 self.console.log(object); | |
1302 else | |
1303 self.postMessage(serialize(object)); | |
1304 }; | |
1305 }(H._Manager__serializePrintMessage); | |
1306 } | |
1307 if (init.globalState.isWorker === true) | |
1308 return; | |
1309 t2 = init.globalState.nextIsolateId++; | |
1310 t3 = H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, null, null,
null, 0), [P.$int, H.RawReceivePortImpl]); | |
1311 t4 = P.LinkedHashSet_LinkedHashSet(null, null, null, P.$int); | |
1312 t5 = new H.RawReceivePortImpl(0, null, false); | |
1313 rootContext = new H._IsolateContext(t2, t3, t4, init.createNewIsolate(), t
5, new H.CapabilityImpl(H.random64()), new H.CapabilityImpl(H.random64()), false
, false, [], P.LinkedHashSet_LinkedHashSet(null, null, null, null), null, null,
false, true, P.LinkedHashSet_LinkedHashSet(null, null, null, null)); | |
1314 t4.add$1(0, 0); | |
1315 rootContext._addRegistration$2(0, t5); | |
1316 init.globalState.rootContext = rootContext; | |
1317 init.globalState.currentContext = rootContext; | |
1318 t2 = H.getDynamicRuntimeType(); | |
1319 t3 = H.buildFunctionType(t2, [t2])._isTest$1(entry); | |
1320 if (t3) | |
1321 rootContext.eval$1(new H.startRootIsolate_closure(t1, entry)); | |
1322 else { | |
1323 t2 = H.buildFunctionType(t2, [t2, t2])._isTest$1(entry); | |
1324 if (t2) | |
1325 rootContext.eval$1(new H.startRootIsolate_closure0(t1, entry)); | |
1326 else | |
1327 rootContext.eval$1(entry); | |
1328 } | |
1329 init.globalState.topEventLoop.run$0(); | |
1330 }, | |
1331 IsolateNatives_computeThisScript: function() { | |
1332 var currentScript = init.currentScript; | |
1333 if (currentScript != null) | |
1334 return String(currentScript.src); | |
1335 if (init.globalState.isWorker === true) | |
1336 return H.IsolateNatives_computeThisScriptFromTrace(); | |
1337 return; | |
1338 }, | |
1339 IsolateNatives_computeThisScriptFromTrace: function() { | |
1340 var stack, matches; | |
1341 stack = new Error().stack; | |
1342 if (stack == null) { | |
1343 stack = function() { | |
1344 try { | |
1345 throw new Error(); | |
1346 } catch (e) { | |
1347 return e.stack; | |
1348 } | |
1349 }(); | |
1350 if (stack == null) | |
1351 throw H.wrapException(new P.UnsupportedError("No stack trace")); | |
1352 } | |
1353 matches = stack.match(new RegExp("^ *at [^(]*\\((.*):[0-9]*:[0-9]*\\)$", "
m")); | |
1354 if (matches != null) | |
1355 return matches[1]; | |
1356 matches = stack.match(new RegExp("^[^@]*@(.*):[0-9]*$", "m")); | |
1357 if (matches != null) | |
1358 return matches[1]; | |
1359 throw H.wrapException(new P.UnsupportedError("Cannot extract URI from \""
+ H.S(stack) + "\"")); | |
1360 }, | |
1361 IsolateNatives__processWorkerMessage: function(sender, e) { | |
1362 var msg, t1, functionName, entryPoint, args, message, isSpawnUri, startPau
sed, replyTo, t2, t3, t4, context; | |
1363 msg = new H._Deserializer(true, []).deserialize$1(e.data); | |
1364 t1 = J.getInterceptor$asx(msg); | |
1365 switch (t1.$index(msg, "command")) { | |
1366 case "start": | |
1367 init.globalState.currentManagerId = t1.$index(msg, "id"); | |
1368 functionName = t1.$index(msg, "functionName"); | |
1369 entryPoint = functionName == null ? init.globalState.entry : init.glob
alFunctions[functionName](); | |
1370 args = t1.$index(msg, "args"); | |
1371 message = new H._Deserializer(true, []).deserialize$1(t1.$index(msg, "
msg")); | |
1372 isSpawnUri = t1.$index(msg, "isSpawnUri"); | |
1373 startPaused = t1.$index(msg, "startPaused"); | |
1374 replyTo = new H._Deserializer(true, []).deserialize$1(t1.$index(msg, "
replyTo")); | |
1375 t1 = init.globalState.nextIsolateId++; | |
1376 t2 = H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, null, n
ull, null, 0), [P.$int, H.RawReceivePortImpl]); | |
1377 t3 = P.LinkedHashSet_LinkedHashSet(null, null, null, P.$int); | |
1378 t4 = new H.RawReceivePortImpl(0, null, false); | |
1379 context = new H._IsolateContext(t1, t2, t3, init.createNewIsolate(), t
4, new H.CapabilityImpl(H.random64()), new H.CapabilityImpl(H.random64()), false
, false, [], P.LinkedHashSet_LinkedHashSet(null, null, null, null), null, null,
false, true, P.LinkedHashSet_LinkedHashSet(null, null, null, null)); | |
1380 t3.add$1(0, 0); | |
1381 context._addRegistration$2(0, t4); | |
1382 init.globalState.topEventLoop.events._add$1(new H._IsolateEvent(contex
t, new H.IsolateNatives__processWorkerMessage_closure(entryPoint, args, message,
isSpawnUri, startPaused, replyTo), "worker-start")); | |
1383 init.globalState.currentContext = context; | |
1384 init.globalState.topEventLoop.run$0(); | |
1385 break; | |
1386 case "spawn-worker": | |
1387 break; | |
1388 case "message": | |
1389 if (t1.$index(msg, "port") != null) | |
1390 J.send$1$x(t1.$index(msg, "port"), t1.$index(msg, "msg")); | |
1391 init.globalState.topEventLoop.run$0(); | |
1392 break; | |
1393 case "close": | |
1394 init.globalState.managers.remove$1(0, $.$get$IsolateNatives_workerIds(
).$index(0, sender)); | |
1395 sender.terminate(); | |
1396 init.globalState.topEventLoop.run$0(); | |
1397 break; | |
1398 case "log": | |
1399 H.IsolateNatives__log(t1.$index(msg, "msg")); | |
1400 break; | |
1401 case "print": | |
1402 if (init.globalState.isWorker === true) { | |
1403 t1 = init.globalState.mainManager; | |
1404 t2 = P.LinkedHashMap__makeLiteral(["command", "print", "msg", msg]); | |
1405 t2 = new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity(
null, P.$int)).serialize$1(t2); | |
1406 t1.toString; | |
1407 self.postMessage(t2); | |
1408 } else | |
1409 P.print(t1.$index(msg, "msg")); | |
1410 break; | |
1411 case "error": | |
1412 throw H.wrapException(t1.$index(msg, "msg")); | |
1413 } | |
1414 }, | |
1415 IsolateNatives__log: function(msg) { | |
1416 var trace, t1, t2, exception; | |
1417 if (init.globalState.isWorker === true) { | |
1418 t1 = init.globalState.mainManager; | |
1419 t2 = P.LinkedHashMap__makeLiteral(["command", "log", "msg", msg]); | |
1420 t2 = new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity(null
, P.$int)).serialize$1(t2); | |
1421 t1.toString; | |
1422 self.postMessage(t2); | |
1423 } else | |
1424 try { | |
1425 self.console.log(msg); | |
1426 } catch (exception) { | |
1427 H.unwrapException(exception); | |
1428 trace = H.getTraceFromException(exception); | |
1429 throw H.wrapException(P.Exception_Exception(trace)); | |
1430 } | |
1431 }, | |
1432 IsolateNatives__startIsolate: function(topLevel, args, message, isSpawnUri,
startPaused, replyTo) { | |
1433 var context, t1, t2, t3; | |
1434 context = init.globalState.currentContext; | |
1435 t1 = context.id; | |
1436 $.Primitives_mirrorFunctionCacheName = $.Primitives_mirrorFunctionCacheNam
e + ("_" + t1); | |
1437 $.Primitives_mirrorInvokeCacheName = $.Primitives_mirrorInvokeCacheName +
("_" + t1); | |
1438 t1 = context.controlPort; | |
1439 t2 = init.globalState.currentContext.id; | |
1440 t3 = context.pauseCapability; | |
1441 J.send$1$x(replyTo, ["spawned", new H._NativeJsSendPort(t1, t2), t3, conte
xt.terminateCapability]); | |
1442 t2 = new H.IsolateNatives__startIsolate_runStartFunction(topLevel, args, m
essage, isSpawnUri, context); | |
1443 if (startPaused === true) { | |
1444 context.addPause$2(t3, t3); | |
1445 init.globalState.topEventLoop.events._add$1(new H._IsolateEvent(context,
t2, "start isolate")); | |
1446 } else | |
1447 t2.call$0(); | |
1448 }, | |
1449 _clone: function(message) { | |
1450 return new H._Deserializer(true, []).deserialize$1(new H._Serializer(false
, P.LinkedHashMap_LinkedHashMap$identity(null, P.$int)).serialize$1(message)); | |
1451 }, | |
1452 startRootIsolate_closure: { | |
1453 "^": "Closure:1;__isolate_helper$_box_0,_captured_entry_1", | |
1454 call$0: function() { | |
1455 this._captured_entry_1.call$1(this.__isolate_helper$_box_0._captured_arg
s_0); | |
1456 } | |
1457 }, | |
1458 startRootIsolate_closure0: { | |
1459 "^": "Closure:1;__isolate_helper$_box_0,_captured_entry_2", | |
1460 call$0: function() { | |
1461 this._captured_entry_2.call$2(this.__isolate_helper$_box_0._captured_arg
s_0, null); | |
1462 } | |
1463 }, | |
1464 _Manager: { | |
1465 "^": "Object;nextIsolateId,currentManagerId,nextManagerId,currentContext,r
ootContext,topEventLoop,fromCommandLine,isWorker,supportsWorkers,isolates,mainMa
nager,managers,entry", | |
1466 static: {_Manager__serializePrintMessage: function(object) { | |
1467 var t1 = P.LinkedHashMap__makeLiteral(["command", "print", "msg", obje
ct]); | |
1468 return new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity(
null, P.$int)).serialize$1(t1); | |
1469 }} | |
1470 }, | |
1471 _IsolateContext: { | |
1472 "^": "Object;id,ports,weakPorts,isolateStatics<,controlPort<,pauseCapabili
ty,terminateCapability,initialized,isPaused,delayedEvents,pauseTokens,doneHandle
rs,_scheduledControlEvents,_isExecutingEvent,errorsAreFatal,errorPorts", | |
1473 addPause$2: function(authentification, resume) { | |
1474 if (!this.pauseCapability.$eq(0, authentification)) | |
1475 return; | |
1476 if (this.pauseTokens.add$1(0, resume) && !this.isPaused) | |
1477 this.isPaused = true; | |
1478 this._updateGlobalState$0(); | |
1479 }, | |
1480 removePause$1: function(resume) { | |
1481 var t1, t2, $event, t3, t4, t5; | |
1482 if (!this.isPaused) | |
1483 return; | |
1484 t1 = this.pauseTokens; | |
1485 t1.remove$1(0, resume); | |
1486 if (t1._collection$_length === 0) { | |
1487 for (t1 = this.delayedEvents; t2 = t1.length, t2 !== 0;) { | |
1488 if (0 >= t2) | |
1489 return H.ioore(t1, -1); | |
1490 $event = t1.pop(); | |
1491 t2 = init.globalState.topEventLoop.events; | |
1492 t3 = t2._head; | |
1493 t4 = t2._table; | |
1494 t5 = t4.length; | |
1495 t3 = (t3 - 1 & t5 - 1) >>> 0; | |
1496 t2._head = t3; | |
1497 if (t3 < 0 || t3 >= t5) | |
1498 return H.ioore(t4, t3); | |
1499 t4[t3] = $event; | |
1500 if (t3 === t2._tail) | |
1501 t2._grow$0(); | |
1502 ++t2._modificationCount; | |
1503 } | |
1504 this.isPaused = false; | |
1505 } | |
1506 this._updateGlobalState$0(); | |
1507 }, | |
1508 addDoneListener$2: function(responsePort, response) { | |
1509 var t1, i, t2; | |
1510 if (this.doneHandlers == null) | |
1511 this.doneHandlers = []; | |
1512 for (t1 = J.getInterceptor(responsePort), i = 0; t2 = this.doneHandlers,
i < t2.length; i += 2) | |
1513 if (t1.$eq(responsePort, t2[i])) { | |
1514 t1 = this.doneHandlers; | |
1515 t2 = i + 1; | |
1516 if (t2 >= t1.length) | |
1517 return H.ioore(t1, t2); | |
1518 t1[t2] = response; | |
1519 return; | |
1520 } | |
1521 t2.push(responsePort); | |
1522 this.doneHandlers.push(response); | |
1523 }, | |
1524 removeDoneListener$1: function(responsePort) { | |
1525 var t1, i, t2; | |
1526 if (this.doneHandlers == null) | |
1527 return; | |
1528 for (t1 = J.getInterceptor(responsePort), i = 0; t2 = this.doneHandlers,
i < t2.length; i += 2) | |
1529 if (t1.$eq(responsePort, t2[i])) { | |
1530 t1 = this.doneHandlers; | |
1531 t2 = i + 2; | |
1532 t1.toString; | |
1533 if (typeof t1 !== "object" || t1 === null || !!t1.fixed$length) | |
1534 H.throwExpression(new P.UnsupportedError("removeRange")); | |
1535 P.RangeError_checkValidRange(i, t2, t1.length, null, null, null); | |
1536 t1.splice(i, t2 - i); | |
1537 return; | |
1538 } | |
1539 }, | |
1540 setErrorsFatal$2: function(authentification, errorsAreFatal) { | |
1541 if (!this.terminateCapability.$eq(0, authentification)) | |
1542 return; | |
1543 this.errorsAreFatal = errorsAreFatal; | |
1544 }, | |
1545 handlePing$3: function(responsePort, pingType, response) { | |
1546 var t1 = J.getInterceptor(pingType); | |
1547 if (!t1.$eq(pingType, 0)) | |
1548 t1 = t1.$eq(pingType, 1) && !this._isExecutingEvent; | |
1549 else | |
1550 t1 = true; | |
1551 if (t1) { | |
1552 J.send$1$x(responsePort, response); | |
1553 return; | |
1554 } | |
1555 t1 = this._scheduledControlEvents; | |
1556 if (t1 == null) { | |
1557 t1 = P.ListQueue$(null, null); | |
1558 this._scheduledControlEvents = t1; | |
1559 } | |
1560 t1._add$1(new H._IsolateContext_handlePing_respond(responsePort, respons
e)); | |
1561 }, | |
1562 handleKill$2: function(authentification, priority) { | |
1563 var t1; | |
1564 if (!this.terminateCapability.$eq(0, authentification)) | |
1565 return; | |
1566 t1 = J.getInterceptor(priority); | |
1567 if (!t1.$eq(priority, 0)) | |
1568 t1 = t1.$eq(priority, 1) && !this._isExecutingEvent; | |
1569 else | |
1570 t1 = true; | |
1571 if (t1) { | |
1572 this.kill$0(); | |
1573 return; | |
1574 } | |
1575 t1 = this._scheduledControlEvents; | |
1576 if (t1 == null) { | |
1577 t1 = P.ListQueue$(null, null); | |
1578 this._scheduledControlEvents = t1; | |
1579 } | |
1580 t1._add$1(this.get$kill()); | |
1581 }, | |
1582 handleUncaughtError$2: function(error, stackTrace) { | |
1583 var t1, message; | |
1584 t1 = this.errorPorts; | |
1585 if (t1._collection$_length === 0) { | |
1586 if (this.errorsAreFatal === true && this === init.globalState.rootCont
ext) | |
1587 return; | |
1588 if (self.console && self.console.error) | |
1589 self.console.error(error, stackTrace); | |
1590 else { | |
1591 P.print(error); | |
1592 if (stackTrace != null) | |
1593 P.print(stackTrace); | |
1594 } | |
1595 return; | |
1596 } | |
1597 message = new Array(2); | |
1598 message.fixed$length = Array; | |
1599 message[0] = J.toString$0$(error); | |
1600 message[1] = stackTrace == null ? null : J.toString$0$(stackTrace); | |
1601 for (t1 = H.setRuntimeTypeInfo(new P.LinkedHashSetIterator(t1, t1._colle
ction$_modifications, null, null), [null]), t1._cell = t1._set._collection$_firs
t; t1.moveNext$0();) | |
1602 J.send$1$x(t1._collection$_current, message); | |
1603 }, | |
1604 eval$1: function(code) { | |
1605 var old, result, oldIsExecutingEvent, e, s, exception, t1; | |
1606 old = init.globalState.currentContext; | |
1607 init.globalState.currentContext = this; | |
1608 $ = this.isolateStatics; | |
1609 result = null; | |
1610 oldIsExecutingEvent = this._isExecutingEvent; | |
1611 this._isExecutingEvent = true; | |
1612 try { | |
1613 result = code.call$0(); | |
1614 } catch (exception) { | |
1615 t1 = H.unwrapException(exception); | |
1616 e = t1; | |
1617 s = H.getTraceFromException(exception); | |
1618 this.handleUncaughtError$2(e, s); | |
1619 if (this.errorsAreFatal === true) { | |
1620 this.kill$0(); | |
1621 if (this === init.globalState.rootContext) | |
1622 throw exception; | |
1623 } | |
1624 } finally { | |
1625 this._isExecutingEvent = oldIsExecutingEvent; | |
1626 init.globalState.currentContext = old; | |
1627 if (old != null) | |
1628 $ = old.get$isolateStatics(); | |
1629 if (this._scheduledControlEvents != null) | |
1630 for (; t1 = this._scheduledControlEvents, !t1.get$isEmpty(t1);) | |
1631 this._scheduledControlEvents.removeFirst$0().call$0(); | |
1632 } | |
1633 return result; | |
1634 }, | |
1635 lookup$1: function(portId) { | |
1636 return this.ports.$index(0, portId); | |
1637 }, | |
1638 _addRegistration$2: function(portId, port) { | |
1639 var t1 = this.ports; | |
1640 if (t1.containsKey$1(portId)) | |
1641 throw H.wrapException(P.Exception_Exception("Registry: ports must be r
egistered only once.")); | |
1642 t1.$indexSet(0, portId, port); | |
1643 }, | |
1644 _updateGlobalState$0: function() { | |
1645 var t1 = this.ports; | |
1646 if (t1.get$length(t1) - this.weakPorts._collection$_length > 0 || this.i
sPaused || !this.initialized) | |
1647 init.globalState.isolates.$indexSet(0, this.id, this); | |
1648 else | |
1649 this.kill$0(); | |
1650 }, | |
1651 kill$0: [function() { | |
1652 var t1, t2, i, responsePort, t3; | |
1653 t1 = this._scheduledControlEvents; | |
1654 if (t1 != null) | |
1655 t1.clear$0(0); | |
1656 for (t1 = this.ports, t2 = t1.get$values(t1), t2 = t2.get$iterator(t2);
t2.moveNext$0();) | |
1657 t2.get$current().__isolate_helper$_close$0(); | |
1658 t1.clear$0(0); | |
1659 this.weakPorts.clear$0(0); | |
1660 init.globalState.isolates.remove$1(0, this.id); | |
1661 this.errorPorts.clear$0(0); | |
1662 if (this.doneHandlers != null) { | |
1663 for (i = 0; t1 = this.doneHandlers, t2 = t1.length, i < t2; i += 2) { | |
1664 responsePort = t1[i]; | |
1665 t3 = i + 1; | |
1666 if (t3 >= t2) | |
1667 return H.ioore(t1, t3); | |
1668 J.send$1$x(responsePort, t1[t3]); | |
1669 } | |
1670 this.doneHandlers = null; | |
1671 } | |
1672 }, "call$0", "get$kill", 0, 0, 2] | |
1673 }, | |
1674 _IsolateContext_handlePing_respond: { | |
1675 "^": "Closure:2;_captured_responsePort_0,_captured_response_1", | |
1676 call$0: function() { | |
1677 J.send$1$x(this._captured_responsePort_0, this._captured_response_1); | |
1678 } | |
1679 }, | |
1680 _EventLoop: { | |
1681 "^": "Object;events,_activeJsAsyncCount", | |
1682 dequeue$0: function() { | |
1683 var t1 = this.events; | |
1684 if (t1._head === t1._tail) | |
1685 return; | |
1686 return t1.removeFirst$0(); | |
1687 }, | |
1688 runIteration$0: function() { | |
1689 var $event, t1, t2; | |
1690 $event = this.dequeue$0(); | |
1691 if ($event == null) { | |
1692 if (init.globalState.rootContext != null) | |
1693 if (init.globalState.isolates.containsKey$1(init.globalState.rootCon
text.id)) | |
1694 if (init.globalState.fromCommandLine === true) { | |
1695 t1 = init.globalState.rootContext.ports; | |
1696 t1 = t1.get$isEmpty(t1); | |
1697 } else | |
1698 t1 = false; | |
1699 else | |
1700 t1 = false; | |
1701 else | |
1702 t1 = false; | |
1703 if (t1) | |
1704 H.throwExpression(P.Exception_Exception("Program exited with open Re
ceivePorts.")); | |
1705 t1 = init.globalState; | |
1706 if (t1.isWorker === true) { | |
1707 t2 = t1.isolates; | |
1708 t2 = t2.get$isEmpty(t2) && t1.topEventLoop._activeJsAsyncCount === 0
; | |
1709 } else | |
1710 t2 = false; | |
1711 if (t2) { | |
1712 t1 = t1.mainManager; | |
1713 t2 = P.LinkedHashMap__makeLiteral(["command", "close"]); | |
1714 t2 = new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity(
null, P.$int)).serialize$1(t2); | |
1715 t1.toString; | |
1716 self.postMessage(t2); | |
1717 } | |
1718 return false; | |
1719 } | |
1720 $event.process$0(); | |
1721 return true; | |
1722 }, | |
1723 _runHelper$0: function() { | |
1724 if (self.window != null) | |
1725 new H._EventLoop__runHelper_next(this).call$0(); | |
1726 else | |
1727 for (; this.runIteration$0();) | |
1728 ; | |
1729 }, | |
1730 run$0: function() { | |
1731 var e, trace, exception, t1, t2; | |
1732 if (init.globalState.isWorker !== true) | |
1733 this._runHelper$0(); | |
1734 else | |
1735 try { | |
1736 this._runHelper$0(); | |
1737 } catch (exception) { | |
1738 t1 = H.unwrapException(exception); | |
1739 e = t1; | |
1740 trace = H.getTraceFromException(exception); | |
1741 t1 = init.globalState.mainManager; | |
1742 t2 = P.LinkedHashMap__makeLiteral(["command", "error", "msg", H.S(e)
+ "\n" + H.S(trace)]); | |
1743 t2 = new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity(
null, P.$int)).serialize$1(t2); | |
1744 t1.toString; | |
1745 self.postMessage(t2); | |
1746 } | |
1747 } | |
1748 }, | |
1749 _EventLoop__runHelper_next: { | |
1750 "^": "Closure:2;__isolate_helper$_captured_this_0", | |
1751 call$0: function() { | |
1752 if (!this.__isolate_helper$_captured_this_0.runIteration$0()) | |
1753 return; | |
1754 P.Timer_Timer(C.Duration_0, this); | |
1755 } | |
1756 }, | |
1757 _IsolateEvent: { | |
1758 "^": "Object;isolate,fn,message>", | |
1759 process$0: function() { | |
1760 var t1 = this.isolate; | |
1761 if (t1.isPaused) { | |
1762 t1.delayedEvents.push(this); | |
1763 return; | |
1764 } | |
1765 t1.eval$1(this.fn); | |
1766 } | |
1767 }, | |
1768 _MainManagerStub: { | |
1769 "^": "Object;" | |
1770 }, | |
1771 IsolateNatives__processWorkerMessage_closure: { | |
1772 "^": "Closure:1;_captured_entryPoint_0,_captured_args_1,_captured_message_
2,_captured_isSpawnUri_3,_captured_startPaused_4,_captured_replyTo_5", | |
1773 call$0: function() { | |
1774 H.IsolateNatives__startIsolate(this._captured_entryPoint_0, this._captur
ed_args_1, this._captured_message_2, this._captured_isSpawnUri_3, this._captured
_startPaused_4, this._captured_replyTo_5); | |
1775 } | |
1776 }, | |
1777 IsolateNatives__startIsolate_runStartFunction: { | |
1778 "^": "Closure:2;_captured_topLevel_0,_captured_args_1,_captured_message_2,
_captured_isSpawnUri_3,_captured_context_4", | |
1779 call$0: function() { | |
1780 var t1, t2, t3, t4; | |
1781 t1 = this._captured_context_4; | |
1782 t1.initialized = true; | |
1783 if (this._captured_isSpawnUri_3 !== true) | |
1784 this._captured_topLevel_0.call$1(this._captured_message_2); | |
1785 else { | |
1786 t2 = this._captured_topLevel_0; | |
1787 t3 = H.getDynamicRuntimeType(); | |
1788 t4 = H.buildFunctionType(t3, [t3, t3])._isTest$1(t2); | |
1789 if (t4) | |
1790 t2.call$2(this._captured_args_1, this._captured_message_2); | |
1791 else { | |
1792 t3 = H.buildFunctionType(t3, [t3])._isTest$1(t2); | |
1793 if (t3) | |
1794 t2.call$1(this._captured_args_1); | |
1795 else | |
1796 t2.call$0(); | |
1797 } | |
1798 } | |
1799 t1._updateGlobalState$0(); | |
1800 } | |
1801 }, | |
1802 _BaseSendPort: { | |
1803 "^": "Object;" | |
1804 }, | |
1805 _NativeJsSendPort: { | |
1806 "^": "_BaseSendPort;_receivePort,_isolateId", | |
1807 send$1: function(_, message) { | |
1808 var isolate, t1, msg, t2; | |
1809 isolate = init.globalState.isolates.$index(0, this._isolateId); | |
1810 if (isolate == null) | |
1811 return; | |
1812 t1 = this._receivePort; | |
1813 if (t1.get$_isClosed()) | |
1814 return; | |
1815 msg = H._clone(message); | |
1816 if (isolate.get$controlPort() === t1) { | |
1817 t1 = J.getInterceptor$asx(msg); | |
1818 switch (t1.$index(msg, 0)) { | |
1819 case "pause": | |
1820 isolate.addPause$2(t1.$index(msg, 1), t1.$index(msg, 2)); | |
1821 break; | |
1822 case "resume": | |
1823 isolate.removePause$1(t1.$index(msg, 1)); | |
1824 break; | |
1825 case "add-ondone": | |
1826 isolate.addDoneListener$2(t1.$index(msg, 1), t1.$index(msg, 2)); | |
1827 break; | |
1828 case "remove-ondone": | |
1829 isolate.removeDoneListener$1(t1.$index(msg, 1)); | |
1830 break; | |
1831 case "set-errors-fatal": | |
1832 isolate.setErrorsFatal$2(t1.$index(msg, 1), t1.$index(msg, 2)); | |
1833 break; | |
1834 case "ping": | |
1835 isolate.handlePing$3(t1.$index(msg, 1), t1.$index(msg, 2), t1.$ind
ex(msg, 3)); | |
1836 break; | |
1837 case "kill": | |
1838 isolate.handleKill$2(t1.$index(msg, 1), t1.$index(msg, 2)); | |
1839 break; | |
1840 case "getErrors": | |
1841 t1 = t1.$index(msg, 1); | |
1842 isolate.errorPorts.add$1(0, t1); | |
1843 break; | |
1844 case "stopErrors": | |
1845 t1 = t1.$index(msg, 1); | |
1846 isolate.errorPorts.remove$1(0, t1); | |
1847 break; | |
1848 } | |
1849 return; | |
1850 } | |
1851 t1 = init.globalState.topEventLoop; | |
1852 t2 = "receive " + H.S(message); | |
1853 t1.events._add$1(new H._IsolateEvent(isolate, new H._NativeJsSendPort_se
nd_closure(this, msg), t2)); | |
1854 }, | |
1855 $eq: function(_, other) { | |
1856 if (other == null) | |
1857 return false; | |
1858 return other instanceof H._NativeJsSendPort && J.$eq$(this._receivePort,
other._receivePort); | |
1859 }, | |
1860 get$hashCode: function(_) { | |
1861 return this._receivePort.get$_id(); | |
1862 } | |
1863 }, | |
1864 _NativeJsSendPort_send_closure: { | |
1865 "^": "Closure:1;__isolate_helper$_captured_this_0,_captured_msg_1", | |
1866 call$0: function() { | |
1867 var t1 = this.__isolate_helper$_captured_this_0._receivePort; | |
1868 if (!t1.get$_isClosed()) | |
1869 t1.__isolate_helper$_add$1(this._captured_msg_1); | |
1870 } | |
1871 }, | |
1872 _WorkerSendPort: { | |
1873 "^": "_BaseSendPort;_workerId,_receivePortId,_isolateId", | |
1874 send$1: function(_, message) { | |
1875 var t1, workerMessage, manager; | |
1876 t1 = P.LinkedHashMap__makeLiteral(["command", "message", "port", this, "
msg", message]); | |
1877 workerMessage = new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$id
entity(null, P.$int)).serialize$1(t1); | |
1878 if (init.globalState.isWorker === true) { | |
1879 init.globalState.mainManager.toString; | |
1880 self.postMessage(workerMessage); | |
1881 } else { | |
1882 manager = init.globalState.managers.$index(0, this._workerId); | |
1883 if (manager != null) | |
1884 manager.postMessage(workerMessage); | |
1885 } | |
1886 }, | |
1887 $eq: function(_, other) { | |
1888 if (other == null) | |
1889 return false; | |
1890 return other instanceof H._WorkerSendPort && J.$eq$(this._workerId, othe
r._workerId) && J.$eq$(this._isolateId, other._isolateId) && J.$eq$(this._receiv
ePortId, other._receivePortId); | |
1891 }, | |
1892 get$hashCode: function(_) { | |
1893 var t1, t2, t3; | |
1894 t1 = this._workerId; | |
1895 if (typeof t1 !== "number") | |
1896 return t1.$shl(); | |
1897 t2 = this._isolateId; | |
1898 if (typeof t2 !== "number") | |
1899 return t2.$shl(); | |
1900 t3 = this._receivePortId; | |
1901 if (typeof t3 !== "number") | |
1902 return H.iae(t3); | |
1903 return (t1 << 16 ^ t2 << 8 ^ t3) >>> 0; | |
1904 } | |
1905 }, | |
1906 RawReceivePortImpl: { | |
1907 "^": "Object;_id<,_handler,_isClosed<", | |
1908 __isolate_helper$_close$0: function() { | |
1909 this._isClosed = true; | |
1910 this._handler = null; | |
1911 }, | |
1912 __isolate_helper$_add$1: function(dataEvent) { | |
1913 if (this._isClosed) | |
1914 return; | |
1915 this._handler$1(dataEvent); | |
1916 }, | |
1917 _handler$1: function(arg0) { | |
1918 return this._handler.call$1(arg0); | |
1919 }, | |
1920 $isRawReceivePort: 1 | |
1921 }, | |
1922 TimerImpl: { | |
1923 "^": "Object;_once,_inEventLoop,_handle", | |
1924 TimerImpl$2: function(milliseconds, callback) { | |
1925 var t1, t2; | |
1926 if (milliseconds === 0) | |
1927 t1 = self.setTimeout == null || init.globalState.isWorker === true; | |
1928 else | |
1929 t1 = false; | |
1930 if (t1) { | |
1931 this._handle = 1; | |
1932 t1 = init.globalState.topEventLoop; | |
1933 t2 = init.globalState.currentContext; | |
1934 t1.events._add$1(new H._IsolateEvent(t2, new H.TimerImpl_internalCallb
ack(this, callback), "timer")); | |
1935 this._inEventLoop = true; | |
1936 } else if (self.setTimeout != null) { | |
1937 ++init.globalState.topEventLoop._activeJsAsyncCount; | |
1938 this._handle = self.setTimeout(H.convertDartClosureToJS(new H.TimerImp
l_internalCallback0(this, callback), 0), milliseconds); | |
1939 } else | |
1940 throw H.wrapException(new P.UnsupportedError("Timer greater than 0."))
; | |
1941 }, | |
1942 static: {TimerImpl$: function(milliseconds, callback) { | |
1943 var t1 = new H.TimerImpl(true, false, null); | |
1944 t1.TimerImpl$2(milliseconds, callback); | |
1945 return t1; | |
1946 }} | |
1947 }, | |
1948 TimerImpl_internalCallback: { | |
1949 "^": "Closure:2;__isolate_helper$_captured_this_0,_captured_callback_1", | |
1950 call$0: function() { | |
1951 this.__isolate_helper$_captured_this_0._handle = null; | |
1952 this._captured_callback_1.call$0(); | |
1953 } | |
1954 }, | |
1955 TimerImpl_internalCallback0: { | |
1956 "^": "Closure:2;__isolate_helper$_captured_this_2,_captured_callback_3", | |
1957 call$0: function() { | |
1958 this.__isolate_helper$_captured_this_2._handle = null; | |
1959 H.leaveJsAsync(); | |
1960 this._captured_callback_3.call$0(); | |
1961 } | |
1962 }, | |
1963 CapabilityImpl: { | |
1964 "^": "Object;_id<", | |
1965 get$hashCode: function(_) { | |
1966 var hash = this._id; | |
1967 if (typeof hash !== "number") | |
1968 return hash.$shr(); | |
1969 hash = C.JSNumber_methods._shrOtherPositive$1(hash, 0) ^ C.JSNumber_meth
ods._tdivFast$1(hash, 4294967296); | |
1970 hash = (~hash >>> 0) + (hash << 15 >>> 0) & 4294967295; | |
1971 hash = ((hash ^ hash >>> 12) >>> 0) * 5 & 4294967295; | |
1972 hash = ((hash ^ hash >>> 4) >>> 0) * 2057 & 4294967295; | |
1973 return (hash ^ hash >>> 16) >>> 0; | |
1974 }, | |
1975 $eq: function(_, other) { | |
1976 var t1, t2; | |
1977 if (other == null) | |
1978 return false; | |
1979 if (other === this) | |
1980 return true; | |
1981 if (other instanceof H.CapabilityImpl) { | |
1982 t1 = this._id; | |
1983 t2 = other._id; | |
1984 return t1 == null ? t2 == null : t1 === t2; | |
1985 } | |
1986 return false; | |
1987 } | |
1988 }, | |
1989 _Serializer: { | |
1990 "^": "Object;_serializeSendPorts,serializedObjectIds", | |
1991 serialize$1: [function(x) { | |
1992 var t1, serializationId, serializeTearOff, t2, $name; | |
1993 if (x == null || typeof x === "string" || typeof x === "number" || typeo
f x === "boolean") | |
1994 return x; | |
1995 t1 = this.serializedObjectIds; | |
1996 serializationId = t1.$index(0, x); | |
1997 if (serializationId != null) | |
1998 return ["ref", serializationId]; | |
1999 t1.$indexSet(0, x, t1.get$length(t1)); | |
2000 t1 = J.getInterceptor(x); | |
2001 if (!!t1.$isNativeByteBuffer) | |
2002 return ["buffer", x]; | |
2003 if (!!t1.$isNativeTypedData) | |
2004 return ["typed", x]; | |
2005 if (!!t1.$isJSIndexable) | |
2006 return this.serializeJSIndexable$1(x); | |
2007 if (!!t1.$isInternalMap) { | |
2008 serializeTearOff = this.get$serialize(); | |
2009 t2 = x.get$keys(); | |
2010 t2 = H.MappedIterable_MappedIterable(t2, serializeTearOff, H.getRuntim
eTypeArgument(t2, "Iterable", 0), null); | |
2011 t2 = P.List_List$from(t2, true, H.getRuntimeTypeArgument(t2, "Iterable
", 0)); | |
2012 t1 = t1.get$values(x); | |
2013 t1 = H.MappedIterable_MappedIterable(t1, serializeTearOff, H.getRuntim
eTypeArgument(t1, "Iterable", 0), null); | |
2014 return ["map", t2, P.List_List$from(t1, true, H.getRuntimeTypeArgument
(t1, "Iterable", 0))]; | |
2015 } | |
2016 if (!!t1.$isJSObject) | |
2017 return this.serializeJSObject$1(x); | |
2018 if (!!t1.$isInterceptor) | |
2019 this.unsupported$1(x); | |
2020 if (!!t1.$isRawReceivePort) | |
2021 this.unsupported$2(x, "RawReceivePorts can't be transmitted:"); | |
2022 if (!!t1.$is_NativeJsSendPort) | |
2023 return this.serializeJsSendPort$1(x); | |
2024 if (!!t1.$is_WorkerSendPort) | |
2025 return this.serializeWorkerSendPort$1(x); | |
2026 if (!!t1.$isClosure) { | |
2027 $name = x.$static_name; | |
2028 if ($name == null) | |
2029 this.unsupported$2(x, "Closures can't be transmitted:"); | |
2030 return ["function", $name]; | |
2031 } | |
2032 if (!!t1.$isCapabilityImpl) | |
2033 return ["capability", x._id]; | |
2034 if (!(x instanceof P.Object)) | |
2035 this.unsupported$1(x); | |
2036 return ["dart", init.classIdExtractor(x), this.serializeArrayInPlace$1(i
nit.classFieldsExtractor(x))]; | |
2037 }, "call$1", "get$serialize", 2, 0, 0], | |
2038 unsupported$2: function(x, message) { | |
2039 throw H.wrapException(new P.UnsupportedError(H.S(message == null ? "Can'
t transmit:" : message) + " " + H.S(x))); | |
2040 }, | |
2041 unsupported$1: function(x) { | |
2042 return this.unsupported$2(x, null); | |
2043 }, | |
2044 serializeJSIndexable$1: function(indexable) { | |
2045 var serialized = this.serializeArray$1(indexable); | |
2046 if (!!indexable.fixed$length) | |
2047 return ["fixed", serialized]; | |
2048 if (!indexable.fixed$length) | |
2049 return ["extendable", serialized]; | |
2050 if (!indexable.immutable$list) | |
2051 return ["mutable", serialized]; | |
2052 if (indexable.constructor === Array) | |
2053 return ["const", serialized]; | |
2054 this.unsupported$2(indexable, "Can't serialize indexable: "); | |
2055 }, | |
2056 serializeArray$1: function(x) { | |
2057 var serialized, i, t1; | |
2058 serialized = []; | |
2059 C.JSArray_methods.set$length(serialized, x.length); | |
2060 for (i = 0; i < x.length; ++i) { | |
2061 t1 = this.serialize$1(x[i]); | |
2062 if (i >= serialized.length) | |
2063 return H.ioore(serialized, i); | |
2064 serialized[i] = t1; | |
2065 } | |
2066 return serialized; | |
2067 }, | |
2068 serializeArrayInPlace$1: function(x) { | |
2069 var i; | |
2070 for (i = 0; i < x.length; ++i) | |
2071 C.JSArray_methods.$indexSet(x, i, this.serialize$1(x[i])); | |
2072 return x; | |
2073 }, | |
2074 serializeJSObject$1: function(x) { | |
2075 var keys, values, i, t1; | |
2076 if (!!x.constructor && x.constructor !== Object) | |
2077 this.unsupported$2(x, "Only plain JS Objects are supported:"); | |
2078 keys = Object.keys(x); | |
2079 values = []; | |
2080 C.JSArray_methods.set$length(values, keys.length); | |
2081 for (i = 0; i < keys.length; ++i) { | |
2082 t1 = this.serialize$1(x[keys[i]]); | |
2083 if (i >= values.length) | |
2084 return H.ioore(values, i); | |
2085 values[i] = t1; | |
2086 } | |
2087 return ["js-object", keys, values]; | |
2088 }, | |
2089 serializeWorkerSendPort$1: function(x) { | |
2090 if (this._serializeSendPorts) | |
2091 return ["sendport", x._workerId, x._isolateId, x._receivePortId]; | |
2092 return ["raw sendport", x]; | |
2093 }, | |
2094 serializeJsSendPort$1: function(x) { | |
2095 if (this._serializeSendPorts) | |
2096 return ["sendport", init.globalState.currentManagerId, x._isolateId, x
._receivePort.get$_id()]; | |
2097 return ["raw sendport", x]; | |
2098 } | |
2099 }, | |
2100 _Deserializer: { | |
2101 "^": "Object;_adjustSendPorts,deserializedObjects", | |
2102 deserialize$1: [function(x) { | |
2103 var serializationId, t1, result, classId, fields, emptyInstance; | |
2104 if (x == null || typeof x === "string" || typeof x === "number" || typeo
f x === "boolean") | |
2105 return x; | |
2106 if (typeof x !== "object" || x === null || x.constructor !== Array) | |
2107 throw H.wrapException(P.ArgumentError$("Bad serialized message: " + H.
S(x))); | |
2108 switch (C.JSArray_methods.get$first(x)) { | |
2109 case "ref": | |
2110 if (1 >= x.length) | |
2111 return H.ioore(x, 1); | |
2112 serializationId = x[1]; | |
2113 t1 = this.deserializedObjects; | |
2114 if (serializationId >>> 0 !== serializationId || serializationId >=
t1.length) | |
2115 return H.ioore(t1, serializationId); | |
2116 return t1[serializationId]; | |
2117 case "buffer": | |
2118 if (1 >= x.length) | |
2119 return H.ioore(x, 1); | |
2120 result = x[1]; | |
2121 this.deserializedObjects.push(result); | |
2122 return result; | |
2123 case "typed": | |
2124 if (1 >= x.length) | |
2125 return H.ioore(x, 1); | |
2126 result = x[1]; | |
2127 this.deserializedObjects.push(result); | |
2128 return result; | |
2129 case "fixed": | |
2130 if (1 >= x.length) | |
2131 return H.ioore(x, 1); | |
2132 result = x[1]; | |
2133 this.deserializedObjects.push(result); | |
2134 t1 = this.deserializeArrayInPlace$1(result); | |
2135 t1.$builtinTypeInfo = [null]; | |
2136 t1.fixed$length = Array; | |
2137 return t1; | |
2138 case "extendable": | |
2139 if (1 >= x.length) | |
2140 return H.ioore(x, 1); | |
2141 result = x[1]; | |
2142 this.deserializedObjects.push(result); | |
2143 t1 = this.deserializeArrayInPlace$1(result); | |
2144 t1.$builtinTypeInfo = [null]; | |
2145 return t1; | |
2146 case "mutable": | |
2147 if (1 >= x.length) | |
2148 return H.ioore(x, 1); | |
2149 result = x[1]; | |
2150 this.deserializedObjects.push(result); | |
2151 return this.deserializeArrayInPlace$1(result); | |
2152 case "const": | |
2153 if (1 >= x.length) | |
2154 return H.ioore(x, 1); | |
2155 result = x[1]; | |
2156 this.deserializedObjects.push(result); | |
2157 t1 = this.deserializeArrayInPlace$1(result); | |
2158 t1.$builtinTypeInfo = [null]; | |
2159 t1.fixed$length = Array; | |
2160 return t1; | |
2161 case "map": | |
2162 return this.deserializeMap$1(x); | |
2163 case "sendport": | |
2164 return this.deserializeSendPort$1(x); | |
2165 case "raw sendport": | |
2166 if (1 >= x.length) | |
2167 return H.ioore(x, 1); | |
2168 result = x[1]; | |
2169 this.deserializedObjects.push(result); | |
2170 return result; | |
2171 case "js-object": | |
2172 return this.deserializeJSObject$1(x); | |
2173 case "function": | |
2174 if (1 >= x.length) | |
2175 return H.ioore(x, 1); | |
2176 result = init.globalFunctions[x[1]](); | |
2177 this.deserializedObjects.push(result); | |
2178 return result; | |
2179 case "capability": | |
2180 if (1 >= x.length) | |
2181 return H.ioore(x, 1); | |
2182 return new H.CapabilityImpl(x[1]); | |
2183 case "dart": | |
2184 t1 = x.length; | |
2185 if (1 >= t1) | |
2186 return H.ioore(x, 1); | |
2187 classId = x[1]; | |
2188 if (2 >= t1) | |
2189 return H.ioore(x, 2); | |
2190 fields = x[2]; | |
2191 emptyInstance = init.instanceFromClassId(classId); | |
2192 this.deserializedObjects.push(emptyInstance); | |
2193 this.deserializeArrayInPlace$1(fields); | |
2194 return init.initializeEmptyInstance(classId, emptyInstance, fields); | |
2195 default: | |
2196 throw H.wrapException("couldn't deserialize: " + H.S(x)); | |
2197 } | |
2198 }, "call$1", "get$deserialize", 2, 0, 0], | |
2199 deserializeArrayInPlace$1: function(x) { | |
2200 var t1, i, t2; | |
2201 t1 = J.getInterceptor$asx(x); | |
2202 i = 0; | |
2203 while (true) { | |
2204 t2 = t1.get$length(x); | |
2205 if (typeof t2 !== "number") | |
2206 return H.iae(t2); | |
2207 if (!(i < t2)) | |
2208 break; | |
2209 t1.$indexSet(x, i, this.deserialize$1(t1.$index(x, i))); | |
2210 ++i; | |
2211 } | |
2212 return x; | |
2213 }, | |
2214 deserializeMap$1: function(x) { | |
2215 var t1, keys, values, result, t2, i; | |
2216 t1 = x.length; | |
2217 if (1 >= t1) | |
2218 return H.ioore(x, 1); | |
2219 keys = x[1]; | |
2220 if (2 >= t1) | |
2221 return H.ioore(x, 2); | |
2222 values = x[2]; | |
2223 result = P.LinkedHashMap__makeEmpty(); | |
2224 this.deserializedObjects.push(result); | |
2225 keys = J.map$1$ax(keys, this.get$deserialize()).toList$0(0); | |
2226 for (t1 = J.getInterceptor$asx(keys), t2 = J.getInterceptor$asx(values),
i = 0; i < t1.get$length(keys); ++i) { | |
2227 if (i >= keys.length) | |
2228 return H.ioore(keys, i); | |
2229 result.$indexSet(0, keys[i], this.deserialize$1(t2.$index(values, i)))
; | |
2230 } | |
2231 return result; | |
2232 }, | |
2233 deserializeSendPort$1: function(x) { | |
2234 var t1, managerId, isolateId, receivePortId, isolate, receivePort, resul
t; | |
2235 t1 = x.length; | |
2236 if (1 >= t1) | |
2237 return H.ioore(x, 1); | |
2238 managerId = x[1]; | |
2239 if (2 >= t1) | |
2240 return H.ioore(x, 2); | |
2241 isolateId = x[2]; | |
2242 if (3 >= t1) | |
2243 return H.ioore(x, 3); | |
2244 receivePortId = x[3]; | |
2245 if (J.$eq$(managerId, init.globalState.currentManagerId)) { | |
2246 isolate = init.globalState.isolates.$index(0, isolateId); | |
2247 if (isolate == null) | |
2248 return; | |
2249 receivePort = isolate.lookup$1(receivePortId); | |
2250 if (receivePort == null) | |
2251 return; | |
2252 result = new H._NativeJsSendPort(receivePort, isolateId); | |
2253 } else | |
2254 result = new H._WorkerSendPort(managerId, receivePortId, isolateId); | |
2255 this.deserializedObjects.push(result); | |
2256 return result; | |
2257 }, | |
2258 deserializeJSObject$1: function(x) { | |
2259 var t1, keys, values, o, t2, i, t3; | |
2260 t1 = x.length; | |
2261 if (1 >= t1) | |
2262 return H.ioore(x, 1); | |
2263 keys = x[1]; | |
2264 if (2 >= t1) | |
2265 return H.ioore(x, 2); | |
2266 values = x[2]; | |
2267 o = {}; | |
2268 this.deserializedObjects.push(o); | |
2269 t1 = J.getInterceptor$asx(keys); | |
2270 t2 = J.getInterceptor$asx(values); | |
2271 i = 0; | |
2272 while (true) { | |
2273 t3 = t1.get$length(keys); | |
2274 if (typeof t3 !== "number") | |
2275 return H.iae(t3); | |
2276 if (!(i < t3)) | |
2277 break; | |
2278 o[t1.$index(keys, i)] = this.deserialize$1(t2.$index(values, i)); | |
2279 ++i; | |
2280 } | |
2281 return o; | |
2282 } | |
2283 } | |
2284 }], ["_js_helper", "dart:_js_helper",, H, { | |
2285 "^": "", | |
2286 getType: function(index) { | |
2287 return init.types[index]; | |
2288 }, | |
2289 isJsIndexable: function(object, record) { | |
2290 var result; | |
2291 if (record != null) { | |
2292 result = record.x; | |
2293 if (result != null) | |
2294 return result; | |
2295 } | |
2296 return !!J.getInterceptor(object).$isJavaScriptIndexingBehavior; | |
2297 }, | |
2298 S: function(value) { | |
2299 var res; | |
2300 if (typeof value === "string") | |
2301 return value; | |
2302 if (typeof value === "number") { | |
2303 if (value !== 0) | |
2304 return "" + value; | |
2305 } else if (true === value) | |
2306 return "true"; | |
2307 else if (false === value) | |
2308 return "false"; | |
2309 else if (value == null) | |
2310 return "null"; | |
2311 res = J.toString$0$(value); | |
2312 if (typeof res !== "string") | |
2313 throw H.wrapException(H.argumentErrorValue(value)); | |
2314 return res; | |
2315 }, | |
2316 Primitives_objectHashCode: function(object) { | |
2317 var hash = object.$identityHash; | |
2318 if (hash == null) { | |
2319 hash = Math.random() * 0x3fffffff | 0; | |
2320 object.$identityHash = hash; | |
2321 } | |
2322 return hash; | |
2323 }, | |
2324 Primitives__parseIntError: function(source, handleError) { | |
2325 throw H.wrapException(new P.FormatException(source, null, null)); | |
2326 }, | |
2327 Primitives_parseInt: function(source, radix, handleError) { | |
2328 var match, decimalMatch, maxCharCode, digitsPart, t1, i; | |
2329 H.checkString(source); | |
2330 match = /^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i.exec(source); | |
2331 if (match == null) | |
2332 return H.Primitives__parseIntError(source, handleError); | |
2333 if (3 >= match.length) | |
2334 return H.ioore(match, 3); | |
2335 decimalMatch = match[3]; | |
2336 if (radix == null) { | |
2337 if (decimalMatch != null) | |
2338 return parseInt(source, 10); | |
2339 if (match[2] != null) | |
2340 return parseInt(source, 16); | |
2341 return H.Primitives__parseIntError(source, handleError); | |
2342 } | |
2343 if (radix < 2 || radix > 36) | |
2344 throw H.wrapException(P.RangeError$range(radix, 2, 36, "radix", null)); | |
2345 if (radix === 10 && decimalMatch != null) | |
2346 return parseInt(source, 10); | |
2347 if (radix < 10 || decimalMatch == null) { | |
2348 maxCharCode = radix <= 10 ? 47 + radix : 86 + radix; | |
2349 digitsPart = match[1]; | |
2350 for (t1 = digitsPart.length, i = 0; i < t1; ++i) | |
2351 if ((C.JSString_methods.codeUnitAt$1(digitsPart, i) | 32) > maxCharCod
e) | |
2352 return H.Primitives__parseIntError(source, handleError); | |
2353 } | |
2354 return parseInt(source, radix); | |
2355 }, | |
2356 Primitives_objectTypeName: function(object) { | |
2357 var $name, decompiled; | |
2358 $name = C.JS_CONST_8ZY(J.getInterceptor(object)); | |
2359 if ($name === "Object") { | |
2360 decompiled = String(object.constructor).match(/^\s*function\s*([\w$]*)\s
*\(/)[1]; | |
2361 if (typeof decompiled === "string") | |
2362 $name = /^\w+$/.test(decompiled) ? decompiled : $name; | |
2363 } | |
2364 if ($name.length > 1 && C.JSString_methods.codeUnitAt$1($name, 0) === 36) | |
2365 $name = C.JSString_methods.substring$1($name, 1); | |
2366 return ($name + H.joinArguments(H.getRuntimeTypeInfo(object), 0, null)).re
place(/[^<,> ]+/g, function(m) { | |
2367 return init.mangledGlobalNames[m] || m; | |
2368 }); | |
2369 }, | |
2370 Primitives_objectToHumanReadableString: function(object) { | |
2371 return "Instance of '" + H.Primitives_objectTypeName(object) + "'"; | |
2372 }, | |
2373 Primitives_currentUri: function() { | |
2374 if (!!self.location) | |
2375 return self.location.href; | |
2376 return; | |
2377 }, | |
2378 Primitives__fromCharCodeApply: function(array) { | |
2379 var end, result, i, i0, chunkEnd; | |
2380 end = array.length; | |
2381 if (end <= 500) | |
2382 return String.fromCharCode.apply(null, array); | |
2383 for (result = "", i = 0; i < end; i = i0) { | |
2384 i0 = i + 500; | |
2385 chunkEnd = i0 < end ? i0 : end; | |
2386 result += String.fromCharCode.apply(null, array.slice(i, chunkEnd)); | |
2387 } | |
2388 return result; | |
2389 }, | |
2390 Primitives_stringFromCodePoints: function(codePoints) { | |
2391 var a, t1, _i, i; | |
2392 a = []; | |
2393 a.$builtinTypeInfo = [P.$int]; | |
2394 for (t1 = codePoints.length, _i = 0; _i < codePoints.length; codePoints.le
ngth === t1 || (0, H.throwConcurrentModificationError)(codePoints), ++_i) { | |
2395 i = codePoints[_i]; | |
2396 if (typeof i !== "number" || Math.floor(i) !== i) | |
2397 throw H.wrapException(H.argumentErrorValue(i)); | |
2398 if (i <= 65535) | |
2399 a.push(i); | |
2400 else if (i <= 1114111) { | |
2401 a.push(55296 + (C.JSInt_methods._shrOtherPositive$1(i - 65536, 10) & 1
023)); | |
2402 a.push(56320 + (i & 1023)); | |
2403 } else | |
2404 throw H.wrapException(H.argumentErrorValue(i)); | |
2405 } | |
2406 return H.Primitives__fromCharCodeApply(a); | |
2407 }, | |
2408 Primitives_stringFromCharCodes: function(charCodes) { | |
2409 var t1, _i, t2, i; | |
2410 for (t1 = charCodes.length, _i = 0; t2 = charCodes.length, _i < t2; t2 ===
t1 || (0, H.throwConcurrentModificationError)(charCodes), ++_i) { | |
2411 i = charCodes[_i]; | |
2412 if (typeof i !== "number" || Math.floor(i) !== i) | |
2413 throw H.wrapException(H.argumentErrorValue(i)); | |
2414 if (i < 0) | |
2415 throw H.wrapException(H.argumentErrorValue(i)); | |
2416 if (i > 65535) | |
2417 return H.Primitives_stringFromCodePoints(charCodes); | |
2418 } | |
2419 return H.Primitives__fromCharCodeApply(charCodes); | |
2420 }, | |
2421 Primitives_stringFromCharCode: function(charCode) { | |
2422 var bits; | |
2423 if (0 <= charCode) { | |
2424 if (charCode <= 65535) | |
2425 return String.fromCharCode(charCode); | |
2426 if (charCode <= 1114111) { | |
2427 bits = charCode - 65536; | |
2428 return String.fromCharCode((55296 | C.JSInt_methods._shrOtherPositive$
1(bits, 10)) >>> 0, 56320 | bits & 1023); | |
2429 } | |
2430 } | |
2431 throw H.wrapException(P.RangeError$range(charCode, 0, 1114111, null, null)
); | |
2432 }, | |
2433 Primitives_getProperty: function(object, key) { | |
2434 if (object == null || typeof object === "boolean" || typeof object === "nu
mber" || typeof object === "string") | |
2435 throw H.wrapException(H.argumentErrorValue(object)); | |
2436 return object[key]; | |
2437 }, | |
2438 Primitives_setProperty: function(object, key, value) { | |
2439 if (object == null || typeof object === "boolean" || typeof object === "nu
mber" || typeof object === "string") | |
2440 throw H.wrapException(H.argumentErrorValue(object)); | |
2441 object[key] = value; | |
2442 }, | |
2443 iae: function(argument) { | |
2444 throw H.wrapException(H.argumentErrorValue(argument)); | |
2445 }, | |
2446 ioore: function(receiver, index) { | |
2447 if (receiver == null) | |
2448 J.get$length$asx(receiver); | |
2449 throw H.wrapException(H.diagnoseIndexError(receiver, index)); | |
2450 }, | |
2451 diagnoseIndexError: function(indexable, index) { | |
2452 var $length, t1; | |
2453 if (typeof index !== "number" || Math.floor(index) !== index) | |
2454 return new P.ArgumentError(true, index, "index", null); | |
2455 $length = J.get$length$asx(indexable); | |
2456 if (!(index < 0)) { | |
2457 if (typeof $length !== "number") | |
2458 return H.iae($length); | |
2459 t1 = index >= $length; | |
2460 } else | |
2461 t1 = true; | |
2462 if (t1) | |
2463 return P.IndexError$(index, indexable, "index", null, $length); | |
2464 return P.RangeError$value(index, "index", null); | |
2465 }, | |
2466 diagnoseRangeError: function(start, end, $length) { | |
2467 if (start > $length) | |
2468 return new P.RangeError(0, $length, true, start, "start", "Invalid value
"); | |
2469 if (end != null) | |
2470 if (end < start || end > $length) | |
2471 return new P.RangeError(start, $length, true, end, "end", "Invalid val
ue"); | |
2472 return new P.ArgumentError(true, end, "end", null); | |
2473 }, | |
2474 argumentErrorValue: function(object) { | |
2475 return new P.ArgumentError(true, object, null, null); | |
2476 }, | |
2477 checkInt: function(value) { | |
2478 if (typeof value !== "number" || Math.floor(value) !== value) | |
2479 throw H.wrapException(H.argumentErrorValue(value)); | |
2480 return value; | |
2481 }, | |
2482 checkString: function(value) { | |
2483 if (typeof value !== "string") | |
2484 throw H.wrapException(H.argumentErrorValue(value)); | |
2485 return value; | |
2486 }, | |
2487 wrapException: function(ex) { | |
2488 var wrapper; | |
2489 if (ex == null) | |
2490 ex = new P.NullThrownError(); | |
2491 wrapper = new Error(); | |
2492 wrapper.dartException = ex; | |
2493 if ("defineProperty" in Object) { | |
2494 Object.defineProperty(wrapper, "message", {get: H.toStringWrapper}); | |
2495 wrapper.name = ""; | |
2496 } else | |
2497 wrapper.toString = H.toStringWrapper; | |
2498 return wrapper; | |
2499 }, | |
2500 toStringWrapper: function() { | |
2501 return J.toString$0$(this.dartException); | |
2502 }, | |
2503 throwExpression: function(ex) { | |
2504 throw H.wrapException(ex); | |
2505 }, | |
2506 throwConcurrentModificationError: function(collection) { | |
2507 throw H.wrapException(new P.ConcurrentModificationError(collection)); | |
2508 }, | |
2509 unwrapException: function(ex) { | |
2510 var t1, message, number, ieErrorCode, t2, nsme, notClosure, nullCall, null
LiteralCall, undefCall, undefLiteralCall, nullProperty, undefProperty, undefLite
ralProperty, match; | |
2511 t1 = new H.unwrapException_saveStackTrace(ex); | |
2512 if (ex == null) | |
2513 return; | |
2514 if (ex instanceof H.ExceptionAndStackTrace) | |
2515 return t1.call$1(ex.dartException); | |
2516 if (typeof ex !== "object") | |
2517 return ex; | |
2518 if ("dartException" in ex) | |
2519 return t1.call$1(ex.dartException); | |
2520 else if (!("message" in ex)) | |
2521 return ex; | |
2522 message = ex.message; | |
2523 if ("number" in ex && typeof ex.number == "number") { | |
2524 number = ex.number; | |
2525 ieErrorCode = number & 65535; | |
2526 if ((C.JSInt_methods._shrOtherPositive$1(number, 16) & 8191) === 10) | |
2527 switch (ieErrorCode) { | |
2528 case 438: | |
2529 return t1.call$1(H.JsNoSuchMethodError$(H.S(message) + " (Error "
+ ieErrorCode + ")", null)); | |
2530 case 445: | |
2531 case 5007: | |
2532 t2 = H.S(message) + " (Error " + ieErrorCode + ")"; | |
2533 return t1.call$1(new H.NullError(t2, null)); | |
2534 } | |
2535 } | |
2536 if (ex instanceof TypeError) { | |
2537 nsme = $.$get$TypeErrorDecoder_noSuchMethodPattern(); | |
2538 notClosure = $.$get$TypeErrorDecoder_notClosurePattern(); | |
2539 nullCall = $.$get$TypeErrorDecoder_nullCallPattern(); | |
2540 nullLiteralCall = $.$get$TypeErrorDecoder_nullLiteralCallPattern(); | |
2541 undefCall = $.$get$TypeErrorDecoder_undefinedCallPattern(); | |
2542 undefLiteralCall = $.$get$TypeErrorDecoder_undefinedLiteralCallPattern()
; | |
2543 nullProperty = $.$get$TypeErrorDecoder_nullPropertyPattern(); | |
2544 $.$get$TypeErrorDecoder_nullLiteralPropertyPattern(); | |
2545 undefProperty = $.$get$TypeErrorDecoder_undefinedPropertyPattern(); | |
2546 undefLiteralProperty = $.$get$TypeErrorDecoder_undefinedLiteralPropertyP
attern(); | |
2547 match = nsme.matchTypeError$1(message); | |
2548 if (match != null) | |
2549 return t1.call$1(H.JsNoSuchMethodError$(message, match)); | |
2550 else { | |
2551 match = notClosure.matchTypeError$1(message); | |
2552 if (match != null) { | |
2553 match.method = "call"; | |
2554 return t1.call$1(H.JsNoSuchMethodError$(message, match)); | |
2555 } else { | |
2556 match = nullCall.matchTypeError$1(message); | |
2557 if (match == null) { | |
2558 match = nullLiteralCall.matchTypeError$1(message); | |
2559 if (match == null) { | |
2560 match = undefCall.matchTypeError$1(message); | |
2561 if (match == null) { | |
2562 match = undefLiteralCall.matchTypeError$1(message); | |
2563 if (match == null) { | |
2564 match = nullProperty.matchTypeError$1(message); | |
2565 if (match == null) { | |
2566 match = nullLiteralCall.matchTypeError$1(message); | |
2567 if (match == null) { | |
2568 match = undefProperty.matchTypeError$1(message); | |
2569 if (match == null) { | |
2570 match = undefLiteralProperty.matchTypeError$1(message)
; | |
2571 t2 = match != null; | |
2572 } else | |
2573 t2 = true; | |
2574 } else | |
2575 t2 = true; | |
2576 } else | |
2577 t2 = true; | |
2578 } else | |
2579 t2 = true; | |
2580 } else | |
2581 t2 = true; | |
2582 } else | |
2583 t2 = true; | |
2584 } else | |
2585 t2 = true; | |
2586 if (t2) | |
2587 return t1.call$1(new H.NullError(message, match == null ? null : m
atch.method)); | |
2588 } | |
2589 } | |
2590 return t1.call$1(new H.UnknownJsTypeError(typeof message === "string" ?
message : "")); | |
2591 } | |
2592 if (ex instanceof RangeError) { | |
2593 if (typeof message === "string" && message.indexOf("call stack") !== -1) | |
2594 return new P.StackOverflowError(); | |
2595 message = function(ex) { | |
2596 try { | |
2597 return String(ex); | |
2598 } catch (e) { | |
2599 } | |
2600 return null; | |
2601 }(ex); | |
2602 return t1.call$1(new P.ArgumentError(false, null, null, typeof message =
== "string" ? message.replace(/^RangeError:\s*/, "") : message)); | |
2603 } | |
2604 if (typeof InternalError == "function" && ex instanceof InternalError) | |
2605 if (typeof message === "string" && message === "too much recursion") | |
2606 return new P.StackOverflowError(); | |
2607 return ex; | |
2608 }, | |
2609 getTraceFromException: function(exception) { | |
2610 var trace; | |
2611 if (exception instanceof H.ExceptionAndStackTrace) | |
2612 return exception.stackTrace; | |
2613 if (exception == null) | |
2614 return new H._StackTrace(exception, null); | |
2615 trace = exception.$cachedTrace; | |
2616 if (trace != null) | |
2617 return trace; | |
2618 return exception.$cachedTrace = new H._StackTrace(exception, null); | |
2619 }, | |
2620 objectHashCode: function(object) { | |
2621 if (object == null || typeof object != 'object') | |
2622 return J.get$hashCode$(object); | |
2623 else | |
2624 return H.Primitives_objectHashCode(object); | |
2625 }, | |
2626 fillLiteralMap: function(keyValuePairs, result) { | |
2627 var $length, index, index0, index1; | |
2628 $length = keyValuePairs.length; | |
2629 for (index = 0; index < $length; index = index1) { | |
2630 index0 = index + 1; | |
2631 index1 = index0 + 1; | |
2632 result.$indexSet(0, keyValuePairs[index], keyValuePairs[index0]); | |
2633 } | |
2634 return result; | |
2635 }, | |
2636 invokeClosure: function(closure, isolate, numberOfArguments, arg1, arg2, arg
3, arg4) { | |
2637 var t1 = J.getInterceptor(numberOfArguments); | |
2638 if (t1.$eq(numberOfArguments, 0)) | |
2639 return H._callInIsolate(isolate, new H.invokeClosure_closure(closure)); | |
2640 else if (t1.$eq(numberOfArguments, 1)) | |
2641 return H._callInIsolate(isolate, new H.invokeClosure_closure0(closure, a
rg1)); | |
2642 else if (t1.$eq(numberOfArguments, 2)) | |
2643 return H._callInIsolate(isolate, new H.invokeClosure_closure1(closure, a
rg1, arg2)); | |
2644 else if (t1.$eq(numberOfArguments, 3)) | |
2645 return H._callInIsolate(isolate, new H.invokeClosure_closure2(closure, a
rg1, arg2, arg3)); | |
2646 else if (t1.$eq(numberOfArguments, 4)) | |
2647 return H._callInIsolate(isolate, new H.invokeClosure_closure3(closure, a
rg1, arg2, arg3, arg4)); | |
2648 else | |
2649 throw H.wrapException(P.Exception_Exception("Unsupported number of argum
ents for wrapped closure")); | |
2650 }, | |
2651 convertDartClosureToJS: function(closure, arity) { | |
2652 var $function; | |
2653 if (closure == null) | |
2654 return; | |
2655 $function = closure.$identity; | |
2656 if (!!$function) | |
2657 return $function; | |
2658 $function = function(closure, arity, context, invoke) { | |
2659 return function(a1, a2, a3, a4) { | |
2660 return invoke(closure, context, arity, a1, a2, a3, a4); | |
2661 }; | |
2662 }(closure, arity, init.globalState.currentContext, H.invokeClosure); | |
2663 closure.$identity = $function; | |
2664 return $function; | |
2665 }, | |
2666 Closure_fromTearOff: function(receiver, functions, reflectionInfo, isStatic,
jsArguments, propertyName) { | |
2667 var $function, callName, functionType, $prototype, $constructor, t1, isInt
ercepted, trampoline, signatureFunction, getReceiver, i, stub, stubCallName, t2; | |
2668 $function = functions[0]; | |
2669 callName = $function.$callName; | |
2670 if (!!J.getInterceptor(reflectionInfo).$isList) { | |
2671 $function.$reflectionInfo = reflectionInfo; | |
2672 functionType = H.ReflectionInfo_ReflectionInfo($function).functionType; | |
2673 } else | |
2674 functionType = reflectionInfo; | |
2675 $prototype = isStatic ? Object.create(new H.StaticClosure().constructor.pr
ototype) : Object.create(new H.BoundClosure(null, null, null, null).constructor.
prototype); | |
2676 $prototype.$initialize = $prototype.constructor; | |
2677 if (isStatic) | |
2678 $constructor = function() { | |
2679 this.$initialize(); | |
2680 }; | |
2681 else { | |
2682 t1 = $.Closure_functionCounter; | |
2683 $.Closure_functionCounter = J.$add$ns(t1, 1); | |
2684 t1 = new Function("a,b,c,d", "this.$initialize(a,b,c,d);" + t1); | |
2685 $constructor = t1; | |
2686 } | |
2687 $prototype.constructor = $constructor; | |
2688 $constructor.prototype = $prototype; | |
2689 t1 = !isStatic; | |
2690 if (t1) { | |
2691 isIntercepted = jsArguments.length == 1 && true; | |
2692 trampoline = H.Closure_forwardCallTo(receiver, $function, isIntercepted)
; | |
2693 trampoline.$reflectionInfo = reflectionInfo; | |
2694 } else { | |
2695 $prototype.$static_name = propertyName; | |
2696 trampoline = $function; | |
2697 isIntercepted = false; | |
2698 } | |
2699 if (typeof functionType == "number") | |
2700 signatureFunction = function(t) { | |
2701 return function() { | |
2702 return H.getType(t); | |
2703 }; | |
2704 }(functionType); | |
2705 else if (t1 && typeof functionType == "function") { | |
2706 getReceiver = isIntercepted ? H.BoundClosure_receiverOf : H.BoundClosure
_selfOf; | |
2707 signatureFunction = function(f, r) { | |
2708 return function() { | |
2709 return f.apply({$receiver: r(this)}, arguments); | |
2710 }; | |
2711 }(functionType, getReceiver); | |
2712 } else | |
2713 throw H.wrapException("Error in reflectionInfo."); | |
2714 $prototype.$signature = signatureFunction; | |
2715 $prototype[callName] = trampoline; | |
2716 for (t1 = functions.length, i = 1; i < t1; ++i) { | |
2717 stub = functions[i]; | |
2718 stubCallName = stub.$callName; | |
2719 if (stubCallName != null) { | |
2720 t2 = isStatic ? stub : H.Closure_forwardCallTo(receiver, stub, isInter
cepted); | |
2721 $prototype[stubCallName] = t2; | |
2722 } | |
2723 } | |
2724 $prototype["call*"] = trampoline; | |
2725 $prototype.$requiredArgCount = $function.$requiredArgCount; | |
2726 $prototype.$defaultValues = $function.$defaultValues; | |
2727 return $constructor; | |
2728 }, | |
2729 Closure_cspForwardCall: function(arity, isSuperCall, stubName, $function) { | |
2730 var getSelf = H.BoundClosure_selfOf; | |
2731 switch (isSuperCall ? -1 : arity) { | |
2732 case 0: | |
2733 return function(n, S) { | |
2734 return function() { | |
2735 return S(this)[n](); | |
2736 }; | |
2737 }(stubName, getSelf); | |
2738 case 1: | |
2739 return function(n, S) { | |
2740 return function(a) { | |
2741 return S(this)[n](a); | |
2742 }; | |
2743 }(stubName, getSelf); | |
2744 case 2: | |
2745 return function(n, S) { | |
2746 return function(a, b) { | |
2747 return S(this)[n](a, b); | |
2748 }; | |
2749 }(stubName, getSelf); | |
2750 case 3: | |
2751 return function(n, S) { | |
2752 return function(a, b, c) { | |
2753 return S(this)[n](a, b, c); | |
2754 }; | |
2755 }(stubName, getSelf); | |
2756 case 4: | |
2757 return function(n, S) { | |
2758 return function(a, b, c, d) { | |
2759 return S(this)[n](a, b, c, d); | |
2760 }; | |
2761 }(stubName, getSelf); | |
2762 case 5: | |
2763 return function(n, S) { | |
2764 return function(a, b, c, d, e) { | |
2765 return S(this)[n](a, b, c, d, e); | |
2766 }; | |
2767 }(stubName, getSelf); | |
2768 default: | |
2769 return function(f, s) { | |
2770 return function() { | |
2771 return f.apply(s(this), arguments); | |
2772 }; | |
2773 }($function, getSelf); | |
2774 } | |
2775 }, | |
2776 Closure_forwardCallTo: function(receiver, $function, isIntercepted) { | |
2777 var stubName, arity, lookedUpFunction, t1, t2, $arguments; | |
2778 if (isIntercepted) | |
2779 return H.Closure_forwardInterceptedCallTo(receiver, $function); | |
2780 stubName = $function.$stubName; | |
2781 arity = $function.length; | |
2782 lookedUpFunction = receiver[stubName]; | |
2783 t1 = $function == null ? lookedUpFunction == null : $function === lookedUp
Function; | |
2784 t2 = !t1 || arity >= 27; | |
2785 if (t2) | |
2786 return H.Closure_cspForwardCall(arity, !t1, stubName, $function); | |
2787 if (arity === 0) { | |
2788 t1 = $.BoundClosure_selfFieldNameCache; | |
2789 if (t1 == null) { | |
2790 t1 = H.BoundClosure_computeFieldNamed("self"); | |
2791 $.BoundClosure_selfFieldNameCache = t1; | |
2792 } | |
2793 t1 = "return function(){return this." + H.S(t1) + "." + H.S(stubName) +
"();"; | |
2794 t2 = $.Closure_functionCounter; | |
2795 $.Closure_functionCounter = J.$add$ns(t2, 1); | |
2796 return new Function(t1 + H.S(t2) + "}")(); | |
2797 } | |
2798 $arguments = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity).join(
","); | |
2799 t1 = "return function(" + $arguments + "){return this."; | |
2800 t2 = $.BoundClosure_selfFieldNameCache; | |
2801 if (t2 == null) { | |
2802 t2 = H.BoundClosure_computeFieldNamed("self"); | |
2803 $.BoundClosure_selfFieldNameCache = t2; | |
2804 } | |
2805 t2 = t1 + H.S(t2) + "." + H.S(stubName) + "(" + $arguments + ");"; | |
2806 t1 = $.Closure_functionCounter; | |
2807 $.Closure_functionCounter = J.$add$ns(t1, 1); | |
2808 return new Function(t2 + H.S(t1) + "}")(); | |
2809 }, | |
2810 Closure_cspForwardInterceptedCall: function(arity, isSuperCall, $name, $func
tion) { | |
2811 var getSelf, getReceiver; | |
2812 getSelf = H.BoundClosure_selfOf; | |
2813 getReceiver = H.BoundClosure_receiverOf; | |
2814 switch (isSuperCall ? -1 : arity) { | |
2815 case 0: | |
2816 throw H.wrapException(new H.RuntimeError("Intercepted function with no
arguments.")); | |
2817 case 1: | |
2818 return function(n, s, r) { | |
2819 return function() { | |
2820 return s(this)[n](r(this)); | |
2821 }; | |
2822 }($name, getSelf, getReceiver); | |
2823 case 2: | |
2824 return function(n, s, r) { | |
2825 return function(a) { | |
2826 return s(this)[n](r(this), a); | |
2827 }; | |
2828 }($name, getSelf, getReceiver); | |
2829 case 3: | |
2830 return function(n, s, r) { | |
2831 return function(a, b) { | |
2832 return s(this)[n](r(this), a, b); | |
2833 }; | |
2834 }($name, getSelf, getReceiver); | |
2835 case 4: | |
2836 return function(n, s, r) { | |
2837 return function(a, b, c) { | |
2838 return s(this)[n](r(this), a, b, c); | |
2839 }; | |
2840 }($name, getSelf, getReceiver); | |
2841 case 5: | |
2842 return function(n, s, r) { | |
2843 return function(a, b, c, d) { | |
2844 return s(this)[n](r(this), a, b, c, d); | |
2845 }; | |
2846 }($name, getSelf, getReceiver); | |
2847 case 6: | |
2848 return function(n, s, r) { | |
2849 return function(a, b, c, d, e) { | |
2850 return s(this)[n](r(this), a, b, c, d, e); | |
2851 }; | |
2852 }($name, getSelf, getReceiver); | |
2853 default: | |
2854 return function(f, s, r, a) { | |
2855 return function() { | |
2856 a = [r(this)]; | |
2857 Array.prototype.push.apply(a, arguments); | |
2858 return f.apply(s(this), a); | |
2859 }; | |
2860 }($function, getSelf, getReceiver); | |
2861 } | |
2862 }, | |
2863 Closure_forwardInterceptedCallTo: function(receiver, $function) { | |
2864 var selfField, t1, stubName, arity, lookedUpFunction, t2, t3, $arguments; | |
2865 selfField = H.BoundClosure_selfFieldName(); | |
2866 t1 = $.BoundClosure_receiverFieldNameCache; | |
2867 if (t1 == null) { | |
2868 t1 = H.BoundClosure_computeFieldNamed("receiver"); | |
2869 $.BoundClosure_receiverFieldNameCache = t1; | |
2870 } | |
2871 stubName = $function.$stubName; | |
2872 arity = $function.length; | |
2873 lookedUpFunction = receiver[stubName]; | |
2874 t2 = $function == null ? lookedUpFunction == null : $function === lookedUp
Function; | |
2875 t3 = !t2 || arity >= 28; | |
2876 if (t3) | |
2877 return H.Closure_cspForwardInterceptedCall(arity, !t2, stubName, $functi
on); | |
2878 if (arity === 1) { | |
2879 t1 = "return function(){return this." + H.S(selfField) + "." + H.S(stubN
ame) + "(this." + H.S(t1) + ");"; | |
2880 t2 = $.Closure_functionCounter; | |
2881 $.Closure_functionCounter = J.$add$ns(t2, 1); | |
2882 return new Function(t1 + H.S(t2) + "}")(); | |
2883 } | |
2884 $arguments = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity - 1).j
oin(","); | |
2885 t1 = "return function(" + $arguments + "){return this." + H.S(selfField) +
"." + H.S(stubName) + "(this." + H.S(t1) + ", " + $arguments + ");"; | |
2886 t2 = $.Closure_functionCounter; | |
2887 $.Closure_functionCounter = J.$add$ns(t2, 1); | |
2888 return new Function(t1 + H.S(t2) + "}")(); | |
2889 }, | |
2890 closureFromTearOff: function(receiver, functions, reflectionInfo, isStatic,
jsArguments, $name) { | |
2891 var t1; | |
2892 functions.fixed$length = Array; | |
2893 if (!!J.getInterceptor(reflectionInfo).$isList) { | |
2894 reflectionInfo.fixed$length = Array; | |
2895 t1 = reflectionInfo; | |
2896 } else | |
2897 t1 = reflectionInfo; | |
2898 return H.Closure_fromTearOff(receiver, functions, t1, !!isStatic, jsArgume
nts, $name); | |
2899 }, | |
2900 throwCyclicInit: function(staticName) { | |
2901 throw H.wrapException(new P.CyclicInitializationError("Cyclic initializati
on for static " + H.S(staticName))); | |
2902 }, | |
2903 buildFunctionType: function(returnType, parameterTypes, optionalParameterTyp
es) { | |
2904 return new H.RuntimeFunctionType(returnType, parameterTypes, optionalParam
eterTypes, null); | |
2905 }, | |
2906 getDynamicRuntimeType: function() { | |
2907 return C.C_DynamicRuntimeType; | |
2908 }, | |
2909 random64: function() { | |
2910 return (Math.random() * 0x100000000 >>> 0) + (Math.random() * 0x100000000
>>> 0) * 4294967296; | |
2911 }, | |
2912 setRuntimeTypeInfo: function(target, rti) { | |
2913 if (target != null) | |
2914 target.$builtinTypeInfo = rti; | |
2915 return target; | |
2916 }, | |
2917 getRuntimeTypeInfo: function(target) { | |
2918 if (target == null) | |
2919 return; | |
2920 return target.$builtinTypeInfo; | |
2921 }, | |
2922 getRuntimeTypeArguments: function(target, substitutionName) { | |
2923 return H.substitute(target["$as" + H.S(substitutionName)], H.getRuntimeTyp
eInfo(target)); | |
2924 }, | |
2925 getRuntimeTypeArgument: function(target, substitutionName, index) { | |
2926 var $arguments = H.getRuntimeTypeArguments(target, substitutionName); | |
2927 return $arguments == null ? null : $arguments[index]; | |
2928 }, | |
2929 getTypeArgumentByIndex: function(target, index) { | |
2930 var rti = H.getRuntimeTypeInfo(target); | |
2931 return rti == null ? null : rti[index]; | |
2932 }, | |
2933 runtimeTypeToString: function(rti, onTypeVariable) { | |
2934 if (rti == null) | |
2935 return "dynamic"; | |
2936 else if (typeof rti === "object" && rti !== null && rti.constructor === Ar
ray) | |
2937 return rti[0].builtin$cls + H.joinArguments(rti, 1, onTypeVariable); | |
2938 else if (typeof rti == "function") | |
2939 return rti.builtin$cls; | |
2940 else if (typeof rti === "number" && Math.floor(rti) === rti) | |
2941 return C.JSInt_methods.toString$0(rti); | |
2942 else | |
2943 return; | |
2944 }, | |
2945 joinArguments: function(types, startIndex, onTypeVariable) { | |
2946 var buffer, index, firstArgument, allDynamic, t1, argument; | |
2947 if (types == null) | |
2948 return ""; | |
2949 buffer = new P.StringBuffer(""); | |
2950 for (index = startIndex, firstArgument = true, allDynamic = true, t1 = "";
index < types.length; ++index) { | |
2951 if (firstArgument) | |
2952 firstArgument = false; | |
2953 else | |
2954 buffer._contents = t1 + ", "; | |
2955 argument = types[index]; | |
2956 if (argument != null) | |
2957 allDynamic = false; | |
2958 t1 = buffer._contents += H.S(H.runtimeTypeToString(argument, onTypeVaria
ble)); | |
2959 } | |
2960 return allDynamic ? "" : "<" + H.S(buffer) + ">"; | |
2961 }, | |
2962 getRuntimeTypeString: function(object) { | |
2963 var className = J.getInterceptor(object).constructor.builtin$cls; | |
2964 if (object == null) | |
2965 return className; | |
2966 return className + H.joinArguments(object.$builtinTypeInfo, 0, null); | |
2967 }, | |
2968 substitute: function(substitution, $arguments) { | |
2969 if (typeof substitution == "function") { | |
2970 substitution = H.invokeOn(substitution, null, $arguments); | |
2971 if (substitution == null || typeof substitution === "object" && substitu
tion !== null && substitution.constructor === Array) | |
2972 $arguments = substitution; | |
2973 else if (typeof substitution == "function") | |
2974 $arguments = H.invokeOn(substitution, null, $arguments); | |
2975 } | |
2976 return $arguments; | |
2977 }, | |
2978 areSubtypes: function(s, t) { | |
2979 var len, i; | |
2980 if (s == null || t == null) | |
2981 return true; | |
2982 len = s.length; | |
2983 for (i = 0; i < len; ++i) | |
2984 if (!H.isSubtype(s[i], t[i])) | |
2985 return false; | |
2986 return true; | |
2987 }, | |
2988 computeSignature: function(signature, context, contextName) { | |
2989 return H.invokeOn(signature, context, H.getRuntimeTypeArguments(context, c
ontextName)); | |
2990 }, | |
2991 isSubtype: function(s, t) { | |
2992 var t1, typeOfS, t2, typeOfT, substitution; | |
2993 if (s === t) | |
2994 return true; | |
2995 if (s == null || t == null) | |
2996 return true; | |
2997 if ('func' in t) | |
2998 return H.isFunctionSubtype(s, t); | |
2999 if ('func' in s) | |
3000 return t.builtin$cls === "Function"; | |
3001 t1 = typeof s === "object" && s !== null && s.constructor === Array; | |
3002 typeOfS = t1 ? s[0] : s; | |
3003 t2 = typeof t === "object" && t !== null && t.constructor === Array; | |
3004 typeOfT = t2 ? t[0] : t; | |
3005 if (typeOfT !== typeOfS) { | |
3006 if (!('$is' + H.runtimeTypeToString(typeOfT, null) in typeOfS.prototype)
) | |
3007 return false; | |
3008 substitution = typeOfS.prototype["$as" + H.S(H.runtimeTypeToString(typeO
fT, null))]; | |
3009 } else | |
3010 substitution = null; | |
3011 if (!t1 && substitution == null || !t2) | |
3012 return true; | |
3013 t1 = t1 ? s.slice(1) : null; | |
3014 t2 = t2 ? t.slice(1) : null; | |
3015 return H.areSubtypes(H.substitute(substitution, t1), t2); | |
3016 }, | |
3017 areAssignable: function(s, t, allowShorter) { | |
3018 var t1, sLength, tLength, i, t2; | |
3019 t1 = t == null; | |
3020 if (t1 && s == null) | |
3021 return true; | |
3022 if (t1) | |
3023 return allowShorter; | |
3024 if (s == null) | |
3025 return false; | |
3026 sLength = s.length; | |
3027 tLength = t.length; | |
3028 if (allowShorter) { | |
3029 if (sLength < tLength) | |
3030 return false; | |
3031 } else if (sLength !== tLength) | |
3032 return false; | |
3033 for (i = 0; i < tLength; ++i) { | |
3034 t1 = s[i]; | |
3035 t2 = t[i]; | |
3036 if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1))) | |
3037 return false; | |
3038 } | |
3039 return true; | |
3040 }, | |
3041 areAssignableMaps: function(s, t) { | |
3042 var t1, names, i, $name, tType, sType; | |
3043 if (t == null) | |
3044 return true; | |
3045 if (s == null) | |
3046 return false; | |
3047 t1 = Object.getOwnPropertyNames(t); | |
3048 t1.fixed$length = Array; | |
3049 names = t1; | |
3050 for (t1 = names.length, i = 0; i < t1; ++i) { | |
3051 $name = names[i]; | |
3052 if (!Object.hasOwnProperty.call(s, $name)) | |
3053 return false; | |
3054 tType = t[$name]; | |
3055 sType = s[$name]; | |
3056 if (!(H.isSubtype(tType, sType) || H.isSubtype(sType, tType))) | |
3057 return false; | |
3058 } | |
3059 return true; | |
3060 }, | |
3061 isFunctionSubtype: function(s, t) { | |
3062 var sReturnType, tReturnType, sParameterTypes, tParameterTypes, sOptionalP
arameterTypes, tOptionalParameterTypes, sParametersLen, tParametersLen, sOptiona
lParametersLen, tOptionalParametersLen, pos, t1, t2, tPos, sPos; | |
3063 if (!('func' in s)) | |
3064 return false; | |
3065 if ("void" in s) { | |
3066 if (!("void" in t) && "ret" in t) | |
3067 return false; | |
3068 } else if (!("void" in t)) { | |
3069 sReturnType = s.ret; | |
3070 tReturnType = t.ret; | |
3071 if (!(H.isSubtype(sReturnType, tReturnType) || H.isSubtype(tReturnType,
sReturnType))) | |
3072 return false; | |
3073 } | |
3074 sParameterTypes = s.args; | |
3075 tParameterTypes = t.args; | |
3076 sOptionalParameterTypes = s.opt; | |
3077 tOptionalParameterTypes = t.opt; | |
3078 sParametersLen = sParameterTypes != null ? sParameterTypes.length : 0; | |
3079 tParametersLen = tParameterTypes != null ? tParameterTypes.length : 0; | |
3080 sOptionalParametersLen = sOptionalParameterTypes != null ? sOptionalParame
terTypes.length : 0; | |
3081 tOptionalParametersLen = tOptionalParameterTypes != null ? tOptionalParame
terTypes.length : 0; | |
3082 if (sParametersLen > tParametersLen) | |
3083 return false; | |
3084 if (sParametersLen + sOptionalParametersLen < tParametersLen + tOptionalPa
rametersLen) | |
3085 return false; | |
3086 if (sParametersLen === tParametersLen) { | |
3087 if (!H.areAssignable(sParameterTypes, tParameterTypes, false)) | |
3088 return false; | |
3089 if (!H.areAssignable(sOptionalParameterTypes, tOptionalParameterTypes, t
rue)) | |
3090 return false; | |
3091 } else { | |
3092 for (pos = 0; pos < sParametersLen; ++pos) { | |
3093 t1 = sParameterTypes[pos]; | |
3094 t2 = tParameterTypes[pos]; | |
3095 if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1))) | |
3096 return false; | |
3097 } | |
3098 for (tPos = pos, sPos = 0; tPos < tParametersLen; ++sPos, ++tPos) { | |
3099 t1 = sOptionalParameterTypes[sPos]; | |
3100 t2 = tParameterTypes[tPos]; | |
3101 if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1))) | |
3102 return false; | |
3103 } | |
3104 for (tPos = 0; tPos < tOptionalParametersLen; ++sPos, ++tPos) { | |
3105 t1 = sOptionalParameterTypes[sPos]; | |
3106 t2 = tOptionalParameterTypes[tPos]; | |
3107 if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1))) | |
3108 return false; | |
3109 } | |
3110 } | |
3111 return H.areAssignableMaps(s.named, t.named); | |
3112 }, | |
3113 invokeOn: function($function, receiver, $arguments) { | |
3114 return $function.apply(receiver, $arguments); | |
3115 }, | |
3116 toStringForNativeObject: function(obj) { | |
3117 var t1 = $.getTagFunction; | |
3118 return "Instance of " + (t1 == null ? "<Unknown>" : t1.call$1(obj)); | |
3119 }, | |
3120 hashCodeForNativeObject: function(object) { | |
3121 return H.Primitives_objectHashCode(object); | |
3122 }, | |
3123 defineProperty: function(obj, property, value) { | |
3124 Object.defineProperty(obj, property, {value: value, enumerable: false, wri
table: true, configurable: true}); | |
3125 }, | |
3126 lookupAndCacheInterceptor: function(obj) { | |
3127 var tag, record, interceptor, interceptorClass, mark, t1; | |
3128 tag = $.getTagFunction.call$1(obj); | |
3129 record = $.dispatchRecordsForInstanceTags[tag]; | |
3130 if (record != null) { | |
3131 Object.defineProperty(obj, init.dispatchPropertyName, {value: record, en
umerable: false, writable: true, configurable: true}); | |
3132 return record.i; | |
3133 } | |
3134 interceptor = $.interceptorsForUncacheableTags[tag]; | |
3135 if (interceptor != null) | |
3136 return interceptor; | |
3137 interceptorClass = init.interceptorsByTag[tag]; | |
3138 if (interceptorClass == null) { | |
3139 tag = $.alternateTagFunction.call$2(obj, tag); | |
3140 if (tag != null) { | |
3141 record = $.dispatchRecordsForInstanceTags[tag]; | |
3142 if (record != null) { | |
3143 Object.defineProperty(obj, init.dispatchPropertyName, {value: record
, enumerable: false, writable: true, configurable: true}); | |
3144 return record.i; | |
3145 } | |
3146 interceptor = $.interceptorsForUncacheableTags[tag]; | |
3147 if (interceptor != null) | |
3148 return interceptor; | |
3149 interceptorClass = init.interceptorsByTag[tag]; | |
3150 } | |
3151 } | |
3152 if (interceptorClass == null) | |
3153 return; | |
3154 interceptor = interceptorClass.prototype; | |
3155 mark = tag[0]; | |
3156 if (mark === "!") { | |
3157 record = H.makeLeafDispatchRecord(interceptor); | |
3158 $.dispatchRecordsForInstanceTags[tag] = record; | |
3159 Object.defineProperty(obj, init.dispatchPropertyName, {value: record, en
umerable: false, writable: true, configurable: true}); | |
3160 return record.i; | |
3161 } | |
3162 if (mark === "~") { | |
3163 $.interceptorsForUncacheableTags[tag] = interceptor; | |
3164 return interceptor; | |
3165 } | |
3166 if (mark === "-") { | |
3167 t1 = H.makeLeafDispatchRecord(interceptor); | |
3168 Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyN
ame, {value: t1, enumerable: false, writable: true, configurable: true}); | |
3169 return t1.i; | |
3170 } | |
3171 if (mark === "+") | |
3172 return H.patchInteriorProto(obj, interceptor); | |
3173 if (mark === "*") | |
3174 throw H.wrapException(new P.UnimplementedError(tag)); | |
3175 if (init.leafTags[tag] === true) { | |
3176 t1 = H.makeLeafDispatchRecord(interceptor); | |
3177 Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyN
ame, {value: t1, enumerable: false, writable: true, configurable: true}); | |
3178 return t1.i; | |
3179 } else | |
3180 return H.patchInteriorProto(obj, interceptor); | |
3181 }, | |
3182 patchInteriorProto: function(obj, interceptor) { | |
3183 var proto = Object.getPrototypeOf(obj); | |
3184 Object.defineProperty(proto, init.dispatchPropertyName, {value: J.makeDisp
atchRecord(interceptor, proto, null, null), enumerable: false, writable: true, c
onfigurable: true}); | |
3185 return interceptor; | |
3186 }, | |
3187 makeLeafDispatchRecord: function(interceptor) { | |
3188 return J.makeDispatchRecord(interceptor, false, null, !!interceptor.$isJav
aScriptIndexingBehavior); | |
3189 }, | |
3190 makeDefaultDispatchRecord: function(tag, interceptorClass, proto) { | |
3191 var interceptor = interceptorClass.prototype; | |
3192 if (init.leafTags[tag] === true) | |
3193 return J.makeDispatchRecord(interceptor, false, null, !!interceptor.$isJ
avaScriptIndexingBehavior); | |
3194 else | |
3195 return J.makeDispatchRecord(interceptor, proto, null, null); | |
3196 }, | |
3197 initNativeDispatch: function() { | |
3198 if (true === $.initNativeDispatchFlag) | |
3199 return; | |
3200 $.initNativeDispatchFlag = true; | |
3201 H.initNativeDispatchContinue(); | |
3202 }, | |
3203 initNativeDispatchContinue: function() { | |
3204 var map, tags, fun, i, tag, proto, record, interceptorClass; | |
3205 $.dispatchRecordsForInstanceTags = Object.create(null); | |
3206 $.interceptorsForUncacheableTags = Object.create(null); | |
3207 H.initHooks(); | |
3208 map = init.interceptorsByTag; | |
3209 tags = Object.getOwnPropertyNames(map); | |
3210 if (typeof window != "undefined") { | |
3211 window; | |
3212 fun = function() { | |
3213 }; | |
3214 for (i = 0; i < tags.length; ++i) { | |
3215 tag = tags[i]; | |
3216 proto = $.prototypeForTagFunction.call$1(tag); | |
3217 if (proto != null) { | |
3218 record = H.makeDefaultDispatchRecord(tag, map[tag], proto); | |
3219 if (record != null) { | |
3220 Object.defineProperty(proto, init.dispatchPropertyName, {value: re
cord, enumerable: false, writable: true, configurable: true}); | |
3221 fun.prototype = proto; | |
3222 } | |
3223 } | |
3224 } | |
3225 } | |
3226 for (i = 0; i < tags.length; ++i) { | |
3227 tag = tags[i]; | |
3228 if (/^[A-Za-z_]/.test(tag)) { | |
3229 interceptorClass = map[tag]; | |
3230 map["!" + tag] = interceptorClass; | |
3231 map["~" + tag] = interceptorClass; | |
3232 map["-" + tag] = interceptorClass; | |
3233 map["+" + tag] = interceptorClass; | |
3234 map["*" + tag] = interceptorClass; | |
3235 } | |
3236 } | |
3237 }, | |
3238 initHooks: function() { | |
3239 var hooks, transformers, i, transformer, getTag, getUnknownTag, prototypeF
orTag; | |
3240 hooks = C.JS_CONST_gkc(); | |
3241 hooks = H.applyHooksTransformer(C.JS_CONST_0, H.applyHooksTransformer(C.JS
_CONST_rr7, H.applyHooksTransformer(C.JS_CONST_Fs4, H.applyHooksTransformer(C.JS
_CONST_Fs4, H.applyHooksTransformer(C.JS_CONST_gkc0, H.applyHooksTransformer(C.J
S_CONST_4hp, H.applyHooksTransformer(C.JS_CONST_QJm(C.JS_CONST_8ZY), hooks))))))
); | |
3242 if (typeof dartNativeDispatchHooksTransformer != "undefined") { | |
3243 transformers = dartNativeDispatchHooksTransformer; | |
3244 if (typeof transformers == "function") | |
3245 transformers = [transformers]; | |
3246 if (transformers.constructor == Array) | |
3247 for (i = 0; i < transformers.length; ++i) { | |
3248 transformer = transformers[i]; | |
3249 if (typeof transformer == "function") | |
3250 hooks = transformer(hooks) || hooks; | |
3251 } | |
3252 } | |
3253 getTag = hooks.getTag; | |
3254 getUnknownTag = hooks.getUnknownTag; | |
3255 prototypeForTag = hooks.prototypeForTag; | |
3256 $.getTagFunction = new H.initHooks_closure(getTag); | |
3257 $.alternateTagFunction = new H.initHooks_closure0(getUnknownTag); | |
3258 $.prototypeForTagFunction = new H.initHooks_closure1(prototypeForTag); | |
3259 }, | |
3260 applyHooksTransformer: function(transformer, hooks) { | |
3261 return transformer(hooks) || hooks; | |
3262 }, | |
3263 stringContainsUnchecked: function(receiver, other, startIndex) { | |
3264 var t1; | |
3265 if (typeof other === "string") | |
3266 return receiver.indexOf(other, startIndex) >= 0; | |
3267 else { | |
3268 t1 = J.getInterceptor(other); | |
3269 if (!!t1.$isJSSyntaxRegExp) { | |
3270 t1 = C.JSString_methods.substring$1(receiver, startIndex); | |
3271 return other._nativeRegExp.test(H.checkString(t1)); | |
3272 } else { | |
3273 t1 = t1.allMatches$1(other, C.JSString_methods.substring$1(receiver, s
tartIndex)); | |
3274 return !t1.get$isEmpty(t1); | |
3275 } | |
3276 } | |
3277 }, | |
3278 stringReplaceAllUnchecked: function(receiver, pattern, replacement) { | |
3279 var $length, t1, i; | |
3280 H.checkString(replacement); | |
3281 if (pattern === "") | |
3282 if (receiver === "") | |
3283 return replacement; | |
3284 else { | |
3285 $length = receiver.length; | |
3286 for (t1 = replacement, i = 0; i < $length; ++i) | |
3287 t1 = t1 + receiver[i] + replacement; | |
3288 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
3289 } | |
3290 else | |
3291 return receiver.replace(new RegExp(pattern.replace(new RegExp("[[\\]{}()
*+?.\\\\^$|]", 'g'), "\\$&"), 'g'), replacement.replace(/\$/g, "$$$$")); | |
3292 }, | |
3293 _stringIdentity: [function(string) { | |
3294 return string; | |
3295 }, "call$1", "_js_helper___stringIdentity$closure", 2, 0, 9], | |
3296 stringReplaceAllFuncUnchecked: function(receiver, pattern, onMatch, onNonMat
ch) { | |
3297 var t1, buffer, startIndex, match, t2, t3; | |
3298 onNonMatch = H._js_helper___stringIdentity$closure(); | |
3299 t1 = J.getInterceptor(pattern); | |
3300 if (!t1.$isPattern) | |
3301 throw H.wrapException(P.ArgumentError$value(pattern, "pattern", "is not
a Pattern")); | |
3302 buffer = new P.StringBuffer(""); | |
3303 for (t1 = t1.allMatches$1(pattern, receiver), t1 = new H._AllMatchesIterat
or(t1._re, t1._string, t1._start, null), startIndex = 0; t1.moveNext$0();) { | |
3304 match = t1.__js_helper$_current; | |
3305 t2 = match._match; | |
3306 buffer._contents += H.S(onNonMatch.call$1(C.JSString_methods.substring$2
(receiver, startIndex, t2.index))); | |
3307 buffer._contents += H.S(onMatch.call$1(match)); | |
3308 t3 = t2.index; | |
3309 if (0 >= t2.length) | |
3310 return H.ioore(t2, 0); | |
3311 t2 = J.get$length$asx(t2[0]); | |
3312 if (typeof t2 !== "number") | |
3313 return H.iae(t2); | |
3314 startIndex = t3 + t2; | |
3315 } | |
3316 t1 = buffer._contents += H.S(onNonMatch.call$1(C.JSString_methods.substrin
g$1(receiver, startIndex))); | |
3317 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
3318 }, | |
3319 stringReplaceFirstUnchecked: function(receiver, pattern, replacement, startI
ndex) { | |
3320 var index = receiver.indexOf(pattern, startIndex); | |
3321 if (index < 0) | |
3322 return receiver; | |
3323 return H.stringReplaceRangeUnchecked(receiver, index, index + pattern.leng
th, replacement); | |
3324 }, | |
3325 stringReplaceRangeUnchecked: function(receiver, start, end, replacement) { | |
3326 var prefix, suffix; | |
3327 prefix = receiver.substring(0, start); | |
3328 suffix = receiver.substring(end); | |
3329 return prefix + replacement + suffix; | |
3330 }, | |
3331 ReflectionInfo: { | |
3332 "^": "Object;jsFunction,data,isAccessor,requiredParameterCount,optionalPar
ameterCount,areOptionalParametersNamed,functionType,cachedSortedIndices", | |
3333 static: {ReflectionInfo_ReflectionInfo: function(jsFunction) { | |
3334 var data, requiredParametersInfo, optionalParametersInfo; | |
3335 data = jsFunction.$reflectionInfo; | |
3336 if (data == null) | |
3337 return; | |
3338 data.fixed$length = Array; | |
3339 data = data; | |
3340 requiredParametersInfo = data[0]; | |
3341 optionalParametersInfo = data[1]; | |
3342 return new H.ReflectionInfo(jsFunction, data, (requiredParametersInfo
& 1) === 1, requiredParametersInfo >> 1, optionalParametersInfo >> 1, (optionalP
arametersInfo & 1) === 1, data[2], null); | |
3343 }} | |
3344 }, | |
3345 TypeErrorDecoder: { | |
3346 "^": "Object;_pattern,_arguments,_argumentsExpr,_expr,_method,_receiver", | |
3347 matchTypeError$1: function(message) { | |
3348 var match, result, t1; | |
3349 match = new RegExp(this._pattern).exec(message); | |
3350 if (match == null) | |
3351 return; | |
3352 result = Object.create(null); | |
3353 t1 = this._arguments; | |
3354 if (t1 !== -1) | |
3355 result.arguments = match[t1 + 1]; | |
3356 t1 = this._argumentsExpr; | |
3357 if (t1 !== -1) | |
3358 result.argumentsExpr = match[t1 + 1]; | |
3359 t1 = this._expr; | |
3360 if (t1 !== -1) | |
3361 result.expr = match[t1 + 1]; | |
3362 t1 = this._method; | |
3363 if (t1 !== -1) | |
3364 result.method = match[t1 + 1]; | |
3365 t1 = this._receiver; | |
3366 if (t1 !== -1) | |
3367 result.receiver = match[t1 + 1]; | |
3368 return result; | |
3369 }, | |
3370 static: {TypeErrorDecoder_extractPattern: function(message) { | |
3371 var match, $arguments, argumentsExpr, expr, method, receiver; | |
3372 message = message.replace(String({}), '$receiver$').replace(new RegExp
("[[\\]{}()*+?.\\\\^$|]", 'g'), '\\$&'); | |
3373 match = message.match(/\\\$[a-zA-Z]+\\\$/g); | |
3374 if (match == null) | |
3375 match = []; | |
3376 $arguments = match.indexOf("\\$arguments\\$"); | |
3377 argumentsExpr = match.indexOf("\\$argumentsExpr\\$"); | |
3378 expr = match.indexOf("\\$expr\\$"); | |
3379 method = match.indexOf("\\$method\\$"); | |
3380 receiver = match.indexOf("\\$receiver\\$"); | |
3381 return new H.TypeErrorDecoder(message.replace('\\$arguments\\$', '((?:
x|[^x])*)').replace('\\$argumentsExpr\\$', '((?:x|[^x])*)').replace('\\$expr\\$'
, '((?:x|[^x])*)').replace('\\$method\\$', '((?:x|[^x])*)').replace('\\$receiver
\\$', '((?:x|[^x])*)'), $arguments, argumentsExpr, expr, method, receiver); | |
3382 }, TypeErrorDecoder_provokeCallErrorOn: function(expression) { | |
3383 return function($expr$) { | |
3384 var $argumentsExpr$ = '$arguments$'; | |
3385 try { | |
3386 $expr$.$method$($argumentsExpr$); | |
3387 } catch (e) { | |
3388 return e.message; | |
3389 } | |
3390 }(expression); | |
3391 }, TypeErrorDecoder_provokePropertyErrorOn: function(expression) { | |
3392 return function($expr$) { | |
3393 try { | |
3394 $expr$.$method$; | |
3395 } catch (e) { | |
3396 return e.message; | |
3397 } | |
3398 }(expression); | |
3399 }} | |
3400 }, | |
3401 NullError: { | |
3402 "^": "Error;_message,_method", | |
3403 toString$0: function(_) { | |
3404 var t1 = this._method; | |
3405 if (t1 == null) | |
3406 return "NullError: " + H.S(this._message); | |
3407 return "NullError: method not found: '" + H.S(t1) + "' on null"; | |
3408 } | |
3409 }, | |
3410 JsNoSuchMethodError: { | |
3411 "^": "Error;_message,_method,_receiver", | |
3412 toString$0: function(_) { | |
3413 var t1, t2; | |
3414 t1 = this._method; | |
3415 if (t1 == null) | |
3416 return "NoSuchMethodError: " + H.S(this._message); | |
3417 t2 = this._receiver; | |
3418 if (t2 == null) | |
3419 return "NoSuchMethodError: method not found: '" + H.S(t1) + "' (" + H.
S(this._message) + ")"; | |
3420 return "NoSuchMethodError: method not found: '" + H.S(t1) + "' on '" + H
.S(t2) + "' (" + H.S(this._message) + ")"; | |
3421 }, | |
3422 static: {JsNoSuchMethodError$: function(_message, match) { | |
3423 var t1, t2; | |
3424 t1 = match == null; | |
3425 t2 = t1 ? null : match.method; | |
3426 return new H.JsNoSuchMethodError(_message, t2, t1 ? null : match.recei
ver); | |
3427 }} | |
3428 }, | |
3429 UnknownJsTypeError: { | |
3430 "^": "Error;_message", | |
3431 toString$0: function(_) { | |
3432 var t1 = this._message; | |
3433 return C.JSString_methods.get$isEmpty(t1) ? "Error" : "Error: " + t1; | |
3434 } | |
3435 }, | |
3436 ExceptionAndStackTrace: { | |
3437 "^": "Object;dartException,stackTrace<" | |
3438 }, | |
3439 unwrapException_saveStackTrace: { | |
3440 "^": "Closure:0;_captured_ex_0", | |
3441 call$1: function(error) { | |
3442 if (!!J.getInterceptor(error).$isError) | |
3443 if (error.$thrownJsError == null) | |
3444 error.$thrownJsError = this._captured_ex_0; | |
3445 return error; | |
3446 } | |
3447 }, | |
3448 _StackTrace: { | |
3449 "^": "Object;_exception,_trace", | |
3450 toString$0: function(_) { | |
3451 var t1, trace; | |
3452 t1 = this._trace; | |
3453 if (t1 != null) | |
3454 return t1; | |
3455 t1 = this._exception; | |
3456 trace = t1 !== null && typeof t1 === "object" ? t1.stack : null; | |
3457 t1 = trace == null ? "" : trace; | |
3458 this._trace = t1; | |
3459 return t1; | |
3460 } | |
3461 }, | |
3462 invokeClosure_closure: { | |
3463 "^": "Closure:1;_captured_closure_0", | |
3464 call$0: function() { | |
3465 return this._captured_closure_0.call$0(); | |
3466 } | |
3467 }, | |
3468 invokeClosure_closure0: { | |
3469 "^": "Closure:1;_captured_closure_1,_captured_arg1_2", | |
3470 call$0: function() { | |
3471 return this._captured_closure_1.call$1(this._captured_arg1_2); | |
3472 } | |
3473 }, | |
3474 invokeClosure_closure1: { | |
3475 "^": "Closure:1;_captured_closure_3,_captured_arg1_4,_captured_arg2_5", | |
3476 call$0: function() { | |
3477 return this._captured_closure_3.call$2(this._captured_arg1_4, this._capt
ured_arg2_5); | |
3478 } | |
3479 }, | |
3480 invokeClosure_closure2: { | |
3481 "^": "Closure:1;_captured_closure_6,_captured_arg1_7,_captured_arg2_8,_cap
tured_arg3_9", | |
3482 call$0: function() { | |
3483 return this._captured_closure_6.call$3(this._captured_arg1_7, this._capt
ured_arg2_8, this._captured_arg3_9); | |
3484 } | |
3485 }, | |
3486 invokeClosure_closure3: { | |
3487 "^": "Closure:1;_captured_closure_10,_captured_arg1_11,_captured_arg2_12,_
captured_arg3_13,_captured_arg4_14", | |
3488 call$0: function() { | |
3489 return this._captured_closure_10.call$4(this._captured_arg1_11, this._ca
ptured_arg2_12, this._captured_arg3_13, this._captured_arg4_14); | |
3490 } | |
3491 }, | |
3492 Closure: { | |
3493 "^": "Object;", | |
3494 toString$0: function(_) { | |
3495 return "Closure '" + H.Primitives_objectTypeName(this) + "'"; | |
3496 }, | |
3497 get$$call: function() { | |
3498 return this; | |
3499 }, | |
3500 get$$call: function() { | |
3501 return this; | |
3502 } | |
3503 }, | |
3504 TearOffClosure: { | |
3505 "^": "Closure;" | |
3506 }, | |
3507 StaticClosure: { | |
3508 "^": "TearOffClosure;", | |
3509 toString$0: function(_) { | |
3510 var $name = this.$static_name; | |
3511 if ($name == null) | |
3512 return "Closure of unknown static method"; | |
3513 return "Closure '" + $name + "'"; | |
3514 } | |
3515 }, | |
3516 BoundClosure: { | |
3517 "^": "TearOffClosure;_self,__js_helper$_target,_receiver,__js_helper$_name
", | |
3518 $eq: function(_, other) { | |
3519 if (other == null) | |
3520 return false; | |
3521 if (this === other) | |
3522 return true; | |
3523 if (!(other instanceof H.BoundClosure)) | |
3524 return false; | |
3525 return this._self === other._self && this.__js_helper$_target === other.
__js_helper$_target && this._receiver === other._receiver; | |
3526 }, | |
3527 get$hashCode: function(_) { | |
3528 var t1, receiverHashCode; | |
3529 t1 = this._receiver; | |
3530 if (t1 == null) | |
3531 receiverHashCode = H.Primitives_objectHashCode(this._self); | |
3532 else | |
3533 receiverHashCode = typeof t1 !== "object" ? J.get$hashCode$(t1) : H.Pr
imitives_objectHashCode(t1); | |
3534 t1 = H.Primitives_objectHashCode(this.__js_helper$_target); | |
3535 if (typeof receiverHashCode !== "number") | |
3536 return receiverHashCode.$xor(); | |
3537 return (receiverHashCode ^ t1) >>> 0; | |
3538 }, | |
3539 toString$0: function(_) { | |
3540 var receiver = this._receiver; | |
3541 if (receiver == null) | |
3542 receiver = this._self; | |
3543 return "Closure '" + H.S(this.__js_helper$_name) + "' of " + H.Primitive
s_objectToHumanReadableString(receiver); | |
3544 }, | |
3545 static: {BoundClosure_selfOf: function(closure) { | |
3546 return closure._self; | |
3547 }, BoundClosure_receiverOf: function(closure) { | |
3548 return closure._receiver; | |
3549 }, BoundClosure_selfFieldName: function() { | |
3550 var t1 = $.BoundClosure_selfFieldNameCache; | |
3551 if (t1 == null) { | |
3552 t1 = H.BoundClosure_computeFieldNamed("self"); | |
3553 $.BoundClosure_selfFieldNameCache = t1; | |
3554 } | |
3555 return t1; | |
3556 }, BoundClosure_computeFieldNamed: function(fieldName) { | |
3557 var template, t1, names, i, $name; | |
3558 template = new H.BoundClosure("self", "target", "receiver", "name"); | |
3559 t1 = Object.getOwnPropertyNames(template); | |
3560 t1.fixed$length = Array; | |
3561 names = t1; | |
3562 for (t1 = names.length, i = 0; i < t1; ++i) { | |
3563 $name = names[i]; | |
3564 if (template[$name] === fieldName) | |
3565 return $name; | |
3566 } | |
3567 }} | |
3568 }, | |
3569 RuntimeError: { | |
3570 "^": "Error;message>", | |
3571 toString$0: function(_) { | |
3572 return "RuntimeError: " + H.S(this.message); | |
3573 } | |
3574 }, | |
3575 RuntimeType: { | |
3576 "^": "Object;" | |
3577 }, | |
3578 RuntimeFunctionType: { | |
3579 "^": "RuntimeType;returnType,parameterTypes,optionalParameterTypes,namedPa
rameters", | |
3580 _isTest$1: function(expression) { | |
3581 var functionTypeObject = this._extractFunctionTypeObjectFrom$1(expressio
n); | |
3582 return functionTypeObject == null ? false : H.isFunctionSubtype(function
TypeObject, this.toRti$0()); | |
3583 }, | |
3584 _extractFunctionTypeObjectFrom$1: function(o) { | |
3585 var interceptor = J.getInterceptor(o); | |
3586 return "$signature" in interceptor ? interceptor.$signature() : null; | |
3587 }, | |
3588 toRti$0: function() { | |
3589 var result, t1, t2, namedRti, keys, i, $name; | |
3590 result = {func: "dynafunc"}; | |
3591 t1 = this.returnType; | |
3592 t2 = J.getInterceptor(t1); | |
3593 if (!!t2.$isVoidRuntimeType) | |
3594 result.void = true; | |
3595 else if (!t2.$isDynamicRuntimeType) | |
3596 result.ret = t1.toRti$0(); | |
3597 t1 = this.parameterTypes; | |
3598 if (t1 != null && t1.length !== 0) | |
3599 result.args = H.RuntimeFunctionType_listToRti(t1); | |
3600 t1 = this.optionalParameterTypes; | |
3601 if (t1 != null && t1.length !== 0) | |
3602 result.opt = H.RuntimeFunctionType_listToRti(t1); | |
3603 t1 = this.namedParameters; | |
3604 if (t1 != null) { | |
3605 namedRti = Object.create(null); | |
3606 keys = H.extractKeys(t1); | |
3607 for (t2 = keys.length, i = 0; i < t2; ++i) { | |
3608 $name = keys[i]; | |
3609 namedRti[$name] = t1[$name].toRti$0(); | |
3610 } | |
3611 result.named = namedRti; | |
3612 } | |
3613 return result; | |
3614 }, | |
3615 toString$0: function(_) { | |
3616 var t1, t2, result, needsComma, i, type, keys, $name; | |
3617 t1 = this.parameterTypes; | |
3618 if (t1 != null) | |
3619 for (t2 = t1.length, result = "(", needsComma = false, i = 0; i < t2;
++i, needsComma = true) { | |
3620 type = t1[i]; | |
3621 if (needsComma) | |
3622 result += ", "; | |
3623 result += H.S(type); | |
3624 } | |
3625 else { | |
3626 result = "("; | |
3627 needsComma = false; | |
3628 } | |
3629 t1 = this.optionalParameterTypes; | |
3630 if (t1 != null && t1.length !== 0) { | |
3631 result = (needsComma ? result + ", " : result) + "["; | |
3632 for (t2 = t1.length, needsComma = false, i = 0; i < t2; ++i, needsComm
a = true) { | |
3633 type = t1[i]; | |
3634 if (needsComma) | |
3635 result += ", "; | |
3636 result += H.S(type); | |
3637 } | |
3638 result += "]"; | |
3639 } else { | |
3640 t1 = this.namedParameters; | |
3641 if (t1 != null) { | |
3642 result = (needsComma ? result + ", " : result) + "{"; | |
3643 keys = H.extractKeys(t1); | |
3644 for (t2 = keys.length, needsComma = false, i = 0; i < t2; ++i, needs
Comma = true) { | |
3645 $name = keys[i]; | |
3646 if (needsComma) | |
3647 result += ", "; | |
3648 result += H.S(t1[$name].toRti$0()) + " " + $name; | |
3649 } | |
3650 result += "}"; | |
3651 } | |
3652 } | |
3653 return result + (") -> " + H.S(this.returnType)); | |
3654 }, | |
3655 static: {RuntimeFunctionType_listToRti: function(list) { | |
3656 var result, t1, i; | |
3657 list = list; | |
3658 result = []; | |
3659 for (t1 = list.length, i = 0; i < t1; ++i) | |
3660 result.push(list[i].toRti$0()); | |
3661 return result; | |
3662 }} | |
3663 }, | |
3664 DynamicRuntimeType: { | |
3665 "^": "RuntimeType;", | |
3666 toString$0: function(_) { | |
3667 return "dynamic"; | |
3668 }, | |
3669 toRti$0: function() { | |
3670 return; | |
3671 } | |
3672 }, | |
3673 TypeImpl: { | |
3674 "^": "Object;_typeName,_unmangledName", | |
3675 toString$0: function(_) { | |
3676 var t1, unmangledName; | |
3677 t1 = this._unmangledName; | |
3678 if (t1 != null) | |
3679 return t1; | |
3680 unmangledName = this._typeName.replace(/[^<,> ]+/g, function(m) { | |
3681 return init.mangledGlobalNames[m] || m; | |
3682 }); | |
3683 this._unmangledName = unmangledName; | |
3684 return unmangledName; | |
3685 }, | |
3686 get$hashCode: function(_) { | |
3687 return J.get$hashCode$(this._typeName); | |
3688 }, | |
3689 $eq: function(_, other) { | |
3690 if (other == null) | |
3691 return false; | |
3692 return other instanceof H.TypeImpl && J.$eq$(this._typeName, other._type
Name); | |
3693 } | |
3694 }, | |
3695 JsLinkedHashMap: { | |
3696 "^": "Object;__js_helper$_length,_strings,_nums,_rest,_first,__js_helper$_
last,_modifications", | |
3697 get$length: function(_) { | |
3698 return this.__js_helper$_length; | |
3699 }, | |
3700 get$isEmpty: function(_) { | |
3701 return this.__js_helper$_length === 0; | |
3702 }, | |
3703 get$isNotEmpty: function(_) { | |
3704 return !this.get$isEmpty(this); | |
3705 }, | |
3706 get$keys: function() { | |
3707 return H.setRuntimeTypeInfo(new H.LinkedHashMapKeyIterable(this), [H.get
TypeArgumentByIndex(this, 0)]); | |
3708 }, | |
3709 get$values: function(_) { | |
3710 return H.MappedIterable_MappedIterable(this.get$keys(), new H.JsLinkedHa
shMap_values_closure(this), H.getTypeArgumentByIndex(this, 0), H.getTypeArgument
ByIndex(this, 1)); | |
3711 }, | |
3712 containsKey$1: function(key) { | |
3713 var strings, nums; | |
3714 if (typeof key === "string") { | |
3715 strings = this._strings; | |
3716 if (strings == null) | |
3717 return false; | |
3718 return this._containsTableEntry$2(strings, key); | |
3719 } else if (typeof key === "number" && (key & 0x3ffffff) === key) { | |
3720 nums = this._nums; | |
3721 if (nums == null) | |
3722 return false; | |
3723 return this._containsTableEntry$2(nums, key); | |
3724 } else | |
3725 return this.internalContainsKey$1(key); | |
3726 }, | |
3727 internalContainsKey$1: function(key) { | |
3728 var rest = this._rest; | |
3729 if (rest == null) | |
3730 return false; | |
3731 return this.internalFindBucketIndex$2(this._getTableEntry$2(rest, this.i
nternalComputeHashCode$1(key)), key) >= 0; | |
3732 }, | |
3733 $index: function(_, key) { | |
3734 var strings, cell, nums; | |
3735 if (typeof key === "string") { | |
3736 strings = this._strings; | |
3737 if (strings == null) | |
3738 return; | |
3739 cell = this._getTableEntry$2(strings, key); | |
3740 return cell == null ? null : cell.get$hashMapCellValue(); | |
3741 } else if (typeof key === "number" && (key & 0x3ffffff) === key) { | |
3742 nums = this._nums; | |
3743 if (nums == null) | |
3744 return; | |
3745 cell = this._getTableEntry$2(nums, key); | |
3746 return cell == null ? null : cell.get$hashMapCellValue(); | |
3747 } else | |
3748 return this.internalGet$1(key); | |
3749 }, | |
3750 internalGet$1: function(key) { | |
3751 var rest, bucket, index; | |
3752 rest = this._rest; | |
3753 if (rest == null) | |
3754 return; | |
3755 bucket = this._getTableEntry$2(rest, this.internalComputeHashCode$1(key)
); | |
3756 index = this.internalFindBucketIndex$2(bucket, key); | |
3757 if (index < 0) | |
3758 return; | |
3759 return bucket[index].get$hashMapCellValue(); | |
3760 }, | |
3761 $indexSet: function(_, key, value) { | |
3762 var strings, nums, rest, hash, bucket, index; | |
3763 if (typeof key === "string") { | |
3764 strings = this._strings; | |
3765 if (strings == null) { | |
3766 strings = this._newHashTable$0(); | |
3767 this._strings = strings; | |
3768 } | |
3769 this.__js_helper$_addHashTableEntry$3(strings, key, value); | |
3770 } else if (typeof key === "number" && (key & 0x3ffffff) === key) { | |
3771 nums = this._nums; | |
3772 if (nums == null) { | |
3773 nums = this._newHashTable$0(); | |
3774 this._nums = nums; | |
3775 } | |
3776 this.__js_helper$_addHashTableEntry$3(nums, key, value); | |
3777 } else { | |
3778 rest = this._rest; | |
3779 if (rest == null) { | |
3780 rest = this._newHashTable$0(); | |
3781 this._rest = rest; | |
3782 } | |
3783 hash = this.internalComputeHashCode$1(key); | |
3784 bucket = this._getTableEntry$2(rest, hash); | |
3785 if (bucket == null) | |
3786 this._setTableEntry$3(rest, hash, [this.__js_helper$_newLinkedCell$2
(key, value)]); | |
3787 else { | |
3788 index = this.internalFindBucketIndex$2(bucket, key); | |
3789 if (index >= 0) | |
3790 bucket[index].set$hashMapCellValue(value); | |
3791 else | |
3792 bucket.push(this.__js_helper$_newLinkedCell$2(key, value)); | |
3793 } | |
3794 } | |
3795 }, | |
3796 putIfAbsent$2: function(key, ifAbsent) { | |
3797 var value; | |
3798 if (this.containsKey$1(key)) | |
3799 return this.$index(0, key); | |
3800 value = ifAbsent.call$0(); | |
3801 this.$indexSet(0, key, value); | |
3802 return value; | |
3803 }, | |
3804 remove$1: function(_, key) { | |
3805 if (typeof key === "string") | |
3806 return this.__js_helper$_removeHashTableEntry$2(this._strings, key); | |
3807 else if (typeof key === "number" && (key & 0x3ffffff) === key) | |
3808 return this.__js_helper$_removeHashTableEntry$2(this._nums, key); | |
3809 else | |
3810 return this.internalRemove$1(key); | |
3811 }, | |
3812 internalRemove$1: function(key) { | |
3813 var rest, bucket, index, cell; | |
3814 rest = this._rest; | |
3815 if (rest == null) | |
3816 return; | |
3817 bucket = this._getTableEntry$2(rest, this.internalComputeHashCode$1(key)
); | |
3818 index = this.internalFindBucketIndex$2(bucket, key); | |
3819 if (index < 0) | |
3820 return; | |
3821 cell = bucket.splice(index, 1)[0]; | |
3822 this.__js_helper$_unlinkCell$1(cell); | |
3823 return cell.get$hashMapCellValue(); | |
3824 }, | |
3825 clear$0: function(_) { | |
3826 if (this.__js_helper$_length > 0) { | |
3827 this.__js_helper$_last = null; | |
3828 this._first = null; | |
3829 this._rest = null; | |
3830 this._nums = null; | |
3831 this._strings = null; | |
3832 this.__js_helper$_length = 0; | |
3833 this._modifications = this._modifications + 1 & 67108863; | |
3834 } | |
3835 }, | |
3836 forEach$1: function(_, action) { | |
3837 var cell, modifications; | |
3838 cell = this._first; | |
3839 modifications = this._modifications; | |
3840 for (; cell != null;) { | |
3841 action.call$2(cell.hashMapCellKey, cell.hashMapCellValue); | |
3842 if (modifications !== this._modifications) | |
3843 throw H.wrapException(new P.ConcurrentModificationError(this)); | |
3844 cell = cell._next; | |
3845 } | |
3846 }, | |
3847 __js_helper$_addHashTableEntry$3: function(table, key, value) { | |
3848 var cell = this._getTableEntry$2(table, key); | |
3849 if (cell == null) | |
3850 this._setTableEntry$3(table, key, this.__js_helper$_newLinkedCell$2(ke
y, value)); | |
3851 else | |
3852 cell.set$hashMapCellValue(value); | |
3853 }, | |
3854 __js_helper$_removeHashTableEntry$2: function(table, key) { | |
3855 var cell; | |
3856 if (table == null) | |
3857 return; | |
3858 cell = this._getTableEntry$2(table, key); | |
3859 if (cell == null) | |
3860 return; | |
3861 this.__js_helper$_unlinkCell$1(cell); | |
3862 this._deleteTableEntry$2(table, key); | |
3863 return cell.get$hashMapCellValue(); | |
3864 }, | |
3865 __js_helper$_newLinkedCell$2: function(key, value) { | |
3866 var cell, last; | |
3867 cell = new H.LinkedHashMapCell(key, value, null, null); | |
3868 if (this._first == null) { | |
3869 this.__js_helper$_last = cell; | |
3870 this._first = cell; | |
3871 } else { | |
3872 last = this.__js_helper$_last; | |
3873 cell.__js_helper$_previous = last; | |
3874 last._next = cell; | |
3875 this.__js_helper$_last = cell; | |
3876 } | |
3877 ++this.__js_helper$_length; | |
3878 this._modifications = this._modifications + 1 & 67108863; | |
3879 return cell; | |
3880 }, | |
3881 __js_helper$_unlinkCell$1: function(cell) { | |
3882 var previous, next; | |
3883 previous = cell.get$__js_helper$_previous(); | |
3884 next = cell._next; | |
3885 if (previous == null) | |
3886 this._first = next; | |
3887 else | |
3888 previous._next = next; | |
3889 if (next == null) | |
3890 this.__js_helper$_last = previous; | |
3891 else | |
3892 next.__js_helper$_previous = previous; | |
3893 --this.__js_helper$_length; | |
3894 this._modifications = this._modifications + 1 & 67108863; | |
3895 }, | |
3896 internalComputeHashCode$1: function(key) { | |
3897 return J.get$hashCode$(key) & 0x3ffffff; | |
3898 }, | |
3899 internalFindBucketIndex$2: function(bucket, key) { | |
3900 var $length, i; | |
3901 if (bucket == null) | |
3902 return -1; | |
3903 $length = bucket.length; | |
3904 for (i = 0; i < $length; ++i) | |
3905 if (J.$eq$(bucket[i].get$hashMapCellKey(), key)) | |
3906 return i; | |
3907 return -1; | |
3908 }, | |
3909 toString$0: function(_) { | |
3910 return P.Maps_mapToString(this); | |
3911 }, | |
3912 _getTableEntry$2: function(table, key) { | |
3913 return table[key]; | |
3914 }, | |
3915 _setTableEntry$3: function(table, key, value) { | |
3916 table[key] = value; | |
3917 }, | |
3918 _deleteTableEntry$2: function(table, key) { | |
3919 delete table[key]; | |
3920 }, | |
3921 _containsTableEntry$2: function(table, key) { | |
3922 return this._getTableEntry$2(table, key) != null; | |
3923 }, | |
3924 _newHashTable$0: function() { | |
3925 var table = Object.create(null); | |
3926 this._setTableEntry$3(table, "<non-identifier-key>", table); | |
3927 this._deleteTableEntry$2(table, "<non-identifier-key>"); | |
3928 return table; | |
3929 }, | |
3930 $isInternalMap: 1 | |
3931 }, | |
3932 JsLinkedHashMap_values_closure: { | |
3933 "^": "Closure:0;__js_helper$_captured_this_0", | |
3934 call$1: function(each) { | |
3935 return this.__js_helper$_captured_this_0.$index(0, each); | |
3936 } | |
3937 }, | |
3938 LinkedHashMapCell: { | |
3939 "^": "Object;hashMapCellKey<,hashMapCellValue@,_next,__js_helper$_previous
<" | |
3940 }, | |
3941 LinkedHashMapKeyIterable: { | |
3942 "^": "Iterable;_map", | |
3943 get$length: function(_) { | |
3944 return this._map.__js_helper$_length; | |
3945 }, | |
3946 get$isEmpty: function(_) { | |
3947 return this._map.__js_helper$_length === 0; | |
3948 }, | |
3949 get$iterator: function(_) { | |
3950 var t1, t2; | |
3951 t1 = this._map; | |
3952 t2 = new H.LinkedHashMapKeyIterator(t1, t1._modifications, null, null); | |
3953 t2.$builtinTypeInfo = this.$builtinTypeInfo; | |
3954 t2.__js_helper$_cell = t1._first; | |
3955 return t2; | |
3956 }, | |
3957 contains$1: function(_, element) { | |
3958 return this._map.containsKey$1(element); | |
3959 }, | |
3960 forEach$1: function(_, f) { | |
3961 var t1, cell, modifications; | |
3962 t1 = this._map; | |
3963 cell = t1._first; | |
3964 modifications = t1._modifications; | |
3965 for (; cell != null;) { | |
3966 f.call$1(cell.hashMapCellKey); | |
3967 if (modifications !== t1._modifications) | |
3968 throw H.wrapException(new P.ConcurrentModificationError(t1)); | |
3969 cell = cell._next; | |
3970 } | |
3971 }, | |
3972 $isEfficientLength: 1 | |
3973 }, | |
3974 LinkedHashMapKeyIterator: { | |
3975 "^": "Object;_map,_modifications,__js_helper$_cell,__js_helper$_current", | |
3976 get$current: function() { | |
3977 return this.__js_helper$_current; | |
3978 }, | |
3979 moveNext$0: function() { | |
3980 var t1 = this._map; | |
3981 if (this._modifications !== t1._modifications) | |
3982 throw H.wrapException(new P.ConcurrentModificationError(t1)); | |
3983 else { | |
3984 t1 = this.__js_helper$_cell; | |
3985 if (t1 == null) { | |
3986 this.__js_helper$_current = null; | |
3987 return false; | |
3988 } else { | |
3989 this.__js_helper$_current = t1.hashMapCellKey; | |
3990 this.__js_helper$_cell = t1._next; | |
3991 return true; | |
3992 } | |
3993 } | |
3994 } | |
3995 }, | |
3996 initHooks_closure: { | |
3997 "^": "Closure:0;_captured_getTag_0", | |
3998 call$1: function(o) { | |
3999 return this._captured_getTag_0(o); | |
4000 } | |
4001 }, | |
4002 initHooks_closure0: { | |
4003 "^": "Closure:11;_captured_getUnknownTag_1", | |
4004 call$2: function(o, tag) { | |
4005 return this._captured_getUnknownTag_1(o, tag); | |
4006 } | |
4007 }, | |
4008 initHooks_closure1: { | |
4009 "^": "Closure:12;_captured_prototypeForTag_2", | |
4010 call$1: function(tag) { | |
4011 return this._captured_prototypeForTag_2(tag); | |
4012 } | |
4013 }, | |
4014 JSSyntaxRegExp: { | |
4015 "^": "Object;pattern,_nativeRegExp,_nativeGlobalRegExp,_nativeAnchoredRegE
xp", | |
4016 toString$0: function(_) { | |
4017 return "RegExp/" + this.pattern + "/"; | |
4018 }, | |
4019 get$_nativeGlobalVersion: function() { | |
4020 var t1 = this._nativeGlobalRegExp; | |
4021 if (t1 != null) | |
4022 return t1; | |
4023 t1 = this._nativeRegExp; | |
4024 t1 = H.JSSyntaxRegExp_makeNative(this.pattern, t1.multiline, !t1.ignoreC
ase, true); | |
4025 this._nativeGlobalRegExp = t1; | |
4026 return t1; | |
4027 }, | |
4028 get$_nativeAnchoredVersion: function() { | |
4029 var t1 = this._nativeAnchoredRegExp; | |
4030 if (t1 != null) | |
4031 return t1; | |
4032 t1 = this._nativeRegExp; | |
4033 t1 = H.JSSyntaxRegExp_makeNative(this.pattern + "|()", t1.multiline, !t1
.ignoreCase, true); | |
4034 this._nativeAnchoredRegExp = t1; | |
4035 return t1; | |
4036 }, | |
4037 allMatches$2: function(_, string, start) { | |
4038 H.checkString(string); | |
4039 H.checkInt(start); | |
4040 if (start > string.length) | |
4041 throw H.wrapException(P.RangeError$range(start, 0, string.length, null
, null)); | |
4042 return new H._AllMatchesIterable(this, string, start); | |
4043 }, | |
4044 allMatches$1: function($receiver, string) { | |
4045 return this.allMatches$2($receiver, string, 0); | |
4046 }, | |
4047 _execGlobal$2: function(string, start) { | |
4048 var regexp, match; | |
4049 regexp = this.get$_nativeGlobalVersion(); | |
4050 regexp.lastIndex = start; | |
4051 match = regexp.exec(string); | |
4052 if (match == null) | |
4053 return; | |
4054 return H._MatchImplementation$(this, match); | |
4055 }, | |
4056 _execAnchored$2: function(string, start) { | |
4057 var regexp, match, t1, t2; | |
4058 regexp = this.get$_nativeAnchoredVersion(); | |
4059 regexp.lastIndex = start; | |
4060 match = regexp.exec(string); | |
4061 if (match == null) | |
4062 return; | |
4063 t1 = match.length; | |
4064 t2 = t1 - 1; | |
4065 if (t2 < 0) | |
4066 return H.ioore(match, t2); | |
4067 if (match[t2] != null) | |
4068 return; | |
4069 C.JSArray_methods.set$length(match, t2); | |
4070 return H._MatchImplementation$(this, match); | |
4071 }, | |
4072 matchAsPrefix$2: function(_, string, start) { | |
4073 if (start < 0 || start > string.length) | |
4074 throw H.wrapException(P.RangeError$range(start, 0, string.length, null
, null)); | |
4075 return this._execAnchored$2(string, start); | |
4076 }, | |
4077 $isPattern: 1, | |
4078 static: {JSSyntaxRegExp_makeNative: function(source, multiLine, caseSensit
ive, global) { | |
4079 var m, i, g, regexp; | |
4080 H.checkString(source); | |
4081 m = multiLine ? "m" : ""; | |
4082 i = caseSensitive ? "" : "i"; | |
4083 g = global ? "g" : ""; | |
4084 regexp = function() { | |
4085 try { | |
4086 return new RegExp(source, m + i + g); | |
4087 } catch (e) { | |
4088 return e; | |
4089 } | |
4090 }(); | |
4091 if (regexp instanceof RegExp) | |
4092 return regexp; | |
4093 throw H.wrapException(new P.FormatException("Illegal RegExp pattern ("
+ String(regexp) + ")", source, null)); | |
4094 }} | |
4095 }, | |
4096 _MatchImplementation: { | |
4097 "^": "Object;pattern,_match", | |
4098 group$1: function(index) { | |
4099 var t1 = this._match; | |
4100 if (index >>> 0 !== index || index >= t1.length) | |
4101 return H.ioore(t1, index); | |
4102 return t1[index]; | |
4103 }, | |
4104 $index: function(_, index) { | |
4105 var t1 = this._match; | |
4106 if (index >>> 0 !== index || index >= t1.length) | |
4107 return H.ioore(t1, index); | |
4108 return t1[index]; | |
4109 }, | |
4110 _MatchImplementation$2: function(pattern, _match) { | |
4111 }, | |
4112 static: {_MatchImplementation$: function(pattern, _match) { | |
4113 var t1 = new H._MatchImplementation(pattern, _match); | |
4114 t1._MatchImplementation$2(pattern, _match); | |
4115 return t1; | |
4116 }} | |
4117 }, | |
4118 _AllMatchesIterable: { | |
4119 "^": "IterableBase;_re,_string,_start", | |
4120 get$iterator: function(_) { | |
4121 return new H._AllMatchesIterator(this._re, this._string, this._start, nu
ll); | |
4122 }, | |
4123 $asIterableBase: function() { | |
4124 return [P.Match]; | |
4125 }, | |
4126 $asIterable: function() { | |
4127 return [P.Match]; | |
4128 } | |
4129 }, | |
4130 _AllMatchesIterator: { | |
4131 "^": "Object;_regExp,_string,_nextIndex,__js_helper$_current", | |
4132 get$current: function() { | |
4133 return this.__js_helper$_current; | |
4134 }, | |
4135 moveNext$0: function() { | |
4136 var t1, t2, match, t3, nextIndex; | |
4137 t1 = this._string; | |
4138 if (t1 == null) | |
4139 return false; | |
4140 t2 = this._nextIndex; | |
4141 if (t2 <= t1.length) { | |
4142 match = this._regExp._execGlobal$2(t1, t2); | |
4143 if (match != null) { | |
4144 this.__js_helper$_current = match; | |
4145 t1 = match._match; | |
4146 t2 = t1.index; | |
4147 if (0 >= t1.length) | |
4148 return H.ioore(t1, 0); | |
4149 t3 = J.get$length$asx(t1[0]); | |
4150 if (typeof t3 !== "number") | |
4151 return H.iae(t3); | |
4152 nextIndex = t2 + t3; | |
4153 this._nextIndex = t1.index === nextIndex ? nextIndex + 1 : nextIndex
; | |
4154 return true; | |
4155 } | |
4156 } | |
4157 this.__js_helper$_current = null; | |
4158 this._string = null; | |
4159 return false; | |
4160 } | |
4161 }, | |
4162 StringMatch: { | |
4163 "^": "Object;start,input,pattern", | |
4164 $index: function(_, g) { | |
4165 return this.group$1(g); | |
4166 }, | |
4167 group$1: function(group_) { | |
4168 if (group_ !== 0) | |
4169 throw H.wrapException(P.RangeError$value(group_, null, null)); | |
4170 return this.pattern; | |
4171 } | |
4172 }, | |
4173 _StringAllMatchesIterable: { | |
4174 "^": "Iterable;_input,_pattern,__js_helper$_index", | |
4175 get$iterator: function(_) { | |
4176 return new H._StringAllMatchesIterator(this._input, this._pattern, this.
__js_helper$_index, null); | |
4177 }, | |
4178 $asIterable: function() { | |
4179 return [P.Match]; | |
4180 } | |
4181 }, | |
4182 _StringAllMatchesIterator: { | |
4183 "^": "Object;_input,_pattern,__js_helper$_index,__js_helper$_current", | |
4184 moveNext$0: function() { | |
4185 var t1, t2, t3, t4, t5, index, end; | |
4186 t1 = this.__js_helper$_index; | |
4187 t2 = this._pattern; | |
4188 t3 = t2.length; | |
4189 t4 = this._input; | |
4190 t5 = t4.length; | |
4191 if (t1 + t3 > t5) { | |
4192 this.__js_helper$_current = null; | |
4193 return false; | |
4194 } | |
4195 index = t4.indexOf(t2, t1); | |
4196 if (index < 0) { | |
4197 this.__js_helper$_index = t5 + 1; | |
4198 this.__js_helper$_current = null; | |
4199 return false; | |
4200 } | |
4201 end = index + t3; | |
4202 this.__js_helper$_current = new H.StringMatch(index, t4, t2); | |
4203 this.__js_helper$_index = end === this.__js_helper$_index ? end + 1 : en
d; | |
4204 return true; | |
4205 }, | |
4206 get$current: function() { | |
4207 return this.__js_helper$_current; | |
4208 } | |
4209 } | |
4210 }], ["dart._internal", "dart:_internal",, H, { | |
4211 "^": "", | |
4212 IterableElementError_noElement: function() { | |
4213 return new P.StateError("No element"); | |
4214 }, | |
4215 IterableElementError_tooMany: function() { | |
4216 return new P.StateError("Too many elements"); | |
4217 }, | |
4218 IterableElementError_tooFew: function() { | |
4219 return new P.StateError("Too few elements"); | |
4220 }, | |
4221 Symbol_getName: function(symbol) { | |
4222 return symbol.get$_name(); | |
4223 }, | |
4224 CodeUnits: { | |
4225 "^": "UnmodifiableListBase;__internal$_string", | |
4226 get$length: function(_) { | |
4227 return this.__internal$_string.length; | |
4228 }, | |
4229 $index: function(_, i) { | |
4230 return C.JSString_methods.codeUnitAt$1(this.__internal$_string, i); | |
4231 }, | |
4232 $asUnmodifiableListBase: function() { | |
4233 return [P.$int]; | |
4234 }, | |
4235 $asListBase: function() { | |
4236 return [P.$int]; | |
4237 }, | |
4238 $asObject_ListMixin: function() { | |
4239 return [P.$int]; | |
4240 }, | |
4241 $asList: function() { | |
4242 return [P.$int]; | |
4243 } | |
4244 }, | |
4245 ListIterable: { | |
4246 "^": "Iterable;", | |
4247 get$iterator: function(_) { | |
4248 return H.setRuntimeTypeInfo(new H.ListIterator(this, this.get$length(thi
s), 0, null), [H.getRuntimeTypeArgument(this, "ListIterable", 0)]); | |
4249 }, | |
4250 forEach$1: function(_, action) { | |
4251 var $length, i; | |
4252 $length = this.get$length(this); | |
4253 for (i = 0; i < $length; ++i) { | |
4254 action.call$1(this.elementAt$1(0, i)); | |
4255 if ($length !== this.get$length(this)) | |
4256 throw H.wrapException(new P.ConcurrentModificationError(this)); | |
4257 } | |
4258 }, | |
4259 get$isEmpty: function(_) { | |
4260 return this.get$length(this) === 0; | |
4261 }, | |
4262 get$last: function(_) { | |
4263 if (this.get$length(this) === 0) | |
4264 throw H.wrapException(H.IterableElementError_noElement()); | |
4265 return this.elementAt$1(0, this.get$length(this) - 1); | |
4266 }, | |
4267 contains$1: function(_, element) { | |
4268 var $length, i; | |
4269 $length = this.get$length(this); | |
4270 for (i = 0; i < $length; ++i) { | |
4271 if (J.$eq$(this.elementAt$1(0, i), element)) | |
4272 return true; | |
4273 if ($length !== this.get$length(this)) | |
4274 throw H.wrapException(new P.ConcurrentModificationError(this)); | |
4275 } | |
4276 return false; | |
4277 }, | |
4278 join$1: function(_, separator) { | |
4279 var $length, first, buffer, i, t1; | |
4280 $length = this.get$length(this); | |
4281 if (separator.length !== 0) { | |
4282 if ($length === 0) | |
4283 return ""; | |
4284 first = H.S(this.elementAt$1(0, 0)); | |
4285 if ($length !== this.get$length(this)) | |
4286 throw H.wrapException(new P.ConcurrentModificationError(this)); | |
4287 buffer = new P.StringBuffer(first); | |
4288 for (i = 1; i < $length; ++i) { | |
4289 buffer._contents += separator; | |
4290 buffer._contents += H.S(this.elementAt$1(0, i)); | |
4291 if ($length !== this.get$length(this)) | |
4292 throw H.wrapException(new P.ConcurrentModificationError(this)); | |
4293 } | |
4294 t1 = buffer._contents; | |
4295 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
4296 } else { | |
4297 buffer = new P.StringBuffer(""); | |
4298 for (i = 0; i < $length; ++i) { | |
4299 buffer._contents += H.S(this.elementAt$1(0, i)); | |
4300 if ($length !== this.get$length(this)) | |
4301 throw H.wrapException(new P.ConcurrentModificationError(this)); | |
4302 } | |
4303 t1 = buffer._contents; | |
4304 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
4305 } | |
4306 }, | |
4307 where$1: function(_, test) { | |
4308 return this.super$Iterable$where(this, test); | |
4309 }, | |
4310 map$1: function(_, f) { | |
4311 return H.setRuntimeTypeInfo(new H.MappedListIterable(this, f), [null, nu
ll]); | |
4312 }, | |
4313 toList$1$growable: function(_, growable) { | |
4314 var result, i, t1; | |
4315 if (growable) { | |
4316 result = H.setRuntimeTypeInfo([], [H.getRuntimeTypeArgument(this, "Lis
tIterable", 0)]); | |
4317 C.JSArray_methods.set$length(result, this.get$length(this)); | |
4318 } else | |
4319 result = H.setRuntimeTypeInfo(new Array(this.get$length(this)), [H.get
RuntimeTypeArgument(this, "ListIterable", 0)]); | |
4320 for (i = 0; i < this.get$length(this); ++i) { | |
4321 t1 = this.elementAt$1(0, i); | |
4322 if (i >= result.length) | |
4323 return H.ioore(result, i); | |
4324 result[i] = t1; | |
4325 } | |
4326 return result; | |
4327 }, | |
4328 toList$0: function($receiver) { | |
4329 return this.toList$1$growable($receiver, true); | |
4330 }, | |
4331 $isEfficientLength: 1 | |
4332 }, | |
4333 SubListIterable: { | |
4334 "^": "ListIterable;_iterable,__internal$_start,_endOrLength", | |
4335 get$_endIndex: function() { | |
4336 var $length, t1, t2; | |
4337 $length = J.get$length$asx(this._iterable); | |
4338 t1 = this._endOrLength; | |
4339 if (t1 != null) { | |
4340 if (typeof t1 !== "number") | |
4341 return t1.$gt(); | |
4342 t2 = t1 > $length; | |
4343 } else | |
4344 t2 = true; | |
4345 if (t2) | |
4346 return $length; | |
4347 return t1; | |
4348 }, | |
4349 get$_startIndex: function() { | |
4350 var $length, t1; | |
4351 $length = J.get$length$asx(this._iterable); | |
4352 t1 = this.__internal$_start; | |
4353 if (t1 > $length) | |
4354 return $length; | |
4355 return t1; | |
4356 }, | |
4357 get$length: function(_) { | |
4358 var $length, t1, t2, t3; | |
4359 $length = J.get$length$asx(this._iterable); | |
4360 t1 = this.__internal$_start; | |
4361 if (t1 >= $length) | |
4362 return 0; | |
4363 t2 = this._endOrLength; | |
4364 if (t2 != null) { | |
4365 if (typeof t2 !== "number") | |
4366 return t2.$ge(); | |
4367 t3 = t2 >= $length; | |
4368 } else | |
4369 t3 = true; | |
4370 if (t3) | |
4371 return $length - t1; | |
4372 if (typeof t2 !== "number") | |
4373 return t2.$sub(); | |
4374 return t2 - t1; | |
4375 }, | |
4376 elementAt$1: function(_, index) { | |
4377 var realIndex, t1; | |
4378 realIndex = this.get$_startIndex() + index; | |
4379 if (index >= 0) { | |
4380 t1 = this.get$_endIndex(); | |
4381 if (typeof t1 !== "number") | |
4382 return H.iae(t1); | |
4383 t1 = realIndex >= t1; | |
4384 } else | |
4385 t1 = true; | |
4386 if (t1) | |
4387 throw H.wrapException(P.IndexError$(index, this, "index", null, null))
; | |
4388 return J.elementAt$1$ax(this._iterable, realIndex); | |
4389 } | |
4390 }, | |
4391 ListIterator: { | |
4392 "^": "Object;_iterable,__internal$_length,_index,__internal$_current", | |
4393 get$current: function() { | |
4394 return this.__internal$_current; | |
4395 }, | |
4396 moveNext$0: function() { | |
4397 var t1, t2, $length, t3; | |
4398 t1 = this._iterable; | |
4399 t2 = J.getInterceptor$asx(t1); | |
4400 $length = t2.get$length(t1); | |
4401 if (this.__internal$_length !== $length) | |
4402 throw H.wrapException(new P.ConcurrentModificationError(t1)); | |
4403 t3 = this._index; | |
4404 if (t3 >= $length) { | |
4405 this.__internal$_current = null; | |
4406 return false; | |
4407 } | |
4408 this.__internal$_current = t2.elementAt$1(t1, t3); | |
4409 ++this._index; | |
4410 return true; | |
4411 } | |
4412 }, | |
4413 MappedIterable: { | |
4414 "^": "Iterable;_iterable,_f", | |
4415 get$iterator: function(_) { | |
4416 var t1 = new H.MappedIterator(null, J.get$iterator$ax(this._iterable), t
his._f); | |
4417 t1.$builtinTypeInfo = this.$builtinTypeInfo; | |
4418 return t1; | |
4419 }, | |
4420 get$length: function(_) { | |
4421 return J.get$length$asx(this._iterable); | |
4422 }, | |
4423 get$isEmpty: function(_) { | |
4424 return J.get$isEmpty$asx(this._iterable); | |
4425 }, | |
4426 get$last: function(_) { | |
4427 return this._f$1(J.get$last$ax(this._iterable)); | |
4428 }, | |
4429 _f$1: function(arg0) { | |
4430 return this._f.call$1(arg0); | |
4431 }, | |
4432 $asIterable: function($S, $T) { | |
4433 return [$T]; | |
4434 }, | |
4435 static: {MappedIterable_MappedIterable: function(iterable, $function, $S,
$T) { | |
4436 if (!!J.getInterceptor(iterable).$isEfficientLength) | |
4437 return H.setRuntimeTypeInfo(new H.EfficientLengthMappedIterable(iter
able, $function), [$S, $T]); | |
4438 return H.setRuntimeTypeInfo(new H.MappedIterable(iterable, $function),
[$S, $T]); | |
4439 }} | |
4440 }, | |
4441 EfficientLengthMappedIterable: { | |
4442 "^": "MappedIterable;_iterable,_f", | |
4443 $isEfficientLength: 1 | |
4444 }, | |
4445 MappedIterator: { | |
4446 "^": "Iterator;__internal$_current,_iterator,_f", | |
4447 moveNext$0: function() { | |
4448 var t1 = this._iterator; | |
4449 if (t1.moveNext$0()) { | |
4450 this.__internal$_current = this._f$1(t1.get$current()); | |
4451 return true; | |
4452 } | |
4453 this.__internal$_current = null; | |
4454 return false; | |
4455 }, | |
4456 get$current: function() { | |
4457 return this.__internal$_current; | |
4458 }, | |
4459 _f$1: function(arg0) { | |
4460 return this._f.call$1(arg0); | |
4461 }, | |
4462 $asIterator: function($S, $T) { | |
4463 return [$T]; | |
4464 } | |
4465 }, | |
4466 MappedListIterable: { | |
4467 "^": "ListIterable;_source,_f", | |
4468 get$length: function(_) { | |
4469 return J.get$length$asx(this._source); | |
4470 }, | |
4471 elementAt$1: function(_, index) { | |
4472 return this._f$1(J.elementAt$1$ax(this._source, index)); | |
4473 }, | |
4474 _f$1: function(arg0) { | |
4475 return this._f.call$1(arg0); | |
4476 }, | |
4477 $asListIterable: function($S, $T) { | |
4478 return [$T]; | |
4479 }, | |
4480 $asIterable: function($S, $T) { | |
4481 return [$T]; | |
4482 }, | |
4483 $isEfficientLength: 1 | |
4484 }, | |
4485 WhereIterable: { | |
4486 "^": "Iterable;_iterable,_f", | |
4487 get$iterator: function(_) { | |
4488 var t1 = new H.WhereIterator(J.get$iterator$ax(this._iterable), this._f)
; | |
4489 t1.$builtinTypeInfo = this.$builtinTypeInfo; | |
4490 return t1; | |
4491 } | |
4492 }, | |
4493 WhereIterator: { | |
4494 "^": "Iterator;_iterator,_f", | |
4495 moveNext$0: function() { | |
4496 for (var t1 = this._iterator; t1.moveNext$0();) | |
4497 if (this._f$1(t1.get$current()) === true) | |
4498 return true; | |
4499 return false; | |
4500 }, | |
4501 get$current: function() { | |
4502 return this._iterator.get$current(); | |
4503 }, | |
4504 _f$1: function(arg0) { | |
4505 return this._f.call$1(arg0); | |
4506 } | |
4507 }, | |
4508 FixedLengthListMixin: { | |
4509 "^": "Object;", | |
4510 set$length: function(receiver, newLength) { | |
4511 throw H.wrapException(new P.UnsupportedError("Cannot change the length o
f a fixed-length list")); | |
4512 }, | |
4513 add$1: function(receiver, value) { | |
4514 throw H.wrapException(new P.UnsupportedError("Cannot add to a fixed-leng
th list")); | |
4515 } | |
4516 }, | |
4517 UnmodifiableListMixin: { | |
4518 "^": "Object;", | |
4519 $indexSet: function(_, index, value) { | |
4520 throw H.wrapException(new P.UnsupportedError("Cannot modify an unmodifia
ble list")); | |
4521 }, | |
4522 set$length: function(_, newLength) { | |
4523 throw H.wrapException(new P.UnsupportedError("Cannot change the length o
f an unmodifiable list")); | |
4524 }, | |
4525 add$1: function(_, value) { | |
4526 throw H.wrapException(new P.UnsupportedError("Cannot add to an unmodifia
ble list")); | |
4527 }, | |
4528 $isList: 1, | |
4529 $asList: null, | |
4530 $isEfficientLength: 1 | |
4531 }, | |
4532 UnmodifiableListBase: { | |
4533 "^": "ListBase+UnmodifiableListMixin;", | |
4534 $isList: 1, | |
4535 $asList: null, | |
4536 $isEfficientLength: 1 | |
4537 } | |
4538 }], ["dart._js_names", "dart:_js_names",, H, { | |
4539 "^": "", | |
4540 extractKeys: function(victim) { | |
4541 var t1 = H.setRuntimeTypeInfo(victim ? Object.keys(victim) : [], [null]); | |
4542 t1.fixed$length = Array; | |
4543 return t1; | |
4544 } | |
4545 }], ["dart.async", "dart:async",, P, { | |
4546 "^": "", | |
4547 _AsyncRun__initializeScheduleImmediate: function() { | |
4548 var t1, div, span; | |
4549 t1 = {}; | |
4550 if (self.scheduleImmediate != null) | |
4551 return P.async__AsyncRun__scheduleImmediateJsOverride$closure(); | |
4552 if (self.MutationObserver != null && self.document != null) { | |
4553 div = self.document.createElement("div"); | |
4554 span = self.document.createElement("span"); | |
4555 t1._captured_storedCallback_0 = null; | |
4556 new self.MutationObserver(H.convertDartClosureToJS(new P._AsyncRun__init
ializeScheduleImmediate_internalCallback(t1), 1)).observe(div, {childList: true}
); | |
4557 return new P._AsyncRun__initializeScheduleImmediate_closure(t1, div, spa
n); | |
4558 } else if (self.setImmediate != null) | |
4559 return P.async__AsyncRun__scheduleImmediateWithSetImmediate$closure(); | |
4560 return P.async__AsyncRun__scheduleImmediateWithTimer$closure(); | |
4561 }, | |
4562 _AsyncRun__scheduleImmediateJsOverride: [function(callback) { | |
4563 ++init.globalState.topEventLoop._activeJsAsyncCount; | |
4564 self.scheduleImmediate(H.convertDartClosureToJS(new P._AsyncRun__scheduleI
mmediateJsOverride_internalCallback(callback), 0)); | |
4565 }, "call$1", "async__AsyncRun__scheduleImmediateJsOverride$closure", 2, 0, 4
], | |
4566 _AsyncRun__scheduleImmediateWithSetImmediate: [function(callback) { | |
4567 ++init.globalState.topEventLoop._activeJsAsyncCount; | |
4568 self.setImmediate(H.convertDartClosureToJS(new P._AsyncRun__scheduleImmedi
ateWithSetImmediate_internalCallback(callback), 0)); | |
4569 }, "call$1", "async__AsyncRun__scheduleImmediateWithSetImmediate$closure", 2
, 0, 4], | |
4570 _AsyncRun__scheduleImmediateWithTimer: [function(callback) { | |
4571 P.Timer__createTimer(C.Duration_0, callback); | |
4572 }, "call$1", "async__AsyncRun__scheduleImmediateWithTimer$closure", 2, 0, 4]
, | |
4573 _asyncHelper: function(object, bodyFunctionOrErrorCode, completer) { | |
4574 if (bodyFunctionOrErrorCode === 0) { | |
4575 J.complete$1$x(completer, object); | |
4576 return; | |
4577 } else if (bodyFunctionOrErrorCode === 1) { | |
4578 completer.completeError$2(H.unwrapException(object), H.getTraceFromExcep
tion(object)); | |
4579 return; | |
4580 } | |
4581 P._awaitOnObject(object, bodyFunctionOrErrorCode); | |
4582 return completer.get$future(); | |
4583 }, | |
4584 _awaitOnObject: function(object, bodyFunction) { | |
4585 var thenCallback, errorCallback, t1, future; | |
4586 thenCallback = new P._awaitOnObject_closure(bodyFunction); | |
4587 errorCallback = new P._awaitOnObject_closure0(bodyFunction); | |
4588 t1 = J.getInterceptor(object); | |
4589 if (!!t1.$is_Future) | |
4590 object._thenNoZoneRegistration$2(thenCallback, errorCallback); | |
4591 else if (!!t1.$isFuture) | |
4592 object.then$2$onError(thenCallback, errorCallback); | |
4593 else { | |
4594 future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [
null]); | |
4595 future._setValue$1(object); | |
4596 future._thenNoZoneRegistration$2(thenCallback, null); | |
4597 } | |
4598 }, | |
4599 _wrapJsFunctionForAsync: function($function) { | |
4600 var $protected = function(errorCode, result) { | |
4601 while (true) | |
4602 try { | |
4603 $function(errorCode, result); | |
4604 break; | |
4605 } catch (error) { | |
4606 result = error; | |
4607 errorCode = 1; | |
4608 } | |
4609 }; | |
4610 $.Zone__current.toString; | |
4611 return new P._wrapJsFunctionForAsync_closure($protected); | |
4612 }, | |
4613 _registerErrorHandler: function(errorHandler, zone) { | |
4614 var t1 = H.getDynamicRuntimeType(); | |
4615 t1 = H.buildFunctionType(t1, [t1, t1])._isTest$1(errorHandler); | |
4616 if (t1) { | |
4617 zone.toString; | |
4618 return errorHandler; | |
4619 } else { | |
4620 zone.toString; | |
4621 return errorHandler; | |
4622 } | |
4623 }, | |
4624 Completer_Completer$sync: function($T) { | |
4625 return H.setRuntimeTypeInfo(new P._SyncCompleter(H.setRuntimeTypeInfo(new
P._Future(0, $.Zone__current, null), [$T])), [$T]); | |
4626 }, | |
4627 _completeWithErrorCallback: function(result, error, stackTrace) { | |
4628 $.Zone__current.toString; | |
4629 result._completeError$2(error, stackTrace); | |
4630 }, | |
4631 _microtaskLoop: function() { | |
4632 var t1, t2; | |
4633 for (; t1 = $._nextCallback, t1 != null;) { | |
4634 $._lastPriorityCallback = null; | |
4635 t2 = t1.next; | |
4636 $._nextCallback = t2; | |
4637 if (t2 == null) | |
4638 $._lastCallback = null; | |
4639 $.Zone__current = t1.zone; | |
4640 t1.callback$0(); | |
4641 } | |
4642 }, | |
4643 _microtaskLoopEntry: [function() { | |
4644 $._isInCallbackLoop = true; | |
4645 try { | |
4646 P._microtaskLoop(); | |
4647 } finally { | |
4648 $.Zone__current = C.C__RootZone; | |
4649 $._lastPriorityCallback = null; | |
4650 $._isInCallbackLoop = false; | |
4651 if ($._nextCallback != null) | |
4652 $.$get$_AsyncRun_scheduleImmediateClosure().call$1(P.async___microtask
LoopEntry$closure()); | |
4653 } | |
4654 }, "call$0", "async___microtaskLoopEntry$closure", 0, 0, 2], | |
4655 _scheduleAsyncCallback: function(newEntry) { | |
4656 if ($._nextCallback == null) { | |
4657 $._lastCallback = newEntry; | |
4658 $._nextCallback = newEntry; | |
4659 if (!$._isInCallbackLoop) | |
4660 $.$get$_AsyncRun_scheduleImmediateClosure().call$1(P.async___microtask
LoopEntry$closure()); | |
4661 } else { | |
4662 $._lastCallback.next = newEntry; | |
4663 $._lastCallback = newEntry; | |
4664 } | |
4665 }, | |
4666 scheduleMicrotask: function(callback) { | |
4667 var currentZone, t1; | |
4668 currentZone = $.Zone__current; | |
4669 if (C.C__RootZone === currentZone) { | |
4670 P._rootScheduleMicrotask(null, null, C.C__RootZone, callback); | |
4671 return; | |
4672 } | |
4673 currentZone.toString; | |
4674 if (C.C__RootZone.get$errorZone() === currentZone) { | |
4675 P._rootScheduleMicrotask(null, null, currentZone, callback); | |
4676 return; | |
4677 } | |
4678 t1 = $.Zone__current; | |
4679 P._rootScheduleMicrotask(null, null, t1, t1.bindCallback$2$runGuarded(call
back, true)); | |
4680 }, | |
4681 StreamIterator_StreamIterator: function(stream, $T) { | |
4682 var t1, t2, t3; | |
4683 t1 = H.setRuntimeTypeInfo(new P._StreamIteratorImpl(null, null, null, 0),
[$T]); | |
4684 t2 = t1.get$_async$_onData(); | |
4685 t3 = t1.get$_onError(); | |
4686 t1._subscription = stream.listen$4$cancelOnError$onDone$onError(t2, true,
t1.get$_onDone(), t3); | |
4687 return t1; | |
4688 }, | |
4689 _runUserCode: function(userCode, onSuccess, onError) { | |
4690 var e, s, replacement, error, stackTrace, exception, t1; | |
4691 try { | |
4692 onSuccess.call$1(userCode.call$0()); | |
4693 } catch (exception) { | |
4694 t1 = H.unwrapException(exception); | |
4695 e = t1; | |
4696 s = H.getTraceFromException(exception); | |
4697 $.Zone__current.toString; | |
4698 replacement = null; | |
4699 if (replacement == null) | |
4700 onError.call$2(e, s); | |
4701 else { | |
4702 t1 = J.get$error$x(replacement); | |
4703 error = t1; | |
4704 stackTrace = replacement.get$stackTrace(); | |
4705 onError.call$2(error, stackTrace); | |
4706 } | |
4707 } | |
4708 }, | |
4709 _cancelAndError: function(subscription, future, error, stackTrace) { | |
4710 var cancelFuture = subscription.cancel$0(); | |
4711 if (!!J.getInterceptor(cancelFuture).$isFuture) | |
4712 cancelFuture.whenComplete$1(new P._cancelAndError_closure(future, error,
stackTrace)); | |
4713 else | |
4714 future._completeError$2(error, stackTrace); | |
4715 }, | |
4716 _cancelAndErrorClosure: function(subscription, future) { | |
4717 return new P._cancelAndErrorClosure_closure(subscription, future); | |
4718 }, | |
4719 _cancelAndValue: function(subscription, future, value) { | |
4720 var cancelFuture = subscription.cancel$0(); | |
4721 if (!!J.getInterceptor(cancelFuture).$isFuture) | |
4722 cancelFuture.whenComplete$1(new P._cancelAndValue_closure(future, value)
); | |
4723 else | |
4724 future._complete$1(value); | |
4725 }, | |
4726 _addErrorWithReplacement: function(sink, error, stackTrace) { | |
4727 $.Zone__current.toString; | |
4728 sink._addError$2(error, stackTrace); | |
4729 }, | |
4730 Timer_Timer: function(duration, callback) { | |
4731 var t1 = $.Zone__current; | |
4732 if (t1 === C.C__RootZone) { | |
4733 t1.toString; | |
4734 return P.Timer__createTimer(duration, callback); | |
4735 } | |
4736 return P.Timer__createTimer(duration, t1.bindCallback$2$runGuarded(callbac
k, true)); | |
4737 }, | |
4738 Timer__createTimer: function(duration, callback) { | |
4739 var milliseconds = C.JSInt_methods._tdivFast$1(duration._duration, 1000); | |
4740 return H.TimerImpl$(milliseconds < 0 ? 0 : milliseconds, callback); | |
4741 }, | |
4742 Zone__enter: function(zone) { | |
4743 var previous = $.Zone__current; | |
4744 $.Zone__current = zone; | |
4745 return previous; | |
4746 }, | |
4747 _rootHandleUncaughtError: function($self, $parent, zone, error, stackTrace)
{ | |
4748 var entry, t1, t2; | |
4749 entry = new P._AsyncCallbackEntry(new P._rootHandleUncaughtError_closure(e
rror, stackTrace), C.C__RootZone, null); | |
4750 t1 = $._nextCallback; | |
4751 if (t1 == null) { | |
4752 P._scheduleAsyncCallback(entry); | |
4753 $._lastPriorityCallback = $._lastCallback; | |
4754 } else { | |
4755 t2 = $._lastPriorityCallback; | |
4756 if (t2 == null) { | |
4757 entry.next = t1; | |
4758 $._lastPriorityCallback = entry; | |
4759 $._nextCallback = entry; | |
4760 } else { | |
4761 entry.next = t2.next; | |
4762 t2.next = entry; | |
4763 $._lastPriorityCallback = entry; | |
4764 if (entry.next == null) | |
4765 $._lastCallback = entry; | |
4766 } | |
4767 } | |
4768 }, | |
4769 _rootRun: function($self, $parent, zone, f) { | |
4770 var old, t1; | |
4771 if ($.Zone__current === zone) | |
4772 return f.call$0(); | |
4773 old = P.Zone__enter(zone); | |
4774 try { | |
4775 t1 = f.call$0(); | |
4776 return t1; | |
4777 } finally { | |
4778 $.Zone__current = old; | |
4779 } | |
4780 }, | |
4781 _rootRunUnary: function($self, $parent, zone, f, arg) { | |
4782 var old, t1; | |
4783 if ($.Zone__current === zone) | |
4784 return f.call$1(arg); | |
4785 old = P.Zone__enter(zone); | |
4786 try { | |
4787 t1 = f.call$1(arg); | |
4788 return t1; | |
4789 } finally { | |
4790 $.Zone__current = old; | |
4791 } | |
4792 }, | |
4793 _rootRunBinary: function($self, $parent, zone, f, arg1, arg2) { | |
4794 var old, t1; | |
4795 if ($.Zone__current === zone) | |
4796 return f.call$2(arg1, arg2); | |
4797 old = P.Zone__enter(zone); | |
4798 try { | |
4799 t1 = f.call$2(arg1, arg2); | |
4800 return t1; | |
4801 } finally { | |
4802 $.Zone__current = old; | |
4803 } | |
4804 }, | |
4805 _rootScheduleMicrotask: function($self, $parent, zone, f) { | |
4806 var t1 = C.C__RootZone !== zone; | |
4807 if (t1) { | |
4808 f = zone.bindCallback$2$runGuarded(f, !(!t1 || C.C__RootZone.get$errorZo
ne() === zone)); | |
4809 zone = C.C__RootZone; | |
4810 } | |
4811 P._scheduleAsyncCallback(new P._AsyncCallbackEntry(f, zone, null)); | |
4812 }, | |
4813 _AsyncRun__initializeScheduleImmediate_internalCallback: { | |
4814 "^": "Closure:0;_box_0", | |
4815 call$1: function(_) { | |
4816 var t1, f; | |
4817 H.leaveJsAsync(); | |
4818 t1 = this._box_0; | |
4819 f = t1._captured_storedCallback_0; | |
4820 t1._captured_storedCallback_0 = null; | |
4821 f.call$0(); | |
4822 } | |
4823 }, | |
4824 _AsyncRun__initializeScheduleImmediate_closure: { | |
4825 "^": "Closure:13;_box_0,_captured_div_1,_captured_span_2", | |
4826 call$1: function(callback) { | |
4827 var t1, t2; | |
4828 ++init.globalState.topEventLoop._activeJsAsyncCount; | |
4829 this._box_0._captured_storedCallback_0 = callback; | |
4830 t1 = this._captured_div_1; | |
4831 t2 = this._captured_span_2; | |
4832 t1.firstChild ? t1.removeChild(t2) : t1.appendChild(t2); | |
4833 } | |
4834 }, | |
4835 _AsyncRun__scheduleImmediateJsOverride_internalCallback: { | |
4836 "^": "Closure:1;_captured_callback_0", | |
4837 call$0: function() { | |
4838 H.leaveJsAsync(); | |
4839 this._captured_callback_0.call$0(); | |
4840 } | |
4841 }, | |
4842 _AsyncRun__scheduleImmediateWithSetImmediate_internalCallback: { | |
4843 "^": "Closure:1;_captured_callback_0", | |
4844 call$0: function() { | |
4845 H.leaveJsAsync(); | |
4846 this._captured_callback_0.call$0(); | |
4847 } | |
4848 }, | |
4849 _awaitOnObject_closure: { | |
4850 "^": "Closure:0;_captured_bodyFunction_0", | |
4851 call$1: function(result) { | |
4852 return this._captured_bodyFunction_0.call$2(0, result); | |
4853 } | |
4854 }, | |
4855 _awaitOnObject_closure0: { | |
4856 "^": "Closure:5;_captured_bodyFunction_1", | |
4857 call$2: function(error, stackTrace) { | |
4858 this._captured_bodyFunction_1.call$2(1, new H.ExceptionAndStackTrace(err
or, stackTrace)); | |
4859 } | |
4860 }, | |
4861 _wrapJsFunctionForAsync_closure: { | |
4862 "^": "Closure:14;_captured_protected_0", | |
4863 call$2: function(errorCode, result) { | |
4864 this._captured_protected_0(errorCode, result); | |
4865 } | |
4866 }, | |
4867 _UncaughtAsyncError: { | |
4868 "^": "AsyncError;error,stackTrace", | |
4869 toString$0: function(_) { | |
4870 var result, t1; | |
4871 result = "Uncaught Error: " + H.S(this.error); | |
4872 t1 = this.stackTrace; | |
4873 return t1 != null ? result + ("\nStack Trace:\n" + H.S(t1)) : result; | |
4874 }, | |
4875 static: {_UncaughtAsyncError__getBestStackTrace: function(error, stackTrac
e) { | |
4876 if (stackTrace != null) | |
4877 return stackTrace; | |
4878 if (!!J.getInterceptor(error).$isError) | |
4879 return error.get$stackTrace(); | |
4880 return; | |
4881 }} | |
4882 }, | |
4883 Future: { | |
4884 "^": "Object;" | |
4885 }, | |
4886 _Completer: { | |
4887 "^": "Object;future<", | |
4888 completeError$2: [function(error, stackTrace) { | |
4889 error = error != null ? error : new P.NullThrownError(); | |
4890 if (this.future._state !== 0) | |
4891 throw H.wrapException(new P.StateError("Future already completed")); | |
4892 $.Zone__current.toString; | |
4893 this._completeError$2(error, stackTrace); | |
4894 }, function(error) { | |
4895 return this.completeError$2(error, null); | |
4896 }, "completeError$1", "call$2", "call$1", "get$completeError", 2, 2, 6, 0] | |
4897 }, | |
4898 _AsyncCompleter: { | |
4899 "^": "_Completer;future", | |
4900 complete$1: function(_, value) { | |
4901 var t1 = this.future; | |
4902 if (t1._state !== 0) | |
4903 throw H.wrapException(new P.StateError("Future already completed")); | |
4904 t1._asyncComplete$1(value); | |
4905 }, | |
4906 _completeError$2: function(error, stackTrace) { | |
4907 this.future._asyncCompleteError$2(error, stackTrace); | |
4908 } | |
4909 }, | |
4910 _SyncCompleter: { | |
4911 "^": "_Completer;future", | |
4912 complete$1: function(_, value) { | |
4913 var t1 = this.future; | |
4914 if (t1._state !== 0) | |
4915 throw H.wrapException(new P.StateError("Future already completed")); | |
4916 t1._complete$1(value); | |
4917 }, | |
4918 _completeError$2: function(error, stackTrace) { | |
4919 this.future._completeError$2(error, stackTrace); | |
4920 } | |
4921 }, | |
4922 _FutureListener: { | |
4923 "^": "Object;_nextListener<,result>,state,callback,errorCallback", | |
4924 get$_zone: function() { | |
4925 return this.result._zone; | |
4926 }, | |
4927 get$handlesValue: function() { | |
4928 return (this.state & 1) !== 0; | |
4929 }, | |
4930 get$hasErrorTest: function() { | |
4931 return this.state === 6; | |
4932 }, | |
4933 get$handlesComplete: function() { | |
4934 return this.state === 8; | |
4935 }, | |
4936 get$_onValue: function() { | |
4937 return this.callback; | |
4938 }, | |
4939 get$_whenCompleteAction: function() { | |
4940 return this.callback; | |
4941 } | |
4942 }, | |
4943 _Future: { | |
4944 "^": "Object;_state?,_zone<,_resultOrListeners", | |
4945 get$_hasError: function() { | |
4946 return this._state === 8; | |
4947 }, | |
4948 set$_isChained: function(value) { | |
4949 if (value) | |
4950 this._state = 2; | |
4951 else | |
4952 this._state = 0; | |
4953 }, | |
4954 then$2$onError: function(f, onError) { | |
4955 var currentZone = $.Zone__current; | |
4956 if (currentZone !== C.C__RootZone) { | |
4957 currentZone.toString; | |
4958 if (onError != null) | |
4959 onError = P._registerErrorHandler(onError, currentZone); | |
4960 } | |
4961 return this._thenNoZoneRegistration$2(f, onError); | |
4962 }, | |
4963 then$1: function(f) { | |
4964 return this.then$2$onError(f, null); | |
4965 }, | |
4966 _thenNoZoneRegistration$2: function(f, onError) { | |
4967 var result = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null
), [null]); | |
4968 this._addListener$1(new P._FutureListener(null, result, onError == null
? 1 : 3, f, onError)); | |
4969 return result; | |
4970 }, | |
4971 whenComplete$1: function(action) { | |
4972 var t1, result; | |
4973 t1 = $.Zone__current; | |
4974 result = new P._Future(0, t1, null); | |
4975 result.$builtinTypeInfo = this.$builtinTypeInfo; | |
4976 if (t1 !== C.C__RootZone) | |
4977 t1.toString; | |
4978 this._addListener$1(new P._FutureListener(null, result, 8, action, null)
); | |
4979 return result; | |
4980 }, | |
4981 _markPendingCompletion$0: function() { | |
4982 if (this._state !== 0) | |
4983 throw H.wrapException(new P.StateError("Future already completed")); | |
4984 this._state = 1; | |
4985 }, | |
4986 get$_value: function() { | |
4987 return this._resultOrListeners; | |
4988 }, | |
4989 get$_error: function() { | |
4990 return this._resultOrListeners; | |
4991 }, | |
4992 _setValue$1: function(value) { | |
4993 this._state = 4; | |
4994 this._resultOrListeners = value; | |
4995 }, | |
4996 _setErrorObject$1: function(error) { | |
4997 this._state = 8; | |
4998 this._resultOrListeners = error; | |
4999 }, | |
5000 _setError$2: function(error, stackTrace) { | |
5001 this._setErrorObject$1(new P.AsyncError(error, stackTrace)); | |
5002 }, | |
5003 _addListener$1: function(listener) { | |
5004 var t1; | |
5005 if (this._state >= 4) { | |
5006 t1 = this._zone; | |
5007 t1.toString; | |
5008 P._rootScheduleMicrotask(null, null, t1, new P._Future__addListener_cl
osure(this, listener)); | |
5009 } else { | |
5010 listener._nextListener = this._resultOrListeners; | |
5011 this._resultOrListeners = listener; | |
5012 } | |
5013 }, | |
5014 _removeListeners$0: function() { | |
5015 var current, prev, next; | |
5016 current = this._resultOrListeners; | |
5017 this._resultOrListeners = null; | |
5018 for (prev = null; current != null; prev = current, current = next) { | |
5019 next = current.get$_nextListener(); | |
5020 current._nextListener = prev; | |
5021 } | |
5022 return prev; | |
5023 }, | |
5024 _complete$1: function(value) { | |
5025 var t1, listeners; | |
5026 t1 = J.getInterceptor(value); | |
5027 if (!!t1.$isFuture) | |
5028 if (!!t1.$is_Future) | |
5029 P._Future__chainCoreFuture(value, this); | |
5030 else | |
5031 P._Future__chainForeignFuture(value, this); | |
5032 else { | |
5033 listeners = this._removeListeners$0(); | |
5034 this._setValue$1(value); | |
5035 P._Future__propagateToListeners(this, listeners); | |
5036 } | |
5037 }, | |
5038 _completeWithValue$1: function(value) { | |
5039 var listeners = this._removeListeners$0(); | |
5040 this._setValue$1(value); | |
5041 P._Future__propagateToListeners(this, listeners); | |
5042 }, | |
5043 _completeError$2: [function(error, stackTrace) { | |
5044 var listeners = this._removeListeners$0(); | |
5045 this._setErrorObject$1(new P.AsyncError(error, stackTrace)); | |
5046 P._Future__propagateToListeners(this, listeners); | |
5047 }, function(error) { | |
5048 return this._completeError$2(error, null); | |
5049 }, "_completeError$1", "call$2", "call$1", "get$_completeError", 2, 2, 15,
0], | |
5050 _asyncComplete$1: function(value) { | |
5051 var t1; | |
5052 if (value == null) | |
5053 ; | |
5054 else { | |
5055 t1 = J.getInterceptor(value); | |
5056 if (!!t1.$isFuture) { | |
5057 if (!!t1.$is_Future) { | |
5058 t1 = value._state; | |
5059 if (t1 >= 4 && t1 === 8) { | |
5060 this._markPendingCompletion$0(); | |
5061 t1 = this._zone; | |
5062 t1.toString; | |
5063 P._rootScheduleMicrotask(null, null, t1, new P._Future__asyncCom
plete_closure(this, value)); | |
5064 } else | |
5065 P._Future__chainCoreFuture(value, this); | |
5066 } else | |
5067 P._Future__chainForeignFuture(value, this); | |
5068 return; | |
5069 } | |
5070 } | |
5071 this._markPendingCompletion$0(); | |
5072 t1 = this._zone; | |
5073 t1.toString; | |
5074 P._rootScheduleMicrotask(null, null, t1, new P._Future__asyncComplete_cl
osure0(this, value)); | |
5075 }, | |
5076 _asyncCompleteError$2: function(error, stackTrace) { | |
5077 var t1; | |
5078 this._markPendingCompletion$0(); | |
5079 t1 = this._zone; | |
5080 t1.toString; | |
5081 P._rootScheduleMicrotask(null, null, t1, new P._Future__asyncCompleteErr
or_closure(this, error, stackTrace)); | |
5082 }, | |
5083 $isFuture: 1, | |
5084 static: {_Future__chainForeignFuture: function(source, target) { | |
5085 var e, s, exception, t1; | |
5086 target.set$_state(2); | |
5087 try { | |
5088 source.then$2$onError(new P._Future__chainForeignFuture_closure(targ
et), new P._Future__chainForeignFuture_closure0(target)); | |
5089 } catch (exception) { | |
5090 t1 = H.unwrapException(exception); | |
5091 e = t1; | |
5092 s = H.getTraceFromException(exception); | |
5093 P.scheduleMicrotask(new P._Future__chainForeignFuture_closure1(targe
t, e, s)); | |
5094 } | |
5095 }, _Future__chainCoreFuture: function(source, target) { | |
5096 var listener; | |
5097 target._state = 2; | |
5098 listener = new P._FutureListener(null, target, 0, null, null); | |
5099 if (source._state >= 4) | |
5100 P._Future__propagateToListeners(source, listener); | |
5101 else | |
5102 source._addListener$1(listener); | |
5103 }, _Future__propagateToListeners: function(source, listeners) { | |
5104 var t1, t2, t3, hasError, asyncError, t4, listeners0, sourceValue, zon
e, oldZone, chainSource, result; | |
5105 t1 = {}; | |
5106 t1._captured_source_4 = source; | |
5107 for (t2 = source; true;) { | |
5108 t3 = {}; | |
5109 hasError = t2.get$_hasError(); | |
5110 if (listeners == null) { | |
5111 if (hasError) { | |
5112 asyncError = t1._captured_source_4.get$_error(); | |
5113 t2 = t1._captured_source_4.get$_zone(); | |
5114 t3 = J.get$error$x(asyncError); | |
5115 t4 = asyncError.get$stackTrace(); | |
5116 t2.toString; | |
5117 P._rootHandleUncaughtError(null, null, t2, t3, t4); | |
5118 } | |
5119 return; | |
5120 } | |
5121 for (; listeners.get$_nextListener() != null; listeners = listeners0
) { | |
5122 listeners0 = listeners._nextListener; | |
5123 listeners._nextListener = null; | |
5124 P._Future__propagateToListeners(t1._captured_source_4, listeners); | |
5125 } | |
5126 t3._captured_listenerHasValue_1 = true; | |
5127 sourceValue = hasError ? null : t1._captured_source_4.get$_value(); | |
5128 t3._captured_listenerValueOrError_2 = sourceValue; | |
5129 t3._captured_isPropagationAborted_3 = false; | |
5130 t2 = !hasError; | |
5131 if (!t2 || listeners.get$handlesValue() || listeners.state === 8) { | |
5132 zone = listeners.get$_zone(); | |
5133 if (hasError) { | |
5134 t4 = t1._captured_source_4.get$_zone(); | |
5135 t4.toString; | |
5136 if (t4 == null ? zone != null : t4 !== zone) { | |
5137 t4 = t4.get$errorZone(); | |
5138 zone.toString; | |
5139 t4 = t4 === zone; | |
5140 } else | |
5141 t4 = true; | |
5142 t4 = !t4; | |
5143 } else | |
5144 t4 = false; | |
5145 if (t4) { | |
5146 asyncError = t1._captured_source_4.get$_error(); | |
5147 t2 = t1._captured_source_4.get$_zone(); | |
5148 t3 = J.get$error$x(asyncError); | |
5149 t4 = asyncError.get$stackTrace(); | |
5150 t2.toString; | |
5151 P._rootHandleUncaughtError(null, null, t2, t3, t4); | |
5152 return; | |
5153 } | |
5154 oldZone = $.Zone__current; | |
5155 if (oldZone == null ? zone != null : oldZone !== zone) | |
5156 $.Zone__current = zone; | |
5157 else | |
5158 oldZone = null; | |
5159 if (t2) { | |
5160 if (listeners.get$handlesValue()) | |
5161 t3._captured_listenerHasValue_1 = new P._Future__propagateToLi
steners_handleValueCallback(t3, listeners, sourceValue, zone).call$0(); | |
5162 } else | |
5163 new P._Future__propagateToListeners_handleError(t1, t3, listener
s, zone).call$0(); | |
5164 if (listeners.get$handlesComplete()) | |
5165 new P._Future__propagateToListeners_handleWhenCompleteCallback(t
1, t3, hasError, listeners, zone).call$0(); | |
5166 if (oldZone != null) | |
5167 $.Zone__current = oldZone; | |
5168 if (t3._captured_isPropagationAborted_3) | |
5169 return; | |
5170 if (t3._captured_listenerHasValue_1 === true) { | |
5171 t2 = t3._captured_listenerValueOrError_2; | |
5172 t2 = (sourceValue == null ? t2 != null : sourceValue !== t2) &&
!!J.getInterceptor(t2).$isFuture; | |
5173 } else | |
5174 t2 = false; | |
5175 if (t2) { | |
5176 chainSource = t3._captured_listenerValueOrError_2; | |
5177 result = listeners.result; | |
5178 if (chainSource instanceof P._Future) | |
5179 if (chainSource._state >= 4) { | |
5180 result._state = 2; | |
5181 t1._captured_source_4 = chainSource; | |
5182 listeners = new P._FutureListener(null, result, 0, null, nul
l); | |
5183 t2 = chainSource; | |
5184 continue; | |
5185 } else | |
5186 P._Future__chainCoreFuture(chainSource, result); | |
5187 else | |
5188 P._Future__chainForeignFuture(chainSource, result); | |
5189 return; | |
5190 } | |
5191 } | |
5192 result = listeners.result; | |
5193 listeners = result._removeListeners$0(); | |
5194 t2 = t3._captured_listenerHasValue_1; | |
5195 t3 = t3._captured_listenerValueOrError_2; | |
5196 if (t2 === true) { | |
5197 result._state = 4; | |
5198 result._resultOrListeners = t3; | |
5199 } else { | |
5200 result._state = 8; | |
5201 result._resultOrListeners = t3; | |
5202 } | |
5203 t1._captured_source_4 = result; | |
5204 t2 = result; | |
5205 } | |
5206 }} | |
5207 }, | |
5208 _Future__addListener_closure: { | |
5209 "^": "Closure:1;_captured_this_0,_captured_listener_1", | |
5210 call$0: function() { | |
5211 P._Future__propagateToListeners(this._captured_this_0, this._captured_li
stener_1); | |
5212 } | |
5213 }, | |
5214 _Future__chainForeignFuture_closure: { | |
5215 "^": "Closure:0;_captured_target_0", | |
5216 call$1: function(value) { | |
5217 this._captured_target_0._completeWithValue$1(value); | |
5218 } | |
5219 }, | |
5220 _Future__chainForeignFuture_closure0: { | |
5221 "^": "Closure:7;_captured_target_1", | |
5222 call$2: function(error, stackTrace) { | |
5223 this._captured_target_1._completeError$2(error, stackTrace); | |
5224 }, | |
5225 call$1: function(error) { | |
5226 return this.call$2(error, null); | |
5227 } | |
5228 }, | |
5229 _Future__chainForeignFuture_closure1: { | |
5230 "^": "Closure:1;_captured_target_2,_captured_e_3,_captured_s_4", | |
5231 call$0: function() { | |
5232 this._captured_target_2._completeError$2(this._captured_e_3, this._captu
red_s_4); | |
5233 } | |
5234 }, | |
5235 _Future__asyncComplete_closure: { | |
5236 "^": "Closure:1;_captured_this_0,_captured_coreFuture_1", | |
5237 call$0: function() { | |
5238 P._Future__chainCoreFuture(this._captured_coreFuture_1, this._captured_t
his_0); | |
5239 } | |
5240 }, | |
5241 _Future__asyncComplete_closure0: { | |
5242 "^": "Closure:1;_captured_this_2,_captured_value_3", | |
5243 call$0: function() { | |
5244 this._captured_this_2._completeWithValue$1(this._captured_value_3); | |
5245 } | |
5246 }, | |
5247 _Future__asyncCompleteError_closure: { | |
5248 "^": "Closure:1;_captured_this_0,_captured_error_1,_captured_stackTrace_2"
, | |
5249 call$0: function() { | |
5250 this._captured_this_0._completeError$2(this._captured_error_1, this._cap
tured_stackTrace_2); | |
5251 } | |
5252 }, | |
5253 _Future__propagateToListeners_handleValueCallback: { | |
5254 "^": "Closure:16;_box_1,_captured_listener_3,_captured_sourceValue_4,_capt
ured_zone_5", | |
5255 call$0: function() { | |
5256 var e, s, exception, t1; | |
5257 try { | |
5258 this._box_1._captured_listenerValueOrError_2 = this._captured_zone_5.r
unUnary$2(this._captured_listener_3.get$_onValue(), this._captured_sourceValue_4
); | |
5259 return true; | |
5260 } catch (exception) { | |
5261 t1 = H.unwrapException(exception); | |
5262 e = t1; | |
5263 s = H.getTraceFromException(exception); | |
5264 this._box_1._captured_listenerValueOrError_2 = new P.AsyncError(e, s); | |
5265 return false; | |
5266 } | |
5267 } | |
5268 }, | |
5269 _Future__propagateToListeners_handleError: { | |
5270 "^": "Closure:2;_box_2,_box_1,_captured_listener_6,_captured_zone_7", | |
5271 call$0: function() { | |
5272 var asyncError, matchesTest, test, e, s, errorCallback, e0, s0, t1, exce
ption, t2, listenerValueOrError, t3, t4; | |
5273 asyncError = this._box_2._captured_source_4.get$_error(); | |
5274 matchesTest = true; | |
5275 t1 = this._captured_listener_6; | |
5276 if (t1.get$hasErrorTest()) { | |
5277 test = t1.callback; | |
5278 try { | |
5279 matchesTest = this._captured_zone_7.runUnary$2(test, J.get$error$x(a
syncError)); | |
5280 } catch (exception) { | |
5281 t1 = H.unwrapException(exception); | |
5282 e = t1; | |
5283 s = H.getTraceFromException(exception); | |
5284 t1 = J.get$error$x(asyncError); | |
5285 t2 = e; | |
5286 listenerValueOrError = (t1 == null ? t2 == null : t1 === t2) ? async
Error : new P.AsyncError(e, s); | |
5287 t1 = this._box_1; | |
5288 t1._captured_listenerValueOrError_2 = listenerValueOrError; | |
5289 t1._captured_listenerHasValue_1 = false; | |
5290 return; | |
5291 } | |
5292 } | |
5293 errorCallback = t1.errorCallback; | |
5294 if (matchesTest === true && errorCallback != null) { | |
5295 try { | |
5296 t1 = errorCallback; | |
5297 t2 = H.getDynamicRuntimeType(); | |
5298 t2 = H.buildFunctionType(t2, [t2, t2])._isTest$1(t1); | |
5299 t3 = this._captured_zone_7; | |
5300 t4 = this._box_1; | |
5301 if (t2) | |
5302 t4._captured_listenerValueOrError_2 = t3.runBinary$3(errorCallback
, J.get$error$x(asyncError), asyncError.get$stackTrace()); | |
5303 else | |
5304 t4._captured_listenerValueOrError_2 = t3.runUnary$2(errorCallback,
J.get$error$x(asyncError)); | |
5305 } catch (exception) { | |
5306 t1 = H.unwrapException(exception); | |
5307 e0 = t1; | |
5308 s0 = H.getTraceFromException(exception); | |
5309 t1 = J.get$error$x(asyncError); | |
5310 t2 = e0; | |
5311 listenerValueOrError = (t1 == null ? t2 == null : t1 === t2) ? async
Error : new P.AsyncError(e0, s0); | |
5312 t1 = this._box_1; | |
5313 t1._captured_listenerValueOrError_2 = listenerValueOrError; | |
5314 t1._captured_listenerHasValue_1 = false; | |
5315 return; | |
5316 } | |
5317 this._box_1._captured_listenerHasValue_1 = true; | |
5318 } else { | |
5319 t1 = this._box_1; | |
5320 t1._captured_listenerValueOrError_2 = asyncError; | |
5321 t1._captured_listenerHasValue_1 = false; | |
5322 } | |
5323 } | |
5324 }, | |
5325 _Future__propagateToListeners_handleWhenCompleteCallback: { | |
5326 "^": "Closure:2;_box_2,_box_1,_captured_hasError_8,_captured_listener_9,_c
aptured_zone_10", | |
5327 call$0: function() { | |
5328 var t1, e, s, completeResult, t2, exception, t3, result; | |
5329 t1 = {}; | |
5330 t1._captured_completeResult_0 = null; | |
5331 try { | |
5332 completeResult = this._captured_zone_10.run$1(this._captured_listener_
9.get$_whenCompleteAction()); | |
5333 t1._captured_completeResult_0 = completeResult; | |
5334 t2 = completeResult; | |
5335 } catch (exception) { | |
5336 t1 = H.unwrapException(exception); | |
5337 e = t1; | |
5338 s = H.getTraceFromException(exception); | |
5339 if (this._captured_hasError_8) { | |
5340 t1 = J.get$error$x(this._box_2._captured_source_4.get$_error()); | |
5341 t2 = e; | |
5342 t2 = t1 == null ? t2 == null : t1 === t2; | |
5343 t1 = t2; | |
5344 } else | |
5345 t1 = false; | |
5346 t2 = this._box_1; | |
5347 if (t1) | |
5348 t2._captured_listenerValueOrError_2 = this._box_2._captured_source_4
.get$_error(); | |
5349 else | |
5350 t2._captured_listenerValueOrError_2 = new P.AsyncError(e, s); | |
5351 t2._captured_listenerHasValue_1 = false; | |
5352 return; | |
5353 } | |
5354 if (!!J.getInterceptor(t2).$isFuture) { | |
5355 t3 = this._captured_listener_9; | |
5356 result = t3.get$result(t3); | |
5357 result.set$_isChained(true); | |
5358 this._box_1._captured_isPropagationAborted_3 = true; | |
5359 t2.then$2$onError(new P._Future__propagateToListeners_handleWhenComple
teCallback_closure(this._box_2, result), new P._Future__propagateToListeners_han
dleWhenCompleteCallback_closure0(t1, result)); | |
5360 } | |
5361 } | |
5362 }, | |
5363 _Future__propagateToListeners_handleWhenCompleteCallback_closure: { | |
5364 "^": "Closure:0;_box_2,_captured_result_11", | |
5365 call$1: function(ignored) { | |
5366 P._Future__propagateToListeners(this._box_2._captured_source_4, new P._F
utureListener(null, this._captured_result_11, 0, null, null)); | |
5367 } | |
5368 }, | |
5369 _Future__propagateToListeners_handleWhenCompleteCallback_closure0: { | |
5370 "^": "Closure:7;_box_0,_captured_result_12", | |
5371 call$2: function(error, stackTrace) { | |
5372 var t1, completeResult; | |
5373 t1 = this._box_0; | |
5374 if (!(t1._captured_completeResult_0 instanceof P._Future)) { | |
5375 completeResult = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current
, null), [null]); | |
5376 t1._captured_completeResult_0 = completeResult; | |
5377 completeResult._setError$2(error, stackTrace); | |
5378 } | |
5379 P._Future__propagateToListeners(t1._captured_completeResult_0, new P._Fu
tureListener(null, this._captured_result_12, 0, null, null)); | |
5380 }, | |
5381 call$1: function(error) { | |
5382 return this.call$2(error, null); | |
5383 } | |
5384 }, | |
5385 _AsyncCallbackEntry: { | |
5386 "^": "Object;callback,zone,next", | |
5387 callback$0: function() { | |
5388 return this.callback.call$0(); | |
5389 } | |
5390 }, | |
5391 Stream: { | |
5392 "^": "Object;", | |
5393 map$1: function(_, convert) { | |
5394 return H.setRuntimeTypeInfo(new P._MapStream(convert, this), [H.getRunti
meTypeArgument(this, "Stream", 0), null]); | |
5395 }, | |
5396 contains$1: function(_, needle) { | |
5397 var t1, future; | |
5398 t1 = {}; | |
5399 future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [
P.bool]); | |
5400 t1._captured_subscription_0 = null; | |
5401 t1._captured_subscription_0 = this.listen$4$cancelOnError$onDone$onError
(new P.Stream_contains_closure(t1, this, needle, future), true, new P.Stream_con
tains_closure0(future), future.get$_completeError()); | |
5402 return future; | |
5403 }, | |
5404 forEach$1: function(_, action) { | |
5405 var t1, future; | |
5406 t1 = {}; | |
5407 future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [
null]); | |
5408 t1._captured_subscription_0 = null; | |
5409 t1._captured_subscription_0 = this.listen$4$cancelOnError$onDone$onError
(new P.Stream_forEach_closure(t1, this, action, future), true, new P.Stream_forE
ach_closure0(future), future.get$_completeError()); | |
5410 return future; | |
5411 }, | |
5412 get$length: function(_) { | |
5413 var t1, future; | |
5414 t1 = {}; | |
5415 future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [
P.$int]); | |
5416 t1._captured_count_0 = 0; | |
5417 this.listen$4$cancelOnError$onDone$onError(new P.Stream_length_closure(t
1), true, new P.Stream_length_closure0(t1, future), future.get$_completeError())
; | |
5418 return future; | |
5419 }, | |
5420 get$isEmpty: function(_) { | |
5421 var t1, future; | |
5422 t1 = {}; | |
5423 future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [
P.bool]); | |
5424 t1._captured_subscription_0 = null; | |
5425 t1._captured_subscription_0 = this.listen$4$cancelOnError$onDone$onError
(new P.Stream_isEmpty_closure(t1, future), true, new P.Stream_isEmpty_closure0(f
uture), future.get$_completeError()); | |
5426 return future; | |
5427 }, | |
5428 toList$0: function(_) { | |
5429 var result, future; | |
5430 result = H.setRuntimeTypeInfo([], [H.getRuntimeTypeArgument(this, "Strea
m", 0)]); | |
5431 future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [
[P.List, H.getRuntimeTypeArgument(this, "Stream", 0)]]); | |
5432 this.listen$4$cancelOnError$onDone$onError(new P.Stream_toList_closure(t
his, result), true, new P.Stream_toList_closure0(result, future), future.get$_co
mpleteError()); | |
5433 return future; | |
5434 }, | |
5435 get$last: function(_) { | |
5436 var t1, future; | |
5437 t1 = {}; | |
5438 future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [
H.getRuntimeTypeArgument(this, "Stream", 0)]); | |
5439 t1._captured_result_0 = null; | |
5440 t1._captured_foundResult_1 = false; | |
5441 this.listen$4$cancelOnError$onDone$onError(new P.Stream_last_closure(t1,
this), true, new P.Stream_last_closure0(t1, future), future.get$_completeError(
)); | |
5442 return future; | |
5443 } | |
5444 }, | |
5445 Stream_contains_closure: { | |
5446 "^": "Closure;_box_0,_async$_captured_this_1,_captured_needle_2,_captured_
future_3", | |
5447 call$1: function(element) { | |
5448 var t1, t2; | |
5449 t1 = this._box_0; | |
5450 t2 = this._captured_future_3; | |
5451 P._runUserCode(new P.Stream_contains__closure(this._captured_needle_2, e
lement), new P.Stream_contains__closure0(t1, t2), P._cancelAndErrorClosure(t1._c
aptured_subscription_0, t2)); | |
5452 }, | |
5453 $signature: function() { | |
5454 return H.computeSignature(function(T) { | |
5455 return {func: 1, args: [T]}; | |
5456 }, this._async$_captured_this_1, "Stream"); | |
5457 } | |
5458 }, | |
5459 Stream_contains__closure: { | |
5460 "^": "Closure:1;_captured_needle_4,_captured_element_5", | |
5461 call$0: function() { | |
5462 return J.$eq$(this._captured_element_5, this._captured_needle_4); | |
5463 } | |
5464 }, | |
5465 Stream_contains__closure0: { | |
5466 "^": "Closure:17;_box_0,_captured_future_6", | |
5467 call$1: function(isMatch) { | |
5468 if (isMatch === true) | |
5469 P._cancelAndValue(this._box_0._captured_subscription_0, this._captured
_future_6, true); | |
5470 } | |
5471 }, | |
5472 Stream_contains_closure0: { | |
5473 "^": "Closure:1;_captured_future_7", | |
5474 call$0: function() { | |
5475 this._captured_future_7._complete$1(false); | |
5476 } | |
5477 }, | |
5478 Stream_forEach_closure: { | |
5479 "^": "Closure;_box_0,_async$_captured_this_1,_captured_action_2,_captured_
future_3", | |
5480 call$1: function(element) { | |
5481 P._runUserCode(new P.Stream_forEach__closure(this._captured_action_2, el
ement), new P.Stream_forEach__closure0(), P._cancelAndErrorClosure(this._box_0._
captured_subscription_0, this._captured_future_3)); | |
5482 }, | |
5483 $signature: function() { | |
5484 return H.computeSignature(function(T) { | |
5485 return {func: 1, args: [T]}; | |
5486 }, this._async$_captured_this_1, "Stream"); | |
5487 } | |
5488 }, | |
5489 Stream_forEach__closure: { | |
5490 "^": "Closure:1;_captured_action_4,_captured_element_5", | |
5491 call$0: function() { | |
5492 return this._captured_action_4.call$1(this._captured_element_5); | |
5493 } | |
5494 }, | |
5495 Stream_forEach__closure0: { | |
5496 "^": "Closure:0;", | |
5497 call$1: function(_) { | |
5498 } | |
5499 }, | |
5500 Stream_forEach_closure0: { | |
5501 "^": "Closure:1;_captured_future_6", | |
5502 call$0: function() { | |
5503 this._captured_future_6._complete$1(null); | |
5504 } | |
5505 }, | |
5506 Stream_length_closure: { | |
5507 "^": "Closure:0;_box_0", | |
5508 call$1: function(_) { | |
5509 ++this._box_0._captured_count_0; | |
5510 } | |
5511 }, | |
5512 Stream_length_closure0: { | |
5513 "^": "Closure:1;_box_0,_captured_future_1", | |
5514 call$0: function() { | |
5515 this._captured_future_1._complete$1(this._box_0._captured_count_0); | |
5516 } | |
5517 }, | |
5518 Stream_isEmpty_closure: { | |
5519 "^": "Closure:0;_box_0,_captured_future_1", | |
5520 call$1: function(_) { | |
5521 P._cancelAndValue(this._box_0._captured_subscription_0, this._captured_f
uture_1, false); | |
5522 } | |
5523 }, | |
5524 Stream_isEmpty_closure0: { | |
5525 "^": "Closure:1;_captured_future_2", | |
5526 call$0: function() { | |
5527 this._captured_future_2._complete$1(true); | |
5528 } | |
5529 }, | |
5530 Stream_toList_closure: { | |
5531 "^": "Closure;_captured_this_0,_async$_captured_result_1", | |
5532 call$1: function(data) { | |
5533 this._async$_captured_result_1.push(data); | |
5534 }, | |
5535 $signature: function() { | |
5536 return H.computeSignature(function(T) { | |
5537 return {func: 1, args: [T]}; | |
5538 }, this._captured_this_0, "Stream"); | |
5539 } | |
5540 }, | |
5541 Stream_toList_closure0: { | |
5542 "^": "Closure:1;_captured_result_2,_captured_future_3", | |
5543 call$0: function() { | |
5544 this._captured_future_3._complete$1(this._captured_result_2); | |
5545 } | |
5546 }, | |
5547 Stream_last_closure: { | |
5548 "^": "Closure;_box_0,_async$_captured_this_1", | |
5549 call$1: function(value) { | |
5550 var t1 = this._box_0; | |
5551 t1._captured_foundResult_1 = true; | |
5552 t1._captured_result_0 = value; | |
5553 }, | |
5554 $signature: function() { | |
5555 return H.computeSignature(function(T) { | |
5556 return {func: 1, args: [T]}; | |
5557 }, this._async$_captured_this_1, "Stream"); | |
5558 } | |
5559 }, | |
5560 Stream_last_closure0: { | |
5561 "^": "Closure:1;_box_0,_captured_future_2", | |
5562 call$0: function() { | |
5563 var e, s, t1, exception; | |
5564 t1 = this._box_0; | |
5565 if (t1._captured_foundResult_1) { | |
5566 this._captured_future_2._complete$1(t1._captured_result_0); | |
5567 return; | |
5568 } | |
5569 try { | |
5570 t1 = H.IterableElementError_noElement(); | |
5571 throw H.wrapException(t1); | |
5572 } catch (exception) { | |
5573 t1 = H.unwrapException(exception); | |
5574 e = t1; | |
5575 s = H.getTraceFromException(exception); | |
5576 P._completeWithErrorCallback(this._captured_future_2, e, s); | |
5577 } | |
5578 } | |
5579 }, | |
5580 StreamSubscription: { | |
5581 "^": "Object;" | |
5582 }, | |
5583 _EventSink: { | |
5584 "^": "Object;" | |
5585 }, | |
5586 _BufferingStreamSubscription: { | |
5587 "^": "Object;_zone<,_state?", | |
5588 pause$1: function(_, resumeSignal) { | |
5589 var t1 = this._state; | |
5590 if ((t1 & 8) !== 0) | |
5591 return; | |
5592 this._state = (t1 + 128 | 4) >>> 0; | |
5593 if (t1 < 128 && this._pending != null) | |
5594 this._pending.cancelSchedule$0(); | |
5595 if ((t1 & 4) === 0 && (this._state & 32) === 0) | |
5596 this._guardCallback$1(this.get$_onPause()); | |
5597 }, | |
5598 pause$0: function($receiver) { | |
5599 return this.pause$1($receiver, null); | |
5600 }, | |
5601 resume$0: function() { | |
5602 var t1 = this._state; | |
5603 if ((t1 & 8) !== 0) | |
5604 return; | |
5605 if (t1 >= 128) { | |
5606 t1 -= 128; | |
5607 this._state = t1; | |
5608 if (t1 < 128) { | |
5609 if ((t1 & 64) !== 0) { | |
5610 t1 = this._pending; | |
5611 t1 = !t1.get$isEmpty(t1); | |
5612 } else | |
5613 t1 = false; | |
5614 if (t1) | |
5615 this._pending.schedule$1(this); | |
5616 else { | |
5617 t1 = (this._state & 4294967291) >>> 0; | |
5618 this._state = t1; | |
5619 if ((t1 & 32) === 0) | |
5620 this._guardCallback$1(this.get$_onResume()); | |
5621 } | |
5622 } | |
5623 } | |
5624 }, | |
5625 cancel$0: function() { | |
5626 var t1 = (this._state & 4294967279) >>> 0; | |
5627 this._state = t1; | |
5628 if ((t1 & 8) !== 0) | |
5629 return this._cancelFuture; | |
5630 this._cancel$0(); | |
5631 return this._cancelFuture; | |
5632 }, | |
5633 _cancel$0: function() { | |
5634 var t1 = (this._state | 8) >>> 0; | |
5635 this._state = t1; | |
5636 if ((t1 & 64) !== 0) | |
5637 this._pending.cancelSchedule$0(); | |
5638 if ((this._state & 32) === 0) | |
5639 this._pending = null; | |
5640 this._cancelFuture = this._onCancel$0(); | |
5641 }, | |
5642 _async$_add$1: ["super$_BufferingStreamSubscription$_add", function(data)
{ | |
5643 var t1 = this._state; | |
5644 if ((t1 & 8) !== 0) | |
5645 return; | |
5646 if (t1 < 32) | |
5647 this._sendData$1(data); | |
5648 else | |
5649 this._addPending$1(H.setRuntimeTypeInfo(new P._DelayedData(data, null)
, [null])); | |
5650 }], | |
5651 _addError$2: ["super$_BufferingStreamSubscription$_addError", function(err
or, stackTrace) { | |
5652 var t1 = this._state; | |
5653 if ((t1 & 8) !== 0) | |
5654 return; | |
5655 if (t1 < 32) | |
5656 this._sendError$2(error, stackTrace); | |
5657 else | |
5658 this._addPending$1(new P._DelayedError(error, stackTrace, null)); | |
5659 }], | |
5660 _close$0: function() { | |
5661 var t1 = this._state; | |
5662 if ((t1 & 8) !== 0) | |
5663 return; | |
5664 t1 = (t1 | 2) >>> 0; | |
5665 this._state = t1; | |
5666 if (t1 < 32) | |
5667 this._sendDone$0(); | |
5668 else | |
5669 this._addPending$1(C.C__DelayedDone); | |
5670 }, | |
5671 _onPause$0: [function() { | |
5672 }, "call$0", "get$_onPause", 0, 0, 2], | |
5673 _onResume$0: [function() { | |
5674 }, "call$0", "get$_onResume", 0, 0, 2], | |
5675 _onCancel$0: function() { | |
5676 return; | |
5677 }, | |
5678 _addPending$1: function($event) { | |
5679 var pending, t1; | |
5680 pending = this._pending; | |
5681 if (pending == null) { | |
5682 pending = new P._StreamImplEvents(null, null, 0); | |
5683 this._pending = pending; | |
5684 } | |
5685 pending.add$1(0, $event); | |
5686 t1 = this._state; | |
5687 if ((t1 & 64) === 0) { | |
5688 t1 = (t1 | 64) >>> 0; | |
5689 this._state = t1; | |
5690 if (t1 < 128) | |
5691 this._pending.schedule$1(this); | |
5692 } | |
5693 }, | |
5694 _sendData$1: function(data) { | |
5695 var t1 = this._state; | |
5696 this._state = (t1 | 32) >>> 0; | |
5697 this._zone.runUnaryGuarded$2(this._async$_onData, data); | |
5698 this._state = (this._state & 4294967263) >>> 0; | |
5699 this._checkState$1((t1 & 4) !== 0); | |
5700 }, | |
5701 _sendError$2: function(error, stackTrace) { | |
5702 var t1, t2; | |
5703 t1 = this._state; | |
5704 t2 = new P._BufferingStreamSubscription__sendError_sendError(this, error
, stackTrace); | |
5705 if ((t1 & 1) !== 0) { | |
5706 this._state = (t1 | 16) >>> 0; | |
5707 this._cancel$0(); | |
5708 t1 = this._cancelFuture; | |
5709 if (!!J.getInterceptor(t1).$isFuture) | |
5710 t1.whenComplete$1(t2); | |
5711 else | |
5712 t2.call$0(); | |
5713 } else { | |
5714 t2.call$0(); | |
5715 this._checkState$1((t1 & 4) !== 0); | |
5716 } | |
5717 }, | |
5718 _sendDone$0: function() { | |
5719 var t1, t2; | |
5720 t1 = new P._BufferingStreamSubscription__sendDone_sendDone(this); | |
5721 this._cancel$0(); | |
5722 this._state = (this._state | 16) >>> 0; | |
5723 t2 = this._cancelFuture; | |
5724 if (!!J.getInterceptor(t2).$isFuture) | |
5725 t2.whenComplete$1(t1); | |
5726 else | |
5727 t1.call$0(); | |
5728 }, | |
5729 _guardCallback$1: function(callback) { | |
5730 var t1 = this._state; | |
5731 this._state = (t1 | 32) >>> 0; | |
5732 callback.call$0(); | |
5733 this._state = (this._state & 4294967263) >>> 0; | |
5734 this._checkState$1((t1 & 4) !== 0); | |
5735 }, | |
5736 _checkState$1: function(wasInputPaused) { | |
5737 var t1, isInputPaused; | |
5738 if ((this._state & 64) !== 0) { | |
5739 t1 = this._pending; | |
5740 t1 = t1.get$isEmpty(t1); | |
5741 } else | |
5742 t1 = false; | |
5743 if (t1) { | |
5744 t1 = (this._state & 4294967231) >>> 0; | |
5745 this._state = t1; | |
5746 if ((t1 & 4) !== 0) | |
5747 if (t1 < 128) { | |
5748 t1 = this._pending; | |
5749 t1 = t1 == null || t1.get$isEmpty(t1); | |
5750 } else | |
5751 t1 = false; | |
5752 else | |
5753 t1 = false; | |
5754 if (t1) | |
5755 this._state = (this._state & 4294967291) >>> 0; | |
5756 } | |
5757 for (; true; wasInputPaused = isInputPaused) { | |
5758 t1 = this._state; | |
5759 if ((t1 & 8) !== 0) { | |
5760 this._pending = null; | |
5761 return; | |
5762 } | |
5763 isInputPaused = (t1 & 4) !== 0; | |
5764 if (wasInputPaused === isInputPaused) | |
5765 break; | |
5766 this._state = (t1 ^ 32) >>> 0; | |
5767 if (isInputPaused) | |
5768 this._onPause$0(); | |
5769 else | |
5770 this._onResume$0(); | |
5771 this._state = (this._state & 4294967263) >>> 0; | |
5772 } | |
5773 t1 = this._state; | |
5774 if ((t1 & 64) !== 0 && t1 < 128) | |
5775 this._pending.schedule$1(this); | |
5776 }, | |
5777 _BufferingStreamSubscription$4: function(onData, onError, onDone, cancelOn
Error, $T) { | |
5778 var t1 = this._zone; | |
5779 t1.toString; | |
5780 this._async$_onData = onData; | |
5781 this._onError = P._registerErrorHandler(onError, t1); | |
5782 this._onDone = onDone; | |
5783 } | |
5784 }, | |
5785 _BufferingStreamSubscription__sendError_sendError: { | |
5786 "^": "Closure:2;_captured_this_0,_captured_error_1,_captured_stackTrace_2"
, | |
5787 call$0: function() { | |
5788 var t1, t2, t3, t4, t5, t6; | |
5789 t1 = this._captured_this_0; | |
5790 t2 = t1._state; | |
5791 if ((t2 & 8) !== 0 && (t2 & 16) === 0) | |
5792 return; | |
5793 t1._state = (t2 | 32) >>> 0; | |
5794 t2 = t1._onError; | |
5795 t3 = H.getDynamicRuntimeType(); | |
5796 t3 = H.buildFunctionType(t3, [t3, t3])._isTest$1(t2); | |
5797 t4 = t1._zone; | |
5798 t5 = this._captured_error_1; | |
5799 t6 = t1._onError; | |
5800 if (t3) | |
5801 t4.runBinaryGuarded$3(t6, t5, this._captured_stackTrace_2); | |
5802 else | |
5803 t4.runUnaryGuarded$2(t6, t5); | |
5804 t1._state = (t1._state & 4294967263) >>> 0; | |
5805 } | |
5806 }, | |
5807 _BufferingStreamSubscription__sendDone_sendDone: { | |
5808 "^": "Closure:2;_captured_this_0", | |
5809 call$0: function() { | |
5810 var t1, t2; | |
5811 t1 = this._captured_this_0; | |
5812 t2 = t1._state; | |
5813 if ((t2 & 16) === 0) | |
5814 return; | |
5815 t1._state = (t2 | 42) >>> 0; | |
5816 t1._zone.runGuarded$1(t1._onDone); | |
5817 t1._state = (t1._state & 4294967263) >>> 0; | |
5818 } | |
5819 }, | |
5820 _DelayedEvent: { | |
5821 "^": "Object;next@" | |
5822 }, | |
5823 _DelayedData: { | |
5824 "^": "_DelayedEvent;value,next", | |
5825 perform$1: function(dispatch) { | |
5826 dispatch._sendData$1(this.value); | |
5827 } | |
5828 }, | |
5829 _DelayedError: { | |
5830 "^": "_DelayedEvent;error>,stackTrace<,next", | |
5831 perform$1: function(dispatch) { | |
5832 dispatch._sendError$2(this.error, this.stackTrace); | |
5833 } | |
5834 }, | |
5835 _DelayedDone: { | |
5836 "^": "Object;", | |
5837 perform$1: function(dispatch) { | |
5838 dispatch._sendDone$0(); | |
5839 }, | |
5840 get$next: function() { | |
5841 return; | |
5842 }, | |
5843 set$next: function(_) { | |
5844 throw H.wrapException(new P.StateError("No events after a done.")); | |
5845 } | |
5846 }, | |
5847 _PendingEvents: { | |
5848 "^": "Object;_state?", | |
5849 schedule$1: function(dispatch) { | |
5850 var t1 = this._state; | |
5851 if (t1 === 1) | |
5852 return; | |
5853 if (t1 >= 1) { | |
5854 this._state = 1; | |
5855 return; | |
5856 } | |
5857 P.scheduleMicrotask(new P._PendingEvents_schedule_closure(this, dispatch
)); | |
5858 this._state = 1; | |
5859 }, | |
5860 cancelSchedule$0: function() { | |
5861 if (this._state === 1) | |
5862 this._state = 3; | |
5863 } | |
5864 }, | |
5865 _PendingEvents_schedule_closure: { | |
5866 "^": "Closure:1;_captured_this_0,_captured_dispatch_1", | |
5867 call$0: function() { | |
5868 var t1, oldState; | |
5869 t1 = this._captured_this_0; | |
5870 oldState = t1._state; | |
5871 t1._state = 0; | |
5872 if (oldState === 3) | |
5873 return; | |
5874 t1.handleNext$1(this._captured_dispatch_1); | |
5875 } | |
5876 }, | |
5877 _StreamImplEvents: { | |
5878 "^": "_PendingEvents;firstPendingEvent,lastPendingEvent,_state", | |
5879 get$isEmpty: function(_) { | |
5880 return this.lastPendingEvent == null; | |
5881 }, | |
5882 add$1: function(_, $event) { | |
5883 var t1 = this.lastPendingEvent; | |
5884 if (t1 == null) { | |
5885 this.lastPendingEvent = $event; | |
5886 this.firstPendingEvent = $event; | |
5887 } else { | |
5888 t1.set$next($event); | |
5889 this.lastPendingEvent = $event; | |
5890 } | |
5891 }, | |
5892 handleNext$1: function(dispatch) { | |
5893 var $event, t1; | |
5894 $event = this.firstPendingEvent; | |
5895 t1 = $event.get$next(); | |
5896 this.firstPendingEvent = t1; | |
5897 if (t1 == null) | |
5898 this.lastPendingEvent = null; | |
5899 $event.perform$1(dispatch); | |
5900 } | |
5901 }, | |
5902 _StreamIteratorImpl: { | |
5903 "^": "Object;_subscription,_async$_current,_futureOrPrefetch,_state?", | |
5904 _clear$0: function(_) { | |
5905 this._subscription = null; | |
5906 this._futureOrPrefetch = null; | |
5907 this._async$_current = null; | |
5908 this._state = 1; | |
5909 }, | |
5910 _async$_onData$1: [function(data) { | |
5911 var hasNext; | |
5912 if (this._state === 2) { | |
5913 this._async$_current = data; | |
5914 hasNext = this._futureOrPrefetch; | |
5915 this._futureOrPrefetch = null; | |
5916 this._state = 0; | |
5917 hasNext._complete$1(true); | |
5918 return; | |
5919 } | |
5920 this._subscription.pause$0(0); | |
5921 this._futureOrPrefetch = data; | |
5922 this._state = 3; | |
5923 }, "call$1", "get$_async$_onData", 2, 0, function() { | |
5924 return H.computeSignature(function(T) { | |
5925 return {func: 1, void: true, args: [T]}; | |
5926 }, this.$receiver, "_StreamIteratorImpl"); | |
5927 }], | |
5928 _onError$2: [function(error, stackTrace) { | |
5929 var hasNext; | |
5930 if (this._state === 2) { | |
5931 hasNext = this._futureOrPrefetch; | |
5932 this._clear$0(0); | |
5933 hasNext._completeError$2(error, stackTrace); | |
5934 return; | |
5935 } | |
5936 this._subscription.pause$0(0); | |
5937 this._futureOrPrefetch = new P.AsyncError(error, stackTrace); | |
5938 this._state = 4; | |
5939 }, function(error) { | |
5940 return this._onError$2(error, null); | |
5941 }, "_onError$1", "call$2", "call$1", "get$_onError", 2, 2, 6, 0], | |
5942 _onDone$0: [function() { | |
5943 if (this._state === 2) { | |
5944 var hasNext = this._futureOrPrefetch; | |
5945 this._clear$0(0); | |
5946 hasNext._complete$1(false); | |
5947 return; | |
5948 } | |
5949 this._subscription.pause$0(0); | |
5950 this._futureOrPrefetch = null; | |
5951 this._state = 5; | |
5952 }, "call$0", "get$_onDone", 0, 0, 2] | |
5953 }, | |
5954 _cancelAndError_closure: { | |
5955 "^": "Closure:1;_captured_future_0,_captured_error_1,_captured_stackTrace_
2", | |
5956 call$0: function() { | |
5957 return this._captured_future_0._completeError$2(this._captured_error_1,
this._captured_stackTrace_2); | |
5958 } | |
5959 }, | |
5960 _cancelAndErrorClosure_closure: { | |
5961 "^": "Closure:5;_captured_subscription_0,_captured_future_1", | |
5962 call$2: function(error, stackTrace) { | |
5963 return P._cancelAndError(this._captured_subscription_0, this._captured_f
uture_1, error, stackTrace); | |
5964 } | |
5965 }, | |
5966 _cancelAndValue_closure: { | |
5967 "^": "Closure:1;_captured_future_0,_captured_value_1", | |
5968 call$0: function() { | |
5969 return this._captured_future_0._complete$1(this._captured_value_1); | |
5970 } | |
5971 }, | |
5972 _ForwardingStream: { | |
5973 "^": "Stream;", | |
5974 listen$4$cancelOnError$onDone$onError: function(onData, cancelOnError, onD
one, onError) { | |
5975 return this._createSubscription$4(onData, onError, onDone, true === canc
elOnError); | |
5976 }, | |
5977 listen$3$onDone$onError: function(onData, onDone, onError) { | |
5978 return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone,
onError); | |
5979 }, | |
5980 _createSubscription$4: function(onData, onError, onDone, cancelOnError) { | |
5981 return P._ForwardingStreamSubscription$(this, onData, onError, onDone, c
ancelOnError, H.getRuntimeTypeArgument(this, "_ForwardingStream", 0), H.getRunti
meTypeArgument(this, "_ForwardingStream", 1)); | |
5982 }, | |
5983 _handleData$2: function(data, sink) { | |
5984 sink._async$_add$1(data); | |
5985 }, | |
5986 $asStream: function($S, $T) { | |
5987 return [$T]; | |
5988 } | |
5989 }, | |
5990 _ForwardingStreamSubscription: { | |
5991 "^": "_BufferingStreamSubscription;_stream,_subscription,_async$_onData,_o
nError,_onDone,_zone,_state,_cancelFuture,_pending", | |
5992 _async$_add$1: function(data) { | |
5993 if ((this._state & 2) !== 0) | |
5994 return; | |
5995 this.super$_BufferingStreamSubscription$_add(data); | |
5996 }, | |
5997 _addError$2: function(error, stackTrace) { | |
5998 if ((this._state & 2) !== 0) | |
5999 return; | |
6000 this.super$_BufferingStreamSubscription$_addError(error, stackTrace); | |
6001 }, | |
6002 _onPause$0: [function() { | |
6003 var t1 = this._subscription; | |
6004 if (t1 == null) | |
6005 return; | |
6006 t1.pause$0(0); | |
6007 }, "call$0", "get$_onPause", 0, 0, 2], | |
6008 _onResume$0: [function() { | |
6009 var t1 = this._subscription; | |
6010 if (t1 == null) | |
6011 return; | |
6012 t1.resume$0(); | |
6013 }, "call$0", "get$_onResume", 0, 0, 2], | |
6014 _onCancel$0: function() { | |
6015 var t1 = this._subscription; | |
6016 if (t1 != null) { | |
6017 this._subscription = null; | |
6018 return t1.cancel$0(); | |
6019 } | |
6020 return; | |
6021 }, | |
6022 _handleData$1: [function(data) { | |
6023 this._stream._handleData$2(data, this); | |
6024 }, "call$1", "get$_handleData", 2, 0, function() { | |
6025 return H.computeSignature(function(S, T) { | |
6026 return {func: 1, void: true, args: [S]}; | |
6027 }, this.$receiver, "_ForwardingStreamSubscription"); | |
6028 }], | |
6029 _handleError$2: [function(error, stackTrace) { | |
6030 this._addError$2(error, stackTrace); | |
6031 }, "call$2", "get$_handleError", 4, 0, 18], | |
6032 _handleDone$0: [function() { | |
6033 this._close$0(); | |
6034 }, "call$0", "get$_handleDone", 0, 0, 2], | |
6035 _ForwardingStreamSubscription$5: function(_stream, onData, onError, onDone
, cancelOnError, $S, $T) { | |
6036 var t1, t2; | |
6037 t1 = this.get$_handleData(); | |
6038 t2 = this.get$_handleError(); | |
6039 this._subscription = this._stream._async$_source.listen$3$onDone$onError
(t1, this.get$_handleDone(), t2); | |
6040 }, | |
6041 $as_BufferingStreamSubscription: function($S, $T) { | |
6042 return [$T]; | |
6043 }, | |
6044 static: {_ForwardingStreamSubscription$: function(_stream, onData, onError
, onDone, cancelOnError, $S, $T) { | |
6045 var t1 = $.Zone__current; | |
6046 t1 = H.setRuntimeTypeInfo(new P._ForwardingStreamSubscription(_stream,
null, null, null, null, t1, cancelOnError ? 1 : 0, null, null), [$S, $T]); | |
6047 t1._BufferingStreamSubscription$4(onData, onError, onDone, cancelOnErr
or, $T); | |
6048 t1._ForwardingStreamSubscription$5(_stream, onData, onError, onDone, c
ancelOnError, $S, $T); | |
6049 return t1; | |
6050 }} | |
6051 }, | |
6052 _MapStream: { | |
6053 "^": "_ForwardingStream;_transform,_async$_source", | |
6054 _handleData$2: function(inputEvent, sink) { | |
6055 var outputEvent, e, s, exception, t1; | |
6056 outputEvent = null; | |
6057 try { | |
6058 outputEvent = this._transform$1(inputEvent); | |
6059 } catch (exception) { | |
6060 t1 = H.unwrapException(exception); | |
6061 e = t1; | |
6062 s = H.getTraceFromException(exception); | |
6063 P._addErrorWithReplacement(sink, e, s); | |
6064 return; | |
6065 } | |
6066 sink._async$_add$1(outputEvent); | |
6067 }, | |
6068 _transform$1: function(arg0) { | |
6069 return this._transform.call$1(arg0); | |
6070 } | |
6071 }, | |
6072 AsyncError: { | |
6073 "^": "Object;error>,stackTrace<", | |
6074 toString$0: function(_) { | |
6075 return H.S(this.error); | |
6076 }, | |
6077 $isError: 1 | |
6078 }, | |
6079 _Zone: { | |
6080 "^": "Object;" | |
6081 }, | |
6082 _rootHandleUncaughtError_closure: { | |
6083 "^": "Closure:1;_captured_error_0,_captured_stackTrace_1", | |
6084 call$0: function() { | |
6085 var t1 = this._captured_error_0; | |
6086 throw H.wrapException(new P._UncaughtAsyncError(t1, P._UncaughtAsyncErro
r__getBestStackTrace(t1, this._captured_stackTrace_1))); | |
6087 } | |
6088 }, | |
6089 _RootZone: { | |
6090 "^": "_Zone;", | |
6091 get$errorZone: function() { | |
6092 return this; | |
6093 }, | |
6094 runGuarded$1: function(f) { | |
6095 var e, s, t1, exception; | |
6096 try { | |
6097 if (C.C__RootZone === $.Zone__current) { | |
6098 t1 = f.call$0(); | |
6099 return t1; | |
6100 } | |
6101 t1 = P._rootRun(null, null, this, f); | |
6102 return t1; | |
6103 } catch (exception) { | |
6104 t1 = H.unwrapException(exception); | |
6105 e = t1; | |
6106 s = H.getTraceFromException(exception); | |
6107 return P._rootHandleUncaughtError(null, null, this, e, s); | |
6108 } | |
6109 }, | |
6110 runUnaryGuarded$2: function(f, arg) { | |
6111 var e, s, t1, exception; | |
6112 try { | |
6113 if (C.C__RootZone === $.Zone__current) { | |
6114 t1 = f.call$1(arg); | |
6115 return t1; | |
6116 } | |
6117 t1 = P._rootRunUnary(null, null, this, f, arg); | |
6118 return t1; | |
6119 } catch (exception) { | |
6120 t1 = H.unwrapException(exception); | |
6121 e = t1; | |
6122 s = H.getTraceFromException(exception); | |
6123 return P._rootHandleUncaughtError(null, null, this, e, s); | |
6124 } | |
6125 }, | |
6126 runBinaryGuarded$3: function(f, arg1, arg2) { | |
6127 var e, s, t1, exception; | |
6128 try { | |
6129 if (C.C__RootZone === $.Zone__current) { | |
6130 t1 = f.call$2(arg1, arg2); | |
6131 return t1; | |
6132 } | |
6133 t1 = P._rootRunBinary(null, null, this, f, arg1, arg2); | |
6134 return t1; | |
6135 } catch (exception) { | |
6136 t1 = H.unwrapException(exception); | |
6137 e = t1; | |
6138 s = H.getTraceFromException(exception); | |
6139 return P._rootHandleUncaughtError(null, null, this, e, s); | |
6140 } | |
6141 }, | |
6142 bindCallback$2$runGuarded: function(f, runGuarded) { | |
6143 if (runGuarded) | |
6144 return new P._RootZone_bindCallback_closure(this, f); | |
6145 else | |
6146 return new P._RootZone_bindCallback_closure0(this, f); | |
6147 }, | |
6148 bindUnaryCallback$2$runGuarded: function(f, runGuarded) { | |
6149 if (runGuarded) | |
6150 return new P._RootZone_bindUnaryCallback_closure(this, f); | |
6151 else | |
6152 return new P._RootZone_bindUnaryCallback_closure0(this, f); | |
6153 }, | |
6154 $index: function(_, key) { | |
6155 return; | |
6156 }, | |
6157 run$1: function(f) { | |
6158 if ($.Zone__current === C.C__RootZone) | |
6159 return f.call$0(); | |
6160 return P._rootRun(null, null, this, f); | |
6161 }, | |
6162 runUnary$2: function(f, arg) { | |
6163 if ($.Zone__current === C.C__RootZone) | |
6164 return f.call$1(arg); | |
6165 return P._rootRunUnary(null, null, this, f, arg); | |
6166 }, | |
6167 runBinary$3: function(f, arg1, arg2) { | |
6168 if ($.Zone__current === C.C__RootZone) | |
6169 return f.call$2(arg1, arg2); | |
6170 return P._rootRunBinary(null, null, this, f, arg1, arg2); | |
6171 } | |
6172 }, | |
6173 _RootZone_bindCallback_closure: { | |
6174 "^": "Closure:1;_captured_this_0,_captured_f_1", | |
6175 call$0: function() { | |
6176 return this._captured_this_0.runGuarded$1(this._captured_f_1); | |
6177 } | |
6178 }, | |
6179 _RootZone_bindCallback_closure0: { | |
6180 "^": "Closure:1;_captured_this_2,_captured_f_3", | |
6181 call$0: function() { | |
6182 return this._captured_this_2.run$1(this._captured_f_3); | |
6183 } | |
6184 }, | |
6185 _RootZone_bindUnaryCallback_closure: { | |
6186 "^": "Closure:0;_captured_this_0,_captured_f_1", | |
6187 call$1: function(arg) { | |
6188 return this._captured_this_0.runUnaryGuarded$2(this._captured_f_1, arg); | |
6189 } | |
6190 }, | |
6191 _RootZone_bindUnaryCallback_closure0: { | |
6192 "^": "Closure:0;_captured_this_2,_captured_f_3", | |
6193 call$1: function(arg) { | |
6194 return this._captured_this_2.runUnary$2(this._captured_f_3, arg); | |
6195 } | |
6196 } | |
6197 }], ["dart.collection", "dart:collection",, P, { | |
6198 "^": "", | |
6199 LinkedHashMap_LinkedHashMap$_empty: function($K, $V) { | |
6200 return H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, null, nul
l, null, 0), [$K, $V]); | |
6201 }, | |
6202 LinkedHashMap__makeEmpty: function() { | |
6203 return H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, null, nul
l, null, 0), [null, null]); | |
6204 }, | |
6205 LinkedHashMap__makeLiteral: function(keyValuePairs) { | |
6206 return H.fillLiteralMap(keyValuePairs, H.setRuntimeTypeInfo(new H.JsLinked
HashMap(0, null, null, null, null, null, 0), [null, null])); | |
6207 }, | |
6208 HashSet_HashSet: function(equals, hashCode, isValidKey, $E) { | |
6209 return H.setRuntimeTypeInfo(new P._HashSet(0, null, null, null, null), [$E
]); | |
6210 }, | |
6211 IterableBase_iterableToShortString: function(iterable, leftDelimiter, rightD
elimiter) { | |
6212 var parts, t1; | |
6213 if (P._isToStringVisiting(iterable)) { | |
6214 if (leftDelimiter === "(" && rightDelimiter === ")") | |
6215 return "(...)"; | |
6216 return leftDelimiter + "..." + rightDelimiter; | |
6217 } | |
6218 parts = []; | |
6219 t1 = $.$get$_toStringVisiting(); | |
6220 t1.push(iterable); | |
6221 try { | |
6222 P._iterablePartsToStrings(iterable, parts); | |
6223 } finally { | |
6224 if (0 >= t1.length) | |
6225 return H.ioore(t1, -1); | |
6226 t1.pop(); | |
6227 } | |
6228 t1 = P.StringBuffer__writeAll(leftDelimiter, parts, ", ") + rightDelimiter
; | |
6229 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
6230 }, | |
6231 IterableBase_iterableToFullString: function(iterable, leftDelimiter, rightDe
limiter) { | |
6232 var buffer, t1, t2; | |
6233 if (P._isToStringVisiting(iterable)) | |
6234 return leftDelimiter + "..." + rightDelimiter; | |
6235 buffer = new P.StringBuffer(leftDelimiter); | |
6236 t1 = $.$get$_toStringVisiting(); | |
6237 t1.push(iterable); | |
6238 try { | |
6239 t2 = buffer; | |
6240 t2._contents = P.StringBuffer__writeAll(t2.get$_contents(), iterable, ",
"); | |
6241 } finally { | |
6242 if (0 >= t1.length) | |
6243 return H.ioore(t1, -1); | |
6244 t1.pop(); | |
6245 } | |
6246 t1 = buffer; | |
6247 t1._contents = t1.get$_contents() + rightDelimiter; | |
6248 t1 = buffer.get$_contents(); | |
6249 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
6250 }, | |
6251 _isToStringVisiting: function(o) { | |
6252 var i, t1; | |
6253 for (i = 0; t1 = $.$get$_toStringVisiting(), i < t1.length; ++i) | |
6254 if (o === t1[i]) | |
6255 return true; | |
6256 return false; | |
6257 }, | |
6258 _iterablePartsToStrings: function(iterable, parts) { | |
6259 var it, $length, count, next, ultimateString, penultimateString, penultima
te, ultimate, ultimate0, elision; | |
6260 it = iterable.get$iterator(iterable); | |
6261 $length = 0; | |
6262 count = 0; | |
6263 while (true) { | |
6264 if (!($length < 80 || count < 3)) | |
6265 break; | |
6266 if (!it.moveNext$0()) | |
6267 return; | |
6268 next = H.S(it.get$current()); | |
6269 parts.push(next); | |
6270 $length += next.length + 2; | |
6271 ++count; | |
6272 } | |
6273 if (!it.moveNext$0()) { | |
6274 if (count <= 5) | |
6275 return; | |
6276 if (0 >= parts.length) | |
6277 return H.ioore(parts, -1); | |
6278 ultimateString = parts.pop(); | |
6279 if (0 >= parts.length) | |
6280 return H.ioore(parts, -1); | |
6281 penultimateString = parts.pop(); | |
6282 } else { | |
6283 penultimate = it.get$current(); | |
6284 ++count; | |
6285 if (!it.moveNext$0()) { | |
6286 if (count <= 4) { | |
6287 parts.push(H.S(penultimate)); | |
6288 return; | |
6289 } | |
6290 ultimateString = H.S(penultimate); | |
6291 if (0 >= parts.length) | |
6292 return H.ioore(parts, -1); | |
6293 penultimateString = parts.pop(); | |
6294 $length += ultimateString.length + 2; | |
6295 } else { | |
6296 ultimate = it.get$current(); | |
6297 ++count; | |
6298 for (; it.moveNext$0(); penultimate = ultimate, ultimate = ultimate0)
{ | |
6299 ultimate0 = it.get$current(); | |
6300 ++count; | |
6301 if (count > 100) { | |
6302 while (true) { | |
6303 if (!($length > 75 && count > 3)) | |
6304 break; | |
6305 if (0 >= parts.length) | |
6306 return H.ioore(parts, -1); | |
6307 $length -= parts.pop().length + 2; | |
6308 --count; | |
6309 } | |
6310 parts.push("..."); | |
6311 return; | |
6312 } | |
6313 } | |
6314 penultimateString = H.S(penultimate); | |
6315 ultimateString = H.S(ultimate); | |
6316 $length += ultimateString.length + penultimateString.length + 4; | |
6317 } | |
6318 } | |
6319 if (count > parts.length + 2) { | |
6320 $length += 5; | |
6321 elision = "..."; | |
6322 } else | |
6323 elision = null; | |
6324 while (true) { | |
6325 if (!($length > 80 && parts.length > 3)) | |
6326 break; | |
6327 if (0 >= parts.length) | |
6328 return H.ioore(parts, -1); | |
6329 $length -= parts.pop().length + 2; | |
6330 if (elision == null) { | |
6331 $length += 5; | |
6332 elision = "..."; | |
6333 } | |
6334 } | |
6335 if (elision != null) | |
6336 parts.push(elision); | |
6337 parts.push(penultimateString); | |
6338 parts.push(ultimateString); | |
6339 }, | |
6340 LinkedHashMap_LinkedHashMap$identity: function($K, $V) { | |
6341 return P._LinkedIdentityHashMap__LinkedIdentityHashMap$es6($K, $V); | |
6342 }, | |
6343 LinkedHashSet_LinkedHashSet: function(equals, hashCode, isValidKey, $E) { | |
6344 return H.setRuntimeTypeInfo(new P._LinkedHashSet(0, null, null, null, null
, null, 0), [$E]); | |
6345 }, | |
6346 LinkedHashSet_LinkedHashSet$from: function(elements, $E) { | |
6347 var result, t1, _i; | |
6348 result = P.LinkedHashSet_LinkedHashSet(null, null, null, $E); | |
6349 for (t1 = elements.length, _i = 0; _i < elements.length; elements.length =
== t1 || (0, H.throwConcurrentModificationError)(elements), ++_i) | |
6350 result.add$1(0, elements[_i]); | |
6351 return result; | |
6352 }, | |
6353 Maps_mapToString: function(m) { | |
6354 var t1, result, t2; | |
6355 t1 = {}; | |
6356 if (P._isToStringVisiting(m)) | |
6357 return "{...}"; | |
6358 result = new P.StringBuffer(""); | |
6359 try { | |
6360 $.$get$_toStringVisiting().push(m); | |
6361 t2 = result; | |
6362 t2._contents = t2.get$_contents() + "{"; | |
6363 t1._captured_first_0 = true; | |
6364 J.forEach$1$ax(m, new P.Maps_mapToString_closure(t1, result)); | |
6365 t1 = result; | |
6366 t1._contents = t1.get$_contents() + "}"; | |
6367 } finally { | |
6368 t1 = $.$get$_toStringVisiting(); | |
6369 if (0 >= t1.length) | |
6370 return H.ioore(t1, -1); | |
6371 t1.pop(); | |
6372 } | |
6373 t1 = result.get$_contents(); | |
6374 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
6375 }, | |
6376 _LinkedIdentityHashMap: { | |
6377 "^": "JsLinkedHashMap;__js_helper$_length,_strings,_nums,_rest,_first,__js
_helper$_last,_modifications", | |
6378 internalComputeHashCode$1: function(key) { | |
6379 return H.objectHashCode(key) & 0x3ffffff; | |
6380 }, | |
6381 internalFindBucketIndex$2: function(bucket, key) { | |
6382 var $length, i, t1; | |
6383 if (bucket == null) | |
6384 return -1; | |
6385 $length = bucket.length; | |
6386 for (i = 0; i < $length; ++i) { | |
6387 t1 = bucket[i].get$hashMapCellKey(); | |
6388 if (t1 == null ? key == null : t1 === key) | |
6389 return i; | |
6390 } | |
6391 return -1; | |
6392 }, | |
6393 static: {_LinkedIdentityHashMap__LinkedIdentityHashMap$es6: function($K, $
V) { | |
6394 return H.setRuntimeTypeInfo(new P._LinkedIdentityHashMap(0, null, null
, null, null, null, 0), [$K, $V]); | |
6395 }} | |
6396 }, | |
6397 _HashSet: { | |
6398 "^": "_HashSetBase;_collection$_length,_collection$_strings,_collection$_n
ums,_collection$_rest,_elements", | |
6399 get$iterator: function(_) { | |
6400 var t1 = new P.HashSetIterator(this, this._computeElements$0(), 0, null)
; | |
6401 t1.$builtinTypeInfo = this.$builtinTypeInfo; | |
6402 return t1; | |
6403 }, | |
6404 get$length: function(_) { | |
6405 return this._collection$_length; | |
6406 }, | |
6407 get$isEmpty: function(_) { | |
6408 return this._collection$_length === 0; | |
6409 }, | |
6410 get$isNotEmpty: function(_) { | |
6411 return this._collection$_length !== 0; | |
6412 }, | |
6413 contains$1: function(_, object) { | |
6414 var strings, nums; | |
6415 if (typeof object === "string" && object !== "__proto__") { | |
6416 strings = this._collection$_strings; | |
6417 return strings == null ? false : strings[object] != null; | |
6418 } else if (typeof object === "number" && (object & 0x3ffffff) === object
) { | |
6419 nums = this._collection$_nums; | |
6420 return nums == null ? false : nums[object] != null; | |
6421 } else | |
6422 return this._contains$1(object); | |
6423 }, | |
6424 _contains$1: function(object) { | |
6425 var rest = this._collection$_rest; | |
6426 if (rest == null) | |
6427 return false; | |
6428 return this._findBucketIndex$2(rest[this._computeHashCode$1(object)], ob
ject) >= 0; | |
6429 }, | |
6430 lookup$1: function(object) { | |
6431 var t1; | |
6432 if (!(typeof object === "string" && object !== "__proto__")) | |
6433 t1 = typeof object === "number" && (object & 0x3ffffff) === object; | |
6434 else | |
6435 t1 = true; | |
6436 if (t1) | |
6437 return this.contains$1(0, object) ? object : null; | |
6438 return this._lookup$1(object); | |
6439 }, | |
6440 _lookup$1: function(object) { | |
6441 var rest, bucket, index; | |
6442 rest = this._collection$_rest; | |
6443 if (rest == null) | |
6444 return; | |
6445 bucket = rest[this._computeHashCode$1(object)]; | |
6446 index = this._findBucketIndex$2(bucket, object); | |
6447 if (index < 0) | |
6448 return; | |
6449 return J.$index$asx(bucket, index); | |
6450 }, | |
6451 add$1: function(_, element) { | |
6452 var strings, table, nums; | |
6453 if (typeof element === "string" && element !== "__proto__") { | |
6454 strings = this._collection$_strings; | |
6455 if (strings == null) { | |
6456 table = Object.create(null); | |
6457 table["<non-identifier-key>"] = table; | |
6458 delete table["<non-identifier-key>"]; | |
6459 this._collection$_strings = table; | |
6460 strings = table; | |
6461 } | |
6462 return this._addHashTableEntry$2(strings, element); | |
6463 } else if (typeof element === "number" && (element & 0x3ffffff) === elem
ent) { | |
6464 nums = this._collection$_nums; | |
6465 if (nums == null) { | |
6466 table = Object.create(null); | |
6467 table["<non-identifier-key>"] = table; | |
6468 delete table["<non-identifier-key>"]; | |
6469 this._collection$_nums = table; | |
6470 nums = table; | |
6471 } | |
6472 return this._addHashTableEntry$2(nums, element); | |
6473 } else | |
6474 return this._add$1(element); | |
6475 }, | |
6476 _add$1: function(element) { | |
6477 var rest, hash, bucket; | |
6478 rest = this._collection$_rest; | |
6479 if (rest == null) { | |
6480 rest = P._HashSet__newHashTable(); | |
6481 this._collection$_rest = rest; | |
6482 } | |
6483 hash = this._computeHashCode$1(element); | |
6484 bucket = rest[hash]; | |
6485 if (bucket == null) | |
6486 rest[hash] = [element]; | |
6487 else { | |
6488 if (this._findBucketIndex$2(bucket, element) >= 0) | |
6489 return false; | |
6490 bucket.push(element); | |
6491 } | |
6492 ++this._collection$_length; | |
6493 this._elements = null; | |
6494 return true; | |
6495 }, | |
6496 _computeElements$0: function() { | |
6497 var t1, result, strings, names, entries, index, i, nums, rest, bucket, $
length, i0; | |
6498 t1 = this._elements; | |
6499 if (t1 != null) | |
6500 return t1; | |
6501 result = new Array(this._collection$_length); | |
6502 result.fixed$length = Array; | |
6503 strings = this._collection$_strings; | |
6504 if (strings != null) { | |
6505 names = Object.getOwnPropertyNames(strings); | |
6506 entries = names.length; | |
6507 for (index = 0, i = 0; i < entries; ++i) { | |
6508 result[index] = names[i]; | |
6509 ++index; | |
6510 } | |
6511 } else | |
6512 index = 0; | |
6513 nums = this._collection$_nums; | |
6514 if (nums != null) { | |
6515 names = Object.getOwnPropertyNames(nums); | |
6516 entries = names.length; | |
6517 for (i = 0; i < entries; ++i) { | |
6518 result[index] = +names[i]; | |
6519 ++index; | |
6520 } | |
6521 } | |
6522 rest = this._collection$_rest; | |
6523 if (rest != null) { | |
6524 names = Object.getOwnPropertyNames(rest); | |
6525 entries = names.length; | |
6526 for (i = 0; i < entries; ++i) { | |
6527 bucket = rest[names[i]]; | |
6528 $length = bucket.length; | |
6529 for (i0 = 0; i0 < $length; ++i0) { | |
6530 result[index] = bucket[i0]; | |
6531 ++index; | |
6532 } | |
6533 } | |
6534 } | |
6535 this._elements = result; | |
6536 return result; | |
6537 }, | |
6538 _addHashTableEntry$2: function(table, element) { | |
6539 if (table[element] != null) | |
6540 return false; | |
6541 table[element] = 0; | |
6542 ++this._collection$_length; | |
6543 this._elements = null; | |
6544 return true; | |
6545 }, | |
6546 _computeHashCode$1: function(element) { | |
6547 return J.get$hashCode$(element) & 0x3ffffff; | |
6548 }, | |
6549 _findBucketIndex$2: function(bucket, element) { | |
6550 var $length, i; | |
6551 if (bucket == null) | |
6552 return -1; | |
6553 $length = bucket.length; | |
6554 for (i = 0; i < $length; ++i) | |
6555 if (J.$eq$(bucket[i], element)) | |
6556 return i; | |
6557 return -1; | |
6558 }, | |
6559 $isEfficientLength: 1, | |
6560 static: {_HashSet__newHashTable: function() { | |
6561 var table = Object.create(null); | |
6562 table["<non-identifier-key>"] = table; | |
6563 delete table["<non-identifier-key>"]; | |
6564 return table; | |
6565 }} | |
6566 }, | |
6567 HashSetIterator: { | |
6568 "^": "Object;_set,_elements,_offset,_collection$_current", | |
6569 get$current: function() { | |
6570 return this._collection$_current; | |
6571 }, | |
6572 moveNext$0: function() { | |
6573 var elements, offset, t1; | |
6574 elements = this._elements; | |
6575 offset = this._offset; | |
6576 t1 = this._set; | |
6577 if (elements !== t1._elements) | |
6578 throw H.wrapException(new P.ConcurrentModificationError(t1)); | |
6579 else if (offset >= elements.length) { | |
6580 this._collection$_current = null; | |
6581 return false; | |
6582 } else { | |
6583 this._collection$_current = elements[offset]; | |
6584 this._offset = offset + 1; | |
6585 return true; | |
6586 } | |
6587 } | |
6588 }, | |
6589 _LinkedHashSet: { | |
6590 "^": "_HashSetBase;_collection$_length,_collection$_strings,_collection$_n
ums,_collection$_rest,_collection$_first,_last,_collection$_modifications", | |
6591 get$iterator: function(_) { | |
6592 var t1 = H.setRuntimeTypeInfo(new P.LinkedHashSetIterator(this, this._co
llection$_modifications, null, null), [null]); | |
6593 t1._cell = t1._set._collection$_first; | |
6594 return t1; | |
6595 }, | |
6596 get$length: function(_) { | |
6597 return this._collection$_length; | |
6598 }, | |
6599 get$isEmpty: function(_) { | |
6600 return this._collection$_length === 0; | |
6601 }, | |
6602 get$isNotEmpty: function(_) { | |
6603 return this._collection$_length !== 0; | |
6604 }, | |
6605 contains$1: function(_, object) { | |
6606 var strings, nums; | |
6607 if (typeof object === "string" && object !== "__proto__") { | |
6608 strings = this._collection$_strings; | |
6609 if (strings == null) | |
6610 return false; | |
6611 return strings[object] != null; | |
6612 } else if (typeof object === "number" && (object & 0x3ffffff) === object
) { | |
6613 nums = this._collection$_nums; | |
6614 if (nums == null) | |
6615 return false; | |
6616 return nums[object] != null; | |
6617 } else | |
6618 return this._contains$1(object); | |
6619 }, | |
6620 _contains$1: function(object) { | |
6621 var rest = this._collection$_rest; | |
6622 if (rest == null) | |
6623 return false; | |
6624 return this._findBucketIndex$2(rest[this._computeHashCode$1(object)], ob
ject) >= 0; | |
6625 }, | |
6626 lookup$1: function(object) { | |
6627 var t1; | |
6628 if (!(typeof object === "string" && object !== "__proto__")) | |
6629 t1 = typeof object === "number" && (object & 0x3ffffff) === object; | |
6630 else | |
6631 t1 = true; | |
6632 if (t1) | |
6633 return this.contains$1(0, object) ? object : null; | |
6634 else | |
6635 return this._lookup$1(object); | |
6636 }, | |
6637 _lookup$1: function(object) { | |
6638 var rest, bucket, index; | |
6639 rest = this._collection$_rest; | |
6640 if (rest == null) | |
6641 return; | |
6642 bucket = rest[this._computeHashCode$1(object)]; | |
6643 index = this._findBucketIndex$2(bucket, object); | |
6644 if (index < 0) | |
6645 return; | |
6646 return J.$index$asx(bucket, index).get$_collection$_element(); | |
6647 }, | |
6648 forEach$1: function(_, action) { | |
6649 var cell, modifications; | |
6650 cell = this._collection$_first; | |
6651 modifications = this._collection$_modifications; | |
6652 for (; cell != null;) { | |
6653 action.call$1(cell._collection$_element); | |
6654 if (modifications !== this._collection$_modifications) | |
6655 throw H.wrapException(new P.ConcurrentModificationError(this)); | |
6656 cell = cell._collection$_next; | |
6657 } | |
6658 }, | |
6659 get$last: function(_) { | |
6660 var t1 = this._last; | |
6661 if (t1 == null) | |
6662 throw H.wrapException(new P.StateError("No elements")); | |
6663 return t1._collection$_element; | |
6664 }, | |
6665 add$1: function(_, element) { | |
6666 var strings, table, nums; | |
6667 if (typeof element === "string" && element !== "__proto__") { | |
6668 strings = this._collection$_strings; | |
6669 if (strings == null) { | |
6670 table = Object.create(null); | |
6671 table["<non-identifier-key>"] = table; | |
6672 delete table["<non-identifier-key>"]; | |
6673 this._collection$_strings = table; | |
6674 strings = table; | |
6675 } | |
6676 return this._addHashTableEntry$2(strings, element); | |
6677 } else if (typeof element === "number" && (element & 0x3ffffff) === elem
ent) { | |
6678 nums = this._collection$_nums; | |
6679 if (nums == null) { | |
6680 table = Object.create(null); | |
6681 table["<non-identifier-key>"] = table; | |
6682 delete table["<non-identifier-key>"]; | |
6683 this._collection$_nums = table; | |
6684 nums = table; | |
6685 } | |
6686 return this._addHashTableEntry$2(nums, element); | |
6687 } else | |
6688 return this._add$1(element); | |
6689 }, | |
6690 _add$1: function(element) { | |
6691 var rest, hash, bucket; | |
6692 rest = this._collection$_rest; | |
6693 if (rest == null) { | |
6694 rest = P._LinkedHashSet__newHashTable(); | |
6695 this._collection$_rest = rest; | |
6696 } | |
6697 hash = this._computeHashCode$1(element); | |
6698 bucket = rest[hash]; | |
6699 if (bucket == null) | |
6700 rest[hash] = [this._newLinkedCell$1(element)]; | |
6701 else { | |
6702 if (this._findBucketIndex$2(bucket, element) >= 0) | |
6703 return false; | |
6704 bucket.push(this._newLinkedCell$1(element)); | |
6705 } | |
6706 return true; | |
6707 }, | |
6708 remove$1: function(_, object) { | |
6709 if (typeof object === "string" && object !== "__proto__") | |
6710 return this._removeHashTableEntry$2(this._collection$_strings, object)
; | |
6711 else if (typeof object === "number" && (object & 0x3ffffff) === object) | |
6712 return this._removeHashTableEntry$2(this._collection$_nums, object); | |
6713 else | |
6714 return this._remove$1(object); | |
6715 }, | |
6716 _remove$1: function(object) { | |
6717 var rest, bucket, index; | |
6718 rest = this._collection$_rest; | |
6719 if (rest == null) | |
6720 return false; | |
6721 bucket = rest[this._computeHashCode$1(object)]; | |
6722 index = this._findBucketIndex$2(bucket, object); | |
6723 if (index < 0) | |
6724 return false; | |
6725 this._unlinkCell$1(bucket.splice(index, 1)[0]); | |
6726 return true; | |
6727 }, | |
6728 clear$0: function(_) { | |
6729 if (this._collection$_length > 0) { | |
6730 this._last = null; | |
6731 this._collection$_first = null; | |
6732 this._collection$_rest = null; | |
6733 this._collection$_nums = null; | |
6734 this._collection$_strings = null; | |
6735 this._collection$_length = 0; | |
6736 this._collection$_modifications = this._collection$_modifications + 1
& 67108863; | |
6737 } | |
6738 }, | |
6739 _addHashTableEntry$2: function(table, element) { | |
6740 if (table[element] != null) | |
6741 return false; | |
6742 table[element] = this._newLinkedCell$1(element); | |
6743 return true; | |
6744 }, | |
6745 _removeHashTableEntry$2: function(table, element) { | |
6746 var cell; | |
6747 if (table == null) | |
6748 return false; | |
6749 cell = table[element]; | |
6750 if (cell == null) | |
6751 return false; | |
6752 this._unlinkCell$1(cell); | |
6753 delete table[element]; | |
6754 return true; | |
6755 }, | |
6756 _newLinkedCell$1: function(element) { | |
6757 var cell, last; | |
6758 cell = new P.LinkedHashSetCell(element, null, null); | |
6759 if (this._collection$_first == null) { | |
6760 this._last = cell; | |
6761 this._collection$_first = cell; | |
6762 } else { | |
6763 last = this._last; | |
6764 cell._previous = last; | |
6765 last._collection$_next = cell; | |
6766 this._last = cell; | |
6767 } | |
6768 ++this._collection$_length; | |
6769 this._collection$_modifications = this._collection$_modifications + 1 &
67108863; | |
6770 return cell; | |
6771 }, | |
6772 _unlinkCell$1: function(cell) { | |
6773 var previous, next; | |
6774 previous = cell.get$_previous(); | |
6775 next = cell._collection$_next; | |
6776 if (previous == null) | |
6777 this._collection$_first = next; | |
6778 else | |
6779 previous._collection$_next = next; | |
6780 if (next == null) | |
6781 this._last = previous; | |
6782 else | |
6783 next._previous = previous; | |
6784 --this._collection$_length; | |
6785 this._collection$_modifications = this._collection$_modifications + 1 &
67108863; | |
6786 }, | |
6787 _computeHashCode$1: function(element) { | |
6788 return J.get$hashCode$(element) & 0x3ffffff; | |
6789 }, | |
6790 _findBucketIndex$2: function(bucket, element) { | |
6791 var $length, i; | |
6792 if (bucket == null) | |
6793 return -1; | |
6794 $length = bucket.length; | |
6795 for (i = 0; i < $length; ++i) | |
6796 if (J.$eq$(bucket[i].get$_collection$_element(), element)) | |
6797 return i; | |
6798 return -1; | |
6799 }, | |
6800 $isEfficientLength: 1, | |
6801 static: {_LinkedHashSet__newHashTable: function() { | |
6802 var table = Object.create(null); | |
6803 table["<non-identifier-key>"] = table; | |
6804 delete table["<non-identifier-key>"]; | |
6805 return table; | |
6806 }} | |
6807 }, | |
6808 LinkedHashSetCell: { | |
6809 "^": "Object;_collection$_element<,_collection$_next,_previous<" | |
6810 }, | |
6811 LinkedHashSetIterator: { | |
6812 "^": "Object;_set,_collection$_modifications,_cell,_collection$_current", | |
6813 get$current: function() { | |
6814 return this._collection$_current; | |
6815 }, | |
6816 moveNext$0: function() { | |
6817 var t1 = this._set; | |
6818 if (this._collection$_modifications !== t1._collection$_modifications) | |
6819 throw H.wrapException(new P.ConcurrentModificationError(t1)); | |
6820 else { | |
6821 t1 = this._cell; | |
6822 if (t1 == null) { | |
6823 this._collection$_current = null; | |
6824 return false; | |
6825 } else { | |
6826 this._collection$_current = t1._collection$_element; | |
6827 this._cell = t1._collection$_next; | |
6828 return true; | |
6829 } | |
6830 } | |
6831 } | |
6832 }, | |
6833 UnmodifiableListView: { | |
6834 "^": "UnmodifiableListBase;_collection$_source", | |
6835 get$length: function(_) { | |
6836 return this._collection$_source.length; | |
6837 }, | |
6838 $index: function(_, index) { | |
6839 var t1 = this._collection$_source; | |
6840 if (index >>> 0 !== index || index >= t1.length) | |
6841 return H.ioore(t1, index); | |
6842 return t1[index]; | |
6843 } | |
6844 }, | |
6845 _HashSetBase: { | |
6846 "^": "SetBase;" | |
6847 }, | |
6848 IterableBase: { | |
6849 "^": "Iterable;" | |
6850 }, | |
6851 ListBase: { | |
6852 "^": "Object_ListMixin;" | |
6853 }, | |
6854 Object_ListMixin: { | |
6855 "^": "Object+ListMixin;", | |
6856 $isList: 1, | |
6857 $asList: null, | |
6858 $isEfficientLength: 1 | |
6859 }, | |
6860 ListMixin: { | |
6861 "^": "Object;", | |
6862 get$iterator: function(receiver) { | |
6863 return H.setRuntimeTypeInfo(new H.ListIterator(receiver, this.get$length
(receiver), 0, null), [H.getRuntimeTypeArgument(receiver, "ListMixin", 0)]); | |
6864 }, | |
6865 elementAt$1: function(receiver, index) { | |
6866 return this.$index(receiver, index); | |
6867 }, | |
6868 forEach$1: function(receiver, action) { | |
6869 var $length, i; | |
6870 $length = this.get$length(receiver); | |
6871 for (i = 0; i < $length; ++i) { | |
6872 action.call$1(this.$index(receiver, i)); | |
6873 if ($length !== this.get$length(receiver)) | |
6874 throw H.wrapException(new P.ConcurrentModificationError(receiver)); | |
6875 } | |
6876 }, | |
6877 get$isEmpty: function(receiver) { | |
6878 return this.get$length(receiver) === 0; | |
6879 }, | |
6880 get$isNotEmpty: function(receiver) { | |
6881 return this.get$length(receiver) !== 0; | |
6882 }, | |
6883 get$last: function(receiver) { | |
6884 if (this.get$length(receiver) === 0) | |
6885 throw H.wrapException(H.IterableElementError_noElement()); | |
6886 return this.$index(receiver, this.get$length(receiver) - 1); | |
6887 }, | |
6888 contains$1: function(receiver, element) { | |
6889 var $length, i; | |
6890 $length = this.get$length(receiver); | |
6891 for (i = 0; i < this.get$length(receiver); ++i) { | |
6892 if (J.$eq$(this.$index(receiver, i), element)) | |
6893 return true; | |
6894 if ($length !== this.get$length(receiver)) | |
6895 throw H.wrapException(new P.ConcurrentModificationError(receiver)); | |
6896 } | |
6897 return false; | |
6898 }, | |
6899 where$1: function(receiver, test) { | |
6900 return H.setRuntimeTypeInfo(new H.WhereIterable(receiver, test), [H.getR
untimeTypeArgument(receiver, "ListMixin", 0)]); | |
6901 }, | |
6902 map$1: function(receiver, f) { | |
6903 return H.setRuntimeTypeInfo(new H.MappedListIterable(receiver, f), [null
, null]); | |
6904 }, | |
6905 add$1: function(receiver, element) { | |
6906 var t1 = this.get$length(receiver); | |
6907 this.set$length(receiver, t1 + 1); | |
6908 this.$indexSet(receiver, t1, element); | |
6909 }, | |
6910 indexOf$2: function(receiver, element, startIndex) { | |
6911 var i; | |
6912 if (startIndex >= this.get$length(receiver)) | |
6913 return -1; | |
6914 if (startIndex < 0) | |
6915 startIndex = 0; | |
6916 for (i = startIndex; i < this.get$length(receiver); ++i) | |
6917 if (J.$eq$(this.$index(receiver, i), element)) | |
6918 return i; | |
6919 return -1; | |
6920 }, | |
6921 indexOf$1: function($receiver, element) { | |
6922 return this.indexOf$2($receiver, element, 0); | |
6923 }, | |
6924 lastIndexOf$2: function(receiver, element, startIndex) { | |
6925 var i; | |
6926 if (startIndex < 0) | |
6927 return -1; | |
6928 if (startIndex >= this.get$length(receiver)) | |
6929 startIndex = this.get$length(receiver) - 1; | |
6930 for (i = startIndex; i >= 0; --i) | |
6931 if (J.$eq$(this.$index(receiver, i), element)) | |
6932 return i; | |
6933 return -1; | |
6934 }, | |
6935 toString$0: function(receiver) { | |
6936 return P.IterableBase_iterableToFullString(receiver, "[", "]"); | |
6937 }, | |
6938 $isList: 1, | |
6939 $asList: null, | |
6940 $isEfficientLength: 1 | |
6941 }, | |
6942 Maps_mapToString_closure: { | |
6943 "^": "Closure:3;_collection$_box_0,_captured_result_1", | |
6944 call$2: function(k, v) { | |
6945 var t1, t2; | |
6946 t1 = this._collection$_box_0; | |
6947 if (!t1._captured_first_0) | |
6948 this._captured_result_1._contents += ", "; | |
6949 t1._captured_first_0 = false; | |
6950 t1 = this._captured_result_1; | |
6951 t2 = t1._contents += H.S(k); | |
6952 t1._contents = t2 + ": "; | |
6953 t1._contents += H.S(v); | |
6954 } | |
6955 }, | |
6956 ListQueue: { | |
6957 "^": "Iterable;_table,_head,_tail,_modificationCount", | |
6958 get$iterator: function(_) { | |
6959 var t1 = new P._ListQueueIterator(this, this._tail, this._modificationCo
unt, this._head, null); | |
6960 t1.$builtinTypeInfo = this.$builtinTypeInfo; | |
6961 return t1; | |
6962 }, | |
6963 forEach$1: function(_, action) { | |
6964 var modificationCount, i, t1; | |
6965 modificationCount = this._modificationCount; | |
6966 for (i = this._head; i !== this._tail; i = (i + 1 & this._table.length -
1) >>> 0) { | |
6967 t1 = this._table; | |
6968 if (i < 0 || i >= t1.length) | |
6969 return H.ioore(t1, i); | |
6970 action.call$1(t1[i]); | |
6971 if (modificationCount !== this._modificationCount) | |
6972 H.throwExpression(new P.ConcurrentModificationError(this)); | |
6973 } | |
6974 }, | |
6975 get$isEmpty: function(_) { | |
6976 return this._head === this._tail; | |
6977 }, | |
6978 get$length: function(_) { | |
6979 return (this._tail - this._head & this._table.length - 1) >>> 0; | |
6980 }, | |
6981 get$last: function(_) { | |
6982 var t1, t2, t3; | |
6983 t1 = this._head; | |
6984 t2 = this._tail; | |
6985 if (t1 === t2) | |
6986 throw H.wrapException(H.IterableElementError_noElement()); | |
6987 t1 = this._table; | |
6988 t3 = t1.length; | |
6989 t2 = (t2 - 1 & t3 - 1) >>> 0; | |
6990 if (t2 < 0 || t2 >= t3) | |
6991 return H.ioore(t1, t2); | |
6992 return t1[t2]; | |
6993 }, | |
6994 add$1: function(_, value) { | |
6995 this._add$1(value); | |
6996 }, | |
6997 clear$0: function(_) { | |
6998 var i, t1, t2, t3, t4; | |
6999 i = this._head; | |
7000 t1 = this._tail; | |
7001 if (i !== t1) { | |
7002 for (t2 = this._table, t3 = t2.length, t4 = t3 - 1; i !== t1; i = (i +
1 & t4) >>> 0) { | |
7003 if (i < 0 || i >= t3) | |
7004 return H.ioore(t2, i); | |
7005 t2[i] = null; | |
7006 } | |
7007 this._tail = 0; | |
7008 this._head = 0; | |
7009 ++this._modificationCount; | |
7010 } | |
7011 }, | |
7012 toString$0: function(_) { | |
7013 return P.IterableBase_iterableToFullString(this, "{", "}"); | |
7014 }, | |
7015 removeFirst$0: function() { | |
7016 var t1, t2, t3, result; | |
7017 t1 = this._head; | |
7018 if (t1 === this._tail) | |
7019 throw H.wrapException(H.IterableElementError_noElement()); | |
7020 ++this._modificationCount; | |
7021 t2 = this._table; | |
7022 t3 = t2.length; | |
7023 if (t1 >= t3) | |
7024 return H.ioore(t2, t1); | |
7025 result = t2[t1]; | |
7026 t2[t1] = null; | |
7027 this._head = (t1 + 1 & t3 - 1) >>> 0; | |
7028 return result; | |
7029 }, | |
7030 _add$1: function(element) { | |
7031 var t1, t2, t3; | |
7032 t1 = this._table; | |
7033 t2 = this._tail; | |
7034 t3 = t1.length; | |
7035 if (t2 < 0 || t2 >= t3) | |
7036 return H.ioore(t1, t2); | |
7037 t1[t2] = element; | |
7038 t3 = (t2 + 1 & t3 - 1) >>> 0; | |
7039 this._tail = t3; | |
7040 if (this._head === t3) | |
7041 this._grow$0(); | |
7042 ++this._modificationCount; | |
7043 }, | |
7044 _grow$0: function() { | |
7045 var t1, newTable, t2, split; | |
7046 t1 = new Array(this._table.length * 2); | |
7047 t1.fixed$length = Array; | |
7048 newTable = H.setRuntimeTypeInfo(t1, [H.getTypeArgumentByIndex(this, 0)])
; | |
7049 t1 = this._table; | |
7050 t2 = this._head; | |
7051 split = t1.length - t2; | |
7052 C.JSArray_methods.setRange$4(newTable, 0, split, t1, t2); | |
7053 C.JSArray_methods.setRange$4(newTable, split, split + this._head, this._
table, 0); | |
7054 this._head = 0; | |
7055 this._tail = this._table.length; | |
7056 this._table = newTable; | |
7057 }, | |
7058 ListQueue$1: function(initialCapacity, $E) { | |
7059 var t1 = new Array(8); | |
7060 t1.fixed$length = Array; | |
7061 this._table = H.setRuntimeTypeInfo(t1, [$E]); | |
7062 }, | |
7063 $isEfficientLength: 1, | |
7064 static: {ListQueue$: function(initialCapacity, $E) { | |
7065 var t1 = H.setRuntimeTypeInfo(new P.ListQueue(null, 0, 0, 0), [$E]); | |
7066 t1.ListQueue$1(initialCapacity, $E); | |
7067 return t1; | |
7068 }} | |
7069 }, | |
7070 _ListQueueIterator: { | |
7071 "^": "Object;_queue,_end,_modificationCount,_collection$_position,_collect
ion$_current", | |
7072 get$current: function() { | |
7073 return this._collection$_current; | |
7074 }, | |
7075 moveNext$0: function() { | |
7076 var t1, t2, t3; | |
7077 t1 = this._queue; | |
7078 if (this._modificationCount !== t1._modificationCount) | |
7079 H.throwExpression(new P.ConcurrentModificationError(t1)); | |
7080 t2 = this._collection$_position; | |
7081 if (t2 === this._end) { | |
7082 this._collection$_current = null; | |
7083 return false; | |
7084 } | |
7085 t1 = t1._table; | |
7086 t3 = t1.length; | |
7087 if (t2 >= t3) | |
7088 return H.ioore(t1, t2); | |
7089 this._collection$_current = t1[t2]; | |
7090 this._collection$_position = (t2 + 1 & t3 - 1) >>> 0; | |
7091 return true; | |
7092 } | |
7093 }, | |
7094 SetMixin: { | |
7095 "^": "Object;", | |
7096 get$isEmpty: function(_) { | |
7097 return this.get$length(this) === 0; | |
7098 }, | |
7099 get$isNotEmpty: function(_) { | |
7100 return this.get$length(this) !== 0; | |
7101 }, | |
7102 addAll$1: function(_, elements) { | |
7103 var t1; | |
7104 for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();) | |
7105 this.add$1(0, t1.get$current()); | |
7106 }, | |
7107 map$1: function(_, f) { | |
7108 return H.setRuntimeTypeInfo(new H.EfficientLengthMappedIterable(this, f)
, [H.getTypeArgumentByIndex(this, 0), null]); | |
7109 }, | |
7110 toString$0: function(_) { | |
7111 return P.IterableBase_iterableToFullString(this, "{", "}"); | |
7112 }, | |
7113 forEach$1: function(_, f) { | |
7114 var t1; | |
7115 for (t1 = this.get$iterator(this); t1.moveNext$0();) | |
7116 f.call$1(t1.get$current()); | |
7117 }, | |
7118 join$1: function(_, separator) { | |
7119 var iterator, buffer, t1; | |
7120 iterator = this.get$iterator(this); | |
7121 if (!iterator.moveNext$0()) | |
7122 return ""; | |
7123 buffer = new P.StringBuffer(""); | |
7124 if (separator === "") { | |
7125 do | |
7126 buffer._contents += H.S(iterator.get$current()); | |
7127 while (iterator.moveNext$0()); | |
7128 } else { | |
7129 buffer._contents = H.S(iterator.get$current()); | |
7130 for (; iterator.moveNext$0();) { | |
7131 buffer._contents += separator; | |
7132 buffer._contents += H.S(iterator.get$current()); | |
7133 } | |
7134 } | |
7135 t1 = buffer._contents; | |
7136 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
7137 }, | |
7138 get$last: function(_) { | |
7139 var it, result; | |
7140 it = this.get$iterator(this); | |
7141 if (!it.moveNext$0()) | |
7142 throw H.wrapException(H.IterableElementError_noElement()); | |
7143 do | |
7144 result = it.get$current(); | |
7145 while (it.moveNext$0()); | |
7146 return result; | |
7147 }, | |
7148 $isEfficientLength: 1 | |
7149 }, | |
7150 SetBase: { | |
7151 "^": "SetMixin;" | |
7152 } | |
7153 }], ["dart.convert", "dart:convert",, P, { | |
7154 "^": "", | |
7155 _convertJsonToDartLazy: function(object) { | |
7156 var i; | |
7157 if (object == null) | |
7158 return; | |
7159 if (typeof object != "object") | |
7160 return object; | |
7161 if (Object.getPrototypeOf(object) !== Array.prototype) | |
7162 return new P._JsonMap(object, Object.create(null), null); | |
7163 for (i = 0; i < object.length; ++i) | |
7164 object[i] = P._convertJsonToDartLazy(object[i]); | |
7165 return object; | |
7166 }, | |
7167 _parseJson: function(source, reviver) { | |
7168 var parsed, e, t1, exception; | |
7169 t1 = source; | |
7170 if (typeof t1 !== "string") | |
7171 throw H.wrapException(H.argumentErrorValue(source)); | |
7172 parsed = null; | |
7173 try { | |
7174 parsed = JSON.parse(source); | |
7175 } catch (exception) { | |
7176 t1 = H.unwrapException(exception); | |
7177 e = t1; | |
7178 throw H.wrapException(new P.FormatException(String(e), null, null)); | |
7179 } | |
7180 return P._convertJsonToDartLazy(parsed); | |
7181 }, | |
7182 _isLeadSurrogate: function(codeUnit) { | |
7183 codeUnit.$and(0, 64512); | |
7184 return false; | |
7185 }, | |
7186 _combineSurrogatePair: function(lead, tail) { | |
7187 return (C.JSInt_methods.$add(65536, lead.$and(0, 1023).$shl(0, 10)) | tail
& 1023) >>> 0; | |
7188 }, | |
7189 _JsonMap: { | |
7190 "^": "Object;_original,_processed,_data", | |
7191 $index: function(_, key) { | |
7192 var t1, result; | |
7193 t1 = this._processed; | |
7194 if (t1 == null) | |
7195 return this._data.$index(0, key); | |
7196 else if (typeof key !== "string") | |
7197 return; | |
7198 else { | |
7199 result = t1[key]; | |
7200 return typeof result == "undefined" ? this._process$1(key) : result; | |
7201 } | |
7202 }, | |
7203 get$length: function(_) { | |
7204 var t1; | |
7205 if (this._processed == null) { | |
7206 t1 = this._data; | |
7207 t1 = t1.get$length(t1); | |
7208 } else | |
7209 t1 = this._computeKeys$0().length; | |
7210 return t1; | |
7211 }, | |
7212 get$isEmpty: function(_) { | |
7213 var t1; | |
7214 if (this._processed == null) { | |
7215 t1 = this._data; | |
7216 t1 = t1.get$length(t1); | |
7217 } else | |
7218 t1 = this._computeKeys$0().length; | |
7219 return t1 === 0; | |
7220 }, | |
7221 get$isNotEmpty: function(_) { | |
7222 var t1; | |
7223 if (this._processed == null) { | |
7224 t1 = this._data; | |
7225 t1 = t1.get$length(t1); | |
7226 } else | |
7227 t1 = this._computeKeys$0().length; | |
7228 return t1 > 0; | |
7229 }, | |
7230 get$values: function(_) { | |
7231 var t1; | |
7232 if (this._processed == null) { | |
7233 t1 = this._data; | |
7234 return t1.get$values(t1); | |
7235 } | |
7236 return H.MappedIterable_MappedIterable(this._computeKeys$0(), new P._Jso
nMap_values_closure(this), null, null); | |
7237 }, | |
7238 $indexSet: function(_, key, value) { | |
7239 var processed, original; | |
7240 if (this._processed == null) | |
7241 this._data.$indexSet(0, key, value); | |
7242 else if (this.containsKey$1(key)) { | |
7243 processed = this._processed; | |
7244 processed[key] = value; | |
7245 original = this._original; | |
7246 if (original == null ? processed != null : original !== processed) | |
7247 original[key] = null; | |
7248 } else | |
7249 this._upgrade$0().$indexSet(0, key, value); | |
7250 }, | |
7251 containsKey$1: function(key) { | |
7252 if (this._processed == null) | |
7253 return this._data.containsKey$1(key); | |
7254 if (typeof key !== "string") | |
7255 return false; | |
7256 return Object.prototype.hasOwnProperty.call(this._original, key); | |
7257 }, | |
7258 putIfAbsent$2: function(key, ifAbsent) { | |
7259 var value; | |
7260 if (this.containsKey$1(key)) | |
7261 return this.$index(0, key); | |
7262 value = ifAbsent.call$0(); | |
7263 this.$indexSet(0, key, value); | |
7264 return value; | |
7265 }, | |
7266 forEach$1: function(_, f) { | |
7267 var keys, i, key, value; | |
7268 if (this._processed == null) | |
7269 return this._data.forEach$1(0, f); | |
7270 keys = this._computeKeys$0(); | |
7271 for (i = 0; i < keys.length; ++i) { | |
7272 key = keys[i]; | |
7273 value = this._processed[key]; | |
7274 if (typeof value == "undefined") { | |
7275 value = P._convertJsonToDartLazy(this._original[key]); | |
7276 this._processed[key] = value; | |
7277 } | |
7278 f.call$2(key, value); | |
7279 if (keys !== this._data) | |
7280 throw H.wrapException(new P.ConcurrentModificationError(this)); | |
7281 } | |
7282 }, | |
7283 toString$0: function(_) { | |
7284 return P.Maps_mapToString(this); | |
7285 }, | |
7286 _computeKeys$0: function() { | |
7287 var keys = this._data; | |
7288 if (keys == null) { | |
7289 keys = Object.keys(this._original); | |
7290 this._data = keys; | |
7291 } | |
7292 return keys; | |
7293 }, | |
7294 _upgrade$0: function() { | |
7295 var result, keys, i, t1, key; | |
7296 if (this._processed == null) | |
7297 return this._data; | |
7298 result = P.LinkedHashMap__makeEmpty(); | |
7299 keys = this._computeKeys$0(); | |
7300 for (i = 0; t1 = keys.length, i < t1; ++i) { | |
7301 key = keys[i]; | |
7302 result.$indexSet(0, key, this.$index(0, key)); | |
7303 } | |
7304 if (t1 === 0) | |
7305 keys.push(null); | |
7306 else | |
7307 C.JSArray_methods.set$length(keys, 0); | |
7308 this._processed = null; | |
7309 this._original = null; | |
7310 this._data = result; | |
7311 return result; | |
7312 }, | |
7313 _process$1: function(key) { | |
7314 var result; | |
7315 if (!Object.prototype.hasOwnProperty.call(this._original, key)) | |
7316 return; | |
7317 result = P._convertJsonToDartLazy(this._original[key]); | |
7318 return this._processed[key] = result; | |
7319 } | |
7320 }, | |
7321 _JsonMap_values_closure: { | |
7322 "^": "Closure:0;_convert$_captured_this_0", | |
7323 call$1: function(each) { | |
7324 return this._convert$_captured_this_0.$index(0, each); | |
7325 } | |
7326 }, | |
7327 Codec: { | |
7328 "^": "Object;" | |
7329 }, | |
7330 Converter: { | |
7331 "^": "Object;" | |
7332 }, | |
7333 Encoding: { | |
7334 "^": "Codec;", | |
7335 $asCodec: function() { | |
7336 return [P.String, [P.List, P.$int]]; | |
7337 } | |
7338 }, | |
7339 HtmlEscapeMode: { | |
7340 "^": "Object;_convert$_name,escapeLtGt,escapeQuot,escapeApos,escapeSlash", | |
7341 toString$0: function(_) { | |
7342 return this._convert$_name; | |
7343 } | |
7344 }, | |
7345 HtmlEscape: { | |
7346 "^": "Converter;mode", | |
7347 _convert$3: function(text, start, end) { | |
7348 var t1, t2, t3, t4, t5, i, result, replacement, t6; | |
7349 if (typeof end !== "number") | |
7350 return H.iae(end); | |
7351 t1 = J.getInterceptor$asx(text); | |
7352 t2 = this.mode; | |
7353 t3 = t2.escapeSlash; | |
7354 t4 = t2.escapeLtGt; | |
7355 t5 = t2.escapeApos; | |
7356 t2 = t2.escapeQuot; | |
7357 i = start; | |
7358 result = null; | |
7359 for (; i < end; ++i) { | |
7360 switch (t1.$index(text, i)) { | |
7361 case "&": | |
7362 replacement = "&"; | |
7363 break; | |
7364 case "\"": | |
7365 replacement = t2 ? """ : null; | |
7366 break; | |
7367 case "'": | |
7368 replacement = t5 ? "'" : null; | |
7369 break; | |
7370 case "<": | |
7371 replacement = t4 ? "<" : null; | |
7372 break; | |
7373 case ">": | |
7374 replacement = t4 ? ">" : null; | |
7375 break; | |
7376 case "/": | |
7377 replacement = t3 ? "/" : null; | |
7378 break; | |
7379 default: | |
7380 replacement = null; | |
7381 } | |
7382 if (replacement != null) { | |
7383 if (result == null) | |
7384 result = new P.StringBuffer(""); | |
7385 if (i > start) { | |
7386 t6 = t1.substring$2(text, start, i); | |
7387 result._contents = result._contents + t6; | |
7388 } | |
7389 result._contents = result._contents + replacement; | |
7390 start = i + 1; | |
7391 } | |
7392 } | |
7393 if (result == null) | |
7394 return; | |
7395 if (end > start) | |
7396 result._contents += t1.substring$2(text, start, end); | |
7397 t1 = result._contents; | |
7398 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
7399 }, | |
7400 $asConverter: function() { | |
7401 return [P.String, P.String]; | |
7402 } | |
7403 }, | |
7404 JsonCodec: { | |
7405 "^": "Codec;_reviver,_toEncodable", | |
7406 decode$2$reviver: function(source, reviver) { | |
7407 return P._parseJson(source, this.get$decoder()._reviver); | |
7408 }, | |
7409 decode$1: function(source) { | |
7410 return this.decode$2$reviver(source, null); | |
7411 }, | |
7412 get$decoder: function() { | |
7413 return C.JsonDecoder_null; | |
7414 }, | |
7415 $asCodec: function() { | |
7416 return [P.Object, P.String]; | |
7417 } | |
7418 }, | |
7419 JsonDecoder: { | |
7420 "^": "Converter;_reviver", | |
7421 $asConverter: function() { | |
7422 return [P.String, P.Object]; | |
7423 } | |
7424 }, | |
7425 Utf8Codec: { | |
7426 "^": "Encoding;_allowMalformed", | |
7427 get$name: function(_) { | |
7428 return "utf-8"; | |
7429 }, | |
7430 get$encoder: function() { | |
7431 return C.C_Utf8Encoder; | |
7432 } | |
7433 }, | |
7434 Utf8Encoder: { | |
7435 "^": "Converter;", | |
7436 convert$3: function(string, start, end) { | |
7437 var stringLength, $length, t1, encoder; | |
7438 stringLength = string.get$length(string); | |
7439 P.RangeError_checkValidRange(start, end, stringLength, null, null, null)
; | |
7440 $length = stringLength.$sub(0, start); | |
7441 t1 = $length.$mul(0, 3); | |
7442 t1 = new Uint8Array(t1); | |
7443 encoder = new P._Utf8Encoder(0, 0, t1); | |
7444 encoder._fillBuffer$3(string, start, stringLength); | |
7445 encoder._writeSurrogate$2(string.codeUnitAt$1(0, stringLength.$sub(0, 1)
), 0); | |
7446 return new Uint8Array(t1.subarray(0, H._checkValidRange(0, encoder._buff
erIndex, t1.length))); | |
7447 }, | |
7448 convert$1: function(string) { | |
7449 return this.convert$3(string, 0, null); | |
7450 }, | |
7451 $asConverter: function() { | |
7452 return [P.String, [P.List, P.$int]]; | |
7453 } | |
7454 }, | |
7455 _Utf8Encoder: { | |
7456 "^": "Object;_carry,_bufferIndex,_buffer", | |
7457 _writeSurrogate$2: function(leadingSurrogate, nextCodeUnit) { | |
7458 var t1, t2, t3, t4; | |
7459 if ((nextCodeUnit & 64512) === 56320) | |
7460 P._combineSurrogatePair(leadingSurrogate, nextCodeUnit); | |
7461 else { | |
7462 t1 = this._buffer; | |
7463 t2 = this._bufferIndex++; | |
7464 t3 = C.JSInt_methods.$or(224, leadingSurrogate.$shr(0, 12)); | |
7465 t4 = t1.length; | |
7466 if (t2 >= t4) | |
7467 return H.ioore(t1, t2); | |
7468 t1[t2] = t3; | |
7469 t3 = this._bufferIndex++; | |
7470 t2 = C.JSInt_methods.$or(128, leadingSurrogate.$shr(0, 6).$and(0, 63))
; | |
7471 if (t3 >= t4) | |
7472 return H.ioore(t1, t3); | |
7473 t1[t3] = t2; | |
7474 t2 = this._bufferIndex++; | |
7475 t3 = C.JSInt_methods.$or(128, leadingSurrogate.$and(0, 63)); | |
7476 if (t2 >= t4) | |
7477 return H.ioore(t1, t2); | |
7478 t1[t2] = t3; | |
7479 return false; | |
7480 } | |
7481 }, | |
7482 _fillBuffer$3: function(str, start, end) { | |
7483 var t1, t2, stringIndex, codeUnit, t3, stringIndex0, t4; | |
7484 if (P._isLeadSurrogate(str.codeUnitAt$1(0, end.$sub(0, 1)))) | |
7485 end = end.$sub(0, 1); | |
7486 for (t1 = this._buffer, t2 = t1.length, stringIndex = start; C.JSInt_met
hods.$lt(stringIndex, end); ++stringIndex) { | |
7487 codeUnit = str.codeUnitAt$1(0, stringIndex); | |
7488 if (codeUnit.$le(0, 127)) { | |
7489 t3 = this._bufferIndex; | |
7490 if (t3 >= t2) | |
7491 break; | |
7492 this._bufferIndex = t3 + 1; | |
7493 t1[t3] = codeUnit; | |
7494 } else if (P._isLeadSurrogate(codeUnit)) { | |
7495 if (this._bufferIndex + 3 >= t2) | |
7496 break; | |
7497 stringIndex0 = stringIndex + 1; | |
7498 if (this._writeSurrogate$2(codeUnit, str.codeUnitAt$1(0, stringIndex
0))) | |
7499 stringIndex = stringIndex0; | |
7500 } else if (codeUnit.$le(0, 2047)) { | |
7501 t3 = this._bufferIndex; | |
7502 t4 = t3 + 1; | |
7503 if (t4 >= t2) | |
7504 break; | |
7505 this._bufferIndex = t4; | |
7506 t4 = C.JSInt_methods.$or(192, codeUnit.$shr(0, 6)); | |
7507 if (t3 >= t2) | |
7508 return H.ioore(t1, t3); | |
7509 t1[t3] = t4; | |
7510 t4 = this._bufferIndex++; | |
7511 t3 = C.JSInt_methods.$or(128, codeUnit.$and(0, 63)); | |
7512 if (t4 >= t2) | |
7513 return H.ioore(t1, t4); | |
7514 t1[t4] = t3; | |
7515 } else { | |
7516 t3 = this._bufferIndex; | |
7517 if (t3 + 2 >= t2) | |
7518 break; | |
7519 this._bufferIndex = t3 + 1; | |
7520 t4 = C.JSInt_methods.$or(224, codeUnit.$shr(0, 12)); | |
7521 if (t3 >= t2) | |
7522 return H.ioore(t1, t3); | |
7523 t1[t3] = t4; | |
7524 t4 = this._bufferIndex++; | |
7525 t3 = C.JSInt_methods.$or(128, codeUnit.$shr(0, 6).$and(0, 63)); | |
7526 if (t4 >= t2) | |
7527 return H.ioore(t1, t4); | |
7528 t1[t4] = t3; | |
7529 t3 = this._bufferIndex++; | |
7530 t4 = C.JSInt_methods.$or(128, codeUnit.$and(0, 63)); | |
7531 if (t3 >= t2) | |
7532 return H.ioore(t1, t3); | |
7533 t1[t3] = t4; | |
7534 } | |
7535 } | |
7536 return stringIndex; | |
7537 } | |
7538 }, | |
7539 Utf8Decoder: { | |
7540 "^": "Converter;_allowMalformed", | |
7541 convert$3: function(codeUnits, start, end) { | |
7542 var $length, buffer, t1, decoder; | |
7543 $length = J.get$length$asx(codeUnits); | |
7544 P.RangeError_checkValidRange(start, end, $length, null, null, null); | |
7545 buffer = new P.StringBuffer(""); | |
7546 t1 = this._allowMalformed; | |
7547 decoder = new P._Utf8Decoder(t1, buffer, true, 0, 0, 0); | |
7548 decoder.convert$3(codeUnits, start, $length); | |
7549 if (decoder._expectedUnits > 0) { | |
7550 if (!t1) | |
7551 H.throwExpression(new P.FormatException("Unfinished UTF-8 octet sequ
ence", null, null)); | |
7552 buffer._contents += H.Primitives_stringFromCharCode(65533); | |
7553 decoder._convert$_value = 0; | |
7554 decoder._expectedUnits = 0; | |
7555 decoder._extraUnits = 0; | |
7556 } | |
7557 t1 = buffer._contents; | |
7558 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
7559 }, | |
7560 convert$1: function(codeUnits) { | |
7561 return this.convert$3(codeUnits, 0, null); | |
7562 }, | |
7563 $asConverter: function() { | |
7564 return [[P.List, P.$int], P.String]; | |
7565 } | |
7566 }, | |
7567 _Utf8Decoder: { | |
7568 "^": "Object;_allowMalformed,_stringSink,_isFirstCharacter,_convert$_value
,_expectedUnits,_extraUnits", | |
7569 convert$3: function(codeUnits, startIndex, endIndex) { | |
7570 var value, expectedUnits, extraUnits, t1, t2, t3, t4, t5, i, unit, t6, o
neBytes, i0; | |
7571 value = this._convert$_value; | |
7572 expectedUnits = this._expectedUnits; | |
7573 extraUnits = this._extraUnits; | |
7574 this._convert$_value = 0; | |
7575 this._expectedUnits = 0; | |
7576 this._extraUnits = 0; | |
7577 t1 = new P._Utf8Decoder_convert_scanOneByteCharacters(endIndex); | |
7578 t2 = new P._Utf8Decoder_convert_addSingleBytes(this, codeUnits, startInd
ex, endIndex); | |
7579 $loop$0: | |
7580 for (t3 = this._stringSink, t4 = !this._allowMalformed, t5 = J.getInte
rceptor$asx(codeUnits), i = startIndex; true; i = i0) { | |
7581 $multibyte$2: | |
7582 if (expectedUnits > 0) { | |
7583 do { | |
7584 if (i === endIndex) | |
7585 break $loop$0; | |
7586 unit = t5.$index(codeUnits, i); | |
7587 if (typeof unit !== "number") | |
7588 return unit.$and(); | |
7589 if ((unit & 192) !== 128) { | |
7590 if (t4) | |
7591 throw H.wrapException(new P.FormatException("Bad UTF-8 enc
oding 0x" + C.JSNumber_methods.toRadixString$1(unit, 16), null, null)); | |
7592 this._isFirstCharacter = false; | |
7593 t3._contents += H.Primitives_stringFromCharCode(65533); | |
7594 expectedUnits = 0; | |
7595 break $multibyte$2; | |
7596 } else { | |
7597 value = (value << 6 | unit & 63) >>> 0; | |
7598 --expectedUnits; | |
7599 ++i; | |
7600 } | |
7601 } while (expectedUnits > 0); | |
7602 t6 = extraUnits - 1; | |
7603 if (t6 < 0 || t6 >= 4) | |
7604 return H.ioore(C.List_127_2047_65535_1114111, t6); | |
7605 if (value <= C.List_127_2047_65535_1114111[t6]) { | |
7606 if (t4) | |
7607 throw H.wrapException(new P.FormatException("Overlong encodi
ng of 0x" + C.JSInt_methods.toRadixString$1(value, 16), null, null)); | |
7608 value = 65533; | |
7609 expectedUnits = 0; | |
7610 extraUnits = 0; | |
7611 } | |
7612 if (value > 1114111) { | |
7613 if (t4) | |
7614 throw H.wrapException(new P.FormatException("Character outsi
de valid Unicode range: 0x" + C.JSInt_methods.toRadixString$1(value, 16), null,
null)); | |
7615 value = 65533; | |
7616 } | |
7617 if (!this._isFirstCharacter || value !== 65279) | |
7618 t3._contents += H.Primitives_stringFromCharCode(value); | |
7619 this._isFirstCharacter = false; | |
7620 } | |
7621 for (; i < endIndex; i = i0) { | |
7622 oneBytes = t1.call$2(codeUnits, i); | |
7623 if (J.$gt$n(oneBytes, 0)) { | |
7624 this._isFirstCharacter = false; | |
7625 if (typeof oneBytes !== "number") | |
7626 return H.iae(oneBytes); | |
7627 i0 = i + oneBytes; | |
7628 t2.call$2(i, i0); | |
7629 if (i0 === endIndex) | |
7630 break; | |
7631 i = i0; | |
7632 } | |
7633 i0 = i + 1; | |
7634 unit = t5.$index(codeUnits, i); | |
7635 t6 = J.getInterceptor$n(unit); | |
7636 if (t6.$lt(unit, 0)) { | |
7637 if (t4) | |
7638 throw H.wrapException(new P.FormatException("Negative UTF-8 co
de unit: -0x" + J.toRadixString$1$n(t6.$negate(unit), 16), null, null)); | |
7639 t3._contents += H.Primitives_stringFromCharCode(65533); | |
7640 } else { | |
7641 if (typeof unit !== "number") | |
7642 return unit.$and(); | |
7643 if ((unit & 224) === 192) { | |
7644 value = unit & 31; | |
7645 expectedUnits = 1; | |
7646 extraUnits = 1; | |
7647 continue $loop$0; | |
7648 } | |
7649 if ((unit & 240) === 224) { | |
7650 value = unit & 15; | |
7651 expectedUnits = 2; | |
7652 extraUnits = 2; | |
7653 continue $loop$0; | |
7654 } | |
7655 if ((unit & 248) === 240 && unit < 245) { | |
7656 value = unit & 7; | |
7657 expectedUnits = 3; | |
7658 extraUnits = 3; | |
7659 continue $loop$0; | |
7660 } | |
7661 if (t4) | |
7662 throw H.wrapException(new P.FormatException("Bad UTF-8 encodin
g 0x" + C.JSNumber_methods.toRadixString$1(unit, 16), null, null)); | |
7663 this._isFirstCharacter = false; | |
7664 t3._contents += H.Primitives_stringFromCharCode(65533); | |
7665 value = 65533; | |
7666 expectedUnits = 0; | |
7667 extraUnits = 0; | |
7668 } | |
7669 } | |
7670 break $loop$0; | |
7671 } | |
7672 if (expectedUnits > 0) { | |
7673 this._convert$_value = value; | |
7674 this._expectedUnits = expectedUnits; | |
7675 this._extraUnits = extraUnits; | |
7676 } | |
7677 } | |
7678 }, | |
7679 _Utf8Decoder_convert_scanOneByteCharacters: { | |
7680 "^": "Closure:19;_captured_endIndex_0", | |
7681 call$2: function(units, from) { | |
7682 var to, t1, i, unit; | |
7683 to = this._captured_endIndex_0; | |
7684 for (t1 = J.getInterceptor$asx(units), i = from; i < to; ++i) { | |
7685 unit = t1.$index(units, i); | |
7686 if (typeof unit !== "number") | |
7687 return unit.$and(); | |
7688 if ((unit & 127) !== unit) | |
7689 return i - from; | |
7690 } | |
7691 return to - from; | |
7692 } | |
7693 }, | |
7694 _Utf8Decoder_convert_addSingleBytes: { | |
7695 "^": "Closure:20;_captured_this_1,_captured_codeUnits_2,_captured_startInd
ex_3,_captured_endIndex_4", | |
7696 call$2: function(from, to) { | |
7697 this._captured_this_1._stringSink._contents += P.String_String$fromCharC
odes(this._captured_codeUnits_2, from, to); | |
7698 } | |
7699 } | |
7700 }], ["dart.core", "dart:core",, P, { | |
7701 "^": "", | |
7702 _symbolToString: function(symbol) { | |
7703 return H.Symbol_getName(symbol); | |
7704 }, | |
7705 String__stringFromIterable: function(charCodes, start, end) { | |
7706 var t1, it, i, list; | |
7707 if (start < 0) | |
7708 throw H.wrapException(P.RangeError$range(start, 0, J.get$length$asx(char
Codes), null, null)); | |
7709 t1 = end == null; | |
7710 if (!t1 && end < start) | |
7711 throw H.wrapException(P.RangeError$range(end, start, J.get$length$asx(ch
arCodes), null, null)); | |
7712 it = J.get$iterator$ax(charCodes); | |
7713 for (i = 0; i < start; ++i) | |
7714 if (!it.moveNext$0()) | |
7715 throw H.wrapException(P.RangeError$range(start, 0, i, null, null)); | |
7716 list = []; | |
7717 if (t1) | |
7718 for (; it.moveNext$0();) | |
7719 list.push(it.get$current()); | |
7720 else | |
7721 for (i = start; i < end; ++i) { | |
7722 if (!it.moveNext$0()) | |
7723 throw H.wrapException(P.RangeError$range(end, start, i, null, null))
; | |
7724 list.push(it.get$current()); | |
7725 } | |
7726 return H.Primitives_stringFromCharCodes(list); | |
7727 }, | |
7728 Error_safeToString: function(object) { | |
7729 if (typeof object === "number" || typeof object === "boolean" || null == o
bject) | |
7730 return J.toString$0$(object); | |
7731 if (typeof object === "string") | |
7732 return JSON.stringify(object); | |
7733 return P.Error__objectToString(object); | |
7734 }, | |
7735 Error__objectToString: function(object) { | |
7736 var t1 = J.getInterceptor(object); | |
7737 if (!!t1.$isClosure) | |
7738 return t1.toString$0(object); | |
7739 return H.Primitives_objectToHumanReadableString(object); | |
7740 }, | |
7741 Exception_Exception: function(message) { | |
7742 return new P._Exception(message); | |
7743 }, | |
7744 List_List$filled: function($length, fill, $E) { | |
7745 var result, t1, i; | |
7746 result = J.JSArray_JSArray$fixed($length, $E); | |
7747 if ($length !== 0 && true) | |
7748 for (t1 = result.length, i = 0; i < t1; ++i) | |
7749 result[i] = fill; | |
7750 return result; | |
7751 }, | |
7752 List_List$from: function(elements, growable, $E) { | |
7753 var list, t1; | |
7754 list = H.setRuntimeTypeInfo([], [$E]); | |
7755 for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();) | |
7756 list.push(t1.get$current()); | |
7757 if (growable) | |
7758 return list; | |
7759 list.fixed$length = Array; | |
7760 return list; | |
7761 }, | |
7762 List_List$generate: function($length, generator, growable, $E) { | |
7763 var result, t1, i; | |
7764 if (growable) { | |
7765 result = H.setRuntimeTypeInfo([], [$E]); | |
7766 C.JSArray_methods.set$length(result, $length); | |
7767 } else { | |
7768 t1 = new Array($length); | |
7769 t1.fixed$length = Array; | |
7770 result = H.setRuntimeTypeInfo(t1, [$E]); | |
7771 } | |
7772 for (i = 0; i < $length; ++i) { | |
7773 t1 = generator.call$1(i); | |
7774 if (i >= result.length) | |
7775 return H.ioore(result, i); | |
7776 result[i] = t1; | |
7777 } | |
7778 return result; | |
7779 }, | |
7780 print: function(object) { | |
7781 var line = H.S(object); | |
7782 H.printString(line); | |
7783 }, | |
7784 RegExp_RegExp: function(source, caseSensitive, multiLine) { | |
7785 return new H.JSSyntaxRegExp(source, H.JSSyntaxRegExp_makeNative(source, mu
ltiLine, caseSensitive, false), null, null); | |
7786 }, | |
7787 String_String$fromCharCodes: function(charCodes, start, end) { | |
7788 var len; | |
7789 if (charCodes.constructor === Array) { | |
7790 len = charCodes.length; | |
7791 end = P.RangeError_checkValidRange(start, end, len, null, null, null); | |
7792 return H.Primitives_stringFromCharCodes(start > 0 || end < len ? C.JSArr
ay_methods.sublist$2(charCodes, start, end) : charCodes); | |
7793 } | |
7794 return P.String__stringFromIterable(charCodes, start, end); | |
7795 }, | |
7796 NoSuchMethodError_toString_closure: { | |
7797 "^": "Closure:21;_core$_box_0,_captured_sb_1", | |
7798 call$2: function(key, value) { | |
7799 this._captured_sb_1._contents += this._core$_box_0._captured_comma_0; | |
7800 P._symbolToString(key); | |
7801 } | |
7802 }, | |
7803 bool: { | |
7804 "^": "Object;" | |
7805 }, | |
7806 "+bool": 0, | |
7807 DateTime: { | |
7808 "^": "Object;" | |
7809 }, | |
7810 $double: { | |
7811 "^": "num;" | |
7812 }, | |
7813 "+double": 0, | |
7814 Duration: { | |
7815 "^": "Object;_duration<", | |
7816 $add: function(_, other) { | |
7817 return new P.Duration(this._duration + other.get$_duration()); | |
7818 }, | |
7819 $sub: function(_, other) { | |
7820 return new P.Duration(this._duration - other.get$_duration()); | |
7821 }, | |
7822 $lt: function(_, other) { | |
7823 return this._duration < other.get$_duration(); | |
7824 }, | |
7825 $gt: function(_, other) { | |
7826 return this._duration > other.get$_duration(); | |
7827 }, | |
7828 $eq: function(_, other) { | |
7829 if (other == null) | |
7830 return false; | |
7831 if (!(other instanceof P.Duration)) | |
7832 return false; | |
7833 return this._duration === other._duration; | |
7834 }, | |
7835 get$hashCode: function(_) { | |
7836 return this._duration & 0x1FFFFFFF; | |
7837 }, | |
7838 toString$0: function(_) { | |
7839 var t1, t2, twoDigitMinutes, twoDigitSeconds, sixDigitUs; | |
7840 t1 = new P.Duration_toString_twoDigits(); | |
7841 t2 = this._duration; | |
7842 if (t2 < 0) | |
7843 return "-" + new P.Duration(-t2).toString$0(0); | |
7844 twoDigitMinutes = t1.call$1(C.JSInt_methods.remainder$1(C.JSInt_methods.
_tdivFast$1(t2, 60000000), 60)); | |
7845 twoDigitSeconds = t1.call$1(C.JSInt_methods.remainder$1(C.JSInt_methods.
_tdivFast$1(t2, 1000000), 60)); | |
7846 sixDigitUs = new P.Duration_toString_sixDigits().call$1(C.JSInt_methods.
remainder$1(t2, 1000000)); | |
7847 return "" + C.JSInt_methods._tdivFast$1(t2, 3600000000) + ":" + H.S(twoD
igitMinutes) + ":" + H.S(twoDigitSeconds) + "." + H.S(sixDigitUs); | |
7848 }, | |
7849 abs$0: function(_) { | |
7850 return new P.Duration(Math.abs(this._duration)); | |
7851 }, | |
7852 $negate: function(_) { | |
7853 return new P.Duration(-this._duration); | |
7854 } | |
7855 }, | |
7856 Duration_toString_sixDigits: { | |
7857 "^": "Closure:8;", | |
7858 call$1: function(n) { | |
7859 if (n >= 100000) | |
7860 return "" + n; | |
7861 if (n >= 10000) | |
7862 return "0" + n; | |
7863 if (n >= 1000) | |
7864 return "00" + n; | |
7865 if (n >= 100) | |
7866 return "000" + n; | |
7867 if (n >= 10) | |
7868 return "0000" + n; | |
7869 return "00000" + n; | |
7870 } | |
7871 }, | |
7872 Duration_toString_twoDigits: { | |
7873 "^": "Closure:8;", | |
7874 call$1: function(n) { | |
7875 if (n >= 10) | |
7876 return "" + n; | |
7877 return "0" + n; | |
7878 } | |
7879 }, | |
7880 Error: { | |
7881 "^": "Object;", | |
7882 get$stackTrace: function() { | |
7883 return H.getTraceFromException(this.$thrownJsError); | |
7884 } | |
7885 }, | |
7886 NullThrownError: { | |
7887 "^": "Error;", | |
7888 toString$0: function(_) { | |
7889 return "Throw of null."; | |
7890 } | |
7891 }, | |
7892 ArgumentError: { | |
7893 "^": "Error;_hasValue,invalidValue,name>,message>", | |
7894 get$_errorName: function() { | |
7895 return "Invalid argument" + (!this._hasValue ? "(s)" : ""); | |
7896 }, | |
7897 get$_errorExplanation: function() { | |
7898 return ""; | |
7899 }, | |
7900 toString$0: function(_) { | |
7901 var t1, nameString, message, prefix, explanation, errorValue; | |
7902 t1 = this.name; | |
7903 nameString = t1 != null ? " (" + H.S(t1) + ")" : ""; | |
7904 t1 = this.message; | |
7905 message = t1 == null ? "" : ": " + H.S(t1); | |
7906 prefix = this.get$_errorName() + nameString + message; | |
7907 if (!this._hasValue) | |
7908 return prefix; | |
7909 explanation = this.get$_errorExplanation(); | |
7910 errorValue = P.Error_safeToString(this.invalidValue); | |
7911 return prefix + explanation + ": " + H.S(errorValue); | |
7912 }, | |
7913 static: {ArgumentError$: function(message) { | |
7914 return new P.ArgumentError(false, null, null, message); | |
7915 }, ArgumentError$value: function(value, $name, message) { | |
7916 return new P.ArgumentError(true, value, $name, message); | |
7917 }} | |
7918 }, | |
7919 RangeError: { | |
7920 "^": "ArgumentError;start,end,_hasValue,invalidValue,name,message", | |
7921 get$_errorName: function() { | |
7922 return "RangeError"; | |
7923 }, | |
7924 get$_errorExplanation: function() { | |
7925 var t1, explanation, t2; | |
7926 t1 = this.start; | |
7927 if (t1 == null) { | |
7928 t1 = this.end; | |
7929 explanation = t1 != null ? ": Not less than or equal to " + H.S(t1) :
""; | |
7930 } else { | |
7931 t2 = this.end; | |
7932 if (t2 == null) | |
7933 explanation = ": Not greater than or equal to " + H.S(t1); | |
7934 else { | |
7935 if (typeof t2 !== "number") | |
7936 return t2.$gt(); | |
7937 if (typeof t1 !== "number") | |
7938 return H.iae(t1); | |
7939 if (t2 > t1) | |
7940 explanation = ": Not in range " + t1 + ".." + t2 + ", inclusive"; | |
7941 else | |
7942 explanation = t2 < t1 ? ": Valid value range is empty" : ": Only v
alid value is " + t1; | |
7943 } | |
7944 } | |
7945 return explanation; | |
7946 }, | |
7947 static: {RangeError$: function(message) { | |
7948 return new P.RangeError(null, null, false, null, null, message); | |
7949 }, RangeError$value: function(value, $name, message) { | |
7950 return new P.RangeError(null, null, true, value, $name, "Value not in
range"); | |
7951 }, RangeError$range: function(invalidValue, minValue, maxValue, $name, m
essage) { | |
7952 return new P.RangeError(minValue, maxValue, true, invalidValue, $name,
"Invalid value"); | |
7953 }, RangeError_checkValueInInterval: function(value, minValue, maxValue,
$name, message) { | |
7954 if (value < minValue || value > maxValue) | |
7955 throw H.wrapException(P.RangeError$range(value, minValue, maxValue,
$name, message)); | |
7956 }, RangeError_checkValidRange: function(start, end, $length, startName,
endName, message) { | |
7957 if (0 > start || start > $length) | |
7958 throw H.wrapException(P.RangeError$range(start, 0, $length, "start",
message)); | |
7959 if (end != null) { | |
7960 if (start > end || end > $length) | |
7961 throw H.wrapException(P.RangeError$range(end, start, $length, "end
", message)); | |
7962 return end; | |
7963 } | |
7964 return $length; | |
7965 }} | |
7966 }, | |
7967 IndexError: { | |
7968 "^": "ArgumentError;indexable,length>,_hasValue,invalidValue,name,message"
, | |
7969 get$_errorName: function() { | |
7970 return "RangeError"; | |
7971 }, | |
7972 get$_errorExplanation: function() { | |
7973 if (J.$lt$n(this.invalidValue, 0)) | |
7974 return ": index must not be negative"; | |
7975 var t1 = this.length; | |
7976 if (J.$eq$(t1, 0)) | |
7977 return ": no indices are valid"; | |
7978 return ": index should be less than " + H.S(t1); | |
7979 }, | |
7980 static: {IndexError$: function(invalidValue, indexable, $name, message, $l
ength) { | |
7981 var t1 = $length != null ? $length : J.get$length$asx(indexable); | |
7982 return new P.IndexError(indexable, t1, true, invalidValue, $name, "Ind
ex out of range"); | |
7983 }} | |
7984 }, | |
7985 UnsupportedError: { | |
7986 "^": "Error;message>", | |
7987 toString$0: function(_) { | |
7988 return "Unsupported operation: " + this.message; | |
7989 } | |
7990 }, | |
7991 UnimplementedError: { | |
7992 "^": "Error;message>", | |
7993 toString$0: function(_) { | |
7994 var t1 = this.message; | |
7995 return t1 != null ? "UnimplementedError: " + H.S(t1) : "UnimplementedErr
or"; | |
7996 } | |
7997 }, | |
7998 StateError: { | |
7999 "^": "Error;message>", | |
8000 toString$0: function(_) { | |
8001 return "Bad state: " + this.message; | |
8002 } | |
8003 }, | |
8004 ConcurrentModificationError: { | |
8005 "^": "Error;modifiedObject", | |
8006 toString$0: function(_) { | |
8007 var t1 = this.modifiedObject; | |
8008 if (t1 == null) | |
8009 return "Concurrent modification during iteration."; | |
8010 return "Concurrent modification during iteration: " + H.S(P.Error_safeTo
String(t1)) + "."; | |
8011 } | |
8012 }, | |
8013 OutOfMemoryError: { | |
8014 "^": "Object;", | |
8015 toString$0: function(_) { | |
8016 return "Out of Memory"; | |
8017 }, | |
8018 get$stackTrace: function() { | |
8019 return; | |
8020 }, | |
8021 $isError: 1 | |
8022 }, | |
8023 StackOverflowError: { | |
8024 "^": "Object;", | |
8025 toString$0: function(_) { | |
8026 return "Stack Overflow"; | |
8027 }, | |
8028 get$stackTrace: function() { | |
8029 return; | |
8030 }, | |
8031 $isError: 1 | |
8032 }, | |
8033 CyclicInitializationError: { | |
8034 "^": "Error;variableName", | |
8035 toString$0: function(_) { | |
8036 return "Reading static variable '" + this.variableName + "' during its i
nitialization"; | |
8037 } | |
8038 }, | |
8039 _Exception: { | |
8040 "^": "Object;message>", | |
8041 toString$0: function(_) { | |
8042 var t1 = this.message; | |
8043 if (t1 == null) | |
8044 return "Exception"; | |
8045 return "Exception: " + H.S(t1); | |
8046 } | |
8047 }, | |
8048 FormatException: { | |
8049 "^": "Object;message>,source,offset", | |
8050 toString$0: function(_) { | |
8051 var t1, report, offset, source, lineNum, lineStart, lastWasCR, i, $char,
lineEnd, end, start, prefix, postfix, slice; | |
8052 t1 = this.message; | |
8053 report = t1 != null && "" !== t1 ? "FormatException: " + H.S(t1) : "Form
atException"; | |
8054 offset = this.offset; | |
8055 source = this.source; | |
8056 if (typeof source !== "string") | |
8057 return offset != null ? report + (" (at offset " + H.S(offset) + ")")
: report; | |
8058 if (offset != null) | |
8059 t1 = offset < 0 || offset > source.length; | |
8060 else | |
8061 t1 = false; | |
8062 if (t1) | |
8063 offset = null; | |
8064 if (offset == null) { | |
8065 if (source.length > 78) | |
8066 source = J.substring$2$s(source, 0, 75) + "..."; | |
8067 return report + "\n" + H.S(source); | |
8068 } | |
8069 for (t1 = J.getInterceptor$s(source), lineNum = 1, lineStart = 0, lastWa
sCR = null, i = 0; i < offset; ++i) { | |
8070 $char = t1.codeUnitAt$1(source, i); | |
8071 if ($char === 10) { | |
8072 if (lineStart !== i || lastWasCR !== true) | |
8073 ++lineNum; | |
8074 lineStart = i + 1; | |
8075 lastWasCR = false; | |
8076 } else if ($char === 13) { | |
8077 ++lineNum; | |
8078 lineStart = i + 1; | |
8079 lastWasCR = true; | |
8080 } | |
8081 } | |
8082 report = lineNum > 1 ? report + (" (at line " + lineNum + ", character "
+ (offset - lineStart + 1) + ")\n") : report + (" (at character " + (offset + 1
) + ")\n"); | |
8083 lineEnd = source.length; | |
8084 for (i = offset; i < lineEnd; ++i) { | |
8085 $char = t1.codeUnitAt$1(source, i); | |
8086 if ($char === 10 || $char === 13) { | |
8087 lineEnd = i; | |
8088 break; | |
8089 } | |
8090 } | |
8091 if (lineEnd - lineStart > 78) | |
8092 if (offset - lineStart < 75) { | |
8093 end = lineStart + 75; | |
8094 start = lineStart; | |
8095 prefix = ""; | |
8096 postfix = "..."; | |
8097 } else { | |
8098 if (lineEnd - offset < 75) { | |
8099 start = lineEnd - 75; | |
8100 end = lineEnd; | |
8101 postfix = ""; | |
8102 } else { | |
8103 start = offset - 36; | |
8104 end = offset + 36; | |
8105 postfix = "..."; | |
8106 } | |
8107 prefix = "..."; | |
8108 } | |
8109 else { | |
8110 end = lineEnd; | |
8111 start = lineStart; | |
8112 prefix = ""; | |
8113 postfix = ""; | |
8114 } | |
8115 slice = t1.substring$2(source, start, end); | |
8116 return report + prefix + slice + postfix + "\n" + C.JSString_methods.$mu
l(" ", offset - start + prefix.length) + "^\n"; | |
8117 } | |
8118 }, | |
8119 Expando: { | |
8120 "^": "Object;name>", | |
8121 toString$0: function(_) { | |
8122 return "Expando:" + H.S(this.name); | |
8123 }, | |
8124 $index: function(_, object) { | |
8125 var values = H.Primitives_getProperty(object, "expando$values"); | |
8126 return values == null ? null : H.Primitives_getProperty(values, this._ge
tKey$0()); | |
8127 }, | |
8128 $indexSet: function(_, object, value) { | |
8129 var values = H.Primitives_getProperty(object, "expando$values"); | |
8130 if (values == null) { | |
8131 values = new P.Object(); | |
8132 H.Primitives_setProperty(object, "expando$values", values); | |
8133 } | |
8134 H.Primitives_setProperty(values, this._getKey$0(), value); | |
8135 }, | |
8136 _getKey$0: function() { | |
8137 var key, t1; | |
8138 key = H.Primitives_getProperty(this, "expando$key"); | |
8139 if (key == null) { | |
8140 t1 = $.Expando__keyCount; | |
8141 $.Expando__keyCount = t1 + 1; | |
8142 key = "expando$key$" + t1; | |
8143 H.Primitives_setProperty(this, "expando$key", key); | |
8144 } | |
8145 return key; | |
8146 } | |
8147 }, | |
8148 Function: { | |
8149 "^": "Object;" | |
8150 }, | |
8151 $int: { | |
8152 "^": "num;" | |
8153 }, | |
8154 "+int": 0, | |
8155 Iterable: { | |
8156 "^": "Object;", | |
8157 map$1: function(_, f) { | |
8158 return H.MappedIterable_MappedIterable(this, f, H.getRuntimeTypeArgument
(this, "Iterable", 0), null); | |
8159 }, | |
8160 where$1: ["super$Iterable$where", function(_, f) { | |
8161 return H.setRuntimeTypeInfo(new H.WhereIterable(this, f), [H.getRuntimeT
ypeArgument(this, "Iterable", 0)]); | |
8162 }], | |
8163 contains$1: function(_, element) { | |
8164 var t1; | |
8165 for (t1 = this.get$iterator(this); t1.moveNext$0();) | |
8166 if (J.$eq$(t1.get$current(), element)) | |
8167 return true; | |
8168 return false; | |
8169 }, | |
8170 forEach$1: function(_, f) { | |
8171 var t1; | |
8172 for (t1 = this.get$iterator(this); t1.moveNext$0();) | |
8173 f.call$1(t1.get$current()); | |
8174 }, | |
8175 toList$1$growable: function(_, growable) { | |
8176 return P.List_List$from(this, growable, H.getRuntimeTypeArgument(this, "
Iterable", 0)); | |
8177 }, | |
8178 toList$0: function($receiver) { | |
8179 return this.toList$1$growable($receiver, true); | |
8180 }, | |
8181 get$length: function(_) { | |
8182 var it, count; | |
8183 it = this.get$iterator(this); | |
8184 for (count = 0; it.moveNext$0();) | |
8185 ++count; | |
8186 return count; | |
8187 }, | |
8188 get$isEmpty: function(_) { | |
8189 return !this.get$iterator(this).moveNext$0(); | |
8190 }, | |
8191 get$isNotEmpty: function(_) { | |
8192 return this.get$isEmpty(this) !== true; | |
8193 }, | |
8194 get$last: function(_) { | |
8195 var it, result; | |
8196 it = this.get$iterator(this); | |
8197 if (!it.moveNext$0()) | |
8198 throw H.wrapException(H.IterableElementError_noElement()); | |
8199 do | |
8200 result = it.get$current(); | |
8201 while (it.moveNext$0()); | |
8202 return result; | |
8203 }, | |
8204 get$single: function(_) { | |
8205 var it, result; | |
8206 it = this.get$iterator(this); | |
8207 if (!it.moveNext$0()) | |
8208 throw H.wrapException(H.IterableElementError_noElement()); | |
8209 result = it.get$current(); | |
8210 if (it.moveNext$0()) | |
8211 throw H.wrapException(H.IterableElementError_tooMany()); | |
8212 return result; | |
8213 }, | |
8214 elementAt$1: function(_, index) { | |
8215 var t1, elementIndex, element; | |
8216 if (index < 0) | |
8217 H.throwExpression(P.RangeError$range(index, 0, null, "index", null)); | |
8218 for (t1 = this.get$iterator(this), elementIndex = 0; t1.moveNext$0();) { | |
8219 element = t1.get$current(); | |
8220 if (index === elementIndex) | |
8221 return element; | |
8222 ++elementIndex; | |
8223 } | |
8224 throw H.wrapException(P.IndexError$(index, this, "index", null, elementI
ndex)); | |
8225 }, | |
8226 toString$0: function(_) { | |
8227 return P.IterableBase_iterableToShortString(this, "(", ")"); | |
8228 } | |
8229 }, | |
8230 Iterator: { | |
8231 "^": "Object;" | |
8232 }, | |
8233 List: { | |
8234 "^": "Object;", | |
8235 $asList: null, | |
8236 $isEfficientLength: 1 | |
8237 }, | |
8238 "+List": 0, | |
8239 Map: { | |
8240 "^": "Object;" | |
8241 }, | |
8242 Null: { | |
8243 "^": "Object;", | |
8244 toString$0: function(_) { | |
8245 return "null"; | |
8246 } | |
8247 }, | |
8248 "+Null": 0, | |
8249 num: { | |
8250 "^": "Object;" | |
8251 }, | |
8252 "+num": 0, | |
8253 Object: { | |
8254 "^": ";", | |
8255 $eq: function(_, other) { | |
8256 return this === other; | |
8257 }, | |
8258 get$hashCode: function(_) { | |
8259 return H.Primitives_objectHashCode(this); | |
8260 }, | |
8261 toString$0: function(_) { | |
8262 return H.Primitives_objectToHumanReadableString(this); | |
8263 } | |
8264 }, | |
8265 Match: { | |
8266 "^": "Object;" | |
8267 }, | |
8268 StackTrace: { | |
8269 "^": "Object;" | |
8270 }, | |
8271 String: { | |
8272 "^": "Object;", | |
8273 $isPattern: 1 | |
8274 }, | |
8275 "+String": 0, | |
8276 StringBuffer: { | |
8277 "^": "Object;_contents<", | |
8278 get$length: function(_) { | |
8279 return this._contents.length; | |
8280 }, | |
8281 get$isEmpty: function(_) { | |
8282 return this._contents.length === 0; | |
8283 }, | |
8284 get$isNotEmpty: function(_) { | |
8285 return this._contents.length !== 0; | |
8286 }, | |
8287 toString$0: function(_) { | |
8288 var t1 = this._contents; | |
8289 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
8290 }, | |
8291 static: {StringBuffer__writeAll: function(string, objects, separator) { | |
8292 var iterator = J.get$iterator$ax(objects); | |
8293 if (!iterator.moveNext$0()) | |
8294 return string; | |
8295 if (separator.length === 0) { | |
8296 do | |
8297 string += H.S(iterator.get$current()); | |
8298 while (iterator.moveNext$0()); | |
8299 } else { | |
8300 string += H.S(iterator.get$current()); | |
8301 for (; iterator.moveNext$0();) | |
8302 string = string + separator + H.S(iterator.get$current()); | |
8303 } | |
8304 return string; | |
8305 }} | |
8306 }, | |
8307 Symbol: { | |
8308 "^": "Object;" | |
8309 }, | |
8310 Uri: { | |
8311 "^": "Object;_host,_port,_path,scheme<,_userInfo,_query,_fragment,_pathSeg
ments,_queryParameters", | |
8312 get$host: function(_) { | |
8313 var t1 = this._host; | |
8314 if (t1 == null) | |
8315 return ""; | |
8316 if (J.getInterceptor$s(t1).startsWith$1(t1, "[")) | |
8317 return C.JSString_methods.substring$2(t1, 1, t1.length - 1); | |
8318 return t1; | |
8319 }, | |
8320 get$port: function(_) { | |
8321 var t1 = this._port; | |
8322 if (t1 == null) | |
8323 return P.Uri__defaultPort(this.scheme); | |
8324 return t1; | |
8325 }, | |
8326 get$pathSegments: function() { | |
8327 var t1, pathToSplit; | |
8328 t1 = this._pathSegments; | |
8329 if (t1 == null) { | |
8330 pathToSplit = this._path; | |
8331 if (pathToSplit.length !== 0 && C.JSString_methods.codeUnitAt$1(pathTo
Split, 0) === 47) | |
8332 pathToSplit = C.JSString_methods.substring$1(pathToSplit, 1); | |
8333 t1 = H.setRuntimeTypeInfo(new P.UnmodifiableListView(pathToSplit === "
" ? C.List_empty0 : H.setRuntimeTypeInfo(new H.MappedListIterable(pathToSplit.sp
lit("/"), P.core_Uri_decodeComponent$closure()), [null, null]).toList$1$growable
(0, false)), [null]); | |
8334 this._pathSegments = t1; | |
8335 } | |
8336 return t1; | |
8337 }, | |
8338 _mergePaths$2: function(base, reference) { | |
8339 var backCount, refStart, baseEnd, newEnd, delta, t1; | |
8340 for (backCount = 0, refStart = 0; C.JSString_methods.startsWith$2(refere
nce, "../", refStart);) { | |
8341 refStart += 3; | |
8342 ++backCount; | |
8343 } | |
8344 baseEnd = C.JSString_methods.lastIndexOf$1(base, "/"); | |
8345 while (true) { | |
8346 if (!(baseEnd > 0 && backCount > 0)) | |
8347 break; | |
8348 newEnd = C.JSString_methods.lastIndexOf$2(base, "/", baseEnd - 1); | |
8349 if (newEnd < 0) | |
8350 break; | |
8351 delta = baseEnd - newEnd; | |
8352 t1 = delta !== 2; | |
8353 if (!t1 || delta === 3) | |
8354 if (C.JSString_methods.codeUnitAt$1(base, newEnd + 1) === 46) | |
8355 t1 = !t1 || C.JSString_methods.codeUnitAt$1(base, newEnd + 2) ===
46; | |
8356 else | |
8357 t1 = false; | |
8358 else | |
8359 t1 = false; | |
8360 if (t1) | |
8361 break; | |
8362 --backCount; | |
8363 baseEnd = newEnd; | |
8364 } | |
8365 return C.JSString_methods.replaceRange$3(base, baseEnd + 1, null, C.JSSt
ring_methods.substring$1(reference, refStart - 3 * backCount)); | |
8366 }, | |
8367 toFilePath$1$windows: function(windows) { | |
8368 var t1 = this.scheme; | |
8369 if (t1 !== "" && t1 !== "file") | |
8370 throw H.wrapException(new P.UnsupportedError("Cannot extract a file pa
th from a " + t1 + " URI")); | |
8371 t1 = this._query; | |
8372 if ((t1 == null ? "" : t1) !== "") | |
8373 throw H.wrapException(new P.UnsupportedError("Cannot extract a file pa
th from a URI with a query component")); | |
8374 t1 = this._fragment; | |
8375 if ((t1 == null ? "" : t1) !== "") | |
8376 throw H.wrapException(new P.UnsupportedError("Cannot extract a file pa
th from a URI with a fragment component")); | |
8377 if (this.get$host(this) !== "") | |
8378 H.throwExpression(new P.UnsupportedError("Cannot extract a non-Windows
file path from a file URI with an authority")); | |
8379 P.Uri__checkNonWindowsPathReservedCharacters(this.get$pathSegments(), fa
lse); | |
8380 t1 = this.get$_isPathAbsolute() ? "/" : ""; | |
8381 t1 = P.StringBuffer__writeAll(t1, this.get$pathSegments(), "/"); | |
8382 t1 = t1.charCodeAt(0) == 0 ? t1 : t1; | |
8383 return t1; | |
8384 }, | |
8385 toFilePath$0: function() { | |
8386 return this.toFilePath$1$windows(null); | |
8387 }, | |
8388 get$_isPathAbsolute: function() { | |
8389 if (this._path.length === 0) | |
8390 return false; | |
8391 return C.JSString_methods.startsWith$1(this._path, "/"); | |
8392 }, | |
8393 toString$0: function(_) { | |
8394 var t1, t2, t3, t4; | |
8395 t1 = this.scheme; | |
8396 t2 = "" !== t1 ? t1 + ":" : ""; | |
8397 t3 = this._host; | |
8398 t4 = t3 == null; | |
8399 if (!t4 || C.JSString_methods.startsWith$1(this._path, "//") || t1 === "
file") { | |
8400 t1 = t2 + "//"; | |
8401 t2 = this._userInfo; | |
8402 if (t2.length !== 0) | |
8403 t1 = t1 + t2 + "@"; | |
8404 if (!t4) | |
8405 t1 += H.S(t3); | |
8406 t2 = this._port; | |
8407 if (t2 != null) | |
8408 t1 = t1 + ":" + H.S(t2); | |
8409 } else | |
8410 t1 = t2; | |
8411 t1 += this._path; | |
8412 t2 = this._query; | |
8413 if (t2 != null) | |
8414 t1 = t1 + "?" + H.S(t2); | |
8415 t2 = this._fragment; | |
8416 if (t2 != null) | |
8417 t1 = t1 + "#" + H.S(t2); | |
8418 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
8419 }, | |
8420 $eq: function(_, other) { | |
8421 var t1, t2, t3, t4; | |
8422 if (other == null) | |
8423 return false; | |
8424 t1 = J.getInterceptor(other); | |
8425 if (!t1.$isUri) | |
8426 return false; | |
8427 if (this.scheme === other.scheme) | |
8428 if (this._host != null === (other._host != null)) | |
8429 if (this._userInfo === other._userInfo) { | |
8430 t2 = this.get$host(this); | |
8431 t3 = t1.get$host(other); | |
8432 if (t2 == null ? t3 == null : t2 === t3) { | |
8433 t2 = this.get$port(this); | |
8434 t1 = t1.get$port(other); | |
8435 if (t2 == null ? t1 == null : t2 === t1) | |
8436 if (this._path === other._path) { | |
8437 t1 = this._query; | |
8438 t2 = t1 == null; | |
8439 t3 = other._query; | |
8440 t4 = t3 == null; | |
8441 if (!t2 === !t4) { | |
8442 if (t2) | |
8443 t1 = ""; | |
8444 if (t1 == null ? (t4 ? "" : t3) == null : t1 === (t4 ? ""
: t3)) { | |
8445 t1 = this._fragment; | |
8446 t2 = t1 == null; | |
8447 t3 = other._fragment; | |
8448 t4 = t3 == null; | |
8449 if (!t2 === !t4) { | |
8450 if (t2) | |
8451 t1 = ""; | |
8452 t1 = t1 == null ? (t4 ? "" : t3) == null : t1 === (t4
? "" : t3); | |
8453 } else | |
8454 t1 = false; | |
8455 } else | |
8456 t1 = false; | |
8457 } else | |
8458 t1 = false; | |
8459 } else | |
8460 t1 = false; | |
8461 else | |
8462 t1 = false; | |
8463 } else | |
8464 t1 = false; | |
8465 } else | |
8466 t1 = false; | |
8467 else | |
8468 t1 = false; | |
8469 else | |
8470 t1 = false; | |
8471 return t1; | |
8472 }, | |
8473 get$hashCode: function(_) { | |
8474 var t1, t2, t3, t4, t5; | |
8475 t1 = new P.Uri_hashCode_combine(); | |
8476 t2 = this.get$host(this); | |
8477 t3 = this.get$port(this); | |
8478 t4 = this._query; | |
8479 if (t4 == null) | |
8480 t4 = ""; | |
8481 t5 = this._fragment; | |
8482 return t1.call$2(this.scheme, t1.call$2(this._userInfo, t1.call$2(t2, t1
.call$2(t3, t1.call$2(this._path, t1.call$2(t4, t1.call$2(t5 == null ? "" : t5,
1))))))); | |
8483 }, | |
8484 static: {Uri__defaultPort: function(scheme) { | |
8485 if (scheme === "http") | |
8486 return 80; | |
8487 if (scheme === "https") | |
8488 return 443; | |
8489 return 0; | |
8490 }, Uri_parse: function(uri, start, end) { | |
8491 var t1, pathStart, state, i, t2, $char, index, path, numberSignIndex,
query, fragment, t3; | |
8492 t1 = {}; | |
8493 t1._captured_end_0 = end; | |
8494 t1._captured_scheme_1 = ""; | |
8495 t1._captured_userinfo_2 = ""; | |
8496 t1._captured_host_3 = null; | |
8497 t1._captured_port_4 = null; | |
8498 t1._captured_end_0 = uri.length; | |
8499 t1._captured_index_5 = start; | |
8500 t1._captured_char_6 = -1; | |
8501 i = start; | |
8502 while (true) { | |
8503 t2 = t1._captured_end_0; | |
8504 if (typeof t2 !== "number") | |
8505 return H.iae(t2); | |
8506 if (!(i < t2)) { | |
8507 pathStart = start; | |
8508 state = 0; | |
8509 break; | |
8510 } | |
8511 $char = C.JSString_methods.codeUnitAt$1(uri, i); | |
8512 t1._captured_char_6 = $char; | |
8513 if ($char === 63 || $char === 35) { | |
8514 pathStart = start; | |
8515 state = 0; | |
8516 break; | |
8517 } | |
8518 if ($char === 47) { | |
8519 state = i === start ? 2 : 1; | |
8520 pathStart = start; | |
8521 break; | |
8522 } | |
8523 if ($char === 58) { | |
8524 if (i === start) | |
8525 P.Uri__fail(uri, start, "Invalid empty scheme"); | |
8526 t1._captured_scheme_1 = P.Uri__makeScheme(uri, start, i); | |
8527 ++i; | |
8528 if (i === t1._captured_end_0) { | |
8529 t1._captured_char_6 = -1; | |
8530 state = 0; | |
8531 } else { | |
8532 $char = C.JSString_methods.codeUnitAt$1(uri, i); | |
8533 t1._captured_char_6 = $char; | |
8534 if ($char === 63 || $char === 35) | |
8535 state = 0; | |
8536 else | |
8537 state = $char === 47 ? 2 : 1; | |
8538 } | |
8539 pathStart = i; | |
8540 break; | |
8541 } | |
8542 ++i; | |
8543 t1._captured_char_6 = -1; | |
8544 } | |
8545 t1._captured_index_5 = i; | |
8546 if (state === 2) { | |
8547 index = i + 1; | |
8548 t1._captured_index_5 = index; | |
8549 if (index === t1._captured_end_0) { | |
8550 t1._captured_char_6 = -1; | |
8551 state = 0; | |
8552 } else { | |
8553 $char = C.JSString_methods.codeUnitAt$1(uri, index); | |
8554 t1._captured_char_6 = $char; | |
8555 if ($char === 47) { | |
8556 t2 = t1._captured_index_5; | |
8557 if (typeof t2 !== "number") | |
8558 return t2.$add(); | |
8559 t1._captured_index_5 = t2 + 1; | |
8560 new P.Uri_parse_parseAuth(t1, uri, -1).call$0(); | |
8561 pathStart = t1._captured_index_5; | |
8562 } | |
8563 t2 = t1._captured_char_6; | |
8564 state = t2 === 63 || t2 === 35 || t2 === -1 ? 0 : 1; | |
8565 } | |
8566 } | |
8567 if (state === 1) | |
8568 while (true) { | |
8569 t2 = t1._captured_index_5; | |
8570 if (typeof t2 !== "number") | |
8571 return t2.$add(); | |
8572 index = t2 + 1; | |
8573 t1._captured_index_5 = index; | |
8574 t2 = t1._captured_end_0; | |
8575 if (typeof t2 !== "number") | |
8576 return H.iae(t2); | |
8577 if (!(index < t2)) | |
8578 break; | |
8579 $char = C.JSString_methods.codeUnitAt$1(uri, index); | |
8580 t1._captured_char_6 = $char; | |
8581 if ($char === 63 || $char === 35) | |
8582 break; | |
8583 t1._captured_char_6 = -1; | |
8584 } | |
8585 t2 = t1._captured_host_3; | |
8586 path = P.Uri__makePath(uri, pathStart, t1._captured_index_5, null, t1.
_captured_scheme_1, t2 != null); | |
8587 t2 = t1._captured_char_6; | |
8588 if (t2 === 63) { | |
8589 t2 = t1._captured_index_5; | |
8590 if (typeof t2 !== "number") | |
8591 return t2.$add(); | |
8592 i = t2 + 1; | |
8593 while (true) { | |
8594 t2 = t1._captured_end_0; | |
8595 if (typeof t2 !== "number") | |
8596 return H.iae(t2); | |
8597 if (!(i < t2)) { | |
8598 numberSignIndex = -1; | |
8599 break; | |
8600 } | |
8601 if (C.JSString_methods.codeUnitAt$1(uri, i) === 35) { | |
8602 numberSignIndex = i; | |
8603 break; | |
8604 } | |
8605 ++i; | |
8606 } | |
8607 t2 = t1._captured_index_5; | |
8608 if (numberSignIndex < 0) { | |
8609 if (typeof t2 !== "number") | |
8610 return t2.$add(); | |
8611 query = P.Uri__makeQuery(uri, t2 + 1, t1._captured_end_0, null); | |
8612 fragment = null; | |
8613 } else { | |
8614 if (typeof t2 !== "number") | |
8615 return t2.$add(); | |
8616 query = P.Uri__makeQuery(uri, t2 + 1, numberSignIndex, null); | |
8617 fragment = P.Uri__makeFragment(uri, numberSignIndex + 1, t1._captu
red_end_0); | |
8618 } | |
8619 } else { | |
8620 if (t2 === 35) { | |
8621 t2 = t1._captured_index_5; | |
8622 if (typeof t2 !== "number") | |
8623 return t2.$add(); | |
8624 fragment = P.Uri__makeFragment(uri, t2 + 1, t1._captured_end_0); | |
8625 } else | |
8626 fragment = null; | |
8627 query = null; | |
8628 } | |
8629 t2 = t1._captured_scheme_1; | |
8630 t3 = t1._captured_userinfo_2; | |
8631 return new P.Uri(t1._captured_host_3, t1._captured_port_4, path, t2, t
3, query, fragment, null, null); | |
8632 }, Uri__fail: function(uri, index, message) { | |
8633 throw H.wrapException(new P.FormatException(message, uri, index)); | |
8634 }, Uri_base: function() { | |
8635 var uri = H.Primitives_currentUri(); | |
8636 if (uri != null) | |
8637 return P.Uri_parse(uri, 0, null); | |
8638 throw H.wrapException(new P.UnsupportedError("'Uri.base' is not suppor
ted")); | |
8639 }, Uri__checkNonWindowsPathReservedCharacters: function(segments, argume
ntError) { | |
8640 segments.forEach$1(segments, new P.Uri__checkNonWindowsPathReservedCha
racters_closure(argumentError)); | |
8641 }, Uri__makePort: function(port, scheme) { | |
8642 if (port != null && port === P.Uri__defaultPort(scheme)) | |
8643 return; | |
8644 return port; | |
8645 }, Uri__makeHost: function(host, start, end, strictIPv6) { | |
8646 var t1, i; | |
8647 if (host == null) | |
8648 return; | |
8649 if (start == null ? end == null : start === end) | |
8650 return ""; | |
8651 if (C.JSString_methods.codeUnitAt$1(host, start) === 91) { | |
8652 if (typeof end !== "number") | |
8653 return end.$sub(); | |
8654 t1 = end - 1; | |
8655 if (C.JSString_methods.codeUnitAt$1(host, t1) !== 93) | |
8656 P.Uri__fail(host, start, "Missing end `]` to match `[` in host"); | |
8657 if (typeof start !== "number") | |
8658 return start.$add(); | |
8659 P.Uri_parseIPv6Address(host, start + 1, t1); | |
8660 return C.JSString_methods.substring$2(host, start, end).toLowerCase(
); | |
8661 } | |
8662 if (!strictIPv6) { | |
8663 i = start; | |
8664 while (true) { | |
8665 if (typeof i !== "number") | |
8666 return i.$lt(); | |
8667 if (typeof end !== "number") | |
8668 return H.iae(end); | |
8669 if (!(i < end)) | |
8670 break; | |
8671 if (C.JSString_methods.codeUnitAt$1(host, i) === 58) { | |
8672 P.Uri_parseIPv6Address(host, start, end); | |
8673 return "[" + host + "]"; | |
8674 } | |
8675 ++i; | |
8676 } | |
8677 } | |
8678 return P.Uri__normalizeRegName(host, start, end); | |
8679 }, Uri__normalizeRegName: function(host, start, end) { | |
8680 var index, sectionStart, buffer, isNormalized, $char, replacement, t1,
slice, sourceLength, tail; | |
8681 index = start; | |
8682 sectionStart = index; | |
8683 buffer = null; | |
8684 isNormalized = true; | |
8685 while (true) { | |
8686 if (typeof index !== "number") | |
8687 return index.$lt(); | |
8688 if (typeof end !== "number") | |
8689 return H.iae(end); | |
8690 if (!(index < end)) | |
8691 break; | |
8692 c$0: { | |
8693 $char = C.JSString_methods.codeUnitAt$1(host, index); | |
8694 if ($char === 37) { | |
8695 replacement = P.Uri__normalizeEscape(host, index, true); | |
8696 t1 = replacement == null; | |
8697 if (t1 && isNormalized) { | |
8698 index += 3; | |
8699 break c$0; | |
8700 } | |
8701 if (buffer == null) | |
8702 buffer = new P.StringBuffer(""); | |
8703 slice = C.JSString_methods.substring$2(host, sectionStart, index
); | |
8704 if (!isNormalized) | |
8705 slice = slice.toLowerCase(); | |
8706 buffer._contents = buffer._contents + slice; | |
8707 if (t1) { | |
8708 replacement = C.JSString_methods.substring$2(host, index, inde
x + 3); | |
8709 sourceLength = 3; | |
8710 } else if (replacement === "%") { | |
8711 replacement = "%25"; | |
8712 sourceLength = 1; | |
8713 } else | |
8714 sourceLength = 3; | |
8715 buffer._contents += replacement; | |
8716 index += sourceLength; | |
8717 sectionStart = index; | |
8718 isNormalized = true; | |
8719 } else { | |
8720 if ($char < 127) { | |
8721 t1 = $char >>> 4; | |
8722 if (t1 >= 8) | |
8723 return H.ioore(C.List_qNA, t1); | |
8724 t1 = (C.List_qNA[t1] & C.JSInt_methods._shlPositive$1(1, $char
& 15)) !== 0; | |
8725 } else | |
8726 t1 = false; | |
8727 if (t1) { | |
8728 if (isNormalized && 65 <= $char && 90 >= $char) { | |
8729 if (buffer == null) | |
8730 buffer = new P.StringBuffer(""); | |
8731 if (typeof sectionStart !== "number") | |
8732 return sectionStart.$lt(); | |
8733 if (sectionStart < index) { | |
8734 t1 = C.JSString_methods.substring$2(host, sectionStart, in
dex); | |
8735 buffer._contents = buffer._contents + t1; | |
8736 sectionStart = index; | |
8737 } | |
8738 isNormalized = false; | |
8739 } | |
8740 ++index; | |
8741 } else { | |
8742 if ($char <= 93) { | |
8743 t1 = $char >>> 4; | |
8744 if (t1 >= 8) | |
8745 return H.ioore(C.List_2Vk, t1); | |
8746 t1 = (C.List_2Vk[t1] & C.JSInt_methods._shlPositive$1(1, $ch
ar & 15)) !== 0; | |
8747 } else | |
8748 t1 = false; | |
8749 if (t1) | |
8750 P.Uri__fail(host, index, "Invalid character"); | |
8751 else { | |
8752 if (($char & 64512) === 55296 && index + 1 < end) { | |
8753 tail = C.JSString_methods.codeUnitAt$1(host, index + 1); | |
8754 if ((tail & 64512) === 56320) { | |
8755 $char = (65536 | ($char & 1023) << 10 | tail & 1023) >>>
0; | |
8756 sourceLength = 2; | |
8757 } else | |
8758 sourceLength = 1; | |
8759 } else | |
8760 sourceLength = 1; | |
8761 if (buffer == null) | |
8762 buffer = new P.StringBuffer(""); | |
8763 slice = C.JSString_methods.substring$2(host, sectionStart, i
ndex); | |
8764 if (!isNormalized) | |
8765 slice = slice.toLowerCase(); | |
8766 buffer._contents = buffer._contents + slice; | |
8767 buffer._contents += P.Uri__escapeChar($char); | |
8768 index += sourceLength; | |
8769 sectionStart = index; | |
8770 } | |
8771 } | |
8772 } | |
8773 } | |
8774 } | |
8775 if (buffer == null) | |
8776 return C.JSString_methods.substring$2(host, start, end); | |
8777 if (typeof sectionStart !== "number") | |
8778 return sectionStart.$lt(); | |
8779 if (sectionStart < end) { | |
8780 slice = C.JSString_methods.substring$2(host, sectionStart, end); | |
8781 buffer._contents += !isNormalized ? slice.toLowerCase() : slice; | |
8782 } | |
8783 t1 = buffer._contents; | |
8784 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
8785 }, Uri__makeScheme: function(scheme, start, end) { | |
8786 var firstCodeUnit, t1, i, containsUpperCase, codeUnit; | |
8787 if (start === end) | |
8788 return ""; | |
8789 firstCodeUnit = C.JSString_methods.codeUnitAt$1(scheme, start); | |
8790 if (!(firstCodeUnit >= 97 && firstCodeUnit <= 122)) | |
8791 t1 = firstCodeUnit >= 65 && firstCodeUnit <= 90; | |
8792 else | |
8793 t1 = true; | |
8794 if (!t1) | |
8795 P.Uri__fail(scheme, start, "Scheme not starting with alphabetic char
acter"); | |
8796 for (i = start, containsUpperCase = false; i < end; ++i) { | |
8797 codeUnit = C.JSString_methods.codeUnitAt$1(scheme, i); | |
8798 if (codeUnit < 128) { | |
8799 t1 = codeUnit >>> 4; | |
8800 if (t1 >= 8) | |
8801 return H.ioore(C.List_JYB, t1); | |
8802 t1 = (C.List_JYB[t1] & C.JSInt_methods._shlPositive$1(1, codeUnit
& 15)) !== 0; | |
8803 } else | |
8804 t1 = false; | |
8805 if (!t1) | |
8806 P.Uri__fail(scheme, i, "Illegal scheme character"); | |
8807 if (65 <= codeUnit && codeUnit <= 90) | |
8808 containsUpperCase = true; | |
8809 } | |
8810 scheme = C.JSString_methods.substring$2(scheme, start, end); | |
8811 return containsUpperCase ? scheme.toLowerCase() : scheme; | |
8812 }, Uri__makeUserInfo: function(userInfo, start, end) { | |
8813 return P.Uri__normalize(userInfo, start, end, C.List_gRj); | |
8814 }, Uri__makePath: function(path, start, end, pathSegments, scheme, hasAu
thority) { | |
8815 var isFile, ensureLeadingSlash, result; | |
8816 isFile = scheme === "file"; | |
8817 ensureLeadingSlash = isFile || hasAuthority; | |
8818 result = P.Uri__normalize(path, start, end, C.List_qg4); | |
8819 if (result.length === 0) { | |
8820 if (isFile) | |
8821 return "/"; | |
8822 } else if (ensureLeadingSlash && !C.JSString_methods.startsWith$1(resu
lt, "/")) | |
8823 result = "/" + result; | |
8824 return P.Uri__normalizePath(result, scheme, hasAuthority); | |
8825 }, Uri__normalizePath: function(path, scheme, hasAuthority) { | |
8826 if (scheme.length === 0 && !hasAuthority && !C.JSString_methods.starts
With$1(path, "/")) | |
8827 return P.Uri__normalizeRelativePath(path); | |
8828 return P.Uri__removeDotSegments(path); | |
8829 }, Uri__makeQuery: function(query, start, end, queryParameters) { | |
8830 var t1, t2, result; | |
8831 t1 = {}; | |
8832 t2 = query == null; | |
8833 if (t2 && true) | |
8834 return; | |
8835 t2 = !t2; | |
8836 if (t2) | |
8837 ; | |
8838 if (t2) | |
8839 return P.Uri__normalize(query, start, end, C.List_CVk); | |
8840 result = new P.StringBuffer(""); | |
8841 t1._captured_first_0 = true; | |
8842 C.JSNull_methods.forEach$1(queryParameters, new P.Uri__makeQuery_closu
re(t1, result)); | |
8843 t1 = result._contents; | |
8844 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
8845 }, Uri__makeFragment: function(fragment, start, end) { | |
8846 if (fragment == null) | |
8847 return; | |
8848 return P.Uri__normalize(fragment, start, end, C.List_CVk); | |
8849 }, Uri__isHexDigit: function($char) { | |
8850 if (57 >= $char) | |
8851 return 48 <= $char; | |
8852 $char |= 32; | |
8853 return 97 <= $char && 102 >= $char; | |
8854 }, Uri__hexValue: function($char) { | |
8855 if (57 >= $char) | |
8856 return $char - 48; | |
8857 return ($char | 32) - 87; | |
8858 }, Uri__normalizeEscape: function(source, index, lowerCase) { | |
8859 var t1, firstDigit, secondDigit, value; | |
8860 t1 = index + 2; | |
8861 if (t1 >= source.length) | |
8862 return "%"; | |
8863 firstDigit = C.JSString_methods.codeUnitAt$1(source, index + 1); | |
8864 secondDigit = C.JSString_methods.codeUnitAt$1(source, t1); | |
8865 if (!P.Uri__isHexDigit(firstDigit) || !P.Uri__isHexDigit(secondDigit)) | |
8866 return "%"; | |
8867 value = P.Uri__hexValue(firstDigit) * 16 + P.Uri__hexValue(secondDigit
); | |
8868 if (value < 127) { | |
8869 t1 = C.JSInt_methods._shrOtherPositive$1(value, 4); | |
8870 if (t1 >= 8) | |
8871 return H.ioore(C.List_nxB, t1); | |
8872 t1 = (C.List_nxB[t1] & C.JSInt_methods._shlPositive$1(1, value & 15)
) !== 0; | |
8873 } else | |
8874 t1 = false; | |
8875 if (t1) | |
8876 return H.Primitives_stringFromCharCode(lowerCase && 65 <= value && 9
0 >= value ? (value | 32) >>> 0 : value); | |
8877 if (firstDigit >= 97 || secondDigit >= 97) | |
8878 return C.JSString_methods.substring$2(source, index, index + 3).toUp
perCase(); | |
8879 return; | |
8880 }, Uri__escapeChar: function($char) { | |
8881 var codeUnits, flag, encodedBytes, t1, index, $byte, t2, t3; | |
8882 if ($char < 128) { | |
8883 codeUnits = new Array(3); | |
8884 codeUnits.fixed$length = Array; | |
8885 codeUnits[0] = 37; | |
8886 codeUnits[1] = C.JSString_methods.codeUnitAt$1("0123456789ABCDEF", $
char >>> 4); | |
8887 codeUnits[2] = C.JSString_methods.codeUnitAt$1("0123456789ABCDEF", $
char & 15); | |
8888 } else { | |
8889 if ($char > 2047) | |
8890 if ($char > 65535) { | |
8891 flag = 240; | |
8892 encodedBytes = 4; | |
8893 } else { | |
8894 flag = 224; | |
8895 encodedBytes = 3; | |
8896 } | |
8897 else { | |
8898 flag = 192; | |
8899 encodedBytes = 2; | |
8900 } | |
8901 t1 = 3 * encodedBytes; | |
8902 codeUnits = new Array(t1); | |
8903 codeUnits.fixed$length = Array; | |
8904 for (index = 0; --encodedBytes, encodedBytes >= 0; flag = 128) { | |
8905 $byte = C.JSInt_methods._shrReceiverPositive$1($char, 6 * encodedB
ytes) & 63 | flag; | |
8906 if (index >= t1) | |
8907 return H.ioore(codeUnits, index); | |
8908 codeUnits[index] = 37; | |
8909 t2 = index + 1; | |
8910 t3 = C.JSString_methods.codeUnitAt$1("0123456789ABCDEF", $byte >>>
4); | |
8911 if (t2 >= t1) | |
8912 return H.ioore(codeUnits, t2); | |
8913 codeUnits[t2] = t3; | |
8914 t3 = index + 2; | |
8915 t2 = C.JSString_methods.codeUnitAt$1("0123456789ABCDEF", $byte & 1
5); | |
8916 if (t3 >= t1) | |
8917 return H.ioore(codeUnits, t3); | |
8918 codeUnits[t3] = t2; | |
8919 index += 3; | |
8920 } | |
8921 } | |
8922 return P.String_String$fromCharCodes(codeUnits, 0, null); | |
8923 }, Uri__normalize: function(component, start, end, charTable) { | |
8924 var index, sectionStart, buffer, $char, t1, replacement, sourceLength,
tail; | |
8925 index = start; | |
8926 sectionStart = index; | |
8927 buffer = null; | |
8928 while (true) { | |
8929 if (typeof index !== "number") | |
8930 return index.$lt(); | |
8931 if (typeof end !== "number") | |
8932 return H.iae(end); | |
8933 if (!(index < end)) | |
8934 break; | |
8935 c$0: { | |
8936 $char = C.JSString_methods.codeUnitAt$1(component, index); | |
8937 if ($char < 127) { | |
8938 t1 = $char >>> 4; | |
8939 if (t1 >= 8) | |
8940 return H.ioore(charTable, t1); | |
8941 t1 = (charTable[t1] & C.JSInt_methods._shlPositive$1(1, $char &
15)) !== 0; | |
8942 } else | |
8943 t1 = false; | |
8944 if (t1) | |
8945 ++index; | |
8946 else { | |
8947 if ($char === 37) { | |
8948 replacement = P.Uri__normalizeEscape(component, index, false); | |
8949 if (replacement == null) { | |
8950 index += 3; | |
8951 break c$0; | |
8952 } | |
8953 if ("%" === replacement) { | |
8954 replacement = "%25"; | |
8955 sourceLength = 1; | |
8956 } else | |
8957 sourceLength = 3; | |
8958 } else { | |
8959 if ($char <= 93) { | |
8960 t1 = $char >>> 4; | |
8961 if (t1 >= 8) | |
8962 return H.ioore(C.List_2Vk, t1); | |
8963 t1 = (C.List_2Vk[t1] & C.JSInt_methods._shlPositive$1(1, $ch
ar & 15)) !== 0; | |
8964 } else | |
8965 t1 = false; | |
8966 if (t1) { | |
8967 P.Uri__fail(component, index, "Invalid character"); | |
8968 replacement = null; | |
8969 sourceLength = null; | |
8970 } else { | |
8971 if (($char & 64512) === 55296) { | |
8972 t1 = index + 1; | |
8973 if (t1 < end) { | |
8974 tail = C.JSString_methods.codeUnitAt$1(component, t1); | |
8975 if ((tail & 64512) === 56320) { | |
8976 $char = (65536 | ($char & 1023) << 10 | tail & 1023) >
>> 0; | |
8977 sourceLength = 2; | |
8978 } else | |
8979 sourceLength = 1; | |
8980 } else | |
8981 sourceLength = 1; | |
8982 } else | |
8983 sourceLength = 1; | |
8984 replacement = P.Uri__escapeChar($char); | |
8985 } | |
8986 } | |
8987 if (buffer == null) | |
8988 buffer = new P.StringBuffer(""); | |
8989 t1 = C.JSString_methods.substring$2(component, sectionStart, ind
ex); | |
8990 buffer._contents = buffer._contents + t1; | |
8991 buffer._contents += H.S(replacement); | |
8992 if (typeof sourceLength !== "number") | |
8993 return H.iae(sourceLength); | |
8994 index += sourceLength; | |
8995 sectionStart = index; | |
8996 } | |
8997 } | |
8998 } | |
8999 if (buffer == null) | |
9000 return C.JSString_methods.substring$2(component, start, end); | |
9001 if (typeof sectionStart !== "number") | |
9002 return sectionStart.$lt(); | |
9003 if (sectionStart < end) | |
9004 buffer._contents += C.JSString_methods.substring$2(component, sectio
nStart, end); | |
9005 t1 = buffer._contents; | |
9006 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
9007 }, Uri__mayContainDotSegments: function(path) { | |
9008 if (C.JSString_methods.startsWith$1(path, ".")) | |
9009 return true; | |
9010 return C.JSString_methods.indexOf$1(path, "/.") !== -1; | |
9011 }, Uri__removeDotSegments: function(path) { | |
9012 var output, t1, t2, appendSlash, _i, segment, t3; | |
9013 if (!P.Uri__mayContainDotSegments(path)) | |
9014 return path; | |
9015 output = []; | |
9016 for (t1 = path.split("/"), t2 = t1.length, appendSlash = false, _i = 0
; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1
), ++_i) { | |
9017 segment = t1[_i]; | |
9018 if (J.$eq$(segment, "..")) { | |
9019 t3 = output.length; | |
9020 if (t3 !== 0) { | |
9021 if (0 >= t3) | |
9022 return H.ioore(output, -1); | |
9023 output.pop(); | |
9024 if (output.length === 0) | |
9025 output.push(""); | |
9026 } | |
9027 appendSlash = true; | |
9028 } else if ("." === segment) | |
9029 appendSlash = true; | |
9030 else { | |
9031 output.push(segment); | |
9032 appendSlash = false; | |
9033 } | |
9034 } | |
9035 if (appendSlash) | |
9036 output.push(""); | |
9037 return C.JSArray_methods.join$1(output, "/"); | |
9038 }, Uri__normalizeRelativePath: function(path) { | |
9039 var output, t1, t2, appendSlash, _i, segment; | |
9040 if (!P.Uri__mayContainDotSegments(path)) | |
9041 return path; | |
9042 output = []; | |
9043 for (t1 = path.split("/"), t2 = t1.length, appendSlash = false, _i = 0
; _i < t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1
), ++_i) { | |
9044 segment = t1[_i]; | |
9045 if (".." === segment) | |
9046 if (output.length !== 0 && !J.$eq$(C.JSArray_methods.get$last(outp
ut), "..")) { | |
9047 if (0 >= output.length) | |
9048 return H.ioore(output, -1); | |
9049 output.pop(); | |
9050 appendSlash = true; | |
9051 } else { | |
9052 output.push(".."); | |
9053 appendSlash = false; | |
9054 } | |
9055 else if ("." === segment) | |
9056 appendSlash = true; | |
9057 else { | |
9058 output.push(segment); | |
9059 appendSlash = false; | |
9060 } | |
9061 } | |
9062 t1 = output.length; | |
9063 if (t1 !== 0) | |
9064 if (t1 === 1) { | |
9065 if (0 >= t1) | |
9066 return H.ioore(output, 0); | |
9067 t1 = J.get$isEmpty$asx(output[0]) === true; | |
9068 } else | |
9069 t1 = false; | |
9070 else | |
9071 t1 = true; | |
9072 if (t1) | |
9073 return "./"; | |
9074 if (appendSlash || J.$eq$(C.JSArray_methods.get$last(output), "..")) | |
9075 output.push(""); | |
9076 return C.JSArray_methods.join$1(output, "/"); | |
9077 }, Uri_decodeComponent: [function(encodedComponent) { | |
9078 return P.Uri__uriDecode(encodedComponent, C.Utf8Codec_false, false); | |
9079 }, "call$1", "core_Uri_decodeComponent$closure", 2, 0, 9], Uri_parseIPv4
Address: function(host) { | |
9080 var t1, bytes; | |
9081 t1 = new P.Uri_parseIPv4Address_error(); | |
9082 bytes = host.split("."); | |
9083 if (bytes.length !== 4) | |
9084 t1.call$1("IPv4 address should contain exactly 4 parts"); | |
9085 return H.setRuntimeTypeInfo(new H.MappedListIterable(bytes, new P.Uri_
parseIPv4Address_closure(t1)), [null, null]).toList$0(0); | |
9086 }, Uri_parseIPv6Address: function(host, start, end) { | |
9087 var error, parseHex, parts, partStart, last, i, wildcardSeen, t1, atEn
d, isLastWildcard, exception, t2, bytes, index, value, wildCardLength, j; | |
9088 if (end == null) | |
9089 end = J.get$length$asx(host); | |
9090 error = new P.Uri_parseIPv6Address_error(host); | |
9091 parseHex = new P.Uri_parseIPv6Address_parseHex(host, error); | |
9092 if (J.get$length$asx(host) < 2) | |
9093 error.call$1("address is too short"); | |
9094 parts = []; | |
9095 partStart = start; | |
9096 i = start; | |
9097 wildcardSeen = false; | |
9098 while (true) { | |
9099 t1 = end; | |
9100 if (typeof i !== "number") | |
9101 return i.$lt(); | |
9102 if (typeof t1 !== "number") | |
9103 return H.iae(t1); | |
9104 if (!(i < t1)) | |
9105 break; | |
9106 if (J.codeUnitAt$1$s(host, i) === 58) { | |
9107 if (i === start) { | |
9108 ++i; | |
9109 if (J.codeUnitAt$1$s(host, i) !== 58) | |
9110 error.call$2("invalid start colon.", i); | |
9111 partStart = i; | |
9112 } | |
9113 if (i === partStart) { | |
9114 if (wildcardSeen) | |
9115 error.call$2("only one wildcard `::` is allowed", i); | |
9116 J.add$1$ax(parts, -1); | |
9117 wildcardSeen = true; | |
9118 } else | |
9119 J.add$1$ax(parts, parseHex.call$2(partStart, i)); | |
9120 partStart = i + 1; | |
9121 } | |
9122 ++i; | |
9123 } | |
9124 if (J.get$length$asx(parts) === 0) | |
9125 error.call$1("too few parts"); | |
9126 atEnd = J.$eq$(partStart, end); | |
9127 isLastWildcard = J.$eq$(J.get$last$ax(parts), -1); | |
9128 if (atEnd && !isLastWildcard) | |
9129 error.call$2("expected a part after last `:`", end); | |
9130 if (!atEnd) | |
9131 try { | |
9132 J.add$1$ax(parts, parseHex.call$2(partStart, end)); | |
9133 } catch (exception) { | |
9134 H.unwrapException(exception); | |
9135 try { | |
9136 last = P.Uri_parseIPv4Address(J.substring$2$s(host, partStart, e
nd)); | |
9137 t1 = J.$index$asx(last, 0); | |
9138 if (typeof t1 !== "number") | |
9139 return t1.$shl(); | |
9140 t2 = J.$index$asx(last, 1); | |
9141 if (typeof t2 !== "number") | |
9142 return H.iae(t2); | |
9143 J.add$1$ax(parts, (t1 << 8 | t2) >>> 0); | |
9144 t2 = J.$index$asx(last, 2); | |
9145 if (typeof t2 !== "number") | |
9146 return t2.$shl(); | |
9147 t1 = J.$index$asx(last, 3); | |
9148 if (typeof t1 !== "number") | |
9149 return H.iae(t1); | |
9150 J.add$1$ax(parts, (t2 << 8 | t1) >>> 0); | |
9151 } catch (exception) { | |
9152 H.unwrapException(exception); | |
9153 error.call$2("invalid end of IPv6 address.", partStart); | |
9154 } | |
9155 } | |
9156 if (wildcardSeen) { | |
9157 if (J.get$length$asx(parts) > 7) | |
9158 error.call$1("an address with a wildcard must have less than 7 par
ts"); | |
9159 } else if (J.get$length$asx(parts) !== 8) | |
9160 error.call$1("an address without a wildcard must contain exactly 8 p
arts"); | |
9161 bytes = new Array(16); | |
9162 bytes.$builtinTypeInfo = [P.$int]; | |
9163 i = 0; | |
9164 index = 0; | |
9165 while (true) { | |
9166 t1 = J.get$length$asx(parts); | |
9167 if (typeof t1 !== "number") | |
9168 return H.iae(t1); | |
9169 if (!(i < t1)) | |
9170 break; | |
9171 value = J.$index$asx(parts, i); | |
9172 if (J.getInterceptor(value).$eq(value, -1)) { | |
9173 wildCardLength = 9 - J.get$length$asx(parts); | |
9174 for (j = 0; j < wildCardLength; ++j) { | |
9175 if (index < 0 || index >= 16) | |
9176 return H.ioore(bytes, index); | |
9177 bytes[index] = 0; | |
9178 t1 = index + 1; | |
9179 if (t1 >= 16) | |
9180 return H.ioore(bytes, t1); | |
9181 bytes[t1] = 0; | |
9182 index += 2; | |
9183 } | |
9184 } else { | |
9185 if (typeof value !== "number") | |
9186 return value.$shr(); | |
9187 t1 = C.JSNumber_methods._shrOtherPositive$1(value, 8); | |
9188 if (index < 0 || index >= 16) | |
9189 return H.ioore(bytes, index); | |
9190 bytes[index] = t1; | |
9191 t1 = index + 1; | |
9192 if (t1 >= 16) | |
9193 return H.ioore(bytes, t1); | |
9194 bytes[t1] = value & 255; | |
9195 index += 2; | |
9196 } | |
9197 ++i; | |
9198 } | |
9199 return bytes; | |
9200 }, Uri__uriEncode: function(canonicalTable, text, encoding, spaceToPlus)
{ | |
9201 var t1, result, bytes, t2, i, $byte, t3; | |
9202 t1 = new P.Uri__uriEncode_byteToHex(); | |
9203 result = new P.StringBuffer(""); | |
9204 bytes = encoding.get$encoder().convert$1(text); | |
9205 for (t2 = bytes.length, i = 0; i < t2; ++i) { | |
9206 $byte = bytes[i]; | |
9207 if ($byte < 128) { | |
9208 t3 = $byte >>> 4; | |
9209 if (t3 >= 8) | |
9210 return H.ioore(canonicalTable, t3); | |
9211 t3 = (canonicalTable[t3] & C.JSInt_methods._shlPositive$1(1, $byte
& 15)) !== 0; | |
9212 } else | |
9213 t3 = false; | |
9214 if (t3) | |
9215 result._contents += H.Primitives_stringFromCharCode($byte); | |
9216 else if (spaceToPlus && $byte === 32) | |
9217 result._contents += H.Primitives_stringFromCharCode(43); | |
9218 else { | |
9219 result._contents += H.Primitives_stringFromCharCode(37); | |
9220 t1.call$2($byte, result); | |
9221 } | |
9222 } | |
9223 t1 = result._contents; | |
9224 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
9225 }, Uri__hexCharPairToByte: function(s, pos) { | |
9226 var $byte, i, charCode; | |
9227 for ($byte = 0, i = 0; i < 2; ++i) { | |
9228 charCode = C.JSString_methods.codeUnitAt$1(s, pos + i); | |
9229 if (48 <= charCode && charCode <= 57) | |
9230 $byte = $byte * 16 + charCode - 48; | |
9231 else { | |
9232 charCode |= 32; | |
9233 if (97 <= charCode && charCode <= 102) | |
9234 $byte = $byte * 16 + charCode - 87; | |
9235 else | |
9236 throw H.wrapException(P.ArgumentError$("Invalid URL encoding")); | |
9237 } | |
9238 } | |
9239 return $byte; | |
9240 }, Uri__uriDecode: function(text, encoding, plusToSpace) { | |
9241 var t1, simple, i, t2, codeUnit, bytes; | |
9242 t1 = J.getInterceptor$asx(text); | |
9243 simple = true; | |
9244 i = 0; | |
9245 while (true) { | |
9246 t2 = t1.get$length(text); | |
9247 if (typeof t2 !== "number") | |
9248 return H.iae(t2); | |
9249 if (!(i < t2 && simple)) | |
9250 break; | |
9251 codeUnit = t1.codeUnitAt$1(text, i); | |
9252 simple = codeUnit !== 37 && codeUnit !== 43; | |
9253 ++i; | |
9254 } | |
9255 if (simple) | |
9256 if (encoding === C.Utf8Codec_false || false) | |
9257 return text; | |
9258 else | |
9259 bytes = t1.get$codeUnits(text); | |
9260 else { | |
9261 bytes = []; | |
9262 i = 0; | |
9263 while (true) { | |
9264 t2 = t1.get$length(text); | |
9265 if (typeof t2 !== "number") | |
9266 return H.iae(t2); | |
9267 if (!(i < t2)) | |
9268 break; | |
9269 codeUnit = t1.codeUnitAt$1(text, i); | |
9270 if (codeUnit > 127) | |
9271 throw H.wrapException(P.ArgumentError$("Illegal percent encoding
in URI")); | |
9272 if (codeUnit === 37) { | |
9273 if (i + 3 > text.length) | |
9274 throw H.wrapException(P.ArgumentError$("Truncated URI")); | |
9275 bytes.push(P.Uri__hexCharPairToByte(text, i + 1)); | |
9276 i += 2; | |
9277 } else if (plusToSpace && codeUnit === 43) | |
9278 bytes.push(32); | |
9279 else | |
9280 bytes.push(codeUnit); | |
9281 ++i; | |
9282 } | |
9283 } | |
9284 return new P.Utf8Decoder(encoding._allowMalformed).convert$1(bytes); | |
9285 }} | |
9286 }, | |
9287 Uri_parse_parseAuth: { | |
9288 "^": "Closure:2;_core$_box_0,_captured_uri_1,_captured_EOI_2", | |
9289 call$0: function() { | |
9290 var t1, hostStart, t2, $char, lastColon, lastAt, t3, t4, char0, endBrack
et, hostEnd, i, portNumber, digit; | |
9291 t1 = this._core$_box_0; | |
9292 hostStart = t1._captured_index_5; | |
9293 t2 = t1._captured_end_0; | |
9294 if (hostStart == null ? t2 == null : hostStart === t2) { | |
9295 t1._captured_char_6 = this._captured_EOI_2; | |
9296 return; | |
9297 } | |
9298 t2 = this._captured_uri_1; | |
9299 t1._captured_char_6 = C.JSString_methods.codeUnitAt$1(t2, hostStart); | |
9300 $char = this._captured_EOI_2; | |
9301 lastColon = -1; | |
9302 lastAt = -1; | |
9303 while (true) { | |
9304 t3 = t1._captured_index_5; | |
9305 t4 = t1._captured_end_0; | |
9306 if (typeof t3 !== "number") | |
9307 return t3.$lt(); | |
9308 if (typeof t4 !== "number") | |
9309 return H.iae(t4); | |
9310 if (!(t3 < t4)) | |
9311 break; | |
9312 char0 = C.JSString_methods.codeUnitAt$1(t2, t3); | |
9313 t1._captured_char_6 = char0; | |
9314 if (char0 === 47 || char0 === 63 || char0 === 35) | |
9315 break; | |
9316 if (char0 === 64) { | |
9317 lastAt = t1._captured_index_5; | |
9318 lastColon = -1; | |
9319 } else if (char0 === 58) | |
9320 lastColon = t1._captured_index_5; | |
9321 else if (char0 === 91) { | |
9322 t3 = t1._captured_index_5; | |
9323 if (typeof t3 !== "number") | |
9324 return t3.$add(); | |
9325 endBracket = C.JSString_methods.indexOf$2(t2, "]", t3 + 1); | |
9326 if (endBracket === -1) { | |
9327 t1._captured_index_5 = t1._captured_end_0; | |
9328 t1._captured_char_6 = $char; | |
9329 lastColon = -1; | |
9330 break; | |
9331 } else | |
9332 t1._captured_index_5 = endBracket; | |
9333 lastColon = -1; | |
9334 } | |
9335 t3 = t1._captured_index_5; | |
9336 if (typeof t3 !== "number") | |
9337 return t3.$add(); | |
9338 t1._captured_index_5 = t3 + 1; | |
9339 t1._captured_char_6 = $char; | |
9340 } | |
9341 hostEnd = t1._captured_index_5; | |
9342 if (typeof lastAt !== "number") | |
9343 return lastAt.$ge(); | |
9344 if (lastAt >= 0) { | |
9345 t1._captured_userinfo_2 = P.Uri__makeUserInfo(t2, hostStart, lastAt); | |
9346 hostStart = lastAt + 1; | |
9347 } | |
9348 if (typeof lastColon !== "number") | |
9349 return lastColon.$ge(); | |
9350 if (lastColon >= 0) { | |
9351 i = lastColon + 1; | |
9352 t3 = t1._captured_index_5; | |
9353 if (typeof t3 !== "number") | |
9354 return H.iae(t3); | |
9355 if (i < t3) { | |
9356 portNumber = 0; | |
9357 while (true) { | |
9358 t3 = t1._captured_index_5; | |
9359 if (typeof t3 !== "number") | |
9360 return H.iae(t3); | |
9361 if (!(i < t3)) | |
9362 break; | |
9363 digit = C.JSString_methods.codeUnitAt$1(t2, i); | |
9364 if (48 > digit || 57 < digit) | |
9365 P.Uri__fail(t2, i, "Invalid port number"); | |
9366 portNumber = portNumber * 10 + (digit - 48); | |
9367 ++i; | |
9368 } | |
9369 } else | |
9370 portNumber = null; | |
9371 t1._captured_port_4 = P.Uri__makePort(portNumber, t1._captured_scheme_
1); | |
9372 hostEnd = lastColon; | |
9373 } | |
9374 t1._captured_host_3 = P.Uri__makeHost(t2, hostStart, hostEnd, true); | |
9375 t3 = t1._captured_index_5; | |
9376 t4 = t1._captured_end_0; | |
9377 if (typeof t3 !== "number") | |
9378 return t3.$lt(); | |
9379 if (typeof t4 !== "number") | |
9380 return H.iae(t4); | |
9381 if (t3 < t4) | |
9382 t1._captured_char_6 = C.JSString_methods.codeUnitAt$1(t2, t3); | |
9383 } | |
9384 }, | |
9385 Uri__checkNonWindowsPathReservedCharacters_closure: { | |
9386 "^": "Closure:0;_captured_argumentError_0", | |
9387 call$1: function(segment) { | |
9388 if (J.contains$1$asx(segment, "/") === true) | |
9389 if (this._captured_argumentError_0) | |
9390 throw H.wrapException(P.ArgumentError$("Illegal path character " + H
.S(segment))); | |
9391 else | |
9392 throw H.wrapException(new P.UnsupportedError("Illegal path character
" + H.S(segment))); | |
9393 } | |
9394 }, | |
9395 Uri__makeQuery_closure: { | |
9396 "^": "Closure:3;_core$_box_0,_core$_captured_result_1", | |
9397 call$2: function(key, value) { | |
9398 var t1 = this._core$_box_0; | |
9399 if (!t1._captured_first_0) | |
9400 this._core$_captured_result_1._contents += "&"; | |
9401 t1._captured_first_0 = false; | |
9402 t1 = this._core$_captured_result_1; | |
9403 t1._contents += P.Uri__uriEncode(C.List_nxB, key, C.Utf8Codec_false, tru
e); | |
9404 if (!value.get$isEmpty(value)) { | |
9405 t1._contents += "="; | |
9406 t1._contents += P.Uri__uriEncode(C.List_nxB, value, C.Utf8Codec_false,
true); | |
9407 } | |
9408 } | |
9409 }, | |
9410 Uri_hashCode_combine: { | |
9411 "^": "Closure:22;", | |
9412 call$2: function(part, current) { | |
9413 return current * 31 + J.get$hashCode$(part) & 1073741823; | |
9414 } | |
9415 }, | |
9416 Uri_parseIPv4Address_error: { | |
9417 "^": "Closure:23;", | |
9418 call$1: function(msg) { | |
9419 throw H.wrapException(new P.FormatException("Illegal IPv4 address, " + m
sg, null, null)); | |
9420 } | |
9421 }, | |
9422 Uri_parseIPv4Address_closure: { | |
9423 "^": "Closure:0;_core$_captured_error_0", | |
9424 call$1: function(byteString) { | |
9425 var $byte, t1; | |
9426 $byte = H.Primitives_parseInt(byteString, null, null); | |
9427 t1 = J.getInterceptor$n($byte); | |
9428 if (t1.$lt($byte, 0) || t1.$gt($byte, 255)) | |
9429 this._core$_captured_error_0.call$1("each part must be in the range of
`0..255`"); | |
9430 return $byte; | |
9431 } | |
9432 }, | |
9433 Uri_parseIPv6Address_error: { | |
9434 "^": "Closure:24;_captured_host_0", | |
9435 call$2: function(msg, position) { | |
9436 throw H.wrapException(new P.FormatException("Illegal IPv6 address, " + m
sg, this._captured_host_0, position)); | |
9437 }, | |
9438 call$1: function(msg) { | |
9439 return this.call$2(msg, null); | |
9440 } | |
9441 }, | |
9442 Uri_parseIPv6Address_parseHex: { | |
9443 "^": "Closure:25;_captured_host_1,_captured_error_2", | |
9444 call$2: function(start, end) { | |
9445 var value, t1; | |
9446 if (typeof start !== "number") | |
9447 return H.iae(start); | |
9448 if (end - start > 4) | |
9449 this._captured_error_2.call$2("an IPv6 part can only contain a maximum
of 4 hex digits", start); | |
9450 value = H.Primitives_parseInt(C.JSString_methods.substring$2(this._captu
red_host_1, start, end), 16, null); | |
9451 t1 = J.getInterceptor$n(value); | |
9452 if (t1.$lt(value, 0) || t1.$gt(value, 65535)) | |
9453 this._captured_error_2.call$2("each part must be in the range of `0x0.
.0xFFFF`", start); | |
9454 return value; | |
9455 } | |
9456 }, | |
9457 Uri__uriEncode_byteToHex: { | |
9458 "^": "Closure:3;", | |
9459 call$2: function($byte, buffer) { | |
9460 buffer._contents += H.Primitives_stringFromCharCode(C.JSString_methods.c
odeUnitAt$1("0123456789ABCDEF", $byte >>> 4)); | |
9461 buffer._contents += H.Primitives_stringFromCharCode(C.JSString_methods.c
odeUnitAt$1("0123456789ABCDEF", $byte & 15)); | |
9462 } | |
9463 } | |
9464 }], ["dart.dom.html", "dart:html",, W, { | |
9465 "^": "", | |
9466 AnchorElement_AnchorElement: function(href) { | |
9467 var e = document.createElement("a", null); | |
9468 return e; | |
9469 }, | |
9470 Element_Element$html: function(html, treeSanitizer, validator) { | |
9471 var t1, fragment; | |
9472 t1 = document.body; | |
9473 fragment = (t1 && C.BodyElement_methods).createFragment$3$treeSanitizer$va
lidator(t1, html, treeSanitizer, validator); | |
9474 fragment.toString; | |
9475 t1 = new W._ChildNodeListLazy(fragment); | |
9476 t1 = t1.where$1(t1, new W.Element_Element$html_closure()); | |
9477 return t1.get$single(t1); | |
9478 }, | |
9479 HttpRequest_getString: function(url, onProgress, withCredentials) { | |
9480 return W.HttpRequest_request(url, null, null, onProgress, null, null, null
, withCredentials).then$1(new W.HttpRequest_getString_closure()); | |
9481 }, | |
9482 HttpRequest_request: function(url, method, mimeType, onProgress, requestHead
ers, responseType, sendData, withCredentials) { | |
9483 var completer, xhr, t1; | |
9484 completer = H.setRuntimeTypeInfo(new P._AsyncCompleter(H.setRuntimeTypeInf
o(new P._Future(0, $.Zone__current, null), [W.HttpRequest])), [W.HttpRequest]); | |
9485 xhr = new XMLHttpRequest(); | |
9486 C.HttpRequest_methods.open$3$async(xhr, "GET", url, true); | |
9487 t1 = H.setRuntimeTypeInfo(new W._EventStream(xhr, "load", false), [null]); | |
9488 H.setRuntimeTypeInfo(new W._EventStreamSubscription(0, t1._target, t1._eve
ntType, W._wrapZone(new W.HttpRequest_request_closure(completer, xhr)), t1._useC
apture), [H.getTypeArgumentByIndex(t1, 0)])._tryResume$0(); | |
9489 t1 = H.setRuntimeTypeInfo(new W._EventStream(xhr, "error", false), [null])
; | |
9490 H.setRuntimeTypeInfo(new W._EventStreamSubscription(0, t1._target, t1._eve
ntType, W._wrapZone(completer.get$completeError()), t1._useCapture), [H.getTypeA
rgumentByIndex(t1, 0)])._tryResume$0(); | |
9491 xhr.send(); | |
9492 return completer.future; | |
9493 }, | |
9494 _JenkinsSmiHash_combine: function(hash, value) { | |
9495 hash = 536870911 & hash + value; | |
9496 hash = 536870911 & hash + ((524287 & hash) << 10 >>> 0); | |
9497 return hash ^ hash >>> 6; | |
9498 }, | |
9499 _JenkinsSmiHash_finish: function(hash) { | |
9500 hash = 536870911 & hash + ((67108863 & hash) << 3 >>> 0); | |
9501 hash ^= hash >>> 11; | |
9502 return 536870911 & hash + ((16383 & hash) << 15 >>> 0); | |
9503 }, | |
9504 _convertNativeToDart_EventTarget: function(e) { | |
9505 var $window; | |
9506 if (e == null) | |
9507 return; | |
9508 if ("postMessage" in e) { | |
9509 $window = W._DOMWindowCrossFrame__createSafe(e); | |
9510 if (!!J.getInterceptor($window).$isEventTarget) | |
9511 return $window; | |
9512 return; | |
9513 } else | |
9514 return e; | |
9515 }, | |
9516 _wrapZone: function(callback) { | |
9517 var t1 = $.Zone__current; | |
9518 if (t1 === C.C__RootZone) | |
9519 return callback; | |
9520 return t1.bindUnaryCallback$2$runGuarded(callback, true); | |
9521 }, | |
9522 HtmlElement: { | |
9523 "^": "Element;", | |
9524 $isHtmlElement: 1, | |
9525 $isElement: 1, | |
9526 $isNode: 1, | |
9527 $isObject: 1, | |
9528 "%": "HTMLAppletElement|HTMLBRElement|HTMLCanvasElement|HTMLContentElement
|HTMLDListElement|HTMLDataListElement|HTMLDetailsElement|HTMLDialogElement|HTMLD
irectoryElement|HTMLFontElement|HTMLFrameElement|HTMLHRElement|HTMLHeadElement|H
TMLHeadingElement|HTMLHtmlElement|HTMLLIElement|HTMLLabelElement|HTMLLegendEleme
nt|HTMLMarqueeElement|HTMLMenuElement|HTMLMenuItemElement|HTMLMeterElement|HTMLM
odElement|HTMLOListElement|HTMLOptGroupElement|HTMLOptionElement|HTMLParagraphEl
ement|HTMLPictureElement|HTMLPreElement|HTMLProgressElement|HTMLQuoteElement|HTM
LScriptElement|HTMLShadowElement|HTMLSourceElement|HTMLSpanElement|HTMLStyleElem
ent|HTMLTableCaptionElement|HTMLTableCellElement|HTMLTableDataCellElement|HTMLTa
bleElement|HTMLTableHeaderCellElement|HTMLTableRowElement|HTMLTableSectionElemen
t|HTMLTitleElement|HTMLTrackElement|HTMLUListElement|HTMLUnknownElement;HTMLElem
ent" | |
9529 }, | |
9530 AnchorElement: { | |
9531 "^": "HtmlElement;target=,hostname=,href},port=,protocol=", | |
9532 toString$0: function(receiver) { | |
9533 return String(receiver); | |
9534 }, | |
9535 $isInterceptor: 1, | |
9536 "%": "HTMLAnchorElement" | |
9537 }, | |
9538 ApplicationCacheErrorEvent: { | |
9539 "^": "Event;message=", | |
9540 "%": "ApplicationCacheErrorEvent" | |
9541 }, | |
9542 AreaElement: { | |
9543 "^": "HtmlElement;target=,hostname=,href},port=,protocol=", | |
9544 toString$0: function(receiver) { | |
9545 return String(receiver); | |
9546 }, | |
9547 $isInterceptor: 1, | |
9548 "%": "HTMLAreaElement" | |
9549 }, | |
9550 BaseElement: { | |
9551 "^": "HtmlElement;href},target=", | |
9552 "%": "HTMLBaseElement" | |
9553 }, | |
9554 Blob: { | |
9555 "^": "Interceptor;", | |
9556 "%": ";Blob" | |
9557 }, | |
9558 BodyElement: { | |
9559 "^": "HtmlElement;", | |
9560 $isBodyElement: 1, | |
9561 $isEventTarget: 1, | |
9562 $isInterceptor: 1, | |
9563 "%": "HTMLBodyElement" | |
9564 }, | |
9565 ButtonElement: { | |
9566 "^": "HtmlElement;name=", | |
9567 "%": "HTMLButtonElement" | |
9568 }, | |
9569 CharacterData: { | |
9570 "^": "Node;length=", | |
9571 $isInterceptor: 1, | |
9572 "%": "CDATASection|Comment|Text;CharacterData" | |
9573 }, | |
9574 CssStyleDeclaration: { | |
9575 "^": "Interceptor_CssStyleDeclarationBase;length=", | |
9576 "%": "CSS2Properties|CSSStyleDeclaration|MSStyleCSSProperties" | |
9577 }, | |
9578 Interceptor_CssStyleDeclarationBase: { | |
9579 "^": "Interceptor+CssStyleDeclarationBase;" | |
9580 }, | |
9581 CssStyleDeclarationBase: { | |
9582 "^": "Object;" | |
9583 }, | |
9584 DivElement: { | |
9585 "^": "HtmlElement;", | |
9586 "%": ";HTMLDivElement" | |
9587 }, | |
9588 Document: { | |
9589 "^": "Node;", | |
9590 querySelector$1: function(receiver, selectors) { | |
9591 return receiver.querySelector(selectors); | |
9592 }, | |
9593 get$onClick: function(receiver) { | |
9594 return H.setRuntimeTypeInfo(new W._EventStream(receiver, "click", false)
, [null]); | |
9595 }, | |
9596 "%": "Document|HTMLDocument|XMLDocument" | |
9597 }, | |
9598 DocumentFragment: { | |
9599 "^": "Node;", | |
9600 querySelector$1: function(receiver, selectors) { | |
9601 return receiver.querySelector(selectors); | |
9602 }, | |
9603 $isInterceptor: 1, | |
9604 "%": "DocumentFragment|ShadowRoot" | |
9605 }, | |
9606 DomError: { | |
9607 "^": "Interceptor;message=,name=", | |
9608 "%": "DOMError|FileError" | |
9609 }, | |
9610 DomException: { | |
9611 "^": "Interceptor;message=", | |
9612 get$name: function(receiver) { | |
9613 var errorName = receiver.name; | |
9614 if (P.Device_isWebKit() === true && errorName === "SECURITY_ERR") | |
9615 return "SecurityError"; | |
9616 if (P.Device_isWebKit() === true && errorName === "SYNTAX_ERR") | |
9617 return "SyntaxError"; | |
9618 return errorName; | |
9619 }, | |
9620 toString$0: function(receiver) { | |
9621 return String(receiver); | |
9622 }, | |
9623 "%": "DOMException" | |
9624 }, | |
9625 DomRectReadOnly: { | |
9626 "^": "Interceptor;bottom=,height=,left=,right=,top=,width=", | |
9627 toString$0: function(receiver) { | |
9628 return "Rectangle (" + H.S(receiver.left) + ", " + H.S(receiver.top) + "
) " + H.S(this.get$width(receiver)) + " x " + H.S(this.get$height(receiver)); | |
9629 }, | |
9630 $eq: function(receiver, other) { | |
9631 var t1, t2, t3; | |
9632 if (other == null) | |
9633 return false; | |
9634 t1 = J.getInterceptor(other); | |
9635 if (!t1.$isRectangle) | |
9636 return false; | |
9637 t2 = receiver.left; | |
9638 t3 = t1.get$left(other); | |
9639 if (t2 == null ? t3 == null : t2 === t3) { | |
9640 t2 = receiver.top; | |
9641 t3 = t1.get$top(other); | |
9642 if (t2 == null ? t3 == null : t2 === t3) { | |
9643 t2 = this.get$width(receiver); | |
9644 t3 = t1.get$width(other); | |
9645 if (t2 == null ? t3 == null : t2 === t3) { | |
9646 t2 = this.get$height(receiver); | |
9647 t1 = t1.get$height(other); | |
9648 t1 = t2 == null ? t1 == null : t2 === t1; | |
9649 } else | |
9650 t1 = false; | |
9651 } else | |
9652 t1 = false; | |
9653 } else | |
9654 t1 = false; | |
9655 return t1; | |
9656 }, | |
9657 get$hashCode: function(receiver) { | |
9658 var t1, t2, t3, t4; | |
9659 t1 = J.get$hashCode$(receiver.left); | |
9660 t2 = J.get$hashCode$(receiver.top); | |
9661 t3 = J.get$hashCode$(this.get$width(receiver)); | |
9662 t4 = J.get$hashCode$(this.get$height(receiver)); | |
9663 return W._JenkinsSmiHash_finish(W._JenkinsSmiHash_combine(W._JenkinsSmiH
ash_combine(W._JenkinsSmiHash_combine(W._JenkinsSmiHash_combine(0, t1), t2), t3)
, t4)); | |
9664 }, | |
9665 $isRectangle: 1, | |
9666 $asRectangle: Isolate.functionThatReturnsNull, | |
9667 "%": ";DOMRectReadOnly" | |
9668 }, | |
9669 DomTokenList: { | |
9670 "^": "Interceptor;length=", | |
9671 add$1: function(receiver, tokens) { | |
9672 return receiver.add(tokens); | |
9673 }, | |
9674 contains$1: function(receiver, token) { | |
9675 return receiver.contains(token); | |
9676 }, | |
9677 "%": "DOMSettableTokenList|DOMTokenList" | |
9678 }, | |
9679 Element: { | |
9680 "^": "Node;tagName=", | |
9681 get$attributes: function(receiver) { | |
9682 return new W._ElementAttributeMap(receiver); | |
9683 }, | |
9684 get$classes: function(receiver) { | |
9685 return new W._ElementCssClassSet(receiver); | |
9686 }, | |
9687 toString$0: function(receiver) { | |
9688 return receiver.localName; | |
9689 }, | |
9690 createFragment$3$treeSanitizer$validator: function(receiver, html, treeSan
itizer, validator) { | |
9691 var t1, t2, base, contextElement, fragment; | |
9692 if (treeSanitizer == null) { | |
9693 if (validator == null) { | |
9694 t1 = $.Element__defaultValidator; | |
9695 if (t1 == null) { | |
9696 t1 = H.setRuntimeTypeInfo([], [W.NodeValidator]); | |
9697 t2 = new W.NodeValidatorBuilder(t1); | |
9698 t1.push(W._Html5NodeValidator$(null)); | |
9699 t1.push(W._TemplatingNodeValidator$()); | |
9700 $.Element__defaultValidator = t2; | |
9701 validator = t2; | |
9702 } else | |
9703 validator = t1; | |
9704 } | |
9705 t1 = $.Element__defaultSanitizer; | |
9706 if (t1 == null) { | |
9707 t1 = new W._ValidatingTreeSanitizer(validator); | |
9708 $.Element__defaultSanitizer = t1; | |
9709 treeSanitizer = t1; | |
9710 } else { | |
9711 t1.validator = validator; | |
9712 treeSanitizer = t1; | |
9713 } | |
9714 } else if (validator != null) | |
9715 throw H.wrapException(P.ArgumentError$("validator can only be passed i
f treeSanitizer is null")); | |
9716 if ($.Element__parseDocument == null) { | |
9717 t1 = document.implementation.createHTMLDocument(""); | |
9718 $.Element__parseDocument = t1; | |
9719 $.Element__parseRange = t1.createRange(); | |
9720 base = $.Element__parseDocument.createElement("base", null); | |
9721 J.set$href$x(base, document.baseURI); | |
9722 $.Element__parseDocument.head.appendChild(base); | |
9723 } | |
9724 t1 = $.Element__parseDocument; | |
9725 if (!!this.$isBodyElement) | |
9726 contextElement = t1.body; | |
9727 else { | |
9728 contextElement = t1.createElement(receiver.tagName, null); | |
9729 $.Element__parseDocument.body.appendChild(contextElement); | |
9730 } | |
9731 if ("createContextualFragment" in window.Range.prototype && !C.JSArray_m
ethods.contains$1(C.List_ego, receiver.tagName)) { | |
9732 $.Element__parseRange.selectNodeContents(contextElement); | |
9733 fragment = $.Element__parseRange.createContextualFragment(html); | |
9734 } else { | |
9735 contextElement.innerHTML = html; | |
9736 fragment = $.Element__parseDocument.createDocumentFragment(); | |
9737 for (; t1 = contextElement.firstChild, t1 != null;) | |
9738 fragment.appendChild(t1); | |
9739 } | |
9740 t1 = $.Element__parseDocument.body; | |
9741 if (contextElement == null ? t1 != null : contextElement !== t1) | |
9742 J.remove$0$ax(contextElement); | |
9743 treeSanitizer.sanitizeTree$1(fragment); | |
9744 document.adoptNode(fragment); | |
9745 return fragment; | |
9746 }, | |
9747 querySelector$1: function(receiver, selectors) { | |
9748 return receiver.querySelector(selectors); | |
9749 }, | |
9750 get$onClick: function(receiver) { | |
9751 return H.setRuntimeTypeInfo(new W._ElementEventStreamImpl(receiver, "cli
ck", false), [null]); | |
9752 }, | |
9753 $isElement: 1, | |
9754 $isNode: 1, | |
9755 $isObject: 1, | |
9756 $isInterceptor: 1, | |
9757 $isEventTarget: 1, | |
9758 "%": ";Element" | |
9759 }, | |
9760 Element_Element$html_closure: { | |
9761 "^": "Closure:0;", | |
9762 call$1: function(e) { | |
9763 return !!J.getInterceptor(e).$isElement; | |
9764 } | |
9765 }, | |
9766 EmbedElement: { | |
9767 "^": "HtmlElement;name=", | |
9768 "%": "HTMLEmbedElement" | |
9769 }, | |
9770 ErrorEvent: { | |
9771 "^": "Event;error=,message=", | |
9772 "%": "ErrorEvent" | |
9773 }, | |
9774 Event: { | |
9775 "^": "Interceptor;", | |
9776 get$target: function(receiver) { | |
9777 return W._convertNativeToDart_EventTarget(receiver.target); | |
9778 }, | |
9779 "%": "AnimationPlayerEvent|AudioProcessingEvent|AutocompleteErrorEvent|Bef
oreUnloadEvent|CloseEvent|CompositionEvent|CustomEvent|DeviceLightEvent|DeviceMo
tionEvent|DeviceOrientationEvent|DragEvent|ExtendableEvent|FetchEvent|FocusEvent
|FontFaceSetLoadEvent|GamepadEvent|HashChangeEvent|IDBVersionChangeEvent|Install
Event|KeyboardEvent|MIDIConnectionEvent|MIDIMessageEvent|MSPointerEvent|MediaKey
NeededEvent|MediaQueryListEvent|MediaStreamEvent|MediaStreamTrackEvent|MessageEv
ent|MouseEvent|MutationEvent|OfflineAudioCompletionEvent|OverflowEvent|PageTrans
itionEvent|PointerEvent|PopStateEvent|ProgressEvent|PushEvent|RTCDTMFToneChangeE
vent|RTCDataChannelEvent|RTCIceCandidateEvent|RTCPeerConnectionIceEvent|RelatedE
vent|ResourceProgressEvent|SVGZoomEvent|SecurityPolicyViolationEvent|SpeechRecog
nitionEvent|StorageEvent|TextEvent|TouchEvent|TrackEvent|TransitionEvent|UIEvent
|WebGLContextEvent|WebKitAnimationEvent|WebKitTransitionEvent|WheelEvent|XMLHttp
RequestProgressEvent;ClipboardEvent|Event|InputEvent" | |
9780 }, | |
9781 EventTarget: { | |
9782 "^": "Interceptor;", | |
9783 _addEventListener$3: function(receiver, type, listener, useCapture) { | |
9784 return receiver.addEventListener(type, H.convertDartClosureToJS(listener
, 1), useCapture); | |
9785 }, | |
9786 _removeEventListener$3: function(receiver, type, listener, useCapture) { | |
9787 return receiver.removeEventListener(type, H.convertDartClosureToJS(liste
ner, 1), useCapture); | |
9788 }, | |
9789 $isEventTarget: 1, | |
9790 "%": "MediaStream;EventTarget" | |
9791 }, | |
9792 FieldSetElement: { | |
9793 "^": "HtmlElement;name=", | |
9794 "%": "HTMLFieldSetElement" | |
9795 }, | |
9796 File: { | |
9797 "^": "Blob;name=", | |
9798 "%": "File" | |
9799 }, | |
9800 FormElement: { | |
9801 "^": "HtmlElement;length=,name=,target=", | |
9802 "%": "HTMLFormElement" | |
9803 }, | |
9804 HttpRequest: { | |
9805 "^": "HttpRequestEventTarget;responseText=", | |
9806 open$5$async$password$user: function(receiver, method, url, async, passwor
d, user) { | |
9807 return receiver.open(method, url, async, user, password); | |
9808 }, | |
9809 open$3$async: function($receiver, method, url, async) { | |
9810 return $receiver.open(method, url, async); | |
9811 }, | |
9812 send$1: function(receiver, data) { | |
9813 return receiver.send(data); | |
9814 }, | |
9815 $isHttpRequest: 1, | |
9816 $isObject: 1, | |
9817 "%": "XMLHttpRequest" | |
9818 }, | |
9819 HttpRequest_getString_closure: { | |
9820 "^": "Closure:26;", | |
9821 call$1: function(xhr) { | |
9822 return J.get$responseText$x(xhr); | |
9823 } | |
9824 }, | |
9825 HttpRequest_request_closure: { | |
9826 "^": "Closure:0;_captured_completer_1,_captured_xhr_2", | |
9827 call$1: function(e) { | |
9828 var t1, t2, accepted, unknownRedirect, t3; | |
9829 t1 = this._captured_xhr_2; | |
9830 t2 = t1.status; | |
9831 if (typeof t2 !== "number") | |
9832 return t2.$ge(); | |
9833 accepted = t2 >= 200 && t2 < 300; | |
9834 unknownRedirect = t2 > 307 && t2 < 400; | |
9835 t2 = accepted || t2 === 0 || t2 === 304 || unknownRedirect; | |
9836 t3 = this._captured_completer_1; | |
9837 if (t2) | |
9838 t3.complete$1(0, t1); | |
9839 else | |
9840 t3.completeError$1(e); | |
9841 } | |
9842 }, | |
9843 HttpRequestEventTarget: { | |
9844 "^": "EventTarget;", | |
9845 "%": ";XMLHttpRequestEventTarget" | |
9846 }, | |
9847 IFrameElement: { | |
9848 "^": "HtmlElement;name=", | |
9849 "%": "HTMLIFrameElement" | |
9850 }, | |
9851 ImageElement: { | |
9852 "^": "HtmlElement;", | |
9853 complete$1: function($receiver, arg0) { | |
9854 return $receiver.complete.call$1(arg0); | |
9855 }, | |
9856 "%": "HTMLImageElement" | |
9857 }, | |
9858 InputElement: { | |
9859 "^": "HtmlElement;name=", | |
9860 accept$1: function($receiver, arg0) { | |
9861 return $receiver.accept.call$1(arg0); | |
9862 }, | |
9863 $isElement: 1, | |
9864 $isInterceptor: 1, | |
9865 $isEventTarget: 1, | |
9866 "%": "HTMLInputElement" | |
9867 }, | |
9868 KeygenElement: { | |
9869 "^": "HtmlElement;name=", | |
9870 "%": "HTMLKeygenElement" | |
9871 }, | |
9872 LinkElement: { | |
9873 "^": "HtmlElement;href}", | |
9874 "%": "HTMLLinkElement" | |
9875 }, | |
9876 Location: { | |
9877 "^": "Interceptor;", | |
9878 toString$0: function(receiver) { | |
9879 return String(receiver); | |
9880 }, | |
9881 "%": "Location" | |
9882 }, | |
9883 MapElement: { | |
9884 "^": "HtmlElement;name=", | |
9885 "%": "HTMLMapElement" | |
9886 }, | |
9887 MediaElement: { | |
9888 "^": "HtmlElement;error=", | |
9889 "%": "HTMLAudioElement|HTMLMediaElement|HTMLVideoElement" | |
9890 }, | |
9891 MediaKeyEvent: { | |
9892 "^": "Event;message=", | |
9893 "%": "MediaKeyEvent" | |
9894 }, | |
9895 MediaKeyMessageEvent: { | |
9896 "^": "Event;message=", | |
9897 "%": "MediaKeyMessageEvent" | |
9898 }, | |
9899 MetaElement: { | |
9900 "^": "HtmlElement;name=", | |
9901 "%": "HTMLMetaElement" | |
9902 }, | |
9903 MidiOutput: { | |
9904 "^": "MidiPort;", | |
9905 send$2: function(receiver, data, timestamp) { | |
9906 return receiver.send(data, timestamp); | |
9907 }, | |
9908 send$1: function($receiver, data) { | |
9909 return $receiver.send(data); | |
9910 }, | |
9911 "%": "MIDIOutput" | |
9912 }, | |
9913 MidiPort: { | |
9914 "^": "EventTarget;name=", | |
9915 "%": "MIDIInput;MIDIPort" | |
9916 }, | |
9917 Navigator: { | |
9918 "^": "Interceptor;", | |
9919 $isInterceptor: 1, | |
9920 "%": "Navigator" | |
9921 }, | |
9922 NavigatorUserMediaError: { | |
9923 "^": "Interceptor;message=,name=", | |
9924 "%": "NavigatorUserMediaError" | |
9925 }, | |
9926 _ChildNodeListLazy: { | |
9927 "^": "ListBase;_this", | |
9928 get$last: function(_) { | |
9929 var result = this._this.lastChild; | |
9930 if (result == null) | |
9931 throw H.wrapException(new P.StateError("No elements")); | |
9932 return result; | |
9933 }, | |
9934 add$1: function(_, value) { | |
9935 this._this.appendChild(value); | |
9936 }, | |
9937 $indexSet: function(_, index, value) { | |
9938 var t1, t2; | |
9939 t1 = this._this; | |
9940 t2 = t1.childNodes; | |
9941 if (index < 0 || index >= t2.length) | |
9942 return H.ioore(t2, index); | |
9943 t1.replaceChild(value, t2[index]); | |
9944 }, | |
9945 get$iterator: function(_) { | |
9946 return C.NodeList_methods.get$iterator(this._this.childNodes); | |
9947 }, | |
9948 get$length: function(_) { | |
9949 return this._this.childNodes.length; | |
9950 }, | |
9951 set$length: function(_, value) { | |
9952 throw H.wrapException(new P.UnsupportedError("Cannot set length on immut
able List.")); | |
9953 }, | |
9954 $index: function(_, index) { | |
9955 var t1 = this._this.childNodes; | |
9956 if (index >>> 0 !== index || index >= t1.length) | |
9957 return H.ioore(t1, index); | |
9958 return t1[index]; | |
9959 }, | |
9960 $asListBase: function() { | |
9961 return [W.Node]; | |
9962 }, | |
9963 $asObject_ListMixin: function() { | |
9964 return [W.Node]; | |
9965 }, | |
9966 $asList: function() { | |
9967 return [W.Node]; | |
9968 } | |
9969 }, | |
9970 Node: { | |
9971 "^": "EventTarget;", | |
9972 remove$0: function(receiver) { | |
9973 var t1 = receiver.parentNode; | |
9974 if (t1 != null) | |
9975 t1.removeChild(receiver); | |
9976 }, | |
9977 toString$0: function(receiver) { | |
9978 var value = receiver.nodeValue; | |
9979 return value == null ? this.super$Interceptor$toString(receiver) : value
; | |
9980 }, | |
9981 contains$1: function(receiver, other) { | |
9982 return receiver.contains(other); | |
9983 }, | |
9984 $isNode: 1, | |
9985 $isObject: 1, | |
9986 "%": ";Node" | |
9987 }, | |
9988 NodeList: { | |
9989 "^": "Interceptor_ListMixin_ImmutableListMixin;", | |
9990 get$length: function(receiver) { | |
9991 return receiver.length; | |
9992 }, | |
9993 $index: function(receiver, index) { | |
9994 if (index >>> 0 !== index || index >= receiver.length) | |
9995 throw H.wrapException(P.IndexError$(index, receiver, null, null, null)
); | |
9996 return receiver[index]; | |
9997 }, | |
9998 $indexSet: function(receiver, index, value) { | |
9999 throw H.wrapException(new P.UnsupportedError("Cannot assign element of i
mmutable List.")); | |
10000 }, | |
10001 set$length: function(receiver, value) { | |
10002 throw H.wrapException(new P.UnsupportedError("Cannot resize immutable Li
st.")); | |
10003 }, | |
10004 get$last: function(receiver) { | |
10005 var len = receiver.length; | |
10006 if (len > 0) | |
10007 return receiver[len - 1]; | |
10008 throw H.wrapException(new P.StateError("No elements")); | |
10009 }, | |
10010 elementAt$1: function(receiver, index) { | |
10011 if (index < 0 || index >= receiver.length) | |
10012 return H.ioore(receiver, index); | |
10013 return receiver[index]; | |
10014 }, | |
10015 $isList: 1, | |
10016 $asList: function() { | |
10017 return [W.Node]; | |
10018 }, | |
10019 $isEfficientLength: 1, | |
10020 $isJavaScriptIndexingBehavior: 1, | |
10021 $isJSIndexable: 1, | |
10022 "%": "NodeList|RadioNodeList" | |
10023 }, | |
10024 Interceptor_ListMixin: { | |
10025 "^": "Interceptor+ListMixin;", | |
10026 $isList: 1, | |
10027 $asList: function() { | |
10028 return [W.Node]; | |
10029 }, | |
10030 $isEfficientLength: 1 | |
10031 }, | |
10032 Interceptor_ListMixin_ImmutableListMixin: { | |
10033 "^": "Interceptor_ListMixin+ImmutableListMixin;", | |
10034 $isList: 1, | |
10035 $asList: function() { | |
10036 return [W.Node]; | |
10037 }, | |
10038 $isEfficientLength: 1 | |
10039 }, | |
10040 ObjectElement: { | |
10041 "^": "HtmlElement;name=", | |
10042 "%": "HTMLObjectElement" | |
10043 }, | |
10044 OutputElement: { | |
10045 "^": "HtmlElement;name=", | |
10046 "%": "HTMLOutputElement" | |
10047 }, | |
10048 ParamElement: { | |
10049 "^": "HtmlElement;name=", | |
10050 "%": "HTMLParamElement" | |
10051 }, | |
10052 PluginPlaceholderElement: { | |
10053 "^": "DivElement;message=", | |
10054 "%": "PluginPlaceholderElement" | |
10055 }, | |
10056 PositionError: { | |
10057 "^": "Interceptor;message=", | |
10058 "%": "PositionError" | |
10059 }, | |
10060 ProcessingInstruction: { | |
10061 "^": "CharacterData;target=", | |
10062 "%": "ProcessingInstruction" | |
10063 }, | |
10064 SelectElement: { | |
10065 "^": "HtmlElement;length=,name=", | |
10066 "%": "HTMLSelectElement" | |
10067 }, | |
10068 SpeechRecognitionError: { | |
10069 "^": "Event;error=,message=", | |
10070 "%": "SpeechRecognitionError" | |
10071 }, | |
10072 SpeechSynthesisEvent: { | |
10073 "^": "Event;name=", | |
10074 "%": "SpeechSynthesisEvent" | |
10075 }, | |
10076 TableColElement: { | |
10077 "^": "HtmlElement;span=", | |
10078 "%": "HTMLTableColElement" | |
10079 }, | |
10080 TemplateElement: { | |
10081 "^": "HtmlElement;", | |
10082 $isTemplateElement: 1, | |
10083 "%": "HTMLTemplateElement" | |
10084 }, | |
10085 TextAreaElement: { | |
10086 "^": "HtmlElement;name=", | |
10087 "%": "HTMLTextAreaElement" | |
10088 }, | |
10089 Window: { | |
10090 "^": "EventTarget;name=", | |
10091 get$animationFrame: function(receiver) { | |
10092 var completer = H.setRuntimeTypeInfo(new P._SyncCompleter(H.setRuntimeTy
peInfo(new P._Future(0, $.Zone__current, null), [P.num])), [P.num]); | |
10093 this._ensureRequestAnimationFrame$0(receiver); | |
10094 this._requestAnimationFrame$1(receiver, W._wrapZone(new W.Window_animati
onFrame_closure(completer))); | |
10095 return completer.future; | |
10096 }, | |
10097 _requestAnimationFrame$1: function(receiver, callback) { | |
10098 return receiver.requestAnimationFrame(H.convertDartClosureToJS(callback,
1)); | |
10099 }, | |
10100 _ensureRequestAnimationFrame$0: function(receiver) { | |
10101 if (!!(receiver.requestAnimationFrame && receiver.cancelAnimationFrame)) | |
10102 return; | |
10103 (function($this) { | |
10104 var vendors = ['ms', 'moz', 'webkit', 'o']; | |
10105 for (var i = 0; i < vendors.length && !$this.requestAnimationFrame; ++
i) { | |
10106 $this.requestAnimationFrame = $this[vendors[i] + 'RequestAnimationFr
ame']; | |
10107 $this.cancelAnimationFrame = $this[vendors[i] + 'CancelAnimationFram
e'] || $this[vendors[i] + 'CancelRequestAnimationFrame']; | |
10108 } | |
10109 if ($this.requestAnimationFrame && $this.cancelAnimationFrame) | |
10110 return; | |
10111 $this.requestAnimationFrame = function(callback) { | |
10112 return window.setTimeout(function() { | |
10113 callback(Date.now()); | |
10114 }, 16); | |
10115 }; | |
10116 $this.cancelAnimationFrame = function(id) { | |
10117 clearTimeout(id); | |
10118 }; | |
10119 })(receiver); | |
10120 }, | |
10121 get$onClick: function(receiver) { | |
10122 return H.setRuntimeTypeInfo(new W._EventStream(receiver, "click", false)
, [null]); | |
10123 }, | |
10124 $isInterceptor: 1, | |
10125 $isEventTarget: 1, | |
10126 "%": "DOMWindow|Window" | |
10127 }, | |
10128 Window_animationFrame_closure: { | |
10129 "^": "Closure:0;_captured_completer_0", | |
10130 call$1: function(time) { | |
10131 this._captured_completer_0.complete$1(0, time); | |
10132 } | |
10133 }, | |
10134 _Attr: { | |
10135 "^": "Node;name=", | |
10136 "%": "Attr" | |
10137 }, | |
10138 _ClientRect: { | |
10139 "^": "Interceptor;bottom=,height=,left=,right=,top=,width=", | |
10140 toString$0: function(receiver) { | |
10141 return "Rectangle (" + H.S(receiver.left) + ", " + H.S(receiver.top) + "
) " + H.S(receiver.width) + " x " + H.S(receiver.height); | |
10142 }, | |
10143 $eq: function(receiver, other) { | |
10144 var t1, t2, t3; | |
10145 if (other == null) | |
10146 return false; | |
10147 t1 = J.getInterceptor(other); | |
10148 if (!t1.$isRectangle) | |
10149 return false; | |
10150 t2 = receiver.left; | |
10151 t3 = t1.get$left(other); | |
10152 if (t2 == null ? t3 == null : t2 === t3) { | |
10153 t2 = receiver.top; | |
10154 t3 = t1.get$top(other); | |
10155 if (t2 == null ? t3 == null : t2 === t3) { | |
10156 t2 = receiver.width; | |
10157 t3 = t1.get$width(other); | |
10158 if (t2 == null ? t3 == null : t2 === t3) { | |
10159 t2 = receiver.height; | |
10160 t1 = t1.get$height(other); | |
10161 t1 = t2 == null ? t1 == null : t2 === t1; | |
10162 } else | |
10163 t1 = false; | |
10164 } else | |
10165 t1 = false; | |
10166 } else | |
10167 t1 = false; | |
10168 return t1; | |
10169 }, | |
10170 get$hashCode: function(receiver) { | |
10171 var t1, t2, t3, t4; | |
10172 t1 = J.get$hashCode$(receiver.left); | |
10173 t2 = J.get$hashCode$(receiver.top); | |
10174 t3 = J.get$hashCode$(receiver.width); | |
10175 t4 = J.get$hashCode$(receiver.height); | |
10176 return W._JenkinsSmiHash_finish(W._JenkinsSmiHash_combine(W._JenkinsSmiH
ash_combine(W._JenkinsSmiHash_combine(W._JenkinsSmiHash_combine(0, t1), t2), t3)
, t4)); | |
10177 }, | |
10178 $isRectangle: 1, | |
10179 $asRectangle: Isolate.functionThatReturnsNull, | |
10180 "%": "ClientRect" | |
10181 }, | |
10182 _DocumentType: { | |
10183 "^": "Node;", | |
10184 $isInterceptor: 1, | |
10185 "%": "DocumentType" | |
10186 }, | |
10187 _DomRect: { | |
10188 "^": "DomRectReadOnly;", | |
10189 get$height: function(receiver) { | |
10190 return receiver.height; | |
10191 }, | |
10192 get$width: function(receiver) { | |
10193 return receiver.width; | |
10194 }, | |
10195 "%": "DOMRect" | |
10196 }, | |
10197 _HTMLFrameSetElement: { | |
10198 "^": "HtmlElement;", | |
10199 $isEventTarget: 1, | |
10200 $isInterceptor: 1, | |
10201 "%": "HTMLFrameSetElement" | |
10202 }, | |
10203 _NamedNodeMap: { | |
10204 "^": "Interceptor_ListMixin_ImmutableListMixin0;", | |
10205 get$length: function(receiver) { | |
10206 return receiver.length; | |
10207 }, | |
10208 $index: function(receiver, index) { | |
10209 if (index >>> 0 !== index || index >= receiver.length) | |
10210 throw H.wrapException(P.IndexError$(index, receiver, null, null, null)
); | |
10211 return receiver[index]; | |
10212 }, | |
10213 $indexSet: function(receiver, index, value) { | |
10214 throw H.wrapException(new P.UnsupportedError("Cannot assign element of i
mmutable List.")); | |
10215 }, | |
10216 set$length: function(receiver, value) { | |
10217 throw H.wrapException(new P.UnsupportedError("Cannot resize immutable Li
st.")); | |
10218 }, | |
10219 get$last: function(receiver) { | |
10220 var len = receiver.length; | |
10221 if (len > 0) | |
10222 return receiver[len - 1]; | |
10223 throw H.wrapException(new P.StateError("No elements")); | |
10224 }, | |
10225 elementAt$1: function(receiver, index) { | |
10226 if (index < 0 || index >= receiver.length) | |
10227 return H.ioore(receiver, index); | |
10228 return receiver[index]; | |
10229 }, | |
10230 $isList: 1, | |
10231 $asList: function() { | |
10232 return [W.Node]; | |
10233 }, | |
10234 $isEfficientLength: 1, | |
10235 $isJavaScriptIndexingBehavior: 1, | |
10236 $isJSIndexable: 1, | |
10237 "%": "MozNamedAttrMap|NamedNodeMap" | |
10238 }, | |
10239 Interceptor_ListMixin0: { | |
10240 "^": "Interceptor+ListMixin;", | |
10241 $isList: 1, | |
10242 $asList: function() { | |
10243 return [W.Node]; | |
10244 }, | |
10245 $isEfficientLength: 1 | |
10246 }, | |
10247 Interceptor_ListMixin_ImmutableListMixin0: { | |
10248 "^": "Interceptor_ListMixin0+ImmutableListMixin;", | |
10249 $isList: 1, | |
10250 $asList: function() { | |
10251 return [W.Node]; | |
10252 }, | |
10253 $isEfficientLength: 1 | |
10254 }, | |
10255 _AttributeMap: { | |
10256 "^": "Object;_element<", | |
10257 forEach$1: function(_, f) { | |
10258 var t1, t2, _i, key; | |
10259 for (t1 = this.get$keys(), t2 = t1.length, _i = 0; _i < t1.length; t1.le
ngth === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) { | |
10260 key = t1[_i]; | |
10261 f.call$2(key, this.$index(0, key)); | |
10262 } | |
10263 }, | |
10264 get$keys: function() { | |
10265 var attributes, keys, len, i; | |
10266 attributes = this._element.attributes; | |
10267 keys = H.setRuntimeTypeInfo([], [P.String]); | |
10268 for (len = attributes.length, i = 0; i < len; ++i) { | |
10269 if (i >= attributes.length) | |
10270 return H.ioore(attributes, i); | |
10271 if (this._matches$1(attributes[i])) { | |
10272 if (i >= attributes.length) | |
10273 return H.ioore(attributes, i); | |
10274 keys.push(J.get$name$x(attributes[i])); | |
10275 } | |
10276 } | |
10277 return keys; | |
10278 }, | |
10279 get$isEmpty: function(_) { | |
10280 return this.get$length(this) === 0; | |
10281 }, | |
10282 get$isNotEmpty: function(_) { | |
10283 return this.get$length(this) !== 0; | |
10284 } | |
10285 }, | |
10286 _ElementAttributeMap: { | |
10287 "^": "_AttributeMap;_element", | |
10288 $index: function(_, key) { | |
10289 return this._element.getAttribute(key); | |
10290 }, | |
10291 $indexSet: function(_, key, value) { | |
10292 this._element.setAttribute(key, value); | |
10293 }, | |
10294 get$length: function(_) { | |
10295 return this.get$keys().length; | |
10296 }, | |
10297 _matches$1: function(node) { | |
10298 return node.namespaceURI == null; | |
10299 } | |
10300 }, | |
10301 _ElementCssClassSet: { | |
10302 "^": "CssClassSetImpl;_element<", | |
10303 readClasses$0: function() { | |
10304 var s, t1, t2, _i, trimmed; | |
10305 s = P.LinkedHashSet_LinkedHashSet(null, null, null, P.String); | |
10306 for (t1 = this._element.className.split(" "), t2 = t1.length, _i = 0; _i
< t1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), +
+_i) { | |
10307 trimmed = J.trim$0$s(t1[_i]); | |
10308 if (trimmed.length !== 0) | |
10309 s.add$1(0, trimmed); | |
10310 } | |
10311 return s; | |
10312 }, | |
10313 writeClasses$1: function(s) { | |
10314 this._element.className = s.join$1(0, " "); | |
10315 }, | |
10316 get$length: function(_) { | |
10317 return this._element.classList.length; | |
10318 }, | |
10319 get$isEmpty: function(_) { | |
10320 return this._element.classList.length === 0; | |
10321 }, | |
10322 get$isNotEmpty: function(_) { | |
10323 return this._element.classList.length !== 0; | |
10324 }, | |
10325 contains$1: function(_, value) { | |
10326 return typeof value === "string" && this._element.classList.contains(val
ue); | |
10327 }, | |
10328 add$1: function(_, value) { | |
10329 var list, t1; | |
10330 list = this._element.classList; | |
10331 t1 = list.contains(value); | |
10332 list.add(value); | |
10333 return !t1; | |
10334 }, | |
10335 remove$1: function(_, value) { | |
10336 var list, removed, t1; | |
10337 list = this._element.classList; | |
10338 removed = list.contains(value); | |
10339 list.remove(value); | |
10340 t1 = removed; | |
10341 return t1; | |
10342 }, | |
10343 toggle$2: function(_, value, shouldAdd) { | |
10344 return this._element.classList.toggle(value); | |
10345 }, | |
10346 toggle$1: function($receiver, value) { | |
10347 return this.toggle$2($receiver, value, null); | |
10348 } | |
10349 }, | |
10350 _EventStream: { | |
10351 "^": "Stream;_target,_eventType,_useCapture", | |
10352 listen$4$cancelOnError$onDone$onError: function(onData, cancelOnError, onD
one, onError) { | |
10353 var t1 = new W._EventStreamSubscription(0, this._target, this._eventType
, W._wrapZone(onData), this._useCapture); | |
10354 t1.$builtinTypeInfo = this.$builtinTypeInfo; | |
10355 t1._tryResume$0(); | |
10356 return t1; | |
10357 }, | |
10358 listen$3$onDone$onError: function(onData, onDone, onError) { | |
10359 return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone,
onError); | |
10360 } | |
10361 }, | |
10362 _ElementEventStreamImpl: { | |
10363 "^": "_EventStream;_target,_eventType,_useCapture" | |
10364 }, | |
10365 _EventStreamSubscription: { | |
10366 "^": "StreamSubscription;_pauseCount,_target,_eventType,_onData,_useCaptur
e", | |
10367 cancel$0: function() { | |
10368 if (this._target == null) | |
10369 return; | |
10370 this._unlisten$0(); | |
10371 this._target = null; | |
10372 this._onData = null; | |
10373 return; | |
10374 }, | |
10375 pause$1: function(_, resumeSignal) { | |
10376 if (this._target == null) | |
10377 return; | |
10378 ++this._pauseCount; | |
10379 this._unlisten$0(); | |
10380 }, | |
10381 pause$0: function($receiver) { | |
10382 return this.pause$1($receiver, null); | |
10383 }, | |
10384 resume$0: function() { | |
10385 if (this._target == null || this._pauseCount <= 0) | |
10386 return; | |
10387 --this._pauseCount; | |
10388 this._tryResume$0(); | |
10389 }, | |
10390 _tryResume$0: function() { | |
10391 var t1, t2, t3; | |
10392 t1 = this._onData; | |
10393 t2 = t1 != null; | |
10394 if (t2 && this._pauseCount <= 0) { | |
10395 t3 = this._target; | |
10396 t3.toString; | |
10397 if (t2) | |
10398 J._addEventListener$3$x(t3, this._eventType, t1, this._useCapture); | |
10399 } | |
10400 }, | |
10401 _unlisten$0: function() { | |
10402 var t1, t2, t3; | |
10403 t1 = this._onData; | |
10404 t2 = t1 != null; | |
10405 if (t2) { | |
10406 t3 = this._target; | |
10407 t3.toString; | |
10408 if (t2) | |
10409 J._removeEventListener$3$x(t3, this._eventType, t1, this._useCapture
); | |
10410 } | |
10411 } | |
10412 }, | |
10413 _Html5NodeValidator: { | |
10414 "^": "Object;uriPolicy<", | |
10415 allowsElement$1: function(element) { | |
10416 return $.$get$_Html5NodeValidator__allowedElements().contains$1(0, J.get
$tagName$x(element)); | |
10417 }, | |
10418 allowsAttribute$3: function(element, attributeName, value) { | |
10419 var tagName, t1, validator; | |
10420 tagName = J.get$tagName$x(element); | |
10421 t1 = $.$get$_Html5NodeValidator__attributeValidators(); | |
10422 validator = t1.$index(0, H.S(tagName) + "::" + attributeName); | |
10423 if (validator == null) | |
10424 validator = t1.$index(0, "*::" + attributeName); | |
10425 if (validator == null) | |
10426 return false; | |
10427 return validator.call$4(element, attributeName, value, this); | |
10428 }, | |
10429 _Html5NodeValidator$1$uriPolicy: function(uriPolicy) { | |
10430 var t1, _i; | |
10431 t1 = $.$get$_Html5NodeValidator__attributeValidators(); | |
10432 if (t1.get$isEmpty(t1)) { | |
10433 for (_i = 0; _i < 261; ++_i) | |
10434 t1.$indexSet(0, C.List_1GN[_i], W.html__Html5NodeValidator__standard
AttributeValidator$closure()); | |
10435 for (_i = 0; _i < 12; ++_i) | |
10436 t1.$indexSet(0, C.List_yrN[_i], W.html__Html5NodeValidator__uriAttri
buteValidator$closure()); | |
10437 } | |
10438 }, | |
10439 $isNodeValidator: 1, | |
10440 static: {_Html5NodeValidator$: function(uriPolicy) { | |
10441 var t1 = new W._Html5NodeValidator(new W._SameOriginUriPolicy(W.Anchor
Element_AnchorElement(null), window.location)); | |
10442 t1._Html5NodeValidator$1$uriPolicy(uriPolicy); | |
10443 return t1; | |
10444 }, _Html5NodeValidator__standardAttributeValidator: [function(element, a
ttributeName, value, context) { | |
10445 return true; | |
10446 }, "call$4", "html__Html5NodeValidator__standardAttributeValidator$closu
re", 8, 0, 10], _Html5NodeValidator__uriAttributeValidator: [function(element, a
ttributeName, value, context) { | |
10447 return context.get$uriPolicy().allowsUri$1(value); | |
10448 }, "call$4", "html__Html5NodeValidator__uriAttributeValidator$closure",
8, 0, 10]} | |
10449 }, | |
10450 ImmutableListMixin: { | |
10451 "^": "Object;", | |
10452 get$iterator: function(receiver) { | |
10453 return H.setRuntimeTypeInfo(new W.FixedSizeListIterator(receiver, this.g
et$length(receiver), -1, null), [H.getRuntimeTypeArgument(receiver, "ImmutableLi
stMixin", 0)]); | |
10454 }, | |
10455 add$1: function(receiver, value) { | |
10456 throw H.wrapException(new P.UnsupportedError("Cannot add to immutable Li
st.")); | |
10457 }, | |
10458 $isList: 1, | |
10459 $asList: null, | |
10460 $isEfficientLength: 1 | |
10461 }, | |
10462 NodeValidatorBuilder: { | |
10463 "^": "Object;_validators", | |
10464 add$1: function(_, validator) { | |
10465 this._validators.push(validator); | |
10466 }, | |
10467 allowsElement$1: function(element) { | |
10468 return C.JSArray_methods.any$1(this._validators, new W.NodeValidatorBuil
der_allowsElement_closure(element)); | |
10469 }, | |
10470 allowsAttribute$3: function(element, attributeName, value) { | |
10471 return C.JSArray_methods.any$1(this._validators, new W.NodeValidatorBuil
der_allowsAttribute_closure(element, attributeName, value)); | |
10472 } | |
10473 }, | |
10474 NodeValidatorBuilder_allowsElement_closure: { | |
10475 "^": "Closure:0;_captured_element_0", | |
10476 call$1: function(v) { | |
10477 return v.allowsElement$1(this._captured_element_0); | |
10478 } | |
10479 }, | |
10480 NodeValidatorBuilder_allowsAttribute_closure: { | |
10481 "^": "Closure:0;_captured_element_0,_captured_attributeName_1,_captured_va
lue_2", | |
10482 call$1: function(v) { | |
10483 return v.allowsAttribute$3(this._captured_element_0, this._captured_attr
ibuteName_1, this._captured_value_2); | |
10484 } | |
10485 }, | |
10486 _SimpleNodeValidator: { | |
10487 "^": "Object;allowedElements,allowedAttributes,allowedUriAttributes,uriPol
icy<", | |
10488 allowsElement$1: function(element) { | |
10489 return this.allowedElements.contains$1(0, J.get$tagName$x(element)); | |
10490 }, | |
10491 allowsAttribute$3: ["super$_SimpleNodeValidator$allowsAttribute", function
(element, attributeName, value) { | |
10492 var tagName, t1; | |
10493 tagName = J.get$tagName$x(element); | |
10494 t1 = this.allowedUriAttributes; | |
10495 if (t1.contains$1(0, H.S(tagName) + "::" + attributeName)) | |
10496 return this.uriPolicy.allowsUri$1(value); | |
10497 else if (t1.contains$1(0, "*::" + attributeName)) | |
10498 return this.uriPolicy.allowsUri$1(value); | |
10499 else { | |
10500 t1 = this.allowedAttributes; | |
10501 if (t1.contains$1(0, H.S(tagName) + "::" + attributeName)) | |
10502 return true; | |
10503 else if (t1.contains$1(0, "*::" + attributeName)) | |
10504 return true; | |
10505 else if (t1.contains$1(0, H.S(tagName) + "::*")) | |
10506 return true; | |
10507 else if (t1.contains$1(0, "*::*")) | |
10508 return true; | |
10509 } | |
10510 return false; | |
10511 }], | |
10512 _SimpleNodeValidator$4$allowedAttributes$allowedElements$allowedUriAttribu
tes: function(uriPolicy, allowedAttributes, allowedElements, allowedUriAttribute
s) { | |
10513 var t1, legalAttributes, extraUriAttributes; | |
10514 this.allowedElements.addAll$1(0, allowedElements); | |
10515 if (allowedUriAttributes == null) | |
10516 allowedUriAttributes = C.List_empty; | |
10517 t1 = J.getInterceptor$ax(allowedAttributes); | |
10518 legalAttributes = t1.where$1(allowedAttributes, new W._SimpleNodeValidat
or_closure()); | |
10519 extraUriAttributes = t1.where$1(allowedAttributes, new W._SimpleNodeVali
dator_closure0()); | |
10520 this.allowedAttributes.addAll$1(0, legalAttributes); | |
10521 t1 = this.allowedUriAttributes; | |
10522 t1.addAll$1(0, allowedUriAttributes); | |
10523 t1.addAll$1(0, extraUriAttributes); | |
10524 }, | |
10525 static: {_SimpleNodeValidator$: function(uriPolicy, allowedAttributes, all
owedElements, allowedUriAttributes) { | |
10526 var t1 = new W._SimpleNodeValidator(P.LinkedHashSet_LinkedHashSet(null
, null, null, P.String), P.LinkedHashSet_LinkedHashSet(null, null, null, P.Strin
g), P.LinkedHashSet_LinkedHashSet(null, null, null, P.String), uriPolicy); | |
10527 t1._SimpleNodeValidator$4$allowedAttributes$allowedElements$allowedUri
Attributes(uriPolicy, allowedAttributes, allowedElements, allowedUriAttributes); | |
10528 return t1; | |
10529 }} | |
10530 }, | |
10531 _SimpleNodeValidator_closure: { | |
10532 "^": "Closure:0;", | |
10533 call$1: function(x) { | |
10534 return !C.JSArray_methods.contains$1(C.List_yrN, x); | |
10535 } | |
10536 }, | |
10537 _SimpleNodeValidator_closure0: { | |
10538 "^": "Closure:0;", | |
10539 call$1: function(x) { | |
10540 return C.JSArray_methods.contains$1(C.List_yrN, x); | |
10541 } | |
10542 }, | |
10543 _TemplatingNodeValidator: { | |
10544 "^": "_SimpleNodeValidator;_templateAttrs,allowedElements,allowedAttribute
s,allowedUriAttributes,uriPolicy", | |
10545 allowsAttribute$3: function(element, attributeName, value) { | |
10546 if (this.super$_SimpleNodeValidator$allowsAttribute(element, attributeNa
me, value)) | |
10547 return true; | |
10548 if (attributeName === "template" && value === "") | |
10549 return true; | |
10550 if (J.get$attributes$x(element)._element.getAttribute("template") === ""
) | |
10551 return this._templateAttrs.contains$1(0, attributeName); | |
10552 return false; | |
10553 }, | |
10554 static: {_TemplatingNodeValidator$: function() { | |
10555 var t1, t2, t3, t4; | |
10556 t1 = H.setRuntimeTypeInfo(new H.MappedListIterable(C.List_wSV, new W._
TemplatingNodeValidator_closure()), [null, null]); | |
10557 t2 = P.LinkedHashSet_LinkedHashSet(null, null, null, P.String); | |
10558 t3 = P.LinkedHashSet_LinkedHashSet(null, null, null, P.String); | |
10559 t4 = P.LinkedHashSet_LinkedHashSet(null, null, null, P.String); | |
10560 t4 = new W._TemplatingNodeValidator(P.LinkedHashSet_LinkedHashSet$from
(C.List_wSV, P.String), t2, t3, t4, null); | |
10561 t4._SimpleNodeValidator$4$allowedAttributes$allowedElements$allowedUri
Attributes(null, t1, ["TEMPLATE"], null); | |
10562 return t4; | |
10563 }} | |
10564 }, | |
10565 _TemplatingNodeValidator_closure: { | |
10566 "^": "Closure:0;", | |
10567 call$1: function(attr) { | |
10568 return "TEMPLATE::" + H.S(attr); | |
10569 } | |
10570 }, | |
10571 FixedSizeListIterator: { | |
10572 "^": "Object;_array,_length,_position,_current", | |
10573 moveNext$0: function() { | |
10574 var nextPosition, t1; | |
10575 nextPosition = this._position + 1; | |
10576 t1 = this._length; | |
10577 if (nextPosition < t1) { | |
10578 this._current = J.$index$asx(this._array, nextPosition); | |
10579 this._position = nextPosition; | |
10580 return true; | |
10581 } | |
10582 this._current = null; | |
10583 this._position = t1; | |
10584 return false; | |
10585 }, | |
10586 get$current: function() { | |
10587 return this._current; | |
10588 } | |
10589 }, | |
10590 _DOMWindowCrossFrame: { | |
10591 "^": "Object;_window", | |
10592 $isEventTarget: 1, | |
10593 $isInterceptor: 1, | |
10594 static: {_DOMWindowCrossFrame__createSafe: function(w) { | |
10595 if (w === window) | |
10596 return w; | |
10597 else | |
10598 return new W._DOMWindowCrossFrame(w); | |
10599 }} | |
10600 }, | |
10601 NodeValidator: { | |
10602 "^": "Object;" | |
10603 }, | |
10604 _SameOriginUriPolicy: { | |
10605 "^": "Object;_hiddenAnchor,_loc", | |
10606 allowsUri$1: function(uri) { | |
10607 var t1, t2, t3, t4, t5; | |
10608 t1 = this._hiddenAnchor; | |
10609 t2 = J.getInterceptor$x(t1); | |
10610 t2.set$href(t1, uri); | |
10611 t3 = t2.get$hostname(t1); | |
10612 t4 = this._loc; | |
10613 t5 = t4.hostname; | |
10614 if (t3 == null ? t5 == null : t3 === t5) { | |
10615 t3 = t2.get$port(t1); | |
10616 t5 = t4.port; | |
10617 if (t3 == null ? t5 == null : t3 === t5) { | |
10618 t3 = t2.get$protocol(t1); | |
10619 t4 = t4.protocol; | |
10620 t4 = t3 == null ? t4 == null : t3 === t4; | |
10621 t3 = t4; | |
10622 } else | |
10623 t3 = false; | |
10624 } else | |
10625 t3 = false; | |
10626 if (!t3) | |
10627 if (t2.get$hostname(t1) === "") | |
10628 if (t2.get$port(t1) === "") | |
10629 t1 = t2.get$protocol(t1) === ":" || t2.get$protocol(t1) === ""; | |
10630 else | |
10631 t1 = false; | |
10632 else | |
10633 t1 = false; | |
10634 else | |
10635 t1 = true; | |
10636 return t1; | |
10637 } | |
10638 }, | |
10639 _ValidatingTreeSanitizer: { | |
10640 "^": "Object;validator", | |
10641 sanitizeTree$1: function(node) { | |
10642 new W._ValidatingTreeSanitizer_sanitizeTree_walk(this).call$2(node, null
); | |
10643 }, | |
10644 _removeNode$2: function(node, $parent) { | |
10645 if ($parent == null) | |
10646 J.remove$0$ax(node); | |
10647 else | |
10648 $parent.removeChild(node); | |
10649 }, | |
10650 _sanitizeUntrustedElement$2: function(element, $parent) { | |
10651 var corrupted, attrs, isAttr, elementText, elementTagName, exception; | |
10652 corrupted = true; | |
10653 attrs = null; | |
10654 isAttr = null; | |
10655 try { | |
10656 attrs = J.get$attributes$x(element); | |
10657 isAttr = attrs.get$_element().getAttribute("is"); | |
10658 corrupted = function(element) { | |
10659 if (!(element.attributes instanceof NamedNodeMap)) | |
10660 return true; | |
10661 var childNodes = element.childNodes; | |
10662 if (element.lastChild && element.lastChild !== childNodes[childNodes
.length - 1]) | |
10663 return true; | |
10664 if (element.children) | |
10665 if (!(element.children instanceof HTMLCollection || element.childr
en instanceof NodeList)) | |
10666 return true; | |
10667 return false; | |
10668 }(element); | |
10669 } catch (exception) { | |
10670 H.unwrapException(exception); | |
10671 } | |
10672 elementText = "element unprintable"; | |
10673 try { | |
10674 elementText = J.toString$0$(element); | |
10675 } catch (exception) { | |
10676 H.unwrapException(exception); | |
10677 } | |
10678 elementTagName = "element tag unavailable"; | |
10679 try { | |
10680 elementTagName = J.get$tagName$x(element); | |
10681 } catch (exception) { | |
10682 H.unwrapException(exception); | |
10683 } | |
10684 this._sanitizeElement$7(element, $parent, corrupted, elementText, elemen
tTagName, attrs, isAttr); | |
10685 }, | |
10686 _sanitizeElement$7: function(element, $parent, corrupted, text, tag, attrs
, isAttr) { | |
10687 var t1, keys, i, $name, t2; | |
10688 if (corrupted) { | |
10689 window; | |
10690 t1 = "Removing element due to corrupted attributes on <" + text + ">"; | |
10691 if (typeof console != "undefined") | |
10692 console.warn(t1); | |
10693 this._removeNode$2(element, $parent); | |
10694 return; | |
10695 } | |
10696 if (!this.validator.allowsElement$1(element)) { | |
10697 window; | |
10698 t1 = "Removing disallowed element <" + H.S(tag) + ">"; | |
10699 if (typeof console != "undefined") | |
10700 console.warn(t1); | |
10701 this._removeNode$2(element, $parent); | |
10702 return; | |
10703 } | |
10704 if (isAttr != null) | |
10705 if (!this.validator.allowsAttribute$3(element, "is", isAttr)) { | |
10706 window; | |
10707 t1 = "Removing disallowed type extension <" + H.S(tag) + " is=\"" +
isAttr + "\">"; | |
10708 if (typeof console != "undefined") | |
10709 console.warn(t1); | |
10710 this._removeNode$2(element, $parent); | |
10711 return; | |
10712 } | |
10713 t1 = attrs.get$keys(); | |
10714 keys = H.setRuntimeTypeInfo(t1.slice(), [H.getTypeArgumentByIndex(t1, 0)
]); | |
10715 for (i = attrs.get$keys().length - 1, t1 = attrs._element; i >= 0; --i)
{ | |
10716 if (i >= keys.length) | |
10717 return H.ioore(keys, i); | |
10718 $name = keys[i]; | |
10719 if (!this.validator.allowsAttribute$3(element, J.toLowerCase$0$s($name
), t1.getAttribute($name))) { | |
10720 window; | |
10721 t2 = "Removing disallowed attribute <" + H.S(tag) + " " + $name + "=
\"" + H.S(t1.getAttribute($name)) + "\">"; | |
10722 if (typeof console != "undefined") | |
10723 console.warn(t2); | |
10724 t1.getAttribute($name); | |
10725 t1.removeAttribute($name); | |
10726 } | |
10727 } | |
10728 if (!!J.getInterceptor(element).$isTemplateElement) | |
10729 this.sanitizeTree$1(element.content); | |
10730 } | |
10731 }, | |
10732 _ValidatingTreeSanitizer_sanitizeTree_walk: { | |
10733 "^": "Closure:27;_html$_captured_this_0", | |
10734 call$2: function(node, $parent) { | |
10735 var t1, child, nextChild; | |
10736 t1 = this._html$_captured_this_0; | |
10737 switch (node.nodeType) { | |
10738 case 1: | |
10739 t1._sanitizeUntrustedElement$2(node, $parent); | |
10740 break; | |
10741 case 8: | |
10742 case 11: | |
10743 case 3: | |
10744 case 4: | |
10745 break; | |
10746 default: | |
10747 t1._removeNode$2(node, $parent); | |
10748 } | |
10749 child = node.lastChild; | |
10750 for (; child != null; child = nextChild) { | |
10751 nextChild = child.previousSibling; | |
10752 this.call$2(child, node); | |
10753 } | |
10754 } | |
10755 } | |
10756 }], ["dart.dom.indexed_db", "dart:indexed_db",, P, { | |
10757 "^": "" | |
10758 }], ["dart.dom.svg", "dart:svg",, P, { | |
10759 "^": "", | |
10760 AElement: { | |
10761 "^": "GraphicsElement;target=", | |
10762 $isInterceptor: 1, | |
10763 "%": "SVGAElement" | |
10764 }, | |
10765 AltGlyphElement: { | |
10766 "^": "TextPositioningElement;", | |
10767 $isInterceptor: 1, | |
10768 "%": "SVGAltGlyphElement" | |
10769 }, | |
10770 AnimationElement: { | |
10771 "^": "SvgElement;", | |
10772 $isInterceptor: 1, | |
10773 "%": "SVGAnimateElement|SVGAnimateMotionElement|SVGAnimateTransformElement
|SVGAnimationElement|SVGSetElement" | |
10774 }, | |
10775 FEBlendElement: { | |
10776 "^": "SvgElement;", | |
10777 $isInterceptor: 1, | |
10778 "%": "SVGFEBlendElement" | |
10779 }, | |
10780 FEColorMatrixElement: { | |
10781 "^": "SvgElement;", | |
10782 $isInterceptor: 1, | |
10783 "%": "SVGFEColorMatrixElement" | |
10784 }, | |
10785 FEComponentTransferElement: { | |
10786 "^": "SvgElement;", | |
10787 $isInterceptor: 1, | |
10788 "%": "SVGFEComponentTransferElement" | |
10789 }, | |
10790 FECompositeElement: { | |
10791 "^": "SvgElement;", | |
10792 $isInterceptor: 1, | |
10793 "%": "SVGFECompositeElement" | |
10794 }, | |
10795 FEConvolveMatrixElement: { | |
10796 "^": "SvgElement;", | |
10797 $isInterceptor: 1, | |
10798 "%": "SVGFEConvolveMatrixElement" | |
10799 }, | |
10800 FEDiffuseLightingElement: { | |
10801 "^": "SvgElement;", | |
10802 $isInterceptor: 1, | |
10803 "%": "SVGFEDiffuseLightingElement" | |
10804 }, | |
10805 FEDisplacementMapElement: { | |
10806 "^": "SvgElement;", | |
10807 $isInterceptor: 1, | |
10808 "%": "SVGFEDisplacementMapElement" | |
10809 }, | |
10810 FEFloodElement: { | |
10811 "^": "SvgElement;", | |
10812 $isInterceptor: 1, | |
10813 "%": "SVGFEFloodElement" | |
10814 }, | |
10815 FEGaussianBlurElement: { | |
10816 "^": "SvgElement;", | |
10817 $isInterceptor: 1, | |
10818 "%": "SVGFEGaussianBlurElement" | |
10819 }, | |
10820 FEImageElement: { | |
10821 "^": "SvgElement;", | |
10822 $isInterceptor: 1, | |
10823 "%": "SVGFEImageElement" | |
10824 }, | |
10825 FEMergeElement: { | |
10826 "^": "SvgElement;", | |
10827 $isInterceptor: 1, | |
10828 "%": "SVGFEMergeElement" | |
10829 }, | |
10830 FEMorphologyElement: { | |
10831 "^": "SvgElement;", | |
10832 $isInterceptor: 1, | |
10833 "%": "SVGFEMorphologyElement" | |
10834 }, | |
10835 FEOffsetElement: { | |
10836 "^": "SvgElement;", | |
10837 $isInterceptor: 1, | |
10838 "%": "SVGFEOffsetElement" | |
10839 }, | |
10840 FESpecularLightingElement: { | |
10841 "^": "SvgElement;", | |
10842 $isInterceptor: 1, | |
10843 "%": "SVGFESpecularLightingElement" | |
10844 }, | |
10845 FETileElement: { | |
10846 "^": "SvgElement;", | |
10847 $isInterceptor: 1, | |
10848 "%": "SVGFETileElement" | |
10849 }, | |
10850 FETurbulenceElement: { | |
10851 "^": "SvgElement;", | |
10852 $isInterceptor: 1, | |
10853 "%": "SVGFETurbulenceElement" | |
10854 }, | |
10855 FilterElement: { | |
10856 "^": "SvgElement;", | |
10857 $isInterceptor: 1, | |
10858 "%": "SVGFilterElement" | |
10859 }, | |
10860 GraphicsElement: { | |
10861 "^": "SvgElement;", | |
10862 $isInterceptor: 1, | |
10863 "%": "SVGCircleElement|SVGClipPathElement|SVGDefsElement|SVGEllipseElement
|SVGForeignObjectElement|SVGGElement|SVGGeometryElement|SVGLineElement|SVGPathEl
ement|SVGPolygonElement|SVGPolylineElement|SVGRectElement|SVGSwitchElement;SVGGr
aphicsElement" | |
10864 }, | |
10865 ImageElement0: { | |
10866 "^": "GraphicsElement;", | |
10867 $isInterceptor: 1, | |
10868 "%": "SVGImageElement" | |
10869 }, | |
10870 MarkerElement: { | |
10871 "^": "SvgElement;", | |
10872 $isInterceptor: 1, | |
10873 "%": "SVGMarkerElement" | |
10874 }, | |
10875 MaskElement: { | |
10876 "^": "SvgElement;", | |
10877 $isInterceptor: 1, | |
10878 "%": "SVGMaskElement" | |
10879 }, | |
10880 PatternElement: { | |
10881 "^": "SvgElement;", | |
10882 $isInterceptor: 1, | |
10883 "%": "SVGPatternElement" | |
10884 }, | |
10885 ScriptElement0: { | |
10886 "^": "SvgElement;", | |
10887 $isInterceptor: 1, | |
10888 "%": "SVGScriptElement" | |
10889 }, | |
10890 _AttributeClassSet: { | |
10891 "^": "CssClassSetImpl;_svg$_element", | |
10892 readClasses$0: function() { | |
10893 var classname, s, t1, t2, _i, trimmed; | |
10894 classname = this._svg$_element.getAttribute("class"); | |
10895 s = P.LinkedHashSet_LinkedHashSet(null, null, null, P.String); | |
10896 if (classname == null) | |
10897 return s; | |
10898 for (t1 = classname.split(" "), t2 = t1.length, _i = 0; _i < t1.length;
t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) { | |
10899 trimmed = J.trim$0$s(t1[_i]); | |
10900 if (trimmed.length !== 0) | |
10901 s.add$1(0, trimmed); | |
10902 } | |
10903 return s; | |
10904 }, | |
10905 writeClasses$1: function(s) { | |
10906 this._svg$_element.setAttribute("class", s.join$1(0, " ")); | |
10907 } | |
10908 }, | |
10909 SvgElement: { | |
10910 "^": "Element;", | |
10911 get$classes: function(receiver) { | |
10912 return new P._AttributeClassSet(receiver); | |
10913 }, | |
10914 get$onClick: function(receiver) { | |
10915 return H.setRuntimeTypeInfo(new W._ElementEventStreamImpl(receiver, "cli
ck", false), [null]); | |
10916 }, | |
10917 $isEventTarget: 1, | |
10918 $isInterceptor: 1, | |
10919 "%": "SVGAltGlyphDefElement|SVGAltGlyphItemElement|SVGComponentTransferFun
ctionElement|SVGDescElement|SVGDiscardElement|SVGFEDistantLightElement|SVGFEFunc
AElement|SVGFEFuncBElement|SVGFEFuncGElement|SVGFEFuncRElement|SVGFEMergeNodeEle
ment|SVGFEPointLightElement|SVGFESpotLightElement|SVGFontElement|SVGFontFaceElem
ent|SVGFontFaceFormatElement|SVGFontFaceNameElement|SVGFontFaceSrcElement|SVGFon
tFaceUriElement|SVGGlyphElement|SVGHKernElement|SVGMetadataElement|SVGMissingGly
phElement|SVGStopElement|SVGStyleElement|SVGTitleElement|SVGVKernElement;SVGElem
ent" | |
10920 }, | |
10921 SvgSvgElement: { | |
10922 "^": "GraphicsElement;", | |
10923 $isInterceptor: 1, | |
10924 "%": "SVGSVGElement" | |
10925 }, | |
10926 SymbolElement: { | |
10927 "^": "SvgElement;", | |
10928 $isInterceptor: 1, | |
10929 "%": "SVGSymbolElement" | |
10930 }, | |
10931 TextContentElement: { | |
10932 "^": "GraphicsElement;", | |
10933 "%": ";SVGTextContentElement" | |
10934 }, | |
10935 TextPathElement: { | |
10936 "^": "TextContentElement;", | |
10937 $isInterceptor: 1, | |
10938 "%": "SVGTextPathElement" | |
10939 }, | |
10940 TextPositioningElement: { | |
10941 "^": "TextContentElement;", | |
10942 "%": "SVGTSpanElement|SVGTextElement;SVGTextPositioningElement" | |
10943 }, | |
10944 UseElement: { | |
10945 "^": "GraphicsElement;", | |
10946 $isInterceptor: 1, | |
10947 "%": "SVGUseElement" | |
10948 }, | |
10949 ViewElement: { | |
10950 "^": "SvgElement;", | |
10951 $isInterceptor: 1, | |
10952 "%": "SVGViewElement" | |
10953 }, | |
10954 _GradientElement: { | |
10955 "^": "SvgElement;", | |
10956 $isInterceptor: 1, | |
10957 "%": "SVGGradientElement|SVGLinearGradientElement|SVGRadialGradientElement
" | |
10958 }, | |
10959 _SVGCursorElement: { | |
10960 "^": "SvgElement;", | |
10961 $isInterceptor: 1, | |
10962 "%": "SVGCursorElement" | |
10963 }, | |
10964 _SVGFEDropShadowElement: { | |
10965 "^": "SvgElement;", | |
10966 $isInterceptor: 1, | |
10967 "%": "SVGFEDropShadowElement" | |
10968 }, | |
10969 _SVGGlyphRefElement: { | |
10970 "^": "SvgElement;", | |
10971 $isInterceptor: 1, | |
10972 "%": "SVGGlyphRefElement" | |
10973 }, | |
10974 _SVGMPathElement: { | |
10975 "^": "SvgElement;", | |
10976 $isInterceptor: 1, | |
10977 "%": "SVGMPathElement" | |
10978 } | |
10979 }], ["dart.dom.web_audio", "dart:web_audio",, P, { | |
10980 "^": "" | |
10981 }], ["dart.dom.web_gl", "dart:web_gl",, P, { | |
10982 "^": "" | |
10983 }], ["dart.dom.web_sql", "dart:web_sql",, P, { | |
10984 "^": "", | |
10985 SqlError: { | |
10986 "^": "Interceptor;message=", | |
10987 "%": "SQLError" | |
10988 } | |
10989 }], ["dart.isolate", "dart:isolate",, P, { | |
10990 "^": "", | |
10991 Capability: { | |
10992 "^": "Object;" | |
10993 } | |
10994 }], ["dart.math", "dart:math",, P, { | |
10995 "^": "", | |
10996 _JenkinsSmiHash_combine0: function(hash, value) { | |
10997 hash = 536870911 & hash + value; | |
10998 hash = 536870911 & hash + ((524287 & hash) << 10 >>> 0); | |
10999 return hash ^ hash >>> 6; | |
11000 }, | |
11001 _JenkinsSmiHash_finish0: function(hash) { | |
11002 hash = 536870911 & hash + ((67108863 & hash) << 3 >>> 0); | |
11003 hash ^= hash >>> 11; | |
11004 return 536870911 & hash + ((16383 & hash) << 15 >>> 0); | |
11005 }, | |
11006 min: function(a, b) { | |
11007 if (typeof a !== "number") | |
11008 throw H.wrapException(P.ArgumentError$(a)); | |
11009 if (typeof b !== "number") | |
11010 throw H.wrapException(P.ArgumentError$(b)); | |
11011 if (a > b) | |
11012 return b; | |
11013 if (a < b) | |
11014 return a; | |
11015 if (typeof b === "number") { | |
11016 if (typeof a === "number") | |
11017 if (a === 0) | |
11018 return (a + b) * a * b; | |
11019 if (a === 0 && C.JSDouble_methods.get$isNegative(b) || C.JSDouble_method
s.get$isNaN(b)) | |
11020 return b; | |
11021 return a; | |
11022 } | |
11023 return a; | |
11024 }, | |
11025 max: function(a, b) { | |
11026 if (a > b) | |
11027 return a; | |
11028 if (a < b) | |
11029 return b; | |
11030 if (typeof b === "number") { | |
11031 if (typeof a === "number") | |
11032 if (a === 0) | |
11033 return a + b; | |
11034 if (isNaN(b)) | |
11035 return b; | |
11036 return a; | |
11037 } | |
11038 if (b === 0 && C.JSNumber_methods.get$isNegative(a)) | |
11039 return b; | |
11040 return a; | |
11041 } | |
11042 }], ["dart.typed_data.implementation", "dart:_native_typed_data",, H, { | |
11043 "^": "", | |
11044 _checkValidRange: function(start, end, $length) { | |
11045 var t1; | |
11046 if (!(start >>> 0 !== start)) | |
11047 t1 = end >>> 0 !== end || start > end || end > $length; | |
11048 else | |
11049 t1 = true; | |
11050 if (t1) | |
11051 throw H.wrapException(H.diagnoseRangeError(start, end, $length)); | |
11052 return end; | |
11053 }, | |
11054 NativeByteBuffer: { | |
11055 "^": "Interceptor;", | |
11056 $isNativeByteBuffer: 1, | |
11057 "%": "ArrayBuffer" | |
11058 }, | |
11059 NativeTypedData: { | |
11060 "^": "Interceptor;", | |
11061 $isNativeTypedData: 1, | |
11062 "%": "DataView;ArrayBufferView;NativeTypedArray|NativeTypedArray_ListMixin
|NativeTypedArray_ListMixin_FixedLengthListMixin|NativeTypedArrayOfDouble|Native
TypedArray_ListMixin0|NativeTypedArray_ListMixin_FixedLengthListMixin0|NativeTyp
edArrayOfInt" | |
11063 }, | |
11064 NativeTypedArray: { | |
11065 "^": "NativeTypedData;", | |
11066 get$length: function(receiver) { | |
11067 return receiver.length; | |
11068 }, | |
11069 $isJavaScriptIndexingBehavior: 1, | |
11070 $isJSIndexable: 1 | |
11071 }, | |
11072 NativeTypedArrayOfDouble: { | |
11073 "^": "NativeTypedArray_ListMixin_FixedLengthListMixin;", | |
11074 $index: function(receiver, index) { | |
11075 if (index >>> 0 !== index || index >= receiver.length) | |
11076 H.throwExpression(H.diagnoseIndexError(receiver, index)); | |
11077 return receiver[index]; | |
11078 }, | |
11079 $indexSet: function(receiver, index, value) { | |
11080 if (index >>> 0 !== index || index >= receiver.length) | |
11081 H.throwExpression(H.diagnoseIndexError(receiver, index)); | |
11082 receiver[index] = value; | |
11083 } | |
11084 }, | |
11085 NativeTypedArray_ListMixin: { | |
11086 "^": "NativeTypedArray+ListMixin;", | |
11087 $isList: 1, | |
11088 $asList: function() { | |
11089 return [P.$double]; | |
11090 }, | |
11091 $isEfficientLength: 1 | |
11092 }, | |
11093 NativeTypedArray_ListMixin_FixedLengthListMixin: { | |
11094 "^": "NativeTypedArray_ListMixin+FixedLengthListMixin;" | |
11095 }, | |
11096 NativeTypedArrayOfInt: { | |
11097 "^": "NativeTypedArray_ListMixin_FixedLengthListMixin0;", | |
11098 $indexSet: function(receiver, index, value) { | |
11099 if (index >>> 0 !== index || index >= receiver.length) | |
11100 H.throwExpression(H.diagnoseIndexError(receiver, index)); | |
11101 receiver[index] = value; | |
11102 }, | |
11103 $isList: 1, | |
11104 $asList: function() { | |
11105 return [P.$int]; | |
11106 }, | |
11107 $isEfficientLength: 1 | |
11108 }, | |
11109 NativeTypedArray_ListMixin0: { | |
11110 "^": "NativeTypedArray+ListMixin;", | |
11111 $isList: 1, | |
11112 $asList: function() { | |
11113 return [P.$int]; | |
11114 }, | |
11115 $isEfficientLength: 1 | |
11116 }, | |
11117 NativeTypedArray_ListMixin_FixedLengthListMixin0: { | |
11118 "^": "NativeTypedArray_ListMixin0+FixedLengthListMixin;" | |
11119 }, | |
11120 NativeFloat32List: { | |
11121 "^": "NativeTypedArrayOfDouble;", | |
11122 $isList: 1, | |
11123 $asList: function() { | |
11124 return [P.$double]; | |
11125 }, | |
11126 $isEfficientLength: 1, | |
11127 "%": "Float32Array" | |
11128 }, | |
11129 NativeFloat64List: { | |
11130 "^": "NativeTypedArrayOfDouble;", | |
11131 $isList: 1, | |
11132 $asList: function() { | |
11133 return [P.$double]; | |
11134 }, | |
11135 $isEfficientLength: 1, | |
11136 "%": "Float64Array" | |
11137 }, | |
11138 NativeInt16List: { | |
11139 "^": "NativeTypedArrayOfInt;", | |
11140 $index: function(receiver, index) { | |
11141 if (index >>> 0 !== index || index >= receiver.length) | |
11142 H.throwExpression(H.diagnoseIndexError(receiver, index)); | |
11143 return receiver[index]; | |
11144 }, | |
11145 $isList: 1, | |
11146 $asList: function() { | |
11147 return [P.$int]; | |
11148 }, | |
11149 $isEfficientLength: 1, | |
11150 "%": "Int16Array" | |
11151 }, | |
11152 NativeInt32List: { | |
11153 "^": "NativeTypedArrayOfInt;", | |
11154 $index: function(receiver, index) { | |
11155 if (index >>> 0 !== index || index >= receiver.length) | |
11156 H.throwExpression(H.diagnoseIndexError(receiver, index)); | |
11157 return receiver[index]; | |
11158 }, | |
11159 $isList: 1, | |
11160 $asList: function() { | |
11161 return [P.$int]; | |
11162 }, | |
11163 $isEfficientLength: 1, | |
11164 "%": "Int32Array" | |
11165 }, | |
11166 NativeInt8List: { | |
11167 "^": "NativeTypedArrayOfInt;", | |
11168 $index: function(receiver, index) { | |
11169 if (index >>> 0 !== index || index >= receiver.length) | |
11170 H.throwExpression(H.diagnoseIndexError(receiver, index)); | |
11171 return receiver[index]; | |
11172 }, | |
11173 $isList: 1, | |
11174 $asList: function() { | |
11175 return [P.$int]; | |
11176 }, | |
11177 $isEfficientLength: 1, | |
11178 "%": "Int8Array" | |
11179 }, | |
11180 NativeUint16List: { | |
11181 "^": "NativeTypedArrayOfInt;", | |
11182 $index: function(receiver, index) { | |
11183 if (index >>> 0 !== index || index >= receiver.length) | |
11184 H.throwExpression(H.diagnoseIndexError(receiver, index)); | |
11185 return receiver[index]; | |
11186 }, | |
11187 $isList: 1, | |
11188 $asList: function() { | |
11189 return [P.$int]; | |
11190 }, | |
11191 $isEfficientLength: 1, | |
11192 "%": "Uint16Array" | |
11193 }, | |
11194 NativeUint32List: { | |
11195 "^": "NativeTypedArrayOfInt;", | |
11196 $index: function(receiver, index) { | |
11197 if (index >>> 0 !== index || index >= receiver.length) | |
11198 H.throwExpression(H.diagnoseIndexError(receiver, index)); | |
11199 return receiver[index]; | |
11200 }, | |
11201 $isList: 1, | |
11202 $asList: function() { | |
11203 return [P.$int]; | |
11204 }, | |
11205 $isEfficientLength: 1, | |
11206 "%": "Uint32Array" | |
11207 }, | |
11208 NativeUint8ClampedList: { | |
11209 "^": "NativeTypedArrayOfInt;", | |
11210 get$length: function(receiver) { | |
11211 return receiver.length; | |
11212 }, | |
11213 $index: function(receiver, index) { | |
11214 if (index >>> 0 !== index || index >= receiver.length) | |
11215 H.throwExpression(H.diagnoseIndexError(receiver, index)); | |
11216 return receiver[index]; | |
11217 }, | |
11218 $isList: 1, | |
11219 $asList: function() { | |
11220 return [P.$int]; | |
11221 }, | |
11222 $isEfficientLength: 1, | |
11223 "%": "CanvasPixelArray|Uint8ClampedArray" | |
11224 }, | |
11225 NativeUint8List: { | |
11226 "^": "NativeTypedArrayOfInt;", | |
11227 get$length: function(receiver) { | |
11228 return receiver.length; | |
11229 }, | |
11230 $index: function(receiver, index) { | |
11231 if (index >>> 0 !== index || index >= receiver.length) | |
11232 H.throwExpression(H.diagnoseIndexError(receiver, index)); | |
11233 return receiver[index]; | |
11234 }, | |
11235 $isList: 1, | |
11236 $asList: function() { | |
11237 return [P.$int]; | |
11238 }, | |
11239 $isEfficientLength: 1, | |
11240 "%": ";Uint8Array" | |
11241 } | |
11242 }], ["dart2js._js_primitives", "dart:_js_primitives",, H, { | |
11243 "^": "", | |
11244 printString: function(string) { | |
11245 if (typeof dartPrint == "function") { | |
11246 dartPrint(string); | |
11247 return; | |
11248 } | |
11249 if (typeof console == "object" && typeof console.log != "undefined") { | |
11250 console.log(string); | |
11251 return; | |
11252 } | |
11253 if (typeof window == "object") | |
11254 return; | |
11255 if (typeof print == "function") { | |
11256 print(string); | |
11257 return; | |
11258 } | |
11259 throw "Unable to print message: " + String(string); | |
11260 } | |
11261 }], ["dev_compiler.messages", "messages_widget.dart",, K, { | |
11262 "^": "", | |
11263 main: [function() { | |
11264 var $async$goto = 0, $async$completer = new P.Completer_Completer$sync(),
$async$handler = 1, $async$currentError, $async$temp1, $async$temp2; | |
11265 var $async$main = P._wrapJsFunctionForAsync(function($async$errorCode, $as
ync$result) { | |
11266 if ($async$errorCode === 1) { | |
11267 $async$currentError = $async$result; | |
11268 $async$goto = $async$handler; | |
11269 } | |
11270 while (true) | |
11271 switch ($async$goto) { | |
11272 case 0: | |
11273 // Function start | |
11274 $async$temp1 = C; | |
11275 $async$temp1 = $async$temp1.Window_methods; | |
11276 $async$goto = 2; | |
11277 return P._asyncHelper($async$temp1.get$animationFrame(window), $as
ync$main, $async$completer); | |
11278 case 2: | |
11279 // returning from await. | |
11280 $async$temp1 = K; | |
11281 $async$temp1 = $async$temp1; | |
11282 $async$temp2 = W; | |
11283 $async$goto = 3; | |
11284 return P._asyncHelper($async$temp2.HttpRequest_getString("messages
.json", null, null), $async$main, $async$completer); | |
11285 case 3: | |
11286 // returning from await. | |
11287 $async$temp1.displayMessages($async$result); | |
11288 // implicit return | |
11289 return P._asyncHelper(null, 0, $async$completer, null); | |
11290 case 1: | |
11291 // rethrow | |
11292 return P._asyncHelper($async$currentError, 1, $async$completer); | |
11293 } | |
11294 }); | |
11295 return P._asyncHelper(null, $async$main, $async$completer, null); | |
11296 }, "call$0", "messages__main$closure", 0, 0, 1], | |
11297 displayMessages: function(data) { | |
11298 var summary, t1, menuWrapper, contentWrapper, wrapperDiv; | |
11299 summary = X.GlobalSummary_parse(C.JsonCodec_null_null.decode$1(data)); | |
11300 t1 = P.LinkedHashMap__makeEmpty(); | |
11301 new K._Visitor(t1).visitGlobal$1(summary); | |
11302 if (t1.get$isEmpty(t1)) | |
11303 return; | |
11304 menuWrapper = document.createElement("div", null); | |
11305 J.get$classes$x(menuWrapper).add$1(0, "menu"); | |
11306 contentWrapper = document.createElement("div", null); | |
11307 J.get$classes$x(contentWrapper).add$1(0, "content"); | |
11308 wrapperDiv = document.createElement("div", null); | |
11309 J.get$classes$x(wrapperDiv).add$1(0, "dev-compiler-messages"); | |
11310 wrapperDiv.appendChild(menuWrapper); | |
11311 wrapperDiv.appendChild(contentWrapper); | |
11312 t1.forEach$1(0, new K.displayMessages_closure(menuWrapper, contentWrapper,
new K._Selection(null), new K._Selection(null))); | |
11313 document.body.appendChild(wrapperDiv); | |
11314 }, | |
11315 _hyperlinkUrls: function(text) { | |
11316 return J.replaceAllMapped$2$s(text, $.$get$_urlRegex(), new K._hyperlinkUr
ls_closure()); | |
11317 }, | |
11318 displayMessages_closure: { | |
11319 "^": "Closure:3;_captured_menuWrapper_0,_captured_contentWrapper_1,_captur
ed_selectedMenu_2,_captured_selectedContent_3", | |
11320 call$2: function(level, messages) { | |
11321 var contentItem, t1, menuItem, t2, m, t3, t4, val, message, span, t5, so
urce, t6, t7, logElement, messageElement; | |
11322 contentItem = document.createElement("div", null); | |
11323 J.get$classes$x(contentItem).add$1(0, level); | |
11324 t1 = J.getInterceptor$asx(messages); | |
11325 menuItem = W.Element_Element$html("<div class=\"" + H.S(level) + "\">" +
H.S(level) + " <span class=\"num\">(" + H.S(t1.get$length(messages)) + ")</span
></div>", null, null); | |
11326 this._captured_menuWrapper_0.appendChild(menuItem); | |
11327 this._captured_contentWrapper_1.appendChild(contentItem); | |
11328 t2 = J.get$onClick$x(menuItem); | |
11329 H.setRuntimeTypeInfo(new W._EventStreamSubscription(0, t2._target, t2._e
ventType, W._wrapZone(new K.displayMessages__closure(this._captured_selectedMenu
_2, this._captured_selectedContent_3, contentItem, menuItem)), t2._useCapture),
[H.getTypeArgumentByIndex(t2, 0)])._tryResume$0(); | |
11330 for (t1 = t1.get$iterator(messages); t1.moveNext$0();) { | |
11331 m = t1.get$current(); | |
11332 t2 = J.getInterceptor$x(m); | |
11333 t3 = t2.get$message(m); | |
11334 t4 = $.$get$_escaper(); | |
11335 t4.toString; | |
11336 val = t4._convert$3(t3, 0, J.get$length$asx(t3)); | |
11337 message = K._hyperlinkUrls(val == null ? t3 : val); | |
11338 span = t2.get$span(m); | |
11339 t2 = "<div class=\"message\"><div class=\"text " + H.S(level) + "\">"
+ message + "</div>"; | |
11340 if (span != null) { | |
11341 t3 = J.getInterceptor$x(span); | |
11342 t5 = t3.get$start(span); | |
11343 source = t5.sourceUrl; | |
11344 t2 += "<div class=\"location\"> <span class=\"location\">" + (H.S(s
ource == null ? "unknown source" : source) + ":" + H.S(J.$add$ns(t5.line, 1)) +
":" + H.S(J.$add$ns(t5.column, 1))) + "</span></div> <span class=\"text\">"; | |
11345 if (!!t3.$isSourceSpanWithContext) { | |
11346 t3 = span.context; | |
11347 t5 = span.start.column; | |
11348 t6 = J.getInterceptor$s(t3).substring$2(t3, 0, t5); | |
11349 val = t4._convert$3(t6, 0, t6.length); | |
11350 t2 = t2 + H.S(val == null ? t6 : val) + ("<span class=\"" + H.S(le
vel) + "\">"); | |
11351 t6 = span.text; | |
11352 t7 = J.getInterceptor$asx(t6); | |
11353 val = t4._convert$3(t6, 0, t7.get$length(t6)); | |
11354 t2 = t2 + H.S(val == null ? t6 : val) + "</span>"; | |
11355 t6 = C.JSString_methods.substring$1(t3, J.$add$ns(t5, t7.get$lengt
h(t6))); | |
11356 val = t4._convert$3(t6, 0, t6.length); | |
11357 t2 += H.S(val == null ? t6 : val); | |
11358 } else { | |
11359 t3 = span.text; | |
11360 val = t4._convert$3(t3, 0, J.get$length$asx(t3)); | |
11361 t2 += H.S(val == null ? t3 : val); | |
11362 } | |
11363 t2 += "</span></div></div>"; | |
11364 } | |
11365 t2 += "</div>"; | |
11366 t2 = t2.charCodeAt(0) == 0 ? t2 : t2; | |
11367 t3 = []; | |
11368 t3.$builtinTypeInfo = [W.NodeValidator]; | |
11369 t3.push(W._Html5NodeValidator$(null)); | |
11370 t3.push(W._TemplatingNodeValidator$()); | |
11371 t3.push(W._SimpleNodeValidator$(new K._OpenUriPolicy(), C.List_h4r, C.
List_A_FORM, C.List_BSc)); | |
11372 logElement = W.Element_Element$html(t2, null, new W.NodeValidatorBuild
er(t3)); | |
11373 contentItem.appendChild(logElement); | |
11374 messageElement = J.querySelector$1$x(logElement, "div.text"); | |
11375 t2 = J.get$onClick$x(messageElement); | |
11376 t3 = t2._eventType; | |
11377 t4 = t2._useCapture; | |
11378 t5 = new W._EventStreamSubscription(0, t2._target, t3, W._wrapZone(new
K.displayMessages__closure0(messageElement)), t4); | |
11379 t5.$builtinTypeInfo = [H.getTypeArgumentByIndex(t2, 0)]; | |
11380 t2 = t5._onData; | |
11381 t6 = t2 != null; | |
11382 if (t6 && t5._pauseCount <= 0) { | |
11383 t5 = t5._target; | |
11384 t5.toString; | |
11385 if (t6) | |
11386 J._addEventListener$3$x(t5, t3, t2, t4); | |
11387 } | |
11388 } | |
11389 } | |
11390 }, | |
11391 displayMessages__closure: { | |
11392 "^": "Closure:0;_captured_selectedMenu_4,_captured_selectedContent_5,_capt
ured_contentItem_6,_captured_menuItem_7", | |
11393 call$1: function(_) { | |
11394 this._captured_selectedMenu_4.select$1(0, this._captured_menuItem_7); | |
11395 this._captured_selectedContent_5.select$1(0, this._captured_contentItem_
6); | |
11396 } | |
11397 }, | |
11398 displayMessages__closure0: { | |
11399 "^": "Closure:0;_captured_messageElement_8", | |
11400 call$1: function(e) { | |
11401 var t1 = this._captured_messageElement_8; | |
11402 if (J.$eq$(J.get$target$x(e), t1)) | |
11403 J.get$classes$x(t1).toggle$1(0, "expanded"); | |
11404 } | |
11405 }, | |
11406 _Selection: { | |
11407 "^": "Object;_selected", | |
11408 select$1: function(_, newItem) { | |
11409 var t1 = this._selected; | |
11410 if (t1 == null ? newItem == null : t1 === newItem) | |
11411 this._selected = null; | |
11412 else { | |
11413 if (t1 != null) | |
11414 J.get$classes$x(t1).remove$1(0, "active"); | |
11415 this._selected = newItem; | |
11416 } | |
11417 J.get$classes$x(newItem).toggle$1(0, "active"); | |
11418 } | |
11419 }, | |
11420 _hyperlinkUrls_closure: { | |
11421 "^": "Closure:0;", | |
11422 call$1: function(m) { | |
11423 return "<a href=\"" + H.S(m.group$1(0)) + "\" target=\"blank\">" + H.S(m
.group$1(0)) + "</a>"; | |
11424 } | |
11425 }, | |
11426 _OpenUriPolicy: { | |
11427 "^": "Object;", | |
11428 allowsUri$1: function(uri) { | |
11429 return true; | |
11430 } | |
11431 }, | |
11432 _Visitor: { | |
11433 "^": "RecursiveSummaryVisitor;messagesByLevel", | |
11434 visitMessage$1: function(message) { | |
11435 var level, t1; | |
11436 level = J.toLowerCase$0$s(message.level); | |
11437 t1 = this.messagesByLevel; | |
11438 t1.putIfAbsent$2(level, new K._Visitor_visitMessage_closure()); | |
11439 J.add$1$ax(t1.$index(0, level), message); | |
11440 } | |
11441 }, | |
11442 _Visitor_visitMessage_closure: { | |
11443 "^": "Closure:1;", | |
11444 call$0: function() { | |
11445 return []; | |
11446 } | |
11447 } | |
11448 }, 1], ["dev_compiler.src.summary", "package:dev_compiler/src/summary.dart",,
X, { | |
11449 "^": "", | |
11450 Summary: { | |
11451 "^": "Object;" | |
11452 }, | |
11453 GlobalSummary: { | |
11454 "^": "Object;system,packages,loose", | |
11455 accept$1: function(_, visitor) { | |
11456 return visitor.visitGlobal$1(this); | |
11457 }, | |
11458 static: {GlobalSummary_parse: function(json) { | |
11459 var res, t1; | |
11460 res = new X.GlobalSummary(P.LinkedHashMap_LinkedHashMap$_empty(P.Strin
g, X.LibrarySummary), P.LinkedHashMap_LinkedHashMap$_empty(P.String, X.PackageSu
mmary), P.LinkedHashMap_LinkedHashMap$_empty(P.String, X.IndividualSummary)); | |
11461 t1 = J.getInterceptor$asx(json); | |
11462 J.map$1$ax(t1.$index(json, "system"), X.summary_LibrarySummary_parse$c
losure()).forEach$1(0, new X.GlobalSummary_parse_closure(res)); | |
11463 J.map$1$ax(t1.$index(json, "packages"), X.summary_PackageSummary_parse
$closure()).forEach$1(0, new X.GlobalSummary_parse_closure0(res)); | |
11464 J.forEach$1$ax(t1.$index(json, "loose"), new X.GlobalSummary_parse_clo
sure1(res)); | |
11465 return res; | |
11466 }} | |
11467 }, | |
11468 GlobalSummary_parse_closure: { | |
11469 "^": "Closure:0;_captured_res_0", | |
11470 call$1: function(l) { | |
11471 this._captured_res_0.system.$indexSet(0, J.get$name$x(l), l); | |
11472 } | |
11473 }, | |
11474 GlobalSummary_parse_closure0: { | |
11475 "^": "Closure:0;_captured_res_1", | |
11476 call$1: function(p) { | |
11477 this._captured_res_1.packages.$indexSet(0, J.get$name$x(p), p); | |
11478 } | |
11479 }, | |
11480 GlobalSummary_parse_closure1: { | |
11481 "^": "Closure:0;_captured_res_2", | |
11482 call$1: function(e) { | |
11483 var t1, summary, t2, t3; | |
11484 t1 = J.getInterceptor$asx(e); | |
11485 if (J.$eq$(t1.$index(e, 0), "LibrarySummary")) | |
11486 summary = X.LibrarySummary_parse(t1.$index(e, 1)); | |
11487 else { | |
11488 t1 = t1.$index(e, 1); | |
11489 t2 = J.getInterceptor$asx(t1); | |
11490 t3 = t2.$index(t1, "name"); | |
11491 t1 = P.List_List$from(J.map$1$ax(t2.$index(t1, "messages"), X.summary_
MessageSummary_parse$closure()), true, X.MessageSummary); | |
11492 summary = new X.HtmlSummary(t3, t1); | |
11493 } | |
11494 this._captured_res_2.loose.$indexSet(0, summary.get$name(summary), summa
ry); | |
11495 } | |
11496 }, | |
11497 PackageSummary: { | |
11498 "^": "Object;name>,libraries", | |
11499 accept$1: function(_, visitor) { | |
11500 return visitor.visitPackage$1(this); | |
11501 }, | |
11502 static: {PackageSummary_parse: [function(json) { | |
11503 var t1, res; | |
11504 t1 = J.getInterceptor$asx(json); | |
11505 res = new X.PackageSummary(t1.$index(json, "package_name"), P.LinkedHa
shMap_LinkedHashMap$_empty(P.String, X.LibrarySummary)); | |
11506 J.map$1$ax(t1.$index(json, "libraries"), X.summary_LibrarySummary_pars
e$closure()).forEach$1(0, new X.PackageSummary_parse_closure(res)); | |
11507 return res; | |
11508 }, "call$1", "summary_PackageSummary_parse$closure", 2, 0, 29]} | |
11509 }, | |
11510 PackageSummary_parse_closure: { | |
11511 "^": "Closure:0;_captured_res_0", | |
11512 call$1: function(l) { | |
11513 this._captured_res_0.libraries.$indexSet(0, J.get$name$x(l), l); | |
11514 } | |
11515 }, | |
11516 IndividualSummary: { | |
11517 "^": "Summary;" | |
11518 }, | |
11519 LibrarySummary: { | |
11520 "^": "Object;name>,messages,_uris,_lines", | |
11521 accept$1: function(_, visitor) { | |
11522 return visitor.visitLibrary$1(this); | |
11523 }, | |
11524 static: {LibrarySummary_parse: [function(json) { | |
11525 var t1, t2, t3, t4; | |
11526 t1 = J.getInterceptor$asx(json); | |
11527 t2 = t1.$index(json, "library_name"); | |
11528 t3 = P.List_List$from(J.map$1$ax(t1.$index(json, "messages"), X.summar
y_MessageSummary_parse$closure()), true, X.MessageSummary); | |
11529 t1 = t1.$index(json, "lines"); | |
11530 t4 = P.HashSet_HashSet(null, null, null, P.Uri); | |
11531 return new X.LibrarySummary(t2, t3, t4, t1 != null ? t1 : 0); | |
11532 }, "call$1", "summary_LibrarySummary_parse$closure", 2, 0, 30]} | |
11533 }, | |
11534 HtmlSummary: { | |
11535 "^": "Object;name>,messages", | |
11536 accept$1: function(_, visitor) { | |
11537 return visitor.visitHtml$1(this); | |
11538 } | |
11539 }, | |
11540 MessageSummary: { | |
11541 "^": "Object;kind,level,span>,message>", | |
11542 accept$1: function(_, visitor) { | |
11543 return visitor.visitMessage$1(this); | |
11544 }, | |
11545 static: {MessageSummary_parse: [function(json) { | |
11546 var t1, t2, t3, t4, start, end, context, span; | |
11547 t1 = J.getInterceptor$asx(json); | |
11548 t2 = J.$index$asx(t1.$index(json, "start"), 0); | |
11549 t3 = t1.$index(json, "url"); | |
11550 t4 = J.$index$asx(t1.$index(json, "start"), 1); | |
11551 start = O.SourceLocation$(t2, J.$index$asx(t1.$index(json, "start"), 2
), t4, t3); | |
11552 t3 = J.$index$asx(t1.$index(json, "end"), 0); | |
11553 t4 = t1.$index(json, "url"); | |
11554 t2 = J.$index$asx(t1.$index(json, "end"), 1); | |
11555 end = O.SourceLocation$(t3, J.$index$asx(t1.$index(json, "end"), 2), t
2, t4); | |
11556 context = t1.$index(json, "context"); | |
11557 if (context != null) { | |
11558 t2 = t1.$index(json, "text"); | |
11559 span = new E.SourceSpanWithContext(context, start, end, t2); | |
11560 span.SourceSpanBase$3(start, end, t2); | |
11561 if (J.contains$1$asx(context, t2) !== true) | |
11562 H.throwExpression(P.ArgumentError$("The context line \"" + H.S(con
text) + "\" must contain \"" + H.S(t2) + "\".")); | |
11563 t3 = start.column; | |
11564 if (D.findLineStart(context, t2, t3) == null) | |
11565 H.throwExpression(P.ArgumentError$("The span text \"" + H.S(t2) +
"\" must start at column " + H.S(J.$add$ns(t3, 1)) + " in a line within \"" + H.
S(context) + "\".")); | |
11566 } else | |
11567 span = T.SourceSpanBase$(start, end, t1.$index(json, "text")); | |
11568 return new X.MessageSummary(t1.$index(json, "kind"), t1.$index(json, "
level"), span, t1.$index(json, "message")); | |
11569 }, "call$1", "summary_MessageSummary_parse$closure", 2, 0, 31]} | |
11570 }, | |
11571 RecursiveSummaryVisitor: { | |
11572 "^": "Object;", | |
11573 visitGlobal$1: function(global) { | |
11574 var t1; | |
11575 for (t1 = global.system, t1 = t1.get$values(t1), t1 = t1.get$iterator(t1
); t1.moveNext$0();) | |
11576 J.accept$1$x(t1.get$current(), this); | |
11577 for (t1 = global.packages, t1 = t1.get$values(t1), t1 = t1.get$iterator(
t1); t1.moveNext$0();) | |
11578 J.accept$1$x(t1.get$current(), this); | |
11579 for (t1 = global.loose, t1 = t1.get$values(t1), t1 = t1.get$iterator(t1)
; t1.moveNext$0();) | |
11580 J.accept$1$x(t1.get$current(), this); | |
11581 }, | |
11582 visitPackage$1: function($package) { | |
11583 var t1; | |
11584 for (t1 = $package.libraries, t1 = t1.get$values(t1), t1 = t1.get$iterat
or(t1); t1.moveNext$0();) | |
11585 J.accept$1$x(t1.get$current(), this); | |
11586 }, | |
11587 visitLibrary$1: function(lib) { | |
11588 var t1, t2, _i; | |
11589 for (t1 = lib.messages, t2 = t1.length, _i = 0; _i < t1.length; t1.lengt
h === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) | |
11590 J.accept$1$x(t1[_i], this); | |
11591 }, | |
11592 visitHtml$1: function(html) { | |
11593 var t1, t2, _i; | |
11594 for (t1 = html.messages, t2 = t1.length, _i = 0; _i < t1.length; t1.leng
th === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i) | |
11595 J.accept$1$x(t1[_i], this); | |
11596 }, | |
11597 visitMessage$1: function(message) { | |
11598 } | |
11599 } | |
11600 }], ["html_common", "dart:html_common",, P, { | |
11601 "^": "", | |
11602 Device_isOpera: function() { | |
11603 var t1 = $.Device__isOpera; | |
11604 if (t1 == null) { | |
11605 t1 = J.contains$2$asx(window.navigator.userAgent, "Opera", 0); | |
11606 $.Device__isOpera = t1; | |
11607 } | |
11608 return t1; | |
11609 }, | |
11610 Device_isWebKit: function() { | |
11611 var t1 = $.Device__isWebKit; | |
11612 if (t1 == null) { | |
11613 t1 = P.Device_isOpera() !== true && J.contains$2$asx(window.navigator.us
erAgent, "WebKit", 0); | |
11614 $.Device__isWebKit = t1; | |
11615 } | |
11616 return t1; | |
11617 }, | |
11618 CssClassSetImpl: { | |
11619 "^": "Object;", | |
11620 _validateToken$1: function(value) { | |
11621 if ($.$get$CssClassSetImpl__validTokenRE()._nativeRegExp.test(H.checkStr
ing(value))) | |
11622 return value; | |
11623 throw H.wrapException(P.ArgumentError$value(value, "value", "Not a valid
class token")); | |
11624 }, | |
11625 toString$0: function(_) { | |
11626 return this.readClasses$0().join$1(0, " "); | |
11627 }, | |
11628 toggle$2: function(_, value, shouldAdd) { | |
11629 var s, result; | |
11630 this._validateToken$1(value); | |
11631 s = this.readClasses$0(); | |
11632 if (!s.contains$1(0, value)) { | |
11633 s.add$1(0, value); | |
11634 result = true; | |
11635 } else { | |
11636 s.remove$1(0, value); | |
11637 result = false; | |
11638 } | |
11639 this.writeClasses$1(s); | |
11640 return result; | |
11641 }, | |
11642 toggle$1: function($receiver, value) { | |
11643 return this.toggle$2($receiver, value, null); | |
11644 }, | |
11645 get$iterator: function(_) { | |
11646 var t1 = this.readClasses$0(); | |
11647 t1 = H.setRuntimeTypeInfo(new P.LinkedHashSetIterator(t1, t1._collection
$_modifications, null, null), [null]); | |
11648 t1._cell = t1._set._collection$_first; | |
11649 return t1; | |
11650 }, | |
11651 forEach$1: function(_, f) { | |
11652 this.readClasses$0().forEach$1(0, f); | |
11653 }, | |
11654 map$1: function(_, f) { | |
11655 var t1 = this.readClasses$0(); | |
11656 return H.setRuntimeTypeInfo(new H.EfficientLengthMappedIterable(t1, f),
[H.getTypeArgumentByIndex(t1, 0), null]); | |
11657 }, | |
11658 get$isEmpty: function(_) { | |
11659 return this.readClasses$0()._collection$_length === 0; | |
11660 }, | |
11661 get$isNotEmpty: function(_) { | |
11662 return this.readClasses$0()._collection$_length !== 0; | |
11663 }, | |
11664 get$length: function(_) { | |
11665 return this.readClasses$0()._collection$_length; | |
11666 }, | |
11667 contains$1: function(_, value) { | |
11668 if (typeof value !== "string") | |
11669 return false; | |
11670 this._validateToken$1(value); | |
11671 return this.readClasses$0().contains$1(0, value); | |
11672 }, | |
11673 lookup$1: function(value) { | |
11674 return this.contains$1(0, value) ? value : null; | |
11675 }, | |
11676 add$1: function(_, value) { | |
11677 this._validateToken$1(value); | |
11678 return this.modify$1(new P.CssClassSetImpl_add_closure(value)); | |
11679 }, | |
11680 remove$1: function(_, value) { | |
11681 var s, result; | |
11682 this._validateToken$1(value); | |
11683 s = this.readClasses$0(); | |
11684 result = s.remove$1(0, value); | |
11685 this.writeClasses$1(s); | |
11686 return result; | |
11687 }, | |
11688 get$last: function(_) { | |
11689 var t1 = this.readClasses$0(); | |
11690 return t1.get$last(t1); | |
11691 }, | |
11692 modify$1: function(f) { | |
11693 var s, ret; | |
11694 s = this.readClasses$0(); | |
11695 ret = f.call$1(s); | |
11696 this.writeClasses$1(s); | |
11697 return ret; | |
11698 }, | |
11699 $isEfficientLength: 1 | |
11700 }, | |
11701 CssClassSetImpl_add_closure: { | |
11702 "^": "Closure:0;_captured_value_0", | |
11703 call$1: function(s) { | |
11704 return s.add$1(0, this._captured_value_0); | |
11705 } | |
11706 } | |
11707 }], ["path", "package:path/path.dart",, B, { | |
11708 "^": "", | |
11709 current: function() { | |
11710 var uri, t1, t2, targetScheme, targetUserInfo, targetHost, targetPort, tar
getPath, targetQuery, mergedPath, fragment, path; | |
11711 uri = P.Uri_base(); | |
11712 t1 = $.$get$Style_platform(); | |
11713 t2 = $.$get$Style_url(); | |
11714 if (t1 == null ? t2 == null : t1 === t2) { | |
11715 t1 = P.Uri_parse(".", 0, null); | |
11716 targetScheme = t1.scheme; | |
11717 if (targetScheme.length !== 0) { | |
11718 if (t1._host != null) { | |
11719 targetUserInfo = t1._userInfo; | |
11720 targetHost = t1.get$host(t1); | |
11721 targetPort = t1._port != null ? t1.get$port(t1) : null; | |
11722 } else { | |
11723 targetUserInfo = ""; | |
11724 targetHost = null; | |
11725 targetPort = null; | |
11726 } | |
11727 targetPath = P.Uri__removeDotSegments(t1._path); | |
11728 targetQuery = t1._query; | |
11729 if (targetQuery != null) | |
11730 ; | |
11731 else | |
11732 targetQuery = null; | |
11733 } else { | |
11734 targetScheme = uri.scheme; | |
11735 if (t1._host != null) { | |
11736 targetUserInfo = t1._userInfo; | |
11737 targetHost = t1.get$host(t1); | |
11738 targetPort = P.Uri__makePort(t1._port != null ? t1.get$port(t1) : nu
ll, targetScheme); | |
11739 targetPath = P.Uri__removeDotSegments(t1._path); | |
11740 targetQuery = t1._query; | |
11741 if (targetQuery != null) | |
11742 ; | |
11743 else | |
11744 targetQuery = null; | |
11745 } else { | |
11746 targetUserInfo = uri._userInfo; | |
11747 targetHost = uri._host; | |
11748 targetPort = uri._port; | |
11749 targetPath = t1._path; | |
11750 if (targetPath === "") { | |
11751 targetPath = uri._path; | |
11752 targetQuery = t1._query; | |
11753 if (targetQuery != null) | |
11754 ; | |
11755 else | |
11756 targetQuery = uri._query; | |
11757 } else { | |
11758 if (C.JSString_methods.startsWith$1(targetPath, "/")) | |
11759 targetPath = P.Uri__removeDotSegments(targetPath); | |
11760 else { | |
11761 t2 = uri._path; | |
11762 if (t2.length === 0) | |
11763 targetPath = targetScheme.length === 0 && targetHost == null ?
targetPath : P.Uri__removeDotSegments("/" + targetPath); | |
11764 else { | |
11765 mergedPath = uri._mergePaths$2(t2, targetPath); | |
11766 targetPath = targetScheme.length !== 0 || targetHost != null |
| C.JSString_methods.startsWith$1(t2, "/") ? P.Uri__removeDotSegments(mergedPath
) : P.Uri__normalizeRelativePath(mergedPath); | |
11767 } | |
11768 } | |
11769 targetQuery = t1._query; | |
11770 if (targetQuery != null) | |
11771 ; | |
11772 else | |
11773 targetQuery = null; | |
11774 } | |
11775 } | |
11776 } | |
11777 fragment = t1._fragment; | |
11778 if (fragment != null) | |
11779 ; | |
11780 else | |
11781 fragment = null; | |
11782 return new P.Uri(targetHost, targetPort, targetPath, targetScheme, targe
tUserInfo, targetQuery, fragment, null, null).toString$0(0); | |
11783 } else { | |
11784 path = uri.toFilePath$0(); | |
11785 return C.JSString_methods.substring$2(path, 0, path.length - 1); | |
11786 } | |
11787 } | |
11788 }], ["path.context", "package:path/src/context.dart",, F, { | |
11789 "^": "", | |
11790 _validateArgList: function(method, args) { | |
11791 var i, numArgs, numArgs0, message, t1, t2; | |
11792 for (i = 1; i < 8; ++i) { | |
11793 if (args[i] == null || args[i - 1] != null) | |
11794 continue; | |
11795 for (numArgs = 8; numArgs >= 1; numArgs = numArgs0) { | |
11796 numArgs0 = numArgs - 1; | |
11797 if (args[numArgs0] != null) | |
11798 break; | |
11799 } | |
11800 message = new P.StringBuffer(""); | |
11801 t1 = method + "("; | |
11802 message._contents = t1; | |
11803 t2 = new H.SubListIterable(args, 0, numArgs); | |
11804 t2.$builtinTypeInfo = [H.getTypeArgumentByIndex(args, 0)]; | |
11805 if (numArgs < 0) | |
11806 H.throwExpression(P.RangeError$range(numArgs, 0, null, "end", null)); | |
11807 if (0 > numArgs) | |
11808 H.throwExpression(P.RangeError$range(0, 0, numArgs, "start", null)); | |
11809 t2 = new H.MappedListIterable(t2, new F._validateArgList_closure()); | |
11810 t2.$builtinTypeInfo = [null, null]; | |
11811 t1 += t2.join$1(0, ", "); | |
11812 message._contents = t1; | |
11813 message._contents = t1 + ("): part " + (i - 1) + " was null, but part "
+ i + " was not."); | |
11814 throw H.wrapException(P.ArgumentError$(message.toString$0(0))); | |
11815 } | |
11816 }, | |
11817 Context: { | |
11818 "^": "Object;style,_context$_current", | |
11819 join$8: function(_, part1, part2, part3, part4, part5, part6, part7, part8
) { | |
11820 var parts = H.setRuntimeTypeInfo([part1, part2, part3, part4, part5, par
t6, part7, part8], [P.String]); | |
11821 F._validateArgList("join", parts); | |
11822 return this.joinAll$1(H.setRuntimeTypeInfo(new H.WhereIterable(parts, ne
w F.Context_join_closure()), [H.getTypeArgumentByIndex(parts, 0)])); | |
11823 }, | |
11824 joinAll$1: function(parts) { | |
11825 var buffer, t1, t2, t3, needsSeparator, isAbsoluteAndNotRootRelative, pa
rt, parsed, t4, t5; | |
11826 buffer = new P.StringBuffer(""); | |
11827 for (t1 = H.setRuntimeTypeInfo(new H.WhereIterable(parts, new F.Context_
joinAll_closure()), [H.getRuntimeTypeArgument(parts, "Iterable", 0)]), t1 = H.se
tRuntimeTypeInfo(new H.WhereIterator(J.get$iterator$ax(t1._iterable), t1._f), [H
.getTypeArgumentByIndex(t1, 0)]), t2 = this.style, t3 = t1._iterator, needsSepar
ator = false, isAbsoluteAndNotRootRelative = false; t1.moveNext$0();) { | |
11828 part = t3.get$current(); | |
11829 if (t2.isRootRelative$1(part) && isAbsoluteAndNotRootRelative) { | |
11830 parsed = Q.ParsedPath_ParsedPath$parse(part, t2); | |
11831 t4 = buffer._contents; | |
11832 t4 = t4.charCodeAt(0) == 0 ? t4 : t4; | |
11833 t4 = C.JSString_methods.substring$2(t4, 0, t2.rootLength$1(t4)); | |
11834 parsed.root = t4; | |
11835 if (t2.needsSeparator$1(t4)) { | |
11836 t4 = parsed.separators; | |
11837 t5 = t2.get$separator(); | |
11838 if (0 >= t4.length) | |
11839 return H.ioore(t4, 0); | |
11840 t4[0] = t5; | |
11841 } | |
11842 buffer._contents = ""; | |
11843 buffer._contents += parsed.toString$0(0); | |
11844 } else if (t2.rootLength$1(part) > 0) { | |
11845 isAbsoluteAndNotRootRelative = !t2.isRootRelative$1(part); | |
11846 buffer._contents = ""; | |
11847 buffer._contents += H.S(part); | |
11848 } else { | |
11849 t4 = J.getInterceptor$asx(part); | |
11850 if (J.$gt$n(t4.get$length(part), 0) && t2.containsSeparator$1(t4.$in
dex(part, 0)) === true) | |
11851 ; | |
11852 else if (needsSeparator) | |
11853 buffer._contents += t2.get$separator(); | |
11854 buffer._contents += H.S(part); | |
11855 } | |
11856 needsSeparator = t2.needsSeparator$1(part); | |
11857 } | |
11858 t1 = buffer._contents; | |
11859 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
11860 }, | |
11861 split$1: function(_, path) { | |
11862 var parsed, t1, t2; | |
11863 parsed = Q.ParsedPath_ParsedPath$parse(path, this.style); | |
11864 t1 = parsed.parts; | |
11865 t1 = H.setRuntimeTypeInfo(new H.WhereIterable(t1, new F.Context_split_cl
osure()), [H.getTypeArgumentByIndex(t1, 0)]); | |
11866 t1 = P.List_List$from(t1, true, H.getRuntimeTypeArgument(t1, "Iterable",
0)); | |
11867 parsed.parts = t1; | |
11868 t2 = parsed.root; | |
11869 if (t2 != null) | |
11870 C.JSArray_methods.insert$2(t1, 0, t2); | |
11871 return parsed.parts; | |
11872 }, | |
11873 normalize$1: function(path) { | |
11874 var parsed = Q.ParsedPath_ParsedPath$parse(path, this.style); | |
11875 parsed.normalize$0(); | |
11876 return parsed.toString$0(0); | |
11877 }, | |
11878 relative$2$from: function(path, from) { | |
11879 var t1, t2, fromParsed, pathParsed, t3; | |
11880 from = this._context$_current; | |
11881 from = from != null ? from : B.current(); | |
11882 t1 = this.style; | |
11883 if (t1.rootLength$1(from) <= 0 && t1.rootLength$1(path) > 0) | |
11884 return this.normalize$1(path); | |
11885 if (t1.rootLength$1(path) <= 0 || t1.isRootRelative$1(path)) { | |
11886 t2 = this._context$_current; | |
11887 path = this.join$8(0, t2 != null ? t2 : B.current(), path, null, null,
null, null, null, null); | |
11888 } | |
11889 if (t1.rootLength$1(path) <= 0 && t1.rootLength$1(from) > 0) | |
11890 throw H.wrapException(new E.PathException("Unable to find a path to \"
" + path + "\" from \"" + H.S(from) + "\".")); | |
11891 fromParsed = Q.ParsedPath_ParsedPath$parse(from, t1); | |
11892 fromParsed.normalize$0(); | |
11893 pathParsed = Q.ParsedPath_ParsedPath$parse(path, t1); | |
11894 pathParsed.normalize$0(); | |
11895 t2 = fromParsed.parts; | |
11896 if (t2.length > 0 && J.$eq$(t2[0], ".")) | |
11897 return pathParsed.toString$0(0); | |
11898 if (!J.$eq$(fromParsed.root, pathParsed.root)) { | |
11899 t2 = fromParsed.root; | |
11900 if (!(t2 == null || pathParsed.root == null)) { | |
11901 t2 = J.toLowerCase$0$s(t2); | |
11902 H.checkString("\\"); | |
11903 t2 = H.stringReplaceAllUnchecked(t2, "/", "\\"); | |
11904 t3 = J.toLowerCase$0$s(pathParsed.root); | |
11905 H.checkString("\\"); | |
11906 t3 = t2 !== H.stringReplaceAllUnchecked(t3, "/", "\\"); | |
11907 t2 = t3; | |
11908 } else | |
11909 t2 = true; | |
11910 } else | |
11911 t2 = false; | |
11912 if (t2) | |
11913 return pathParsed.toString$0(0); | |
11914 while (true) { | |
11915 t2 = fromParsed.parts; | |
11916 if (t2.length > 0) { | |
11917 t3 = pathParsed.parts; | |
11918 t2 = t3.length > 0 && J.$eq$(t2[0], t3[0]); | |
11919 } else | |
11920 t2 = false; | |
11921 if (!t2) | |
11922 break; | |
11923 C.JSArray_methods.removeAt$1(fromParsed.parts, 0); | |
11924 C.JSArray_methods.removeAt$1(fromParsed.separators, 1); | |
11925 C.JSArray_methods.removeAt$1(pathParsed.parts, 0); | |
11926 C.JSArray_methods.removeAt$1(pathParsed.separators, 1); | |
11927 } | |
11928 t2 = fromParsed.parts; | |
11929 if (t2.length > 0 && J.$eq$(t2[0], "..")) | |
11930 throw H.wrapException(new E.PathException("Unable to find a path to \"
" + path + "\" from \"" + H.S(from) + "\".")); | |
11931 C.JSArray_methods.insertAll$2(pathParsed.parts, 0, P.List_List$filled(fr
omParsed.parts.length, "..", null)); | |
11932 t2 = pathParsed.separators; | |
11933 if (0 >= t2.length) | |
11934 return H.ioore(t2, 0); | |
11935 t2[0] = ""; | |
11936 C.JSArray_methods.insertAll$2(t2, 1, P.List_List$filled(fromParsed.parts
.length, t1.get$separator(), null)); | |
11937 t1 = pathParsed.parts; | |
11938 t2 = t1.length; | |
11939 if (t2 === 0) | |
11940 return "."; | |
11941 if (t2 > 1 && J.$eq$(C.JSArray_methods.get$last(t1), ".")) { | |
11942 C.JSArray_methods.removeLast$0(pathParsed.parts); | |
11943 t1 = pathParsed.separators; | |
11944 C.JSArray_methods.removeLast$0(t1); | |
11945 C.JSArray_methods.removeLast$0(t1); | |
11946 C.JSArray_methods.add$1(t1, ""); | |
11947 } | |
11948 pathParsed.root = ""; | |
11949 pathParsed.removeTrailingSeparators$0(); | |
11950 return pathParsed.toString$0(0); | |
11951 }, | |
11952 relative$1: function(path) { | |
11953 return this.relative$2$from(path, null); | |
11954 }, | |
11955 prettyUri$1: function(uri) { | |
11956 var t1, t2, path, rel; | |
11957 if (typeof uri === "string") | |
11958 uri = P.Uri_parse(uri, 0, null); | |
11959 if (uri.get$scheme() === "file") { | |
11960 t1 = this.style; | |
11961 t2 = $.$get$Style_url(); | |
11962 t2 = t1 == null ? t2 == null : t1 === t2; | |
11963 t1 = t2; | |
11964 } else | |
11965 t1 = false; | |
11966 if (t1) | |
11967 return uri.toString$0(0); | |
11968 t1 = uri.scheme; | |
11969 if (t1 !== "file") | |
11970 if (t1 !== "") { | |
11971 t1 = this.style; | |
11972 t2 = $.$get$Style_url(); | |
11973 t2 = t1 == null ? t2 != null : t1 !== t2; | |
11974 t1 = t2; | |
11975 } else | |
11976 t1 = false; | |
11977 else | |
11978 t1 = false; | |
11979 if (t1) | |
11980 return uri.toString$0(0); | |
11981 path = this.normalize$1(this.style.pathFromUri$1(uri)); | |
11982 rel = this.relative$1(path); | |
11983 return this.split$1(0, rel).length > this.split$1(0, path).length ? path
: rel; | |
11984 } | |
11985 }, | |
11986 Context_join_closure: { | |
11987 "^": "Closure:0;", | |
11988 call$1: function(part) { | |
11989 return part != null; | |
11990 } | |
11991 }, | |
11992 Context_joinAll_closure: { | |
11993 "^": "Closure:0;", | |
11994 call$1: function(part) { | |
11995 return !J.$eq$(part, ""); | |
11996 } | |
11997 }, | |
11998 Context_split_closure: { | |
11999 "^": "Closure:0;", | |
12000 call$1: function(part) { | |
12001 return J.get$isEmpty$asx(part) !== true; | |
12002 } | |
12003 }, | |
12004 _validateArgList_closure: { | |
12005 "^": "Closure:0;", | |
12006 call$1: function(arg) { | |
12007 return arg == null ? "null" : "\"" + H.S(arg) + "\""; | |
12008 } | |
12009 } | |
12010 }], ["path.internal_style", "package:path/src/internal_style.dart",, E, { | |
12011 "^": "", | |
12012 InternalStyle: { | |
12013 "^": "Style;", | |
12014 getRoot$1: function(path) { | |
12015 var $length = this.rootLength$1(path); | |
12016 if ($length > 0) | |
12017 return J.substring$2$s(path, 0, $length); | |
12018 return this.isRootRelative$1(path) ? J.$index$asx(path, 0) : null; | |
12019 } | |
12020 } | |
12021 }], ["path.parsed_path", "package:path/src/parsed_path.dart",, Q, { | |
12022 "^": "", | |
12023 ParsedPath: { | |
12024 "^": "Object;style,root,isRootRelative,parts,separators", | |
12025 removeTrailingSeparators$0: function() { | |
12026 var t1, t2; | |
12027 while (true) { | |
12028 t1 = this.parts; | |
12029 if (!(t1.length !== 0 && J.$eq$(C.JSArray_methods.get$last(t1), ""))) | |
12030 break; | |
12031 C.JSArray_methods.removeLast$0(this.parts); | |
12032 C.JSArray_methods.removeLast$0(this.separators); | |
12033 } | |
12034 t1 = this.separators; | |
12035 t2 = t1.length; | |
12036 if (t2 > 0) | |
12037 t1[t2 - 1] = ""; | |
12038 }, | |
12039 normalize$0: function() { | |
12040 var newParts, t1, t2, leadingDoubles, _i, part, t3, newSeparators; | |
12041 newParts = H.setRuntimeTypeInfo([], [P.String]); | |
12042 for (t1 = this.parts, t2 = t1.length, leadingDoubles = 0, _i = 0; _i < t
1.length; t1.length === t2 || (0, H.throwConcurrentModificationError)(t1), ++_i)
{ | |
12043 part = t1[_i]; | |
12044 t3 = J.getInterceptor(part); | |
12045 if (t3.$eq(part, ".") || t3.$eq(part, "")) | |
12046 ; | |
12047 else if (t3.$eq(part, "..")) | |
12048 if (newParts.length > 0) | |
12049 newParts.pop(); | |
12050 else | |
12051 ++leadingDoubles; | |
12052 else | |
12053 newParts.push(part); | |
12054 } | |
12055 if (this.root == null) | |
12056 C.JSArray_methods.insertAll$2(newParts, 0, P.List_List$filled(leadingD
oubles, "..", null)); | |
12057 if (newParts.length === 0 && this.root == null) | |
12058 newParts.push("."); | |
12059 newSeparators = P.List_List$generate(newParts.length, new Q.ParsedPath_n
ormalize_closure(this), true, P.String); | |
12060 t1 = this.root; | |
12061 C.JSArray_methods.insert$2(newSeparators, 0, t1 != null && newParts.leng
th > 0 && this.style.needsSeparator$1(t1) ? this.style.get$separator() : ""); | |
12062 this.parts = newParts; | |
12063 this.separators = newSeparators; | |
12064 t1 = this.root; | |
12065 if (t1 != null && this.style === $.$get$Style_windows()) | |
12066 this.root = J.replaceAll$2$s(t1, "/", "\\"); | |
12067 this.removeTrailingSeparators$0(); | |
12068 }, | |
12069 toString$0: function(_) { | |
12070 var builder, t1, i; | |
12071 builder = new P.StringBuffer(""); | |
12072 t1 = this.root; | |
12073 if (t1 != null) | |
12074 builder._contents = H.S(t1); | |
12075 for (i = 0; i < this.parts.length; ++i) { | |
12076 t1 = this.separators; | |
12077 if (i >= t1.length) | |
12078 return H.ioore(t1, i); | |
12079 builder._contents += H.S(t1[i]); | |
12080 t1 = this.parts; | |
12081 if (i >= t1.length) | |
12082 return H.ioore(t1, i); | |
12083 builder._contents += H.S(t1[i]); | |
12084 } | |
12085 t1 = builder._contents += H.S(C.JSArray_methods.get$last(this.separators
)); | |
12086 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
12087 }, | |
12088 static: {ParsedPath_ParsedPath$parse: function(path, style) { | |
12089 var root, isRootRelative, parts, separators, t1, start, i, t2; | |
12090 root = style.getRoot$1(path); | |
12091 isRootRelative = style.isRootRelative$1(path); | |
12092 if (root != null) | |
12093 path = J.substring$1$s(path, J.get$length$asx(root)); | |
12094 parts = H.setRuntimeTypeInfo([], [P.String]); | |
12095 separators = H.setRuntimeTypeInfo([], [P.String]); | |
12096 t1 = J.getInterceptor$asx(path); | |
12097 if (t1.get$isNotEmpty(path) && style.isSeparator$1(t1.codeUnitAt$1(pat
h, 0))) { | |
12098 separators.push(t1.$index(path, 0)); | |
12099 start = 1; | |
12100 } else { | |
12101 separators.push(""); | |
12102 start = 0; | |
12103 } | |
12104 i = start; | |
12105 while (true) { | |
12106 t2 = t1.get$length(path); | |
12107 if (typeof t2 !== "number") | |
12108 return H.iae(t2); | |
12109 if (!(i < t2)) | |
12110 break; | |
12111 if (style.isSeparator$1(t1.codeUnitAt$1(path, i))) { | |
12112 parts.push(C.JSString_methods.substring$2(path, start, i)); | |
12113 if (i >= path.length) | |
12114 return H.ioore(path, i); | |
12115 separators.push(path[i]); | |
12116 start = i + 1; | |
12117 } | |
12118 ++i; | |
12119 } | |
12120 t2 = t1.get$length(path); | |
12121 if (typeof t2 !== "number") | |
12122 return H.iae(t2); | |
12123 if (start < t2) { | |
12124 parts.push(t1.substring$1(path, start)); | |
12125 separators.push(""); | |
12126 } | |
12127 return new Q.ParsedPath(style, root, isRootRelative, parts, separators
); | |
12128 }} | |
12129 }, | |
12130 ParsedPath_normalize_closure: { | |
12131 "^": "Closure:0;_parsed_path$_captured_this_0", | |
12132 call$1: function(_) { | |
12133 return this._parsed_path$_captured_this_0.style.get$separator(); | |
12134 } | |
12135 } | |
12136 }], ["path.path_exception", "package:path/src/path_exception.dart",, E, { | |
12137 "^": "", | |
12138 PathException: { | |
12139 "^": "Object;message>", | |
12140 toString$0: function(_) { | |
12141 return "PathException: " + this.message; | |
12142 } | |
12143 } | |
12144 }], ["path.style", "package:path/src/style.dart",, S, { | |
12145 "^": "", | |
12146 Style__getPlatformStyle: function() { | |
12147 var scheme, userInfo, host, query, fragment, port, isFile, t1, path; | |
12148 if (P.Uri_base().scheme !== "file") | |
12149 return $.$get$Style_url(); | |
12150 if (!C.JSString_methods.endsWith$1(P.Uri_base()._path, "/")) | |
12151 return $.$get$Style_url(); | |
12152 scheme = P.Uri__makeScheme("", 0, 0); | |
12153 userInfo = P.Uri__makeUserInfo("", 0, 0); | |
12154 host = P.Uri__makeHost(null, 0, 0, false); | |
12155 query = P.Uri__makeQuery(null, 0, 0, null); | |
12156 fragment = P.Uri__makeFragment(null, 0, 0); | |
12157 port = P.Uri__makePort(null, scheme); | |
12158 isFile = scheme === "file"; | |
12159 if (host == null) | |
12160 t1 = userInfo.length !== 0 || port != null || isFile; | |
12161 else | |
12162 t1 = false; | |
12163 if (t1) | |
12164 host = ""; | |
12165 t1 = host == null; | |
12166 path = P.Uri__makePath("a/b", 0, 3, null, scheme, !t1); | |
12167 if (new P.Uri(host, port, scheme.length === 0 && t1 && !C.JSString_methods
.startsWith$1(path, "/") ? P.Uri__normalizeRelativePath(path) : P.Uri__removeDot
Segments(path), scheme, userInfo, query, fragment, null, null).toFilePath$0() ==
= "a\\b") | |
12168 return $.$get$Style_windows(); | |
12169 return $.$get$Style_posix(); | |
12170 }, | |
12171 Style: { | |
12172 "^": "Object;", | |
12173 toString$0: function(_) { | |
12174 return this.get$name(this); | |
12175 } | |
12176 } | |
12177 }], ["path.style.posix", "package:path/src/style/posix.dart",, Z, { | |
12178 "^": "", | |
12179 PosixStyle: { | |
12180 "^": "InternalStyle;name>,separator<,separators,separatorPattern,needsSepa
ratorPattern,rootPattern,relativeRootPattern", | |
12181 containsSeparator$1: function(path) { | |
12182 return J.contains$1$asx(path, "/"); | |
12183 }, | |
12184 isSeparator$1: function(codeUnit) { | |
12185 return codeUnit === 47; | |
12186 }, | |
12187 needsSeparator$1: function(path) { | |
12188 var t1 = J.getInterceptor$asx(path); | |
12189 return t1.get$isNotEmpty(path) && t1.codeUnitAt$1(path, J.$sub$n(t1.get$
length(path), 1)) !== 47; | |
12190 }, | |
12191 rootLength$1: function(path) { | |
12192 var t1 = J.getInterceptor$asx(path); | |
12193 if (t1.get$isNotEmpty(path) && t1.codeUnitAt$1(path, 0) === 47) | |
12194 return 1; | |
12195 return 0; | |
12196 }, | |
12197 isRootRelative$1: function(path) { | |
12198 return false; | |
12199 }, | |
12200 pathFromUri$1: function(uri) { | |
12201 var t1 = uri.scheme; | |
12202 if (t1 === "" || t1 === "file") | |
12203 return P.Uri__uriDecode(uri._path, C.Utf8Codec_false, false); | |
12204 throw H.wrapException(P.ArgumentError$("Uri " + uri.toString$0(0) + " mu
st have scheme 'file:'.")); | |
12205 } | |
12206 } | |
12207 }], ["path.style.url", "package:path/src/style/url.dart",, E, { | |
12208 "^": "", | |
12209 UrlStyle: { | |
12210 "^": "InternalStyle;name>,separator<,separators,separatorPattern,needsSepa
ratorPattern,rootPattern,relativeRootPattern", | |
12211 containsSeparator$1: function(path) { | |
12212 return J.contains$1$asx(path, "/"); | |
12213 }, | |
12214 isSeparator$1: function(codeUnit) { | |
12215 return codeUnit === 47; | |
12216 }, | |
12217 needsSeparator$1: function(path) { | |
12218 var t1 = J.getInterceptor$asx(path); | |
12219 if (t1.get$isEmpty(path) === true) | |
12220 return false; | |
12221 if (t1.codeUnitAt$1(path, J.$sub$n(t1.get$length(path), 1)) !== 47) | |
12222 return true; | |
12223 return C.JSString_methods.endsWith$1(path, "://") && this.rootLength$1(p
ath) === path.length; | |
12224 }, | |
12225 rootLength$1: function(path) { | |
12226 var t1, index; | |
12227 t1 = J.getInterceptor$asx(path); | |
12228 if (t1.get$isEmpty(path) === true) | |
12229 return 0; | |
12230 if (t1.codeUnitAt$1(path, 0) === 47) | |
12231 return 1; | |
12232 index = C.JSString_methods.indexOf$1(path, "/"); | |
12233 if (index > 0 && C.JSString_methods.startsWith$2(path, "://", index - 1)
) { | |
12234 index = C.JSString_methods.indexOf$2(path, "/", index + 2); | |
12235 if (index > 0) | |
12236 return index; | |
12237 return path.length; | |
12238 } | |
12239 return 0; | |
12240 }, | |
12241 isRootRelative$1: function(path) { | |
12242 var t1 = J.getInterceptor$asx(path); | |
12243 return t1.get$isNotEmpty(path) && t1.codeUnitAt$1(path, 0) === 47; | |
12244 }, | |
12245 pathFromUri$1: function(uri) { | |
12246 return uri.toString$0(0); | |
12247 } | |
12248 } | |
12249 }], ["path.style.windows", "package:path/src/style/windows.dart",, T, { | |
12250 "^": "", | |
12251 WindowsStyle: { | |
12252 "^": "InternalStyle;name>,separator<,separators,separatorPattern,needsSepa
ratorPattern,rootPattern,relativeRootPattern", | |
12253 containsSeparator$1: function(path) { | |
12254 return J.contains$1$asx(path, "/"); | |
12255 }, | |
12256 isSeparator$1: function(codeUnit) { | |
12257 return codeUnit === 47 || codeUnit === 92; | |
12258 }, | |
12259 needsSeparator$1: function(path) { | |
12260 var t1 = J.getInterceptor$asx(path); | |
12261 if (t1.get$isEmpty(path) === true) | |
12262 return false; | |
12263 t1 = t1.codeUnitAt$1(path, J.$sub$n(t1.get$length(path), 1)); | |
12264 return !(t1 === 47 || t1 === 92); | |
12265 }, | |
12266 rootLength$1: function(path) { | |
12267 var t1, index; | |
12268 t1 = J.getInterceptor$asx(path); | |
12269 if (t1.get$isEmpty(path) === true) | |
12270 return 0; | |
12271 if (t1.codeUnitAt$1(path, 0) === 47) | |
12272 return 1; | |
12273 if (C.JSString_methods.codeUnitAt$1(path, 0) === 92) { | |
12274 t1 = path.length; | |
12275 if (t1 < 2 || C.JSString_methods.codeUnitAt$1(path, 1) !== 92) | |
12276 return 1; | |
12277 index = C.JSString_methods.indexOf$2(path, "\\", 2); | |
12278 if (index > 0) { | |
12279 index = C.JSString_methods.indexOf$2(path, "\\", index + 1); | |
12280 if (index > 0) | |
12281 return index; | |
12282 } | |
12283 return t1; | |
12284 } | |
12285 if (path.length < 3) | |
12286 return 0; | |
12287 t1 = C.JSString_methods.codeUnitAt$1(path, 0); | |
12288 if (!(t1 >= 65 && t1 <= 90)) | |
12289 t1 = t1 >= 97 && t1 <= 122; | |
12290 else | |
12291 t1 = true; | |
12292 if (!t1) | |
12293 return 0; | |
12294 if (C.JSString_methods.codeUnitAt$1(path, 1) !== 58) | |
12295 return 0; | |
12296 t1 = C.JSString_methods.codeUnitAt$1(path, 2); | |
12297 if (!(t1 === 47 || t1 === 92)) | |
12298 return 0; | |
12299 return 3; | |
12300 }, | |
12301 isRootRelative$1: function(path) { | |
12302 return this.rootLength$1(path) === 1; | |
12303 }, | |
12304 pathFromUri$1: function(uri) { | |
12305 var t1, path; | |
12306 t1 = uri.scheme; | |
12307 if (t1 !== "" && t1 !== "file") | |
12308 throw H.wrapException(P.ArgumentError$("Uri " + uri.toString$0(0) + "
must have scheme 'file:'.")); | |
12309 path = uri._path; | |
12310 if (uri.get$host(uri) === "") { | |
12311 if (C.JSString_methods.startsWith$1(path, "/")) { | |
12312 H.checkString(""); | |
12313 H.checkInt(0); | |
12314 P.RangeError_checkValueInInterval(0, 0, path.length, "startIndex", n
ull); | |
12315 path = H.stringReplaceFirstUnchecked(path, "/", "", 0); | |
12316 } | |
12317 } else | |
12318 path = "\\\\" + H.S(uri.get$host(uri)) + path; | |
12319 H.checkString("\\"); | |
12320 return P.Uri__uriDecode(H.stringReplaceAllUnchecked(path, "/", "\\"), C.
Utf8Codec_false, false); | |
12321 } | |
12322 } | |
12323 }], ["source_span.location", "package:source_span/src/location.dart",, O, { | |
12324 "^": "", | |
12325 SourceLocation: { | |
12326 "^": "Object;sourceUrl,offset,line,column", | |
12327 get$toolString: function() { | |
12328 var source = this.sourceUrl; | |
12329 return H.S(source == null ? "unknown source" : source) + ":" + H.S(J.$ad
d$ns(this.line, 1)) + ":" + H.S(J.$add$ns(this.column, 1)); | |
12330 }, | |
12331 distance$1: function(other) { | |
12332 var t1, t2; | |
12333 t1 = this.sourceUrl; | |
12334 t2 = other.sourceUrl; | |
12335 if (!J.$eq$(t1, t2)) | |
12336 throw H.wrapException(P.ArgumentError$("Source URLs \"" + H.S(t1) + "\
" and \"" + H.S(t2) + "\" don't match.")); | |
12337 return J.abs$0$n(J.$sub$n(this.offset, other.offset)); | |
12338 }, | |
12339 $eq: function(_, other) { | |
12340 if (other == null) | |
12341 return false; | |
12342 return other instanceof O.SourceLocation && J.$eq$(this.sourceUrl, other
.sourceUrl) && J.$eq$(this.offset, other.offset); | |
12343 }, | |
12344 get$hashCode: function(_) { | |
12345 return J.$add$ns(J.get$hashCode$(this.sourceUrl), this.offset); | |
12346 }, | |
12347 toString$0: function(_) { | |
12348 return "<" + H.S(new H.TypeImpl(H.getRuntimeTypeString(this), null)) + "
: " + H.S(this.offset) + " " + this.get$toolString() + ">"; | |
12349 }, | |
12350 SourceLocation$4$column$line$sourceUrl: function(offset, column, line, sou
rceUrl) { | |
12351 if (J.$lt$n(offset, 0)) | |
12352 throw H.wrapException(P.RangeError$("Offset may not be negative, was "
+ H.S(offset) + ".")); | |
12353 else if (line != null && J.$lt$n(line, 0)) | |
12354 throw H.wrapException(P.RangeError$("Line may not be negative, was " +
H.S(line) + ".")); | |
12355 else if (column != null && J.$lt$n(column, 0)) | |
12356 throw H.wrapException(P.RangeError$("Column may not be negative, was "
+ H.S(column) + ".")); | |
12357 }, | |
12358 static: {SourceLocation$: function(offset, column, line, sourceUrl) { | |
12359 var t1, t2; | |
12360 t1 = typeof sourceUrl === "string" ? P.Uri_parse(sourceUrl, 0, null) :
sourceUrl; | |
12361 t2 = line == null ? 0 : line; | |
12362 t1 = new O.SourceLocation(t1, offset, t2, column == null ? offset : co
lumn); | |
12363 t1.SourceLocation$4$column$line$sourceUrl(offset, column, line, source
Url); | |
12364 return t1; | |
12365 }} | |
12366 } | |
12367 }], ["source_span.span", "package:source_span/src/span.dart",, T, { | |
12368 "^": "", | |
12369 SourceSpan: { | |
12370 "^": "Object;" | |
12371 }, | |
12372 SourceSpanBase: { | |
12373 "^": "SourceSpanMixin;start>,end<,text", | |
12374 SourceSpanBase$3: function(start, end, text) { | |
12375 var t1, t2, t3, t4; | |
12376 t1 = this.end; | |
12377 t2 = t1.sourceUrl; | |
12378 t3 = this.start; | |
12379 t4 = t3.sourceUrl; | |
12380 if (!J.$eq$(t2, t4)) | |
12381 throw H.wrapException(P.ArgumentError$("Source URLs \"" + H.S(t4) + "\
" and \"" + H.S(t2) + "\" don't match.")); | |
12382 else if (J.$lt$n(t1.offset, t3.offset)) | |
12383 throw H.wrapException(P.ArgumentError$("End " + t1.toString$0(0) + " m
ust come after start " + t3.toString$0(0) + ".")); | |
12384 else { | |
12385 t2 = this.text; | |
12386 if (!J.$eq$(J.get$length$asx(t2), t3.distance$1(t1))) | |
12387 throw H.wrapException(P.ArgumentError$("Text \"" + H.S(t2) + "\" mus
t be " + H.S(t3.distance$1(t1)) + " characters long.")); | |
12388 } | |
12389 }, | |
12390 static: {SourceSpanBase$: function(start, end, text) { | |
12391 var t1 = new T.SourceSpanBase(start, end, text); | |
12392 t1.SourceSpanBase$3(start, end, text); | |
12393 return t1; | |
12394 }} | |
12395 } | |
12396 }], ["source_span.span_mixin", "package:source_span/src/span_mixin.dart",, Y,
{ | |
12397 "^": "", | |
12398 SourceSpanMixin: { | |
12399 "^": "Object;", | |
12400 get$length: function(_) { | |
12401 return J.$sub$n(this.get$end().offset, this.start.offset); | |
12402 }, | |
12403 message$2$color: [function(_, message, color) { | |
12404 var t1, column, t2, t3, context, lineStart, t4, endIndex, textLine, toCo
lumn; | |
12405 t1 = this.start; | |
12406 column = t1.column; | |
12407 t2 = "line " + H.S(J.$add$ns(this.get$start(this).line, 1)) + ", column
" + H.S(J.$add$ns(column, 1)); | |
12408 t3 = t1.sourceUrl; | |
12409 if (t3 != null) | |
12410 t2 += " of " + $.$get$context().prettyUri$1(t3); | |
12411 t2 += ": " + H.S(message); | |
12412 t3 = this.end.offset; | |
12413 t1 = t1.offset; | |
12414 if (J.$eq$(J.$sub$n(t3, t1), 0) && !this.$isSourceSpanWithContext) | |
12415 return t2.charCodeAt(0) == 0 ? t2 : t2; | |
12416 t2 += "\n"; | |
12417 if (!!this.$isSourceSpanWithContext) { | |
12418 context = this.context; | |
12419 lineStart = D.findLineStart(context, this.text, column); | |
12420 if (lineStart != null && lineStart > 0) { | |
12421 t2 += J.substring$2$s(context, 0, lineStart); | |
12422 context = C.JSString_methods.substring$1(context, lineStart); | |
12423 } | |
12424 t4 = J.getInterceptor$asx(context); | |
12425 endIndex = t4.indexOf$1(context, "\n"); | |
12426 textLine = endIndex === -1 ? context : t4.substring$2(context, 0, endI
ndex + 1); | |
12427 column = P.min(column, J.get$length$asx(textLine) - 1); | |
12428 } else { | |
12429 textLine = C.JSArray_methods.get$first(J.split$1$s(this.text, "\n")); | |
12430 column = 0; | |
12431 } | |
12432 if (typeof t3 !== "number") | |
12433 return H.iae(t3); | |
12434 if (typeof t1 !== "number") | |
12435 return H.iae(t1); | |
12436 t4 = J.getInterceptor$asx(textLine); | |
12437 toColumn = P.min(column + t3 - t1, t4.get$length(textLine)); | |
12438 t1 = t2 + H.S(textLine); | |
12439 if (!t4.endsWith$1(textLine, "\n")) | |
12440 t1 += "\n"; | |
12441 t1 += C.JSString_methods.$mul(" ", column); | |
12442 t1 += C.JSString_methods.$mul("^", P.max(toColumn - column, 1)); | |
12443 return t1.charCodeAt(0) == 0 ? t1 : t1; | |
12444 }, function($receiver, message) { | |
12445 return this.message$2$color($receiver, message, null); | |
12446 }, "message$1", "call$2$color", "call$1", "get$message", 2, 3, 28, 0], | |
12447 $eq: function(_, other) { | |
12448 var t1; | |
12449 if (other == null) | |
12450 return false; | |
12451 t1 = J.getInterceptor(other); | |
12452 return !!t1.$isSourceSpan && this.get$start(this).$eq(0, t1.get$start(ot
her)) && this.end.$eq(0, other.get$end()); | |
12453 }, | |
12454 get$hashCode: function(_) { | |
12455 var t1, t2; | |
12456 t1 = this.get$start(this); | |
12457 t1 = J.$add$ns(J.get$hashCode$(t1.sourceUrl), t1.offset); | |
12458 t2 = this.end; | |
12459 t2 = J.$add$ns(J.get$hashCode$(t2.sourceUrl), t2.offset); | |
12460 if (typeof t2 !== "number") | |
12461 return H.iae(t2); | |
12462 return J.$add$ns(t1, 31 * t2); | |
12463 }, | |
12464 toString$0: function(_) { | |
12465 var t1, t2, t3; | |
12466 t1 = "<" + H.S(new H.TypeImpl(H.getRuntimeTypeString(this), null)) + ":
from "; | |
12467 t2 = this.get$start(this); | |
12468 t3 = this.end; | |
12469 return t1 + ("<" + H.S(new H.TypeImpl(H.getRuntimeTypeString(t2), null))
+ ": " + H.S(t2.offset) + " " + t2.get$toolString() + ">") + " to " + ("<" + H.
S(new H.TypeImpl(H.getRuntimeTypeString(t3), null)) + ": " + H.S(t3.offset) + "
" + t3.get$toolString() + ">") + " \"" + H.S(this.text) + "\">"; | |
12470 }, | |
12471 $isSourceSpan: 1 | |
12472 } | |
12473 }], ["source_span.span_with_context", "package:source_span/src/span_with_conte
xt.dart",, E, { | |
12474 "^": "", | |
12475 SourceSpanWithContext: { | |
12476 "^": "SourceSpanBase;context,start,end,text" | |
12477 } | |
12478 }], ["source_span.utils", "package:source_span/src/utils.dart",, D, { | |
12479 "^": "", | |
12480 findLineStart: function(context, text, column) { | |
12481 var isEmpty, t1, index, t2, lineStart, textColumn, t3; | |
12482 isEmpty = J.$eq$(text, ""); | |
12483 t1 = J.getInterceptor$asx(context); | |
12484 index = t1.indexOf$1(context, text); | |
12485 for (t2 = J.getInterceptor(column); index !== -1;) { | |
12486 lineStart = t1.lastIndexOf$2(context, "\n", index) + 1; | |
12487 textColumn = index - lineStart; | |
12488 if (!t2.$eq(column, textColumn)) | |
12489 t3 = isEmpty && t2.$eq(column, textColumn + 1); | |
12490 else | |
12491 t3 = true; | |
12492 if (t3) | |
12493 return lineStart; | |
12494 index = t1.indexOf$2(context, text, index + 1); | |
12495 } | |
12496 return; | |
12497 } | |
12498 }]]; | |
12499 setupProgram(dart, 0); | |
12500 // getInterceptor methods | |
12501 J.getInterceptor = function(receiver) { | |
12502 if (typeof receiver == "number") { | |
12503 if (Math.floor(receiver) == receiver) | |
12504 return J.JSInt.prototype; | |
12505 return J.JSDouble.prototype; | |
12506 } | |
12507 if (typeof receiver == "string") | |
12508 return J.JSString.prototype; | |
12509 if (receiver == null) | |
12510 return J.JSNull.prototype; | |
12511 if (typeof receiver == "boolean") | |
12512 return J.JSBool.prototype; | |
12513 if (receiver.constructor == Array) | |
12514 return J.JSArray.prototype; | |
12515 if (typeof receiver != "object") | |
12516 return receiver; | |
12517 if (receiver instanceof P.Object) | |
12518 return receiver; | |
12519 return J.getNativeInterceptor(receiver); | |
12520 }; | |
12521 J.getInterceptor$asx = function(receiver) { | |
12522 if (typeof receiver == "string") | |
12523 return J.JSString.prototype; | |
12524 if (receiver == null) | |
12525 return receiver; | |
12526 if (receiver.constructor == Array) | |
12527 return J.JSArray.prototype; | |
12528 if (typeof receiver != "object") | |
12529 return receiver; | |
12530 if (receiver instanceof P.Object) | |
12531 return receiver; | |
12532 return J.getNativeInterceptor(receiver); | |
12533 }; | |
12534 J.getInterceptor$ax = function(receiver) { | |
12535 if (receiver == null) | |
12536 return receiver; | |
12537 if (receiver.constructor == Array) | |
12538 return J.JSArray.prototype; | |
12539 if (typeof receiver != "object") | |
12540 return receiver; | |
12541 if (receiver instanceof P.Object) | |
12542 return receiver; | |
12543 return J.getNativeInterceptor(receiver); | |
12544 }; | |
12545 J.getInterceptor$n = function(receiver) { | |
12546 if (typeof receiver == "number") | |
12547 return J.JSNumber.prototype; | |
12548 if (receiver == null) | |
12549 return receiver; | |
12550 if (!(receiver instanceof P.Object)) | |
12551 return J.UnknownJavaScriptObject.prototype; | |
12552 return receiver; | |
12553 }; | |
12554 J.getInterceptor$ns = function(receiver) { | |
12555 if (typeof receiver == "number") | |
12556 return J.JSNumber.prototype; | |
12557 if (typeof receiver == "string") | |
12558 return J.JSString.prototype; | |
12559 if (receiver == null) | |
12560 return receiver; | |
12561 if (!(receiver instanceof P.Object)) | |
12562 return J.UnknownJavaScriptObject.prototype; | |
12563 return receiver; | |
12564 }; | |
12565 J.getInterceptor$s = function(receiver) { | |
12566 if (typeof receiver == "string") | |
12567 return J.JSString.prototype; | |
12568 if (receiver == null) | |
12569 return receiver; | |
12570 if (!(receiver instanceof P.Object)) | |
12571 return J.UnknownJavaScriptObject.prototype; | |
12572 return receiver; | |
12573 }; | |
12574 J.getInterceptor$x = function(receiver) { | |
12575 if (receiver == null) | |
12576 return receiver; | |
12577 if (typeof receiver != "object") | |
12578 return receiver; | |
12579 if (receiver instanceof P.Object) | |
12580 return receiver; | |
12581 return J.getNativeInterceptor(receiver); | |
12582 }; | |
12583 J.set$href$x = function(receiver, value) { | |
12584 return J.getInterceptor$x(receiver).set$href(receiver, value); | |
12585 }; | |
12586 J.get$attributes$x = function(receiver) { | |
12587 return J.getInterceptor$x(receiver).get$attributes(receiver); | |
12588 }; | |
12589 J.get$classes$x = function(receiver) { | |
12590 return J.getInterceptor$x(receiver).get$classes(receiver); | |
12591 }; | |
12592 J.get$error$x = function(receiver) { | |
12593 return J.getInterceptor$x(receiver).get$error(receiver); | |
12594 }; | |
12595 J.get$isEmpty$asx = function(receiver) { | |
12596 return J.getInterceptor$asx(receiver).get$isEmpty(receiver); | |
12597 }; | |
12598 J.get$iterator$ax = function(receiver) { | |
12599 return J.getInterceptor$ax(receiver).get$iterator(receiver); | |
12600 }; | |
12601 J.get$last$ax = function(receiver) { | |
12602 return J.getInterceptor$ax(receiver).get$last(receiver); | |
12603 }; | |
12604 J.get$length$asx = function(receiver) { | |
12605 return J.getInterceptor$asx(receiver).get$length(receiver); | |
12606 }; | |
12607 J.get$name$x = function(receiver) { | |
12608 return J.getInterceptor$x(receiver).get$name(receiver); | |
12609 }; | |
12610 J.get$onClick$x = function(receiver) { | |
12611 return J.getInterceptor$x(receiver).get$onClick(receiver); | |
12612 }; | |
12613 J.get$responseText$x = function(receiver) { | |
12614 return J.getInterceptor$x(receiver).get$responseText(receiver); | |
12615 }; | |
12616 J.get$tagName$x = function(receiver) { | |
12617 return J.getInterceptor$x(receiver).get$tagName(receiver); | |
12618 }; | |
12619 J.get$target$x = function(receiver) { | |
12620 return J.getInterceptor$x(receiver).get$target(receiver); | |
12621 }; | |
12622 J.$add$ns = function(receiver, a0) { | |
12623 if (typeof receiver == "number" && typeof a0 == "number") | |
12624 return receiver + a0; | |
12625 return J.getInterceptor$ns(receiver).$add(receiver, a0); | |
12626 }; | |
12627 J.$gt$n = function(receiver, a0) { | |
12628 if (typeof receiver == "number" && typeof a0 == "number") | |
12629 return receiver > a0; | |
12630 return J.getInterceptor$n(receiver).$gt(receiver, a0); | |
12631 }; | |
12632 J.$index$asx = function(receiver, a0) { | |
12633 if (receiver.constructor == Array || typeof receiver == "string" || H.isJsIn
dexable(receiver, receiver[init.dispatchPropertyName])) | |
12634 if (a0 >>> 0 === a0 && a0 < receiver.length) | |
12635 return receiver[a0]; | |
12636 return J.getInterceptor$asx(receiver).$index(receiver, a0); | |
12637 }; | |
12638 J.$lt$n = function(receiver, a0) { | |
12639 if (typeof receiver == "number" && typeof a0 == "number") | |
12640 return receiver < a0; | |
12641 return J.getInterceptor$n(receiver).$lt(receiver, a0); | |
12642 }; | |
12643 J.$sub$n = function(receiver, a0) { | |
12644 if (typeof receiver == "number" && typeof a0 == "number") | |
12645 return receiver - a0; | |
12646 return J.getInterceptor$n(receiver).$sub(receiver, a0); | |
12647 }; | |
12648 J._addEventListener$3$x = function(receiver, a0, a1, a2) { | |
12649 return J.getInterceptor$x(receiver)._addEventListener$3(receiver, a0, a1, a2
); | |
12650 }; | |
12651 J._removeEventListener$3$x = function(receiver, a0, a1, a2) { | |
12652 return J.getInterceptor$x(receiver)._removeEventListener$3(receiver, a0, a1,
a2); | |
12653 }; | |
12654 J.abs$0$n = function(receiver) { | |
12655 return J.getInterceptor$n(receiver).abs$0(receiver); | |
12656 }; | |
12657 J.accept$1$x = function(receiver, a0) { | |
12658 return J.getInterceptor$x(receiver).accept$1(receiver, a0); | |
12659 }; | |
12660 J.add$1$ax = function(receiver, a0) { | |
12661 return J.getInterceptor$ax(receiver).add$1(receiver, a0); | |
12662 }; | |
12663 J.codeUnitAt$1$s = function(receiver, a0) { | |
12664 return J.getInterceptor$s(receiver).codeUnitAt$1(receiver, a0); | |
12665 }; | |
12666 J.complete$1$x = function(receiver, a0) { | |
12667 return J.getInterceptor$x(receiver).complete$1(receiver, a0); | |
12668 }; | |
12669 J.contains$1$asx = function(receiver, a0) { | |
12670 return J.getInterceptor$asx(receiver).contains$1(receiver, a0); | |
12671 }; | |
12672 J.contains$2$asx = function(receiver, a0, a1) { | |
12673 return J.getInterceptor$asx(receiver).contains$2(receiver, a0, a1); | |
12674 }; | |
12675 J.elementAt$1$ax = function(receiver, a0) { | |
12676 return J.getInterceptor$ax(receiver).elementAt$1(receiver, a0); | |
12677 }; | |
12678 J.forEach$1$ax = function(receiver, a0) { | |
12679 return J.getInterceptor$ax(receiver).forEach$1(receiver, a0); | |
12680 }; | |
12681 J.map$1$ax = function(receiver, a0) { | |
12682 return J.getInterceptor$ax(receiver).map$1(receiver, a0); | |
12683 }; | |
12684 J.querySelector$1$x = function(receiver, a0) { | |
12685 return J.getInterceptor$x(receiver).querySelector$1(receiver, a0); | |
12686 }; | |
12687 J.remove$0$ax = function(receiver) { | |
12688 return J.getInterceptor$ax(receiver).remove$0(receiver); | |
12689 }; | |
12690 J.replaceAll$2$s = function(receiver, a0, a1) { | |
12691 return J.getInterceptor$s(receiver).replaceAll$2(receiver, a0, a1); | |
12692 }; | |
12693 J.replaceAllMapped$2$s = function(receiver, a0, a1) { | |
12694 return J.getInterceptor$s(receiver).replaceAllMapped$2(receiver, a0, a1); | |
12695 }; | |
12696 J.send$1$x = function(receiver, a0) { | |
12697 return J.getInterceptor$x(receiver).send$1(receiver, a0); | |
12698 }; | |
12699 J.split$1$s = function(receiver, a0) { | |
12700 return J.getInterceptor$s(receiver).split$1(receiver, a0); | |
12701 }; | |
12702 J.substring$1$s = function(receiver, a0) { | |
12703 return J.getInterceptor$s(receiver).substring$1(receiver, a0); | |
12704 }; | |
12705 J.substring$2$s = function(receiver, a0, a1) { | |
12706 return J.getInterceptor$s(receiver).substring$2(receiver, a0, a1); | |
12707 }; | |
12708 J.toLowerCase$0$s = function(receiver) { | |
12709 return J.getInterceptor$s(receiver).toLowerCase$0(receiver); | |
12710 }; | |
12711 J.toRadixString$1$n = function(receiver, a0) { | |
12712 return J.getInterceptor$n(receiver).toRadixString$1(receiver, a0); | |
12713 }; | |
12714 J.trim$0$s = function(receiver) { | |
12715 return J.getInterceptor$s(receiver).trim$0(receiver); | |
12716 }; | |
12717 J.get$hashCode$ = function(receiver) { | |
12718 return J.getInterceptor(receiver).get$hashCode(receiver); | |
12719 }; | |
12720 J.$eq$ = function(receiver, a0) { | |
12721 if (receiver == null) | |
12722 return a0 == null; | |
12723 if (typeof receiver != "object") | |
12724 return a0 != null && receiver === a0; | |
12725 return J.getInterceptor(receiver).$eq(receiver, a0); | |
12726 }; | |
12727 J.toString$0$ = function(receiver) { | |
12728 return J.getInterceptor(receiver).toString$0(receiver); | |
12729 }; | |
12730 Isolate.makeConstantList = function(list) { | |
12731 list.immutable$list = Array; | |
12732 list.fixed$length = Array; | |
12733 return list; | |
12734 }; | |
12735 var $ = Isolate.$isolateProperties; | |
12736 C.BodyElement_methods = W.BodyElement.prototype; | |
12737 C.HttpRequest_methods = W.HttpRequest.prototype; | |
12738 C.JSArray_methods = J.JSArray.prototype; | |
12739 C.JSDouble_methods = J.JSDouble.prototype; | |
12740 C.JSInt_methods = J.JSInt.prototype; | |
12741 C.JSNull_methods = J.JSNull.prototype; | |
12742 C.JSNumber_methods = J.JSNumber.prototype; | |
12743 C.JSString_methods = J.JSString.prototype; | |
12744 C.NodeList_methods = W.NodeList.prototype; | |
12745 C.PlainJavaScriptObject_methods = J.PlainJavaScriptObject.prototype; | |
12746 C.UnknownJavaScriptObject_methods = J.UnknownJavaScriptObject.prototype; | |
12747 C.Window_methods = W.Window.prototype; | |
12748 C.C_DynamicRuntimeType = new H.DynamicRuntimeType(); | |
12749 C.C_OutOfMemoryError = new P.OutOfMemoryError(); | |
12750 C.C_Utf8Encoder = new P.Utf8Encoder(); | |
12751 C.C__DelayedDone = new P._DelayedDone(); | |
12752 C.C__RootZone = new P._RootZone(); | |
12753 C.Duration_0 = new P.Duration(0); | |
12754 C.HtmlEscapeMode_p2v = new P.HtmlEscapeMode("unknown", true, true, true, true)
; | |
12755 C.JS_CONST_0 = function(hooks) { | |
12756 if (typeof dartExperimentalFixupGetTag != "function") return hooks; | |
12757 hooks.getTag = dartExperimentalFixupGetTag(hooks.getTag); | |
12758 }; | |
12759 C.JS_CONST_4hp = function(hooks) { | |
12760 var userAgent = typeof navigator == "object" ? navigator.userAgent : ""; | |
12761 if (userAgent.indexOf("Firefox") == -1) return hooks; | |
12762 var getTag = hooks.getTag; | |
12763 var quickMap = { | |
12764 "BeforeUnloadEvent": "Event", | |
12765 "DataTransfer": "Clipboard", | |
12766 "GeoGeolocation": "Geolocation", | |
12767 "Location": "!Location", | |
12768 "WorkerMessageEvent": "MessageEvent", | |
12769 "XMLDocument": "!Document"}; | |
12770 function getTagFirefox(o) { | |
12771 var tag = getTag(o); | |
12772 return quickMap[tag] || tag; | |
12773 } | |
12774 hooks.getTag = getTagFirefox; | |
12775 }; | |
12776 C.JS_CONST_8ZY = function getTagFallback(o) { | |
12777 var constructor = o.constructor; | |
12778 if (typeof constructor == "function") { | |
12779 var name = constructor.name; | |
12780 if (typeof name == "string" && | |
12781 name.length > 2 && | |
12782 name !== "Object" && | |
12783 name !== "Function.prototype") { | |
12784 return name; | |
12785 } | |
12786 } | |
12787 var s = Object.prototype.toString.call(o); | |
12788 return s.substring(8, s.length - 1); | |
12789 }; | |
12790 C.JS_CONST_Fs4 = function(hooks) { return hooks; } | |
12791 ; | |
12792 C.JS_CONST_QJm = function(getTagFallback) { | |
12793 return function(hooks) { | |
12794 if (typeof navigator != "object") return hooks; | |
12795 var ua = navigator.userAgent; | |
12796 if (ua.indexOf("DumpRenderTree") >= 0) return hooks; | |
12797 if (ua.indexOf("Chrome") >= 0) { | |
12798 function confirm(p) { | |
12799 return typeof window == "object" && window[p] && window[p].name == p; | |
12800 } | |
12801 if (confirm("Window") && confirm("HTMLElement")) return hooks; | |
12802 } | |
12803 hooks.getTag = getTagFallback; | |
12804 }; | |
12805 }; | |
12806 C.JS_CONST_gkc = function() { | |
12807 function typeNameInChrome(o) { | |
12808 var constructor = o.constructor; | |
12809 if (constructor) { | |
12810 var name = constructor.name; | |
12811 if (name) return name; | |
12812 } | |
12813 var s = Object.prototype.toString.call(o); | |
12814 return s.substring(8, s.length - 1); | |
12815 } | |
12816 function getUnknownTag(object, tag) { | |
12817 if (/^HTML[A-Z].*Element$/.test(tag)) { | |
12818 var name = Object.prototype.toString.call(object); | |
12819 if (name == "[object Object]") return null; | |
12820 return "HTMLElement"; | |
12821 } | |
12822 } | |
12823 function getUnknownTagGenericBrowser(object, tag) { | |
12824 if (self.HTMLElement && object instanceof HTMLElement) return "HTMLElement"; | |
12825 return getUnknownTag(object, tag); | |
12826 } | |
12827 function prototypeForTag(tag) { | |
12828 if (typeof window == "undefined") return null; | |
12829 if (typeof window[tag] == "undefined") return null; | |
12830 var constructor = window[tag]; | |
12831 if (typeof constructor != "function") return null; | |
12832 return constructor.prototype; | |
12833 } | |
12834 function discriminator(tag) { return null; } | |
12835 var isBrowser = typeof navigator == "object"; | |
12836 return { | |
12837 getTag: typeNameInChrome, | |
12838 getUnknownTag: isBrowser ? getUnknownTagGenericBrowser : getUnknownTag, | |
12839 prototypeForTag: prototypeForTag, | |
12840 discriminator: discriminator }; | |
12841 }; | |
12842 C.JS_CONST_gkc0 = function(hooks) { | |
12843 var userAgent = typeof navigator == "object" ? navigator.userAgent : ""; | |
12844 if (userAgent.indexOf("Trident/") == -1) return hooks; | |
12845 var getTag = hooks.getTag; | |
12846 var quickMap = { | |
12847 "BeforeUnloadEvent": "Event", | |
12848 "DataTransfer": "Clipboard", | |
12849 "HTMLDDElement": "HTMLElement", | |
12850 "HTMLDTElement": "HTMLElement", | |
12851 "HTMLPhraseElement": "HTMLElement", | |
12852 "Position": "Geoposition" | |
12853 }; | |
12854 function getTagIE(o) { | |
12855 var tag = getTag(o); | |
12856 var newTag = quickMap[tag]; | |
12857 if (newTag) return newTag; | |
12858 if (tag == "Object") { | |
12859 if (window.DataView && (o instanceof window.DataView)) return "DataView"; | |
12860 } | |
12861 return tag; | |
12862 } | |
12863 function prototypeForTagIE(tag) { | |
12864 var constructor = window[tag]; | |
12865 if (constructor == null) return null; | |
12866 return constructor.prototype; | |
12867 } | |
12868 hooks.getTag = getTagIE; | |
12869 hooks.prototypeForTag = prototypeForTagIE; | |
12870 }; | |
12871 C.JS_CONST_rr7 = function(hooks) { | |
12872 var getTag = hooks.getTag; | |
12873 var prototypeForTag = hooks.prototypeForTag; | |
12874 function getTagFixed(o) { | |
12875 var tag = getTag(o); | |
12876 if (tag == "Document") { | |
12877 if (!!o.xmlVersion) return "!Document"; | |
12878 return "!HTMLDocument"; | |
12879 } | |
12880 return tag; | |
12881 } | |
12882 function prototypeForTagFixed(tag) { | |
12883 if (tag == "Document") return null; | |
12884 return prototypeForTag(tag); | |
12885 } | |
12886 hooks.getTag = getTagFixed; | |
12887 hooks.prototypeForTag = prototypeForTagFixed; | |
12888 }; | |
12889 C.JsonCodec_null_null = new P.JsonCodec(null, null); | |
12890 C.JsonDecoder_null = new P.JsonDecoder(null); | |
12891 C.List_127_2047_65535_1114111 = H.setRuntimeTypeInfo(Isolate.makeConstantList(
[127, 2047, 65535, 1114111]), [P.$int]); | |
12892 C.List_1GN = H.setRuntimeTypeInfo(Isolate.makeConstantList(["*::class", "*::di
r", "*::draggable", "*::hidden", "*::id", "*::inert", "*::itemprop", "*::itemref
", "*::itemscope", "*::lang", "*::spellcheck", "*::title", "*::translate", "A::a
ccesskey", "A::coords", "A::hreflang", "A::name", "A::shape", "A::tabindex", "A:
:target", "A::type", "AREA::accesskey", "AREA::alt", "AREA::coords", "AREA::nohr
ef", "AREA::shape", "AREA::tabindex", "AREA::target", "AUDIO::controls", "AUDIO:
:loop", "AUDIO::mediagroup", "AUDIO::muted", "AUDIO::preload", "BDO::dir", "BODY
::alink", "BODY::bgcolor", "BODY::link", "BODY::text", "BODY::vlink", "BR::clear
", "BUTTON::accesskey", "BUTTON::disabled", "BUTTON::name", "BUTTON::tabindex",
"BUTTON::type", "BUTTON::value", "CANVAS::height", "CANVAS::width", "CAPTION::al
ign", "COL::align", "COL::char", "COL::charoff", "COL::span", "COL::valign", "CO
L::width", "COLGROUP::align", "COLGROUP::char", "COLGROUP::charoff", "COLGROUP::
span", "COLGROUP::valign", "COLGROUP::width", "COMMAND::checked", "COMMAND::comm
and", "COMMAND::disabled", "COMMAND::label", "COMMAND::radiogroup", "COMMAND::ty
pe", "DATA::value", "DEL::datetime", "DETAILS::open", "DIR::compact", "DIV::alig
n", "DL::compact", "FIELDSET::disabled", "FONT::color", "FONT::face", "FONT::siz
e", "FORM::accept", "FORM::autocomplete", "FORM::enctype", "FORM::method", "FORM
::name", "FORM::novalidate", "FORM::target", "FRAME::name", "H1::align", "H2::al
ign", "H3::align", "H4::align", "H5::align", "H6::align", "HR::align", "HR::nosh
ade", "HR::size", "HR::width", "HTML::version", "IFRAME::align", "IFRAME::frameb
order", "IFRAME::height", "IFRAME::marginheight", "IFRAME::marginwidth", "IFRAME
::width", "IMG::align", "IMG::alt", "IMG::border", "IMG::height", "IMG::hspace",
"IMG::ismap", "IMG::name", "IMG::usemap", "IMG::vspace", "IMG::width", "INPUT::
accept", "INPUT::accesskey", "INPUT::align", "INPUT::alt", "INPUT::autocomplete"
, "INPUT::checked", "INPUT::disabled", "INPUT::inputmode", "INPUT::ismap", "INPU
T::list", "INPUT::max", "INPUT::maxlength", "INPUT::min", "INPUT::multiple", "IN
PUT::name", "INPUT::placeholder", "INPUT::readonly", "INPUT::required", "INPUT::
size", "INPUT::step", "INPUT::tabindex", "INPUT::type", "INPUT::usemap", "INPUT:
:value", "INS::datetime", "KEYGEN::disabled", "KEYGEN::keytype", "KEYGEN::name",
"LABEL::accesskey", "LABEL::for", "LEGEND::accesskey", "LEGEND::align", "LI::ty
pe", "LI::value", "LINK::sizes", "MAP::name", "MENU::compact", "MENU::label", "M
ENU::type", "METER::high", "METER::low", "METER::max", "METER::min", "METER::val
ue", "OBJECT::typemustmatch", "OL::compact", "OL::reversed", "OL::start", "OL::t
ype", "OPTGROUP::disabled", "OPTGROUP::label", "OPTION::disabled", "OPTION::labe
l", "OPTION::selected", "OPTION::value", "OUTPUT::for", "OUTPUT::name", "P::alig
n", "PRE::width", "PROGRESS::max", "PROGRESS::min", "PROGRESS::value", "SELECT::
autocomplete", "SELECT::disabled", "SELECT::multiple", "SELECT::name", "SELECT::
required", "SELECT::size", "SELECT::tabindex", "SOURCE::type", "TABLE::align", "
TABLE::bgcolor", "TABLE::border", "TABLE::cellpadding", "TABLE::cellspacing", "T
ABLE::frame", "TABLE::rules", "TABLE::summary", "TABLE::width", "TBODY::align",
"TBODY::char", "TBODY::charoff", "TBODY::valign", "TD::abbr", "TD::align", "TD::
axis", "TD::bgcolor", "TD::char", "TD::charoff", "TD::colspan", "TD::headers", "
TD::height", "TD::nowrap", "TD::rowspan", "TD::scope", "TD::valign", "TD::width"
, "TEXTAREA::accesskey", "TEXTAREA::autocomplete", "TEXTAREA::cols", "TEXTAREA::
disabled", "TEXTAREA::inputmode", "TEXTAREA::name", "TEXTAREA::placeholder", "TE
XTAREA::readonly", "TEXTAREA::required", "TEXTAREA::rows", "TEXTAREA::tabindex",
"TEXTAREA::wrap", "TFOOT::align", "TFOOT::char", "TFOOT::charoff", "TFOOT::vali
gn", "TH::abbr", "TH::align", "TH::axis", "TH::bgcolor", "TH::char", "TH::charof
f", "TH::colspan", "TH::headers", "TH::height", "TH::nowrap", "TH::rowspan", "TH
::scope", "TH::valign", "TH::width", "THEAD::align", "THEAD::char", "THEAD::char
off", "THEAD::valign", "TR::align", "TR::bgcolor", "TR::char", "TR::charoff", "T
R::valign", "TRACK::default", "TRACK::kind", "TRACK::label", "TRACK::srclang", "
UL::compact", "UL::type", "VIDEO::controls", "VIDEO::height", "VIDEO::loop", "VI
DEO::mediagroup", "VIDEO::muted", "VIDEO::preload", "VIDEO::width"]), [P.String]
); | |
12893 C.List_2Vk = Isolate.makeConstantList([0, 0, 32776, 33792, 1, 10240, 0, 0]); | |
12894 C.List_A_FORM = Isolate.makeConstantList(["A", "FORM"]); | |
12895 C.List_BSc = Isolate.makeConstantList(["A::href", "FORM::action"]); | |
12896 C.List_CVk = Isolate.makeConstantList([0, 0, 65490, 45055, 65535, 34815, 65534
, 18431]); | |
12897 C.List_JYB = Isolate.makeConstantList([0, 0, 26624, 1023, 65534, 2047, 65534,
2047]); | |
12898 C.List_WnV = Isolate.makeConstantList(["/", "\\"]); | |
12899 C.List_cSk = Isolate.makeConstantList(["/"]); | |
12900 C.List_ego = Isolate.makeConstantList(["HEAD", "AREA", "BASE", "BASEFONT", "BR
", "COL", "COLGROUP", "EMBED", "FRAME", "FRAMESET", "HR", "IMAGE", "IMG", "INPUT
", "ISINDEX", "LINK", "META", "PARAM", "SOURCE", "STYLE", "TITLE", "WBR"]); | |
12901 C.List_empty0 = H.setRuntimeTypeInfo(Isolate.makeConstantList([]), [P.String])
; | |
12902 C.List_empty = Isolate.makeConstantList([]); | |
12903 C.List_gRj = Isolate.makeConstantList([0, 0, 32722, 12287, 65534, 34815, 65534
, 18431]); | |
12904 C.List_h4r = Isolate.makeConstantList(["A::accesskey", "A::coords", "A::hrefla
ng", "A::name", "A::shape", "A::tabindex", "A::target", "A::type", "FORM::accept
", "FORM::autocomplete", "FORM::enctype", "FORM::method", "FORM::name", "FORM::n
ovalidate", "FORM::target"]); | |
12905 C.List_nxB = Isolate.makeConstantList([0, 0, 24576, 1023, 65534, 34815, 65534,
18431]); | |
12906 C.List_qNA = Isolate.makeConstantList([0, 0, 32754, 11263, 65534, 34815, 65534
, 18431]); | |
12907 C.List_qg40 = Isolate.makeConstantList([0, 0, 32722, 12287, 65535, 34815, 6553
4, 18431]); | |
12908 C.List_qg4 = Isolate.makeConstantList([0, 0, 65490, 12287, 65535, 34815, 65534
, 18431]); | |
12909 C.List_wSV = H.setRuntimeTypeInfo(Isolate.makeConstantList(["bind", "if", "ref
", "repeat", "syntax"]), [P.String]); | |
12910 C.List_yrN = H.setRuntimeTypeInfo(Isolate.makeConstantList(["A::href", "AREA::
href", "BLOCKQUOTE::cite", "BODY::background", "COMMAND::icon", "DEL::cite", "FO
RM::action", "IMG::src", "INPUT::src", "INS::cite", "Q::cite", "VIDEO::poster"])
, [P.String]); | |
12911 C.Utf8Codec_false = new P.Utf8Codec(false); | |
12912 $.Primitives_mirrorFunctionCacheName = "$cachedFunction"; | |
12913 $.Primitives_mirrorInvokeCacheName = "$cachedInvocation"; | |
12914 $.Closure_functionCounter = 0; | |
12915 $.BoundClosure_selfFieldNameCache = null; | |
12916 $.BoundClosure_receiverFieldNameCache = null; | |
12917 $.getTagFunction = null; | |
12918 $.alternateTagFunction = null; | |
12919 $.prototypeForTagFunction = null; | |
12920 $.dispatchRecordsForInstanceTags = null; | |
12921 $.interceptorsForUncacheableTags = null; | |
12922 $.initNativeDispatchFlag = null; | |
12923 $._nextCallback = null; | |
12924 $._lastCallback = null; | |
12925 $._lastPriorityCallback = null; | |
12926 $._isInCallbackLoop = false; | |
12927 $.Zone__current = C.C__RootZone; | |
12928 $.Expando__keyCount = 0; | |
12929 $.Element__parseDocument = null; | |
12930 $.Element__parseRange = null; | |
12931 $.Element__defaultValidator = null; | |
12932 $.Element__defaultSanitizer = null; | |
12933 $.Device__isOpera = null; | |
12934 $.Device__isWebKit = null; | |
12935 $ = null; | |
12936 init.isHunkLoaded = function(hunkHash) { | |
12937 return !!$dart_deferred_initializers$[hunkHash]; | |
12938 }; | |
12939 init.deferredInitialized = new Object(null); | |
12940 init.isHunkInitialized = function(hunkHash) { | |
12941 return init.deferredInitialized[hunkHash]; | |
12942 }; | |
12943 init.initializeLoadedHunk = function(hunkHash) { | |
12944 $dart_deferred_initializers$[hunkHash]($globals$, $); | |
12945 init.deferredInitialized[hunkHash] = true; | |
12946 }; | |
12947 init.deferredLibraryUris = {}; | |
12948 init.deferredLibraryHashes = {}; | |
12949 // Empty type-to-interceptor map. | |
12950 (function(lazies) { | |
12951 for (var i = 0; i < lazies.length;) { | |
12952 var fieldName = lazies[i++]; | |
12953 var getterName = lazies[i++]; | |
12954 var staticName = lazies[i++]; | |
12955 var lazyValue = lazies[i++]; | |
12956 Isolate.$lazy(fieldName, getterName, lazyValue, staticName); | |
12957 } | |
12958 })(["IsolateNatives_thisScript", "$get$IsolateNatives_thisScript", "thisScript
", function() { | |
12959 return H.IsolateNatives_computeThisScript(); | |
12960 }, "IsolateNatives_workerIds", "$get$IsolateNatives_workerIds", "workerIds", f
unction() { | |
12961 return H.setRuntimeTypeInfo(new P.Expando(null), [P.$int]); | |
12962 }, "TypeErrorDecoder_noSuchMethodPattern", "$get$TypeErrorDecoder_noSuchMethod
Pattern", "noSuchMethodPattern", function() { | |
12963 return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallError
On({toString: function() { | |
12964 return "$receiver$"; | |
12965 }})); | |
12966 }, "TypeErrorDecoder_notClosurePattern", "$get$TypeErrorDecoder_notClosurePatt
ern", "notClosurePattern", function() { | |
12967 return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallError
On({$method$: null, toString: function() { | |
12968 return "$receiver$"; | |
12969 }})); | |
12970 }, "TypeErrorDecoder_nullCallPattern", "$get$TypeErrorDecoder_nullCallPattern"
, "nullCallPattern", function() { | |
12971 return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallError
On(null)); | |
12972 }, "TypeErrorDecoder_nullLiteralCallPattern", "$get$TypeErrorDecoder_nullLiter
alCallPattern", "nullLiteralCallPattern", function() { | |
12973 return H.TypeErrorDecoder_extractPattern(function() { | |
12974 var $argumentsExpr$ = '$arguments$'; | |
12975 try { | |
12976 null.$method$($argumentsExpr$); | |
12977 } catch (e) { | |
12978 return e.message; | |
12979 } | |
12980 }()); | |
12981 }, "TypeErrorDecoder_undefinedCallPattern", "$get$TypeErrorDecoder_undefinedCa
llPattern", "undefinedCallPattern", function() { | |
12982 return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallError
On(void 0)); | |
12983 }, "TypeErrorDecoder_undefinedLiteralCallPattern", "$get$TypeErrorDecoder_unde
finedLiteralCallPattern", "undefinedLiteralCallPattern", function() { | |
12984 return H.TypeErrorDecoder_extractPattern(function() { | |
12985 var $argumentsExpr$ = '$arguments$'; | |
12986 try { | |
12987 (void 0).$method$($argumentsExpr$); | |
12988 } catch (e) { | |
12989 return e.message; | |
12990 } | |
12991 }()); | |
12992 }, "TypeErrorDecoder_nullPropertyPattern", "$get$TypeErrorDecoder_nullProperty
Pattern", "nullPropertyPattern", function() { | |
12993 return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokePropertyE
rrorOn(null)); | |
12994 }, "TypeErrorDecoder_nullLiteralPropertyPattern", "$get$TypeErrorDecoder_nullL
iteralPropertyPattern", "nullLiteralPropertyPattern", function() { | |
12995 return H.TypeErrorDecoder_extractPattern(function() { | |
12996 try { | |
12997 null.$method$; | |
12998 } catch (e) { | |
12999 return e.message; | |
13000 } | |
13001 }()); | |
13002 }, "TypeErrorDecoder_undefinedPropertyPattern", "$get$TypeErrorDecoder_undefin
edPropertyPattern", "undefinedPropertyPattern", function() { | |
13003 return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokePropertyE
rrorOn(void 0)); | |
13004 }, "TypeErrorDecoder_undefinedLiteralPropertyPattern", "$get$TypeErrorDecoder_
undefinedLiteralPropertyPattern", "undefinedLiteralPropertyPattern", function()
{ | |
13005 return H.TypeErrorDecoder_extractPattern(function() { | |
13006 try { | |
13007 (void 0).$method$; | |
13008 } catch (e) { | |
13009 return e.message; | |
13010 } | |
13011 }()); | |
13012 }, "_AsyncRun_scheduleImmediateClosure", "$get$_AsyncRun_scheduleImmediateClos
ure", "scheduleImmediateClosure", function() { | |
13013 return P._AsyncRun__initializeScheduleImmediate(); | |
13014 }, "_toStringVisiting", "$get$_toStringVisiting", "_toStringVisiting", functio
n() { | |
13015 return []; | |
13016 }, "_Html5NodeValidator__allowedElements", "$get$_Html5NodeValidator__allowedE
lements", "_allowedElements", function() { | |
13017 return P.LinkedHashSet_LinkedHashSet$from(["A", "ABBR", "ACRONYM", "ADDRESS"
, "AREA", "ARTICLE", "ASIDE", "AUDIO", "B", "BDI", "BDO", "BIG", "BLOCKQUOTE", "
BR", "BUTTON", "CANVAS", "CAPTION", "CENTER", "CITE", "CODE", "COL", "COLGROUP",
"COMMAND", "DATA", "DATALIST", "DD", "DEL", "DETAILS", "DFN", "DIR", "DIV", "DL
", "DT", "EM", "FIELDSET", "FIGCAPTION", "FIGURE", "FONT", "FOOTER", "FORM", "H1
", "H2", "H3", "H4", "H5", "H6", "HEADER", "HGROUP", "HR", "I", "IFRAME", "IMG",
"INPUT", "INS", "KBD", "LABEL", "LEGEND", "LI", "MAP", "MARK", "MENU", "METER",
"NAV", "NOBR", "OL", "OPTGROUP", "OPTION", "OUTPUT", "P", "PRE", "PROGRESS", "Q
", "S", "SAMP", "SECTION", "SELECT", "SMALL", "SOURCE", "SPAN", "STRIKE", "STRON
G", "SUB", "SUMMARY", "SUP", "TABLE", "TBODY", "TD", "TEXTAREA", "TFOOT", "TH",
"THEAD", "TIME", "TR", "TRACK", "TT", "U", "UL", "VAR", "VIDEO", "WBR"], null); | |
13018 }, "_Html5NodeValidator__attributeValidators", "$get$_Html5NodeValidator__attr
ibuteValidators", "_attributeValidators", function() { | |
13019 return P.LinkedHashMap__makeEmpty(); | |
13020 }, "_urlRegex", "$get$_urlRegex", "_urlRegex", function() { | |
13021 return P.RegExp_RegExp("http://[^ ]*", true, false); | |
13022 }, "_escaper", "$get$_escaper", "_escaper", function() { | |
13023 return new P.HtmlEscape(C.HtmlEscapeMode_p2v); | |
13024 }, "CssClassSetImpl__validTokenRE", "$get$CssClassSetImpl__validTokenRE", "_va
lidTokenRE", function() { | |
13025 return P.RegExp_RegExp("^\\S+$", true, false); | |
13026 }, "context", "$get$context", "context", function() { | |
13027 return new F.Context($.$get$Style_platform(), null); | |
13028 }, "Style_posix", "$get$Style_posix", "posix", function() { | |
13029 return new Z.PosixStyle("posix", "/", C.List_cSk, P.RegExp_RegExp("/", true,
false), P.RegExp_RegExp("[^/]$", true, false), P.RegExp_RegExp("^/", true, fals
e), null); | |
13030 }, "Style_windows", "$get$Style_windows", "windows", function() { | |
13031 return new T.WindowsStyle("windows", "\\", C.List_WnV, P.RegExp_RegExp("[/\\
\\]", true, false), P.RegExp_RegExp("[^/\\\\]$", true, false), P.RegExp_RegExp("
^(\\\\\\\\[^\\\\]+\\\\[^\\\\/]+|[a-zA-Z]:[/\\\\])", true, false), P.RegExp_RegEx
p("^[/\\\\](?![/\\\\])", true, false)); | |
13032 }, "Style_url", "$get$Style_url", "url", function() { | |
13033 return new E.UrlStyle("url", "/", C.List_cSk, P.RegExp_RegExp("/", true, fal
se), P.RegExp_RegExp("(^[a-zA-Z][-+.a-zA-Z\\d]*://|[^/])$", true, false), P.RegE
xp_RegExp("[a-zA-Z][-+.a-zA-Z\\d]*://[^/]*", true, false), P.RegExp_RegExp("^/",
true, false)); | |
13034 }, "Style_platform", "$get$Style_platform", "platform", function() { | |
13035 return S.Style__getPlatformStyle(); | |
13036 }]); | |
13037 Isolate = Isolate.$finishIsolateConstructor(Isolate); | |
13038 $ = new Isolate(); | |
13039 init.metadata = [null]; | |
13040 init.types = [{func: 1, args: [,]}, {func: 1}, {func: 1, void: true}, {func: 1
, args: [,,]}, {func: 1, void: true, args: [{func: 1, void: true}]}, {func: 1, a
rgs: [, P.StackTrace]}, {func: 1, void: true, args: [P.Object], opt: [P.StackTra
ce]}, {func: 1, args: [,], opt: [,]}, {func: 1, ret: P.String, args: [P.$int]},
{func: 1, ret: P.String, args: [P.String]}, {func: 1, ret: P.bool, args: [W.Elem
ent, P.String, P.String, W._Html5NodeValidator]}, {func: 1, args: [, P.String]},
{func: 1, args: [P.String]}, {func: 1, args: [{func: 1, void: true}]}, {func: 1
, args: [P.$int,,]}, {func: 1, void: true, args: [,], opt: [P.StackTrace]}, {fun
c: 1, ret: P.bool}, {func: 1, args: [P.bool]}, {func: 1, void: true, args: [, P.
StackTrace]}, {func: 1, ret: P.$int, args: [, P.$int]}, {func: 1, void: true, ar
gs: [P.$int, P.$int]}, {func: 1, args: [P.Symbol,,]}, {func: 1, ret: P.$int, arg
s: [,,]}, {func: 1, void: true, args: [P.String]}, {func: 1, void: true, args: [
P.String], opt: [,]}, {func: 1, ret: P.$int, args: [P.$int, P.$int]}, {func: 1,
args: [W.HttpRequest]}, {func: 1, void: true, args: [W.Node, W.Node]}, {func: 1,
ret: P.String, args: [P.String], named: {color: null}}, {func: 1, ret: X.Packag
eSummary, args: [P.Map]}, {func: 1, ret: X.LibrarySummary, args: [P.Map]}, {func
: 1, ret: X.MessageSummary, args: [P.Map]}]; | |
13041 function convertToFastObject(properties) { | |
13042 function MyClass() { | |
13043 } | |
13044 MyClass.prototype = properties; | |
13045 new MyClass(); | |
13046 return properties; | |
13047 } | |
13048 function convertToSlowObject(properties) { | |
13049 properties.__MAGIC_SLOW_PROPERTY = 1; | |
13050 delete properties.__MAGIC_SLOW_PROPERTY; | |
13051 return properties; | |
13052 } | |
13053 A = convertToFastObject(A); | |
13054 B = convertToFastObject(B); | |
13055 C = convertToFastObject(C); | |
13056 D = convertToFastObject(D); | |
13057 E = convertToFastObject(E); | |
13058 F = convertToFastObject(F); | |
13059 G = convertToFastObject(G); | |
13060 H = convertToFastObject(H); | |
13061 J = convertToFastObject(J); | |
13062 K = convertToFastObject(K); | |
13063 L = convertToFastObject(L); | |
13064 M = convertToFastObject(M); | |
13065 N = convertToFastObject(N); | |
13066 O = convertToFastObject(O); | |
13067 P = convertToFastObject(P); | |
13068 Q = convertToFastObject(Q); | |
13069 R = convertToFastObject(R); | |
13070 S = convertToFastObject(S); | |
13071 T = convertToFastObject(T); | |
13072 U = convertToFastObject(U); | |
13073 V = convertToFastObject(V); | |
13074 W = convertToFastObject(W); | |
13075 X = convertToFastObject(X); | |
13076 Y = convertToFastObject(Y); | |
13077 Z = convertToFastObject(Z); | |
13078 function init() { | |
13079 Isolate.$isolateProperties = Object.create(null); | |
13080 init.allClasses = map(); | |
13081 init.getTypeFromName = function(name) { | |
13082 return init.allClasses[name]; | |
13083 }; | |
13084 init.interceptorsByTag = map(); | |
13085 init.leafTags = map(); | |
13086 init.finishedClasses = map(); | |
13087 Isolate.$lazy = function(fieldName, getterName, lazyValue, staticName, proto
type) { | |
13088 if (!init.lazies) | |
13089 init.lazies = Object.create(null); | |
13090 init.lazies[fieldName] = getterName; | |
13091 prototype = prototype || Isolate.$isolateProperties; | |
13092 var sentinelUndefined = {}; | |
13093 var sentinelInProgress = {}; | |
13094 prototype[fieldName] = sentinelUndefined; | |
13095 prototype[getterName] = function() { | |
13096 var result = this[fieldName]; | |
13097 try { | |
13098 if (result === sentinelUndefined) { | |
13099 this[fieldName] = sentinelInProgress; | |
13100 try { | |
13101 result = this[fieldName] = lazyValue(); | |
13102 } finally { | |
13103 if (result === sentinelUndefined) | |
13104 this[fieldName] = null; | |
13105 } | |
13106 } else | |
13107 if (result === sentinelInProgress) | |
13108 H.throwCyclicInit(staticName || fieldName); | |
13109 return result; | |
13110 } finally { | |
13111 this[getterName] = function() { | |
13112 return this[fieldName]; | |
13113 }; | |
13114 } | |
13115 }; | |
13116 }; | |
13117 Isolate.$finishIsolateConstructor = function(oldIsolate) { | |
13118 var isolateProperties = oldIsolate.$isolateProperties; | |
13119 function Isolate() { | |
13120 var staticNames = Object.keys(isolateProperties); | |
13121 for (var i = 0; i < staticNames.length; i++) { | |
13122 var staticName = staticNames[i]; | |
13123 this[staticName] = isolateProperties[staticName]; | |
13124 } | |
13125 var lazies = init.lazies; | |
13126 var lazyInitializers = lazies ? Object.keys(lazies) : []; | |
13127 for (var i = 0; i < lazyInitializers.length; i++) | |
13128 this[lazies[lazyInitializers[i]]] = null; | |
13129 function ForceEfficientMap() { | |
13130 } | |
13131 ForceEfficientMap.prototype = this; | |
13132 new ForceEfficientMap(); | |
13133 for (var i = 0; i < lazyInitializers.length; i++) { | |
13134 var lazyInitName = lazies[lazyInitializers[i]]; | |
13135 this[lazyInitName] = isolateProperties[lazyInitName]; | |
13136 } | |
13137 } | |
13138 Isolate.prototype = oldIsolate.prototype; | |
13139 Isolate.prototype.constructor = Isolate; | |
13140 Isolate.$isolateProperties = isolateProperties; | |
13141 Isolate.makeConstantList = oldIsolate.makeConstantList; | |
13142 Isolate.functionThatReturnsNull = oldIsolate.functionThatReturnsNull; | |
13143 return Isolate; | |
13144 }; | |
13145 } | |
13146 !function() { | |
13147 var intern = function(s) { | |
13148 var o = {}; | |
13149 o[s] = 1; | |
13150 return Object.keys(convertToFastObject(o))[0]; | |
13151 }; | |
13152 init.getIsolateTag = function(name) { | |
13153 return intern("___dart_" + name + init.isolateTag); | |
13154 }; | |
13155 var tableProperty = "___dart_isolate_tags_"; | |
13156 var usedProperties = Object[tableProperty] || (Object[tableProperty] = Objec
t.create(null)); | |
13157 var rootProperty = "_ZxYxX"; | |
13158 for (var i = 0;; i++) { | |
13159 var property = intern(rootProperty + "_" + i + "_"); | |
13160 if (!(property in usedProperties)) { | |
13161 usedProperties[property] = 1; | |
13162 init.isolateTag = property; | |
13163 break; | |
13164 } | |
13165 } | |
13166 init.dispatchPropertyName = init.getIsolateTag("dispatch_record"); | |
13167 }(); | |
13168 // BEGIN invoke [main]. | |
13169 (function(callback) { | |
13170 if (typeof document === "undefined") { | |
13171 callback(null); | |
13172 return; | |
13173 } | |
13174 if (typeof document.currentScript != 'undefined') { | |
13175 callback(document.currentScript); | |
13176 return; | |
13177 } | |
13178 var scripts = document.scripts; | |
13179 function onLoad(event) { | |
13180 for (var i = 0; i < scripts.length; ++i) | |
13181 scripts[i].removeEventListener("load", onLoad, false); | |
13182 callback(event.target); | |
13183 } | |
13184 for (var i = 0; i < scripts.length; ++i) | |
13185 scripts[i].addEventListener("load", onLoad, false); | |
13186 })(function(currentScript) { | |
13187 init.currentScript = currentScript; | |
13188 if (typeof dartMainRunner === "function") | |
13189 dartMainRunner(function(a) { | |
13190 H.startRootIsolate(K.messages__main$closure(), a); | |
13191 }, []); | |
13192 else | |
13193 (function(a) { | |
13194 H.startRootIsolate(K.messages__main$closure(), a); | |
13195 })([]); | |
13196 }); | |
13197 // END invoke [main]. | |
13198 })(); | |
13199 | |
13200 //# sourceMappingURL=messages_widget.js.map | |
OLD | NEW |