Index: lib/src/runner/browser/static/host.dart.js |
diff --git a/lib/src/runner/browser/static/host.dart.js b/lib/src/runner/browser/static/host.dart.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7e5f8a72e17e9b987660c8c0515a23e4eb8a6f4a |
--- /dev/null |
+++ b/lib/src/runner/browser/static/host.dart.js |
@@ -0,0 +1,14006 @@ |
+// Generated by dart2js, the Dart to JavaScript compiler version: 1.9.0-edge.44028. |
+// The code supports the following hooks: |
+// dartPrint(message): |
+// if this function is defined it is called instead of the Dart [print] |
+// method. |
+// |
+// dartMainRunner(main, args): |
+// if this function is defined, the Dart [main] method will not be invoked |
+// directly. Instead, a closure that will invoke [main], and its arguments |
+// [args] is passed to [dartMainRunner]. |
+(function($) { |
+function map(x) { |
+ x = Object.create(null); |
+ x.x = 0; |
+ delete x.x; |
+ return x; |
+} |
+var A = map(); |
+var B = map(); |
+var C = map(); |
+var D = map(); |
+var E = map(); |
+var F = map(); |
+var G = map(); |
+var H = map(); |
+var J = map(); |
+var K = map(); |
+var L = map(); |
+var M = map(); |
+var N = map(); |
+var O = map(); |
+var P = map(); |
+var Q = map(); |
+var R = map(); |
+var S = map(); |
+var T = map(); |
+var U = map(); |
+var V = map(); |
+var W = map(); |
+var X = map(); |
+var Y = map(); |
+var Z = map(); |
+function Isolate() {} |
+init(); |
+ |
+$ = Isolate.$isolateProperties; |
+$.functionThatReturnsNull = function() { |
+}; |
+; |
+function parseReflectionData(reflectionData) { |
+ "use strict"; |
+ function generateAccessor(fieldDescriptor, accessors, cls) { |
+ var fieldInformation = fieldDescriptor.split("-"); |
+ var field = fieldInformation[0]; |
+ var len = field.length; |
+ var code = field.charCodeAt(len - 1); |
+ var reflectable; |
+ if (fieldInformation.length > 1) |
+ reflectable = true; |
+ else |
+ reflectable = false; |
+ code = code >= 60 && code <= 64 ? code - 59 : code >= 123 && code <= 126 ? code - 117 : code >= 37 && code <= 43 ? code - 27 : 0; |
+ if (code) { |
+ var getterCode = code & 3; |
+ var setterCode = code >> 2; |
+ var accessorName = field = field.substring(0, len - 1); |
+ var divider = field.indexOf(":"); |
+ if (divider > 0) { |
+ accessorName = field.substring(0, divider); |
+ field = field.substring(divider + 1); |
+ } |
+ if (getterCode) { |
+ var args = getterCode & 2 ? "receiver" : ""; |
+ var receiver = getterCode & 1 ? "this" : "receiver"; |
+ var body = "return " + receiver + "." + field; |
+ var property = cls + ".prototype.get$" + accessorName + "="; |
+ var fn = "function(" + args + "){" + body + "}"; |
+ if (reflectable) |
+ accessors.push(property + "$reflectable(" + fn + ");\n"); |
+ else |
+ accessors.push(property + fn + ";\n"); |
+ } |
+ if (setterCode) { |
+ var args = setterCode & 2 ? "receiver, value" : "value"; |
+ var receiver = setterCode & 1 ? "this" : "receiver"; |
+ var body = receiver + "." + field + " = value"; |
+ var property = cls + ".prototype.set$" + accessorName + "="; |
+ var fn = "function(" + args + "){" + body + "}"; |
+ if (reflectable) |
+ accessors.push(property + "$reflectable(" + fn + ");\n"); |
+ else |
+ accessors.push(property + fn + ";\n"); |
+ } |
+ } |
+ return field; |
+ } |
+ function defineClass(name, fields) { |
+ var accessors = []; |
+ var str = "function " + name + "("; |
+ var body = ""; |
+ var fieldNames = ""; |
+ for (var i = 0; i < fields.length; i++) { |
+ if (i != 0) |
+ str += ", "; |
+ var field = generateAccessor(fields[i], accessors, name); |
+ fieldNames += "'" + field + "',"; |
+ var parameter = "parameter_" + field; |
+ str += parameter; |
+ body += "this." + field + " = " + parameter + ";\n"; |
+ } |
+ str += ") {\n" + body + "}\n"; |
+ str += name + ".builtin$cls=\"" + name + "\";\n"; |
+ str += "$desc=$collectedClasses." + name + ";\n"; |
+ str += "if($desc instanceof Array) $desc = \$desc[1];\n"; |
+ str += name + ".prototype = $desc;\n"; |
+ if (typeof defineClass.name != "string") |
+ str += name + ".name=\"" + name + "\";\n"; |
+ str += name + "." + "$__fields__" + "=[" + fieldNames + "];\n"; |
+ str += accessors.join(""); |
+ return str; |
+ } |
+ init.createNewIsolate = function() { |
+ return new Isolate(); |
+ }; |
+ init.classIdExtractor = function(o) { |
+ return o.constructor.name; |
+ }; |
+ init.classFieldsExtractor = function(o) { |
+ var fieldNames = o.constructor.$__fields__; |
+ if (!fieldNames) |
+ return []; |
+ var result = []; |
+ result.length = fieldNames.length; |
+ for (var i = 0; i < fieldNames.length; i++) |
+ result[i] = o[fieldNames[i]]; |
+ return result; |
+ }; |
+ init.instanceFromClassId = function(name) { |
+ return new init.allClasses[name](); |
+ }; |
+ init.initializeEmptyInstance = function(name, o, fields) { |
+ init.allClasses[name].apply(o, fields); |
+ return o; |
+ }; |
+ var inheritFrom = function() { |
+ function tmp() { |
+ } |
+ return function(constructor, superConstructor) { |
+ if (superConstructor == null) { |
+ var prototype = constructor.prototype; |
+ prototype.constructor = constructor; |
+ prototype.$isObject = constructor; |
+ return prototype; |
+ } |
+ tmp.prototype = superConstructor.prototype; |
+ var object = new tmp(); |
+ var properties = constructor.prototype; |
+ var members = Object.keys(properties); |
+ for (var i = 0; i < members.length; i++) { |
+ var member = members[i]; |
+ object[member] = properties[member]; |
+ } |
+ object["$is" + constructor.name] = constructor; |
+ object.constructor = constructor; |
+ constructor.prototype = object; |
+ return object; |
+ }; |
+ }(); |
+ function finishClasses(processedClasses) { |
+ var allClasses = init.allClasses; |
+ processedClasses.combinedConstructorFunction += "return [\n" + processedClasses.constructorsList.join(",\n ") + "\n]"; |
+ var constructors = new Function("$collectedClasses", processedClasses.combinedConstructorFunction)(processedClasses.collected); |
+ processedClasses.combinedConstructorFunction = null; |
+ for (var i = 0; i < constructors.length; i++) { |
+ var constructor = constructors[i]; |
+ var cls = constructor.name; |
+ var desc = processedClasses.collected[cls]; |
+ var globalObject = $; |
+ if (desc instanceof Array) { |
+ globalObject = desc[0] || $; |
+ desc = desc[1]; |
+ } |
+ allClasses[cls] = constructor; |
+ globalObject[cls] = constructor; |
+ } |
+ constructors = null; |
+ var finishedClasses = init.finishedClasses; |
+ function finishClass(cls) { |
+ if (finishedClasses[cls]) |
+ return; |
+ finishedClasses[cls] = true; |
+ var superclass = processedClasses.pending[cls]; |
+ if (superclass && superclass.indexOf("+") > 0) { |
+ var s = superclass.split("+"); |
+ superclass = s[0]; |
+ var mixinClass = s[1]; |
+ finishClass(mixinClass); |
+ var mixin = allClasses[mixinClass]; |
+ var mixinPrototype = mixin.prototype; |
+ var clsPrototype = allClasses[cls].prototype; |
+ var properties = Object.keys(mixinPrototype); |
+ for (var i = 0; i < properties.length; i++) { |
+ var d = properties[i]; |
+ if (!hasOwnProperty.call(clsPrototype, d)) |
+ clsPrototype[d] = mixinPrototype[d]; |
+ } |
+ } |
+ if (!superclass || typeof superclass != "string") { |
+ inheritFrom(allClasses[cls], null); |
+ return; |
+ } |
+ finishClass(superclass); |
+ var superConstructor = allClasses[superclass]; |
+ if (!superConstructor) |
+ superConstructor = existingIsolateProperties[superclass]; |
+ var constructor = allClasses[cls]; |
+ var prototype = inheritFrom(constructor, superConstructor); |
+ if (Object.prototype.hasOwnProperty.call(prototype, "%")) { |
+ var nativeSpec = prototype["%"].split(";"); |
+ if (nativeSpec[0]) { |
+ var tags = nativeSpec[0].split("|"); |
+ for (var i = 0; i < tags.length; i++) { |
+ init.interceptorsByTag[tags[i]] = constructor; |
+ init.leafTags[tags[i]] = true; |
+ } |
+ } |
+ if (nativeSpec[1]) { |
+ tags = nativeSpec[1].split("|"); |
+ if (nativeSpec[2]) { |
+ var subclasses = nativeSpec[2].split("|"); |
+ for (var i = 0; i < subclasses.length; i++) { |
+ var subclass = allClasses[subclasses[i]]; |
+ subclass.$nativeSuperclassTag = tags[0]; |
+ } |
+ } |
+ for (i = 0; i < tags.length; i++) { |
+ init.interceptorsByTag[tags[i]] = constructor; |
+ init.leafTags[tags[i]] = false; |
+ } |
+ } |
+ } |
+ } |
+ var properties = Object.keys(processedClasses.pending); |
+ for (var i = 0; i < properties.length; i++) |
+ finishClass(properties[i]); |
+ } |
+ function processClassData(cls, descriptor, processedClasses) { |
+ var newDesc = {}; |
+ var previousProperty; |
+ var properties = Object.keys(descriptor); |
+ for (var i = 0; i < properties.length; i++) { |
+ var property = properties[i]; |
+ var firstChar = property.substring(0, 1); |
+ if (property === "static") |
+ processStatics(init.statics[cls] = descriptor[property], processedClasses); |
+ else if (firstChar === "+") { |
+ mangledNames[previousProperty] = property.substring(1); |
+ var flag = descriptor[property]; |
+ if (flag > 0) |
+ descriptor[previousProperty].$reflectable = flag; |
+ } else if (firstChar === "*") { |
+ newDesc[previousProperty].$defaultValues = descriptor[property]; |
+ var optionalMethods = newDesc.$methodsWithOptionalArguments; |
+ if (!optionalMethods) |
+ newDesc.$methodsWithOptionalArguments = optionalMethods = {}; |
+ optionalMethods[property] = previousProperty; |
+ } else { |
+ var elem = descriptor[property]; |
+ if (property !== "^" && elem != null && elem.constructor === Array && property !== "<>") |
+ addStubs(newDesc, elem, property, false, descriptor, []); |
+ else |
+ newDesc[previousProperty = property] = elem; |
+ } |
+ } |
+ var classData = newDesc["^"], split, supr, fields = classData; |
+ var s = fields.split(";"); |
+ fields = s[1] == "" ? [] : s[1].split(","); |
+ supr = s[0]; |
+ split = supr.split(":"); |
+ if (split.length == 2) { |
+ supr = split[0]; |
+ var functionSignature = split[1]; |
+ if (functionSignature) |
+ newDesc.$signature = function(s) { |
+ return function() { |
+ return init.metadata[s]; |
+ }; |
+ }(functionSignature); |
+ } |
+ if (supr) |
+ processedClasses.pending[cls] = supr; |
+ processedClasses.combinedConstructorFunction += defineClass(cls, fields); |
+ processedClasses.constructorsList.push(cls); |
+ processedClasses.collected[cls] = [globalObject, newDesc]; |
+ classes.push(cls); |
+ } |
+ function processStatics(descriptor, processedClasses) { |
+ var properties = Object.keys(descriptor); |
+ for (var i = 0; i < properties.length; i++) { |
+ var property = properties[i]; |
+ if (property === "^") |
+ continue; |
+ var element = descriptor[property]; |
+ var firstChar = property.substring(0, 1); |
+ var previousProperty; |
+ if (firstChar === "+") { |
+ mangledGlobalNames[previousProperty] = property.substring(1); |
+ var flag = descriptor[property]; |
+ if (flag > 0) |
+ descriptor[previousProperty].$reflectable = flag; |
+ if (element && element.length) |
+ init.typeInformation[previousProperty] = element; |
+ } else if (firstChar === "*") { |
+ globalObject[previousProperty].$defaultValues = element; |
+ var optionalMethods = descriptor.$methodsWithOptionalArguments; |
+ if (!optionalMethods) |
+ descriptor.$methodsWithOptionalArguments = optionalMethods = {}; |
+ optionalMethods[property] = previousProperty; |
+ } else if (typeof element === "function") { |
+ globalObject[previousProperty = property] = element; |
+ functions.push(property); |
+ init.globalFunctions[property] = element; |
+ } else if (element.constructor === Array) |
+ addStubs(globalObject, element, property, true, descriptor, functions); |
+ else { |
+ previousProperty = property; |
+ processClassData(property, element, processedClasses); |
+ } |
+ } |
+ } |
+ function addStubs(descriptor, array, name, isStatic, originalDescriptor, functions) { |
+ var index = 0, alias = array[index], f; |
+ if (typeof alias == "string") |
+ f = array[++index]; |
+ else { |
+ f = alias; |
+ alias = name; |
+ } |
+ var funcs = [originalDescriptor[name] = descriptor[name] = descriptor[alias] = f]; |
+ f.$stubName = name; |
+ functions.push(name); |
+ for (; index < array.length; index += 2) { |
+ f = array[index + 1]; |
+ if (typeof f != "function") |
+ break; |
+ f.$stubName = array[index + 2]; |
+ funcs.push(f); |
+ if (f.$stubName) { |
+ originalDescriptor[f.$stubName] = descriptor[f.$stubName] = f; |
+ functions.push(f.$stubName); |
+ } |
+ } |
+ for (var i = 0; i < funcs.length; index++, i++) |
+ funcs[i].$callName = array[index + 1]; |
+ var getterStubName = array[++index]; |
+ array = array.slice(++index); |
+ var requiredParameterInfo = array[0]; |
+ var requiredParameterCount = requiredParameterInfo >> 1; |
+ var isAccessor = (requiredParameterInfo & 1) === 1; |
+ var isSetter = requiredParameterInfo === 3; |
+ var isGetter = requiredParameterInfo === 1; |
+ var optionalParameterInfo = array[1]; |
+ var optionalParameterCount = optionalParameterInfo >> 1; |
+ var optionalParametersAreNamed = (optionalParameterInfo & 1) === 1; |
+ var isIntercepted = requiredParameterCount + optionalParameterCount != funcs[0].length; |
+ var functionTypeIndex = array[2]; |
+ var unmangledNameIndex = 2 * optionalParameterCount + requiredParameterCount + 3; |
+ if (getterStubName) { |
+ f = tearOff(funcs, array, isStatic, name, isIntercepted); |
+ descriptor[name].$getter = f; |
+ f.$getterStub = true; |
+ if (isStatic) |
+ init.globalFunctions[name] = f; |
+ originalDescriptor[getterStubName] = descriptor[getterStubName] = f; |
+ funcs.push(f); |
+ if (getterStubName) |
+ functions.push(getterStubName); |
+ f.$stubName = getterStubName; |
+ f.$callName = null; |
+ } |
+ } |
+ function tearOffGetter(funcs, reflectionInfo, name, isIntercepted) { |
+ return isIntercepted ? new Function("funcs", "reflectionInfo", "name", "H", "c", "return function tearOff_" + name + functionCounter++ + "(x) {" + "if (c === null) c = H.closureFromTearOff(" + "this, funcs, reflectionInfo, false, [x], name);" + "return new c(this, funcs[0], x, name);" + "}")(funcs, reflectionInfo, name, H, null) : new Function("funcs", "reflectionInfo", "name", "H", "c", "return function tearOff_" + name + functionCounter++ + "() {" + "if (c === null) c = H.closureFromTearOff(" + "this, funcs, reflectionInfo, false, [], name);" + "return new c(this, funcs[0], null, name);" + "}")(funcs, reflectionInfo, name, H, null); |
+ } |
+ function tearOff(funcs, reflectionInfo, isStatic, name, isIntercepted) { |
+ var cache; |
+ return isStatic ? function() { |
+ if (cache === void 0) |
+ cache = H.closureFromTearOff(this, funcs, reflectionInfo, true, [], name).prototype; |
+ return cache; |
+ } : tearOffGetter(funcs, reflectionInfo, name, isIntercepted); |
+ } |
+ var functionCounter = 0; |
+ if (!init.libraries) |
+ init.libraries = []; |
+ if (!init.mangledNames) |
+ init.mangledNames = map(); |
+ if (!init.mangledGlobalNames) |
+ init.mangledGlobalNames = map(); |
+ if (!init.statics) |
+ init.statics = map(); |
+ if (!init.typeInformation) |
+ init.typeInformation = map(); |
+ if (!init.globalFunctions) |
+ init.globalFunctions = map(); |
+ var libraries = init.libraries; |
+ var mangledNames = init.mangledNames; |
+ var mangledGlobalNames = init.mangledGlobalNames; |
+ var hasOwnProperty = Object.prototype.hasOwnProperty; |
+ var length = reflectionData.length; |
+ var processedClasses = Object.create(null); |
+ processedClasses.collected = Object.create(null); |
+ processedClasses.pending = Object.create(null); |
+ processedClasses.constructorsList = []; |
+ processedClasses.combinedConstructorFunction = "function $reflectable(fn){fn.$reflectable=1;return fn};\n" + "var $desc;\n"; |
+ for (var i = 0; i < length; i++) { |
+ var data = reflectionData[i]; |
+ var name = data[0]; |
+ var uri = data[1]; |
+ var metadata = data[2]; |
+ var globalObject = data[3]; |
+ var descriptor = data[4]; |
+ var isRoot = !!data[5]; |
+ var fields = descriptor && descriptor["^"]; |
+ if (fields instanceof Array) |
+ fields = fields[0]; |
+ var classes = []; |
+ var functions = []; |
+ processStatics(descriptor, processedClasses); |
+ libraries.push([name, uri, classes, functions, metadata, fields, isRoot, globalObject]); |
+ } |
+ finishClasses(processedClasses); |
+} |
+var dart = [ |
+["_foreign_helper", "dart:_foreign_helper", , H, { |
+ "^": "", |
+ JS_CONST: { |
+ "^": "Object;code" |
+ } |
+}], |
+["_interceptors", "dart:_interceptors", , J, { |
+ "^": "", |
+ getInterceptor: function(object) { |
+ return void 0; |
+ }, |
+ makeDispatchRecord: function(interceptor, proto, extension, indexability) { |
+ return {i: interceptor, p: proto, e: extension, x: indexability}; |
+ }, |
+ getNativeInterceptor: function(object) { |
+ var record, proto, objectProto, interceptor; |
+ record = object[init.dispatchPropertyName]; |
+ if (record == null) |
+ if ($.initNativeDispatchFlag == null) { |
+ H.initNativeDispatch(); |
+ record = object[init.dispatchPropertyName]; |
+ } |
+ if (record != null) { |
+ proto = record.p; |
+ if (false === proto) |
+ return record.i; |
+ if (true === proto) |
+ return object; |
+ objectProto = Object.getPrototypeOf(object); |
+ if (proto === objectProto) |
+ return record.i; |
+ if (record.e === objectProto) |
+ throw H.wrapException(P.UnimplementedError$("Return interceptor for " + H.S(proto(object, record)))); |
+ } |
+ interceptor = H.lookupAndCacheInterceptor(object); |
+ if (interceptor == null) { |
+ proto = Object.getPrototypeOf(object); |
+ if (proto == null || proto === Object.prototype) |
+ return C.PlainJavaScriptObject_methods; |
+ else |
+ return C.UnknownJavaScriptObject_methods; |
+ } |
+ return interceptor; |
+ }, |
+ Interceptor: { |
+ "^": "Object;", |
+ $eq: function(receiver, other) { |
+ return receiver === other; |
+ }, |
+ get$hashCode: function(receiver) { |
+ return H.Primitives_objectHashCode(receiver); |
+ }, |
+ toString$0: ["super$Interceptor$toString$0", function(receiver) { |
+ return H.Primitives_objectToString(receiver); |
+ }], |
+ "%": "MediaError|MediaKeyError|SVGAnimatedLength|SVGAnimatedLengthList|SVGAnimatedNumber|SVGAnimatedNumberList|SVGAnimatedString" |
+ }, |
+ JSBool: { |
+ "^": "Interceptor;", |
+ toString$0: function(receiver) { |
+ return String(receiver); |
+ }, |
+ get$hashCode: function(receiver) { |
+ return receiver ? 519018 : 218159; |
+ }, |
+ $isbool: 1 |
+ }, |
+ JSNull: { |
+ "^": "Interceptor;", |
+ $eq: function(receiver, other) { |
+ return null == other; |
+ }, |
+ toString$0: function(receiver) { |
+ return "null"; |
+ }, |
+ get$hashCode: function(receiver) { |
+ return 0; |
+ } |
+ }, |
+ JavaScriptObject: { |
+ "^": "Interceptor;", |
+ get$hashCode: function(_) { |
+ return 0; |
+ }, |
+ $isJSObject: 1 |
+ }, |
+ PlainJavaScriptObject: { |
+ "^": "JavaScriptObject;" |
+ }, |
+ UnknownJavaScriptObject: { |
+ "^": "JavaScriptObject;", |
+ toString$0: function(receiver) { |
+ return String(receiver); |
+ } |
+ }, |
+ JSArray: { |
+ "^": "Interceptor;", |
+ checkMutable$1: function(receiver, reason) { |
+ if (!!receiver.immutable$list) |
+ throw H.wrapException(P.UnsupportedError$(reason)); |
+ }, |
+ checkGrowable$1: function(receiver, reason) { |
+ if (!!receiver.fixed$length) |
+ throw H.wrapException(P.UnsupportedError$(reason)); |
+ }, |
+ add$1: function(receiver, value) { |
+ if (!!receiver.fixed$length) |
+ H.throwExpression(P.UnsupportedError$("add")); |
+ receiver.push(value); |
+ }, |
+ removeAt$1: function(receiver, index) { |
+ if (index >= receiver.length) |
+ throw H.wrapException(P.RangeError$value(index, null, null)); |
+ this.checkGrowable$1(receiver, "removeAt"); |
+ return receiver.splice(index, 1)[0]; |
+ }, |
+ insert$2: function(receiver, index, value) { |
+ if (index > receiver.length) |
+ throw H.wrapException(P.RangeError$value(index, null, null)); |
+ this.checkGrowable$1(receiver, "insert"); |
+ receiver.splice(index, 0, value); |
+ }, |
+ insertAll$2: function(receiver, index, iterable) { |
+ var insertionLength, end; |
+ this.checkGrowable$1(receiver, "insertAll"); |
+ P.RangeError_checkValueInInterval(index, 0, receiver.length, "index", null); |
+ insertionLength = iterable.length; |
+ this.set$length(receiver, receiver.length + insertionLength); |
+ end = index + insertionLength; |
+ this.setRange$4(receiver, end, receiver.length, receiver, index); |
+ this.setRange$3(receiver, index, end, iterable); |
+ }, |
+ removeLast$0: function(receiver) { |
+ this.checkGrowable$1(receiver, "removeLast"); |
+ if (receiver.length === 0) |
+ throw H.wrapException(P.RangeError$value(-1, null, null)); |
+ return receiver.pop(); |
+ }, |
+ remove$1: function(receiver, element) { |
+ var i; |
+ this.checkGrowable$1(receiver, "remove"); |
+ for (i = 0; i < receiver.length; ++i) |
+ if (J.$eq(receiver[i], element)) { |
+ receiver.splice(i, 1); |
+ return true; |
+ } |
+ return false; |
+ }, |
+ addAll$1: function(receiver, collection) { |
+ var t1; |
+ for (t1 = new H.ListIterator(collection, 2, 0, null); t1.moveNext$0();) |
+ this.add$1(receiver, t1._current); |
+ }, |
+ forEach$1: function(receiver, f) { |
+ var end, i; |
+ end = receiver.length; |
+ for (i = 0; i < end; ++i) { |
+ f.call$1(receiver[i]); |
+ if (receiver.length !== end) |
+ throw H.wrapException(P.ConcurrentModificationError$(receiver)); |
+ } |
+ }, |
+ map$1: function(receiver, f) { |
+ return H.setRuntimeTypeInfo(new H.MappedListIterable(receiver, f), [null, null]); |
+ }, |
+ join$1: function(receiver, separator) { |
+ var t1, list, i, t2; |
+ t1 = receiver.length; |
+ list = Array(t1); |
+ list.fixed$length = Array; |
+ for (i = 0; i < receiver.length; ++i) { |
+ t2 = H.S(receiver[i]); |
+ if (i >= t1) |
+ return H.ioore(list, i); |
+ list[i] = t2; |
+ } |
+ return list.join(separator); |
+ }, |
+ join$0: function($receiver) { |
+ return this.join$1($receiver, ""); |
+ }, |
+ skip$1: function(receiver, n) { |
+ return H.SubListIterable$(receiver, n, null, H.getTypeArgumentByIndex(receiver, 0)); |
+ }, |
+ fold$2: function(receiver, initialValue, combine) { |
+ var $length, value, i; |
+ $length = receiver.length; |
+ for (value = initialValue, i = 0; i < $length; ++i) { |
+ value = combine.call$2(value, receiver[i]); |
+ if (receiver.length !== $length) |
+ throw H.wrapException(P.ConcurrentModificationError$(receiver)); |
+ } |
+ return value; |
+ }, |
+ elementAt$1: function(receiver, index) { |
+ if (index >>> 0 !== index || index >= receiver.length) |
+ return H.ioore(receiver, index); |
+ return receiver[index]; |
+ }, |
+ sublist$2: function(receiver, start, end) { |
+ if (start < 0 || start > receiver.length) |
+ throw H.wrapException(P.RangeError$range(start, 0, receiver.length, null, null)); |
+ if (end < start || end > receiver.length) |
+ throw H.wrapException(P.RangeError$range(end, start, receiver.length, null, null)); |
+ if (start === end) |
+ return H.setRuntimeTypeInfo([], [H.getTypeArgumentByIndex(receiver, 0)]); |
+ return H.setRuntimeTypeInfo(receiver.slice(start, end), [H.getTypeArgumentByIndex(receiver, 0)]); |
+ }, |
+ get$first: function(receiver) { |
+ if (receiver.length > 0) |
+ return receiver[0]; |
+ throw H.wrapException(H.IterableElementError_noElement()); |
+ }, |
+ get$last: function(receiver) { |
+ var t1 = receiver.length; |
+ if (t1 > 0) |
+ return receiver[t1 - 1]; |
+ throw H.wrapException(H.IterableElementError_noElement()); |
+ }, |
+ setRange$4: function(receiver, start, end, iterable, skipCount) { |
+ var $length, i, t1; |
+ this.checkMutable$1(receiver, "set range"); |
+ P.RangeError_checkValidRange(start, end, receiver.length, null, null, null); |
+ $length = end - start; |
+ if ($length === 0) |
+ return; |
+ if (skipCount < 0) |
+ H.throwExpression(P.RangeError$range(skipCount, 0, null, "skipCount", null)); |
+ if (skipCount + $length > iterable.length) |
+ throw H.wrapException(H.IterableElementError_tooFew()); |
+ if (skipCount < start) |
+ for (i = $length - 1; i >= 0; --i) { |
+ t1 = skipCount + i; |
+ if (t1 < 0 || t1 >= iterable.length) |
+ return H.ioore(iterable, t1); |
+ receiver[start + i] = iterable[t1]; |
+ } |
+ else |
+ for (i = 0; i < $length; ++i) { |
+ t1 = skipCount + i; |
+ if (t1 < 0 || t1 >= iterable.length) |
+ return H.ioore(iterable, t1); |
+ receiver[start + i] = iterable[t1]; |
+ } |
+ }, |
+ setRange$3: function($receiver, start, end, iterable) { |
+ return this.setRange$4($receiver, start, end, iterable, 0); |
+ }, |
+ indexOf$2: function(receiver, element, start) { |
+ var i, t1; |
+ if (start >= receiver.length) |
+ return -1; |
+ if (start < 0) |
+ start = 0; |
+ for (i = start; t1 = receiver.length, i < t1; ++i) { |
+ if (i < 0) |
+ return H.ioore(receiver, i); |
+ if (J.$eq(receiver[i], element)) |
+ return i; |
+ } |
+ return -1; |
+ }, |
+ indexOf$1: function($receiver, element) { |
+ return this.indexOf$2($receiver, element, 0); |
+ }, |
+ contains$1: function(receiver, other) { |
+ var i; |
+ for (i = 0; i < receiver.length; ++i) |
+ if (J.$eq(receiver[i], other)) |
+ return true; |
+ return false; |
+ }, |
+ get$isEmpty: function(receiver) { |
+ return receiver.length === 0; |
+ }, |
+ get$isNotEmpty: function(receiver) { |
+ return receiver.length !== 0; |
+ }, |
+ toString$0: function(receiver) { |
+ return P.IterableBase_iterableToFullString(receiver, "[", "]"); |
+ }, |
+ toList$1$growable: function(receiver, growable) { |
+ var t1; |
+ if (growable) |
+ return H.setRuntimeTypeInfo(receiver.slice(), [H.getTypeArgumentByIndex(receiver, 0)]); |
+ else { |
+ t1 = H.setRuntimeTypeInfo(receiver.slice(), [H.getTypeArgumentByIndex(receiver, 0)]); |
+ t1.fixed$length = Array; |
+ return t1; |
+ } |
+ }, |
+ toList$0: function($receiver) { |
+ return this.toList$1$growable($receiver, true); |
+ }, |
+ get$iterator: function(receiver) { |
+ return new H.ListIterator(receiver, receiver.length, 0, null); |
+ }, |
+ get$hashCode: function(receiver) { |
+ return H.Primitives_objectHashCode(receiver); |
+ }, |
+ get$length: function(receiver) { |
+ return receiver.length; |
+ }, |
+ set$length: function(receiver, newLength) { |
+ if (newLength < 0) |
+ throw H.wrapException(P.RangeError$value(newLength, null, null)); |
+ this.checkGrowable$1(receiver, "set length"); |
+ receiver.length = newLength; |
+ }, |
+ $index: function(receiver, index) { |
+ if (typeof index !== "number" || Math.floor(index) !== index) |
+ throw H.wrapException(P.ArgumentError$(index)); |
+ if (index >= receiver.length || index < 0) |
+ throw H.wrapException(P.RangeError$value(index, null, null)); |
+ return receiver[index]; |
+ }, |
+ $indexSet: function(receiver, index, value) { |
+ if (!!receiver.immutable$list) |
+ H.throwExpression(P.UnsupportedError$("indexed set")); |
+ if (typeof index !== "number" || Math.floor(index) !== index) |
+ throw H.wrapException(P.ArgumentError$(index)); |
+ if (index >= receiver.length || index < 0) |
+ throw H.wrapException(P.RangeError$value(index, null, null)); |
+ receiver[index] = value; |
+ }, |
+ $isJSIndexable: 1, |
+ $isList: 1, |
+ $asList: null, |
+ $isEfficientLength: 1, |
+ static: {JSArray_JSArray$fixed: function($length, $E) { |
+ var t1; |
+ if (typeof $length !== "number" || Math.floor($length) !== $length || $length < 0) |
+ throw H.wrapException(P.ArgumentError$("Length must be a non-negative integer: " + H.S($length))); |
+ t1 = H.setRuntimeTypeInfo(new Array($length), [$E]); |
+ t1.fixed$length = Array; |
+ return t1; |
+ }} |
+ }, |
+ JSNumber: { |
+ "^": "Interceptor;", |
+ get$isNaN: function(receiver) { |
+ return isNaN(receiver); |
+ }, |
+ get$isFinite: function(receiver) { |
+ return isFinite(receiver); |
+ }, |
+ remainder$1: function(receiver, b) { |
+ return receiver % b; |
+ }, |
+ toInt$0: function(receiver) { |
+ var t1; |
+ if (receiver >= -2147483648 && receiver <= 2147483647) |
+ return receiver | 0; |
+ if (isFinite(receiver)) { |
+ t1 = receiver < 0 ? Math.ceil(receiver) : Math.floor(receiver); |
+ return t1 + 0; |
+ } |
+ throw H.wrapException(P.UnsupportedError$("" + receiver)); |
+ }, |
+ round$0: function(receiver) { |
+ if (receiver > 0) { |
+ if (receiver !== 1 / 0) |
+ return Math.round(receiver); |
+ } else if (receiver > -1 / 0) |
+ return 0 - Math.round(0 - receiver); |
+ throw H.wrapException(P.UnsupportedError$("" + receiver)); |
+ }, |
+ toRadixString$1: function(receiver, radix) { |
+ var result, match, t1, exponent; |
+ H.checkInt(radix); |
+ if (radix < 2 || radix > 36) |
+ throw H.wrapException(P.RangeError$(radix)); |
+ result = receiver.toString(radix); |
+ if (C.JSString_methods.codeUnitAt$1(result, result.length - 1) !== 41) |
+ return result; |
+ match = /^([\da-z]+)(?:\.([\da-z]+))?\(e\+(\d+)\)$/.exec(result); |
+ if (match == null) |
+ H.throwExpression(P.UnsupportedError$("Unexpected toString result: " + result)); |
+ t1 = J.getInterceptor$asx(match); |
+ result = t1.$index(match, 1); |
+ exponent = +t1.$index(match, 3); |
+ if (t1.$index(match, 2) != null) { |
+ result += t1.$index(match, 2); |
+ exponent -= t1.$index(match, 2).length; |
+ } |
+ return result + C.JSString_methods.$mul("0", exponent); |
+ }, |
+ toString$0: function(receiver) { |
+ if (receiver === 0 && 1 / receiver < 0) |
+ return "-0.0"; |
+ else |
+ return "" + receiver; |
+ }, |
+ get$hashCode: function(receiver) { |
+ return receiver & 0x1FFFFFFF; |
+ }, |
+ $negate: function(receiver) { |
+ return -receiver; |
+ }, |
+ $add: function(receiver, other) { |
+ if (typeof other !== "number") |
+ throw H.wrapException(P.ArgumentError$(other)); |
+ return receiver + other; |
+ }, |
+ $sub: function(receiver, other) { |
+ if (typeof other !== "number") |
+ throw H.wrapException(P.ArgumentError$(other)); |
+ return receiver - other; |
+ }, |
+ $mul: function(receiver, other) { |
+ return receiver * other; |
+ }, |
+ _tdivFast$1: function(receiver, other) { |
+ return (receiver | 0) === receiver ? receiver / other | 0 : this.toInt$0(receiver / other); |
+ }, |
+ _shlPositive$1: function(receiver, other) { |
+ return other > 31 ? 0 : receiver << other >>> 0; |
+ }, |
+ _shrOtherPositive$1: function(receiver, other) { |
+ var t1; |
+ if (receiver > 0) |
+ t1 = other > 31 ? 0 : receiver >>> other; |
+ else { |
+ t1 = other > 31 ? 31 : other; |
+ t1 = receiver >> t1 >>> 0; |
+ } |
+ return t1; |
+ }, |
+ _shrReceiverPositive$1: function(receiver, other) { |
+ if (other < 0) |
+ throw H.wrapException(P.ArgumentError$(other)); |
+ return other > 31 ? 0 : receiver >>> other; |
+ }, |
+ $lt: function(receiver, other) { |
+ if (typeof other !== "number") |
+ throw H.wrapException(P.ArgumentError$(other)); |
+ return receiver < other; |
+ }, |
+ $gt: function(receiver, other) { |
+ if (typeof other !== "number") |
+ throw H.wrapException(P.ArgumentError$(other)); |
+ return receiver > other; |
+ }, |
+ $ge: function(receiver, other) { |
+ if (typeof other !== "number") |
+ throw H.wrapException(P.ArgumentError$(other)); |
+ return receiver >= other; |
+ }, |
+ $isnum: 1 |
+ }, |
+ JSInt: { |
+ "^": "JSNumber;", |
+ $is$double: 1, |
+ $isnum: 1, |
+ $is$int: 1 |
+ }, |
+ JSDouble: { |
+ "^": "JSNumber;", |
+ $is$double: 1, |
+ $isnum: 1 |
+ }, |
+ JSString: { |
+ "^": "Interceptor;", |
+ codeUnitAt$1: function(receiver, index) { |
+ if (typeof index !== "number" || Math.floor(index) !== index) |
+ throw H.wrapException(P.ArgumentError$(index)); |
+ if (index < 0) |
+ throw H.wrapException(P.RangeError$value(index, null, null)); |
+ if (index >= receiver.length) |
+ throw H.wrapException(P.RangeError$value(index, null, null)); |
+ return receiver.charCodeAt(index); |
+ }, |
+ allMatches$2: function(receiver, string, start) { |
+ var t1; |
+ H.checkString(string); |
+ H.checkInt(start); |
+ t1 = J.get$length$asx(string); |
+ if (typeof t1 !== "number") |
+ return H.iae(t1); |
+ t1 = start > t1; |
+ if (t1) |
+ throw H.wrapException(P.RangeError$range(start, 0, J.get$length$asx(string), null, null)); |
+ return H.allMatchesInStringUnchecked(receiver, string, start); |
+ }, |
+ allMatches$1: function($receiver, string) { |
+ return this.allMatches$2($receiver, string, 0); |
+ }, |
+ matchAsPrefix$2: function(receiver, string, start) { |
+ var t1, i; |
+ if (start < 0 || start > string.length) |
+ throw H.wrapException(P.RangeError$range(start, 0, string.length, null, null)); |
+ t1 = receiver.length; |
+ if (start + t1 > string.length) |
+ return; |
+ for (i = 0; i < t1; ++i) |
+ if (this.codeUnitAt$1(string, start + i) !== this.codeUnitAt$1(receiver, i)) |
+ return; |
+ return new H.StringMatch(start, string, receiver); |
+ }, |
+ $add: function(receiver, other) { |
+ if (typeof other !== "string") |
+ throw H.wrapException(P.ArgumentError$(other)); |
+ return receiver + other; |
+ }, |
+ endsWith$1: function(receiver, other) { |
+ var otherLength, t1; |
+ H.checkString(other); |
+ otherLength = other.length; |
+ t1 = receiver.length; |
+ if (otherLength > t1) |
+ return false; |
+ return other === this.substring$1(receiver, t1 - otherLength); |
+ }, |
+ replaceAll$2: function(receiver, from, to) { |
+ H.checkString(to); |
+ return H.stringReplaceAllUnchecked(receiver, from, to); |
+ }, |
+ replaceFirst$3: function(receiver, from, to, startIndex) { |
+ H.checkString(to); |
+ H.checkInt(startIndex); |
+ P.RangeError_checkValueInInterval(startIndex, 0, receiver.length, "startIndex", null); |
+ return H.stringReplaceFirstUnchecked(receiver, from, to, startIndex); |
+ }, |
+ replaceFirst$2: function($receiver, from, to) { |
+ return this.replaceFirst$3($receiver, from, to, 0); |
+ }, |
+ split$1: function(receiver, pattern) { |
+ return receiver.split(pattern); |
+ }, |
+ replaceRange$3: function(receiver, start, end, replacement) { |
+ H.checkString(replacement); |
+ H.checkInt(start); |
+ end = P.RangeError_checkValidRange(start, end, receiver.length, null, null, null); |
+ H.checkInt(end); |
+ return H.stringReplaceRangeUnchecked(receiver, start, end, replacement); |
+ }, |
+ startsWith$2: function(receiver, pattern, index) { |
+ var endIndex; |
+ H.checkInt(index); |
+ if (index > receiver.length) |
+ throw H.wrapException(P.RangeError$range(index, 0, receiver.length, null, null)); |
+ if (typeof pattern === "string") { |
+ endIndex = index + pattern.length; |
+ if (endIndex > receiver.length) |
+ return false; |
+ return pattern === receiver.substring(index, endIndex); |
+ } |
+ return J.matchAsPrefix$2$s(pattern, receiver, index) != null; |
+ }, |
+ startsWith$1: function($receiver, pattern) { |
+ return this.startsWith$2($receiver, pattern, 0); |
+ }, |
+ substring$2: function(receiver, startIndex, endIndex) { |
+ var t1; |
+ if (typeof startIndex !== "number" || Math.floor(startIndex) !== startIndex) |
+ H.throwExpression(P.ArgumentError$(startIndex)); |
+ if (endIndex == null) |
+ endIndex = receiver.length; |
+ if (typeof endIndex !== "number" || Math.floor(endIndex) !== endIndex) |
+ H.throwExpression(P.ArgumentError$(endIndex)); |
+ t1 = J.getInterceptor$n(startIndex); |
+ if (t1.$lt(startIndex, 0)) |
+ throw H.wrapException(P.RangeError$value(startIndex, null, null)); |
+ if (t1.$gt(startIndex, endIndex)) |
+ throw H.wrapException(P.RangeError$value(startIndex, null, null)); |
+ if (J.$gt$n(endIndex, receiver.length)) |
+ throw H.wrapException(P.RangeError$value(endIndex, null, null)); |
+ return receiver.substring(startIndex, endIndex); |
+ }, |
+ substring$1: function($receiver, startIndex) { |
+ return this.substring$2($receiver, startIndex, null); |
+ }, |
+ trim$0: function(receiver) { |
+ var result, endIndex, startIndex, t1, endIndex0; |
+ result = receiver.trim(); |
+ endIndex = result.length; |
+ if (endIndex === 0) |
+ return result; |
+ if (this.codeUnitAt$1(result, 0) === 133) { |
+ startIndex = J.JSString__skipLeadingWhitespace(result, 1); |
+ if (startIndex === endIndex) |
+ return ""; |
+ } else |
+ startIndex = 0; |
+ t1 = endIndex - 1; |
+ endIndex0 = this.codeUnitAt$1(result, t1) === 133 ? J.JSString__skipTrailingWhitespace(result, t1) : endIndex; |
+ if (startIndex === 0 && endIndex0 === endIndex) |
+ return result; |
+ return result.substring(startIndex, endIndex0); |
+ }, |
+ $mul: function(receiver, times) { |
+ var s, result; |
+ if (typeof times !== "number") |
+ return H.iae(times); |
+ if (0 >= times) |
+ return ""; |
+ if (times === 1 || receiver.length === 0) |
+ return receiver; |
+ if (times !== times >>> 0) |
+ throw H.wrapException(C.C_OutOfMemoryError); |
+ for (s = receiver, result = ""; true;) { |
+ if ((times & 1) === 1) |
+ result = s + result; |
+ times = times >>> 1; |
+ if (times === 0) |
+ break; |
+ s += s; |
+ } |
+ return result; |
+ }, |
+ get$codeUnits: function(receiver) { |
+ return new H.CodeUnits(receiver); |
+ }, |
+ indexOf$2: function(receiver, pattern, start) { |
+ if (start < 0 || start > receiver.length) |
+ throw H.wrapException(P.RangeError$range(start, 0, receiver.length, null, null)); |
+ return receiver.indexOf(pattern, start); |
+ }, |
+ indexOf$1: function($receiver, pattern) { |
+ return this.indexOf$2($receiver, pattern, 0); |
+ }, |
+ lastIndexOf$2: function(receiver, pattern, start) { |
+ var t1, t2; |
+ if (start == null) |
+ start = receiver.length; |
+ else if (start < 0 || start > receiver.length) |
+ throw H.wrapException(P.RangeError$range(start, 0, receiver.length, null, null)); |
+ t1 = pattern.length; |
+ if (typeof start !== "number") |
+ return start.$add(); |
+ t2 = receiver.length; |
+ if (start + t1 > t2) |
+ start = t2 - t1; |
+ return receiver.lastIndexOf(pattern, start); |
+ }, |
+ lastIndexOf$1: function($receiver, pattern) { |
+ return this.lastIndexOf$2($receiver, pattern, null); |
+ }, |
+ contains$2: function(receiver, other, startIndex) { |
+ if (other == null) |
+ H.throwExpression(P.ArgumentError$(null)); |
+ if (startIndex > receiver.length) |
+ throw H.wrapException(P.RangeError$range(startIndex, 0, receiver.length, null, null)); |
+ return H.stringContainsUnchecked(receiver, other, startIndex); |
+ }, |
+ contains$1: function($receiver, other) { |
+ return this.contains$2($receiver, other, 0); |
+ }, |
+ get$isEmpty: function(receiver) { |
+ return receiver.length === 0; |
+ }, |
+ get$isNotEmpty: function(receiver) { |
+ return receiver.length !== 0; |
+ }, |
+ toString$0: function(receiver) { |
+ return receiver; |
+ }, |
+ get$hashCode: function(receiver) { |
+ var t1, hash, i; |
+ for (t1 = receiver.length, hash = 0, i = 0; i < t1; ++i) { |
+ hash = 536870911 & hash + receiver.charCodeAt(i); |
+ hash = 536870911 & hash + ((524287 & hash) << 10 >>> 0); |
+ hash ^= hash >> 6; |
+ } |
+ hash = 536870911 & hash + ((67108863 & hash) << 3 >>> 0); |
+ hash ^= hash >> 11; |
+ return 536870911 & hash + ((16383 & hash) << 15 >>> 0); |
+ }, |
+ get$length: function(receiver) { |
+ return receiver.length; |
+ }, |
+ $index: function(receiver, index) { |
+ if (typeof index !== "number" || Math.floor(index) !== index) |
+ throw H.wrapException(P.ArgumentError$(index)); |
+ if (index >= receiver.length || index < 0) |
+ throw H.wrapException(P.RangeError$value(index, null, null)); |
+ return receiver[index]; |
+ }, |
+ $isJSIndexable: 1, |
+ $isString: 1, |
+ static: {JSString__isWhitespace: function(codeUnit) { |
+ if (codeUnit < 256) |
+ switch (codeUnit) { |
+ case 9: |
+ case 10: |
+ case 11: |
+ case 12: |
+ case 13: |
+ case 32: |
+ case 133: |
+ case 160: |
+ return true; |
+ default: |
+ return false; |
+ } |
+ switch (codeUnit) { |
+ case 5760: |
+ case 6158: |
+ case 8192: |
+ case 8193: |
+ case 8194: |
+ case 8195: |
+ case 8196: |
+ case 8197: |
+ case 8198: |
+ case 8199: |
+ case 8200: |
+ case 8201: |
+ case 8202: |
+ case 8232: |
+ case 8233: |
+ case 8239: |
+ case 8287: |
+ case 12288: |
+ case 65279: |
+ return true; |
+ default: |
+ return false; |
+ } |
+ }, JSString__skipLeadingWhitespace: function(string, index) { |
+ var t1, codeUnit; |
+ for (t1 = string.length; index < t1;) { |
+ codeUnit = C.JSString_methods.codeUnitAt$1(string, index); |
+ if (codeUnit !== 32 && codeUnit !== 13 && !J.JSString__isWhitespace(codeUnit)) |
+ break; |
+ ++index; |
+ } |
+ return index; |
+ }, JSString__skipTrailingWhitespace: function(string, index) { |
+ var index0, codeUnit; |
+ for (; index > 0; index = index0) { |
+ index0 = index - 1; |
+ codeUnit = C.JSString_methods.codeUnitAt$1(string, index0); |
+ if (codeUnit !== 32 && codeUnit !== 13 && !J.JSString__isWhitespace(codeUnit)) |
+ break; |
+ } |
+ return index; |
+ }} |
+ } |
+}], |
+["_isolate_helper", "dart:_isolate_helper", , H, { |
+ "^": "", |
+ _callInIsolate: function(isolate, $function) { |
+ var result = isolate.eval$1($function); |
+ init.globalState.topEventLoop.run$0(); |
+ return result; |
+ }, |
+ leaveJsAsync: function() { |
+ --init.globalState.topEventLoop._activeJsAsyncCount; |
+ }, |
+ startRootIsolate: function(entry, args) { |
+ var t1, t2, t3, t4, t5, rootContext; |
+ t1 = {}; |
+ t1.args_0 = args; |
+ args = args; |
+ t1.args_0 = args; |
+ if (args == null) { |
+ args = []; |
+ t1.args_0 = args; |
+ t2 = args; |
+ } else |
+ t2 = args; |
+ if (!J.getInterceptor(t2).$isList) |
+ throw H.wrapException(P.ArgumentError$("Arguments to main must be a List: " + H.S(t2))); |
+ t2 = new H._Manager(0, 0, 1, null, null, null, null, null, null, null, null, null, entry); |
+ t2._Manager$1(entry); |
+ init.globalState = t2; |
+ if (init.globalState.isWorker === true) |
+ return; |
+ t2 = init.globalState.nextIsolateId++; |
+ t3 = P.LinkedHashMap_LinkedHashMap(null, null, null, P.$int, H.RawReceivePortImpl); |
+ t4 = P.LinkedHashSet_LinkedHashSet(null, null, null, P.$int); |
+ t5 = new H.RawReceivePortImpl(0, null, false); |
+ rootContext = new H._IsolateContext(t2, t3, t4, init.createNewIsolate(), t5, 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)); |
+ t4.add$1(0, 0); |
+ rootContext._addRegistration$2(0, t5); |
+ init.globalState.rootContext = rootContext; |
+ init.globalState.currentContext = rootContext; |
+ t2 = H.getDynamicRuntimeType(); |
+ t3 = H.buildFunctionType(t2, [t2])._isTest$1(entry); |
+ if (t3) |
+ rootContext.eval$1(new H.startRootIsolate_closure(t1, entry)); |
+ else { |
+ t2 = H.buildFunctionType(t2, [t2, t2])._isTest$1(entry); |
+ if (t2) |
+ rootContext.eval$1(new H.startRootIsolate_closure0(t1, entry)); |
+ else |
+ rootContext.eval$1(entry); |
+ } |
+ init.globalState.topEventLoop.run$0(); |
+ }, |
+ IsolateNatives_computeThisScript: function() { |
+ var currentScript = init.currentScript; |
+ if (currentScript != null) |
+ return String(currentScript.src); |
+ if (typeof version == "function" && typeof os == "object" && "system" in os) |
+ return H.IsolateNatives_computeThisScriptFromTrace(); |
+ if (typeof version == "function" && typeof system == "function") |
+ return thisFilename(); |
+ if (init.globalState.isWorker === true) |
+ return H.IsolateNatives_computeThisScriptFromTrace(); |
+ return; |
+ }, |
+ IsolateNatives_computeThisScriptFromTrace: function() { |
+ var stack, matches; |
+ stack = new Error().stack; |
+ if (stack == null) { |
+ stack = function() { |
+ try { |
+ throw new Error(); |
+ } catch (e) { |
+ return e.stack; |
+ } |
+ }(); |
+ if (stack == null) |
+ throw H.wrapException(P.UnsupportedError$("No stack trace")); |
+ } |
+ matches = stack.match(new RegExp("^ *at [^(]*\\((.*):[0-9]*:[0-9]*\\)$", "m")); |
+ if (matches != null) |
+ return matches[1]; |
+ matches = stack.match(new RegExp("^[^@]*@(.*):[0-9]*$", "m")); |
+ if (matches != null) |
+ return matches[1]; |
+ throw H.wrapException(P.UnsupportedError$("Cannot extract URI from \"" + H.S(stack) + "\"")); |
+ }, |
+ IsolateNatives__processWorkerMessage: function(sender, e) { |
+ var msg, t1, functionName, entryPoint, args, message, isSpawnUri, startPaused, replyTo, t2, t3, t4, context; |
+ msg = new H._Deserializer(true, []).deserialize$1(e.data); |
+ t1 = J.getInterceptor$asx(msg); |
+ switch (t1.$index(msg, "command")) { |
+ case "start": |
+ init.globalState.currentManagerId = t1.$index(msg, "id"); |
+ functionName = t1.$index(msg, "functionName"); |
+ entryPoint = functionName == null ? init.globalState.entry : H.IsolateNatives__getJSFunctionFromName(functionName); |
+ args = t1.$index(msg, "args"); |
+ message = new H._Deserializer(true, []).deserialize$1(t1.$index(msg, "msg")); |
+ isSpawnUri = t1.$index(msg, "isSpawnUri"); |
+ startPaused = t1.$index(msg, "startPaused"); |
+ replyTo = new H._Deserializer(true, []).deserialize$1(t1.$index(msg, "replyTo")); |
+ t1 = init.globalState.nextIsolateId++; |
+ t2 = P.LinkedHashMap_LinkedHashMap(null, null, null, P.$int, H.RawReceivePortImpl); |
+ t3 = P.LinkedHashSet_LinkedHashSet(null, null, null, P.$int); |
+ t4 = new H.RawReceivePortImpl(0, null, false); |
+ context = new H._IsolateContext(t1, t2, t3, init.createNewIsolate(), t4, 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)); |
+ t3.add$1(0, 0); |
+ context._addRegistration$2(0, t4); |
+ init.globalState.topEventLoop.events._add$1(new H._IsolateEvent(context, new H.IsolateNatives__processWorkerMessage_closure(entryPoint, args, message, isSpawnUri, startPaused, replyTo), "worker-start")); |
+ init.globalState.currentContext = context; |
+ init.globalState.topEventLoop.run$0(); |
+ break; |
+ case "spawn-worker": |
+ break; |
+ case "message": |
+ if (t1.$index(msg, "port") != null) |
+ J.send$1$x(t1.$index(msg, "port"), t1.$index(msg, "msg")); |
+ init.globalState.topEventLoop.run$0(); |
+ break; |
+ case "close": |
+ init.globalState.managers.remove$1(0, $.get$IsolateNatives_workerIds().$index(0, sender)); |
+ sender.terminate(); |
+ init.globalState.topEventLoop.run$0(); |
+ break; |
+ case "log": |
+ H.IsolateNatives__log(t1.$index(msg, "msg")); |
+ break; |
+ case "print": |
+ if (init.globalState.isWorker === true) { |
+ t1 = init.globalState.mainManager; |
+ t2 = P.LinkedHashMap_LinkedHashMap$_literal(["command", "print", "msg", msg], null, null); |
+ t2 = new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity(null, P.$int)).serialize$1(t2); |
+ t1.toString; |
+ self.postMessage(t2); |
+ } else |
+ P.print(t1.$index(msg, "msg")); |
+ break; |
+ case "error": |
+ throw H.wrapException(t1.$index(msg, "msg")); |
+ } |
+ }, |
+ IsolateNatives__log: function(msg) { |
+ var trace, t1, t2, exception; |
+ if (init.globalState.isWorker === true) { |
+ t1 = init.globalState.mainManager; |
+ t2 = P.LinkedHashMap_LinkedHashMap$_literal(["command", "log", "msg", msg], null, null); |
+ t2 = new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity(null, P.$int)).serialize$1(t2); |
+ t1.toString; |
+ self.postMessage(t2); |
+ } else |
+ try { |
+ self.console.log(msg); |
+ } catch (exception) { |
+ H.unwrapException(exception); |
+ trace = H.getTraceFromException(exception); |
+ throw H.wrapException(P.Exception_Exception(trace)); |
+ } |
+ }, |
+ IsolateNatives__getJSFunctionFromName: function(functionName) { |
+ return init.globalFunctions[functionName](); |
+ }, |
+ IsolateNatives__startIsolate: function(topLevel, args, message, isSpawnUri, startPaused, replyTo) { |
+ var context, t1, t2, t3; |
+ context = init.globalState.currentContext; |
+ t1 = context.id; |
+ $.Primitives_mirrorFunctionCacheName = $.Primitives_mirrorFunctionCacheName + ("_" + t1); |
+ $.Primitives_mirrorInvokeCacheName = $.Primitives_mirrorInvokeCacheName + ("_" + t1); |
+ t1 = context.controlPort; |
+ t2 = init.globalState.currentContext.id; |
+ t3 = context.pauseCapability; |
+ J.send$1$x(replyTo, ["spawned", new H._NativeJsSendPort(t1, t2), t3, context.terminateCapability]); |
+ t2 = new H.IsolateNatives__startIsolate_runStartFunction(topLevel, args, message, isSpawnUri, context); |
+ if (startPaused === true) { |
+ context.addPause$2(t3, t3); |
+ init.globalState.topEventLoop.events._add$1(new H._IsolateEvent(context, t2, "start isolate")); |
+ } else |
+ t2.call$0(); |
+ }, |
+ _clone: function(message) { |
+ return new H._Deserializer(true, []).deserialize$1(new H._Serializer(false, P.LinkedHashMap_LinkedHashMap$identity(null, P.$int)).serialize$1(message)); |
+ }, |
+ startRootIsolate_closure: { |
+ "^": "Closure:0;box_0,entry_1", |
+ call$0: function() { |
+ this.entry_1.call$1(this.box_0.args_0); |
+ } |
+ }, |
+ startRootIsolate_closure0: { |
+ "^": "Closure:0;box_0,entry_2", |
+ call$0: function() { |
+ this.entry_2.call$2(this.box_0.args_0, null); |
+ } |
+ }, |
+ _Manager: { |
+ "^": "Object;nextIsolateId,currentManagerId,nextManagerId,currentContext,rootContext,topEventLoop,fromCommandLine,isWorker,supportsWorkers,isolates,mainManager,managers,entry", |
+ _Manager$1: function(entry) { |
+ var t1, t2, t3; |
+ t1 = self.window == null; |
+ t2 = self.Worker; |
+ t3 = t1 && !!self.postMessage; |
+ this.isWorker = t3; |
+ if (!t3) |
+ t2 = t2 != null && $.get$IsolateNatives_thisScript() != null; |
+ else |
+ t2 = true; |
+ this.supportsWorkers = t2; |
+ this.fromCommandLine = t1 && !t3; |
+ this.topEventLoop = new H._EventLoop(P.ListQueue$(null, H._IsolateEvent), 0); |
+ this.isolates = P.LinkedHashMap_LinkedHashMap(null, null, null, P.$int, H._IsolateContext); |
+ this.managers = P.LinkedHashMap_LinkedHashMap(null, null, null, P.$int, null); |
+ if (this.isWorker === true) { |
+ t1 = new H._MainManagerStub(); |
+ this.mainManager = t1; |
+ self.onmessage = function(f, a) { |
+ return function(e) { |
+ f(a, e); |
+ }; |
+ }(H.IsolateNatives__processWorkerMessage, t1); |
+ self.dartPrint = self.dartPrint || function(serialize) { |
+ return function(object) { |
+ if (self.console && self.console.log) |
+ self.console.log(object); |
+ else |
+ self.postMessage(serialize(object)); |
+ }; |
+ }(H._Manager__serializePrintMessage); |
+ } |
+ }, |
+ static: {_Manager__serializePrintMessage: function(object) { |
+ var t1 = P.LinkedHashMap_LinkedHashMap$_literal(["command", "print", "msg", object], null, null); |
+ return new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity(null, P.$int)).serialize$1(t1); |
+ }} |
+ }, |
+ _IsolateContext: { |
+ "^": "Object;id,ports,weakPorts,isolateStatics<,controlPort<,pauseCapability,terminateCapability,initialized,isPaused,delayedEvents,pauseTokens,doneHandlers,_scheduledControlEvents,_isExecutingEvent,errorsAreFatal,errorPorts", |
+ addPause$2: function(authentification, resume) { |
+ if (!this.pauseCapability.$eq(0, authentification)) |
+ return; |
+ if (this.pauseTokens.add$1(0, resume) && !this.isPaused) |
+ this.isPaused = true; |
+ this._updateGlobalState$0(); |
+ }, |
+ removePause$1: function(resume) { |
+ var t1, t2, $event, t3, t4, t5; |
+ if (!this.isPaused) |
+ return; |
+ t1 = this.pauseTokens; |
+ t1.remove$1(0, resume); |
+ if (t1._collection$_length === 0) { |
+ for (t1 = this.delayedEvents; t2 = t1.length, t2 !== 0;) { |
+ if (0 >= t2) |
+ return H.ioore(t1, 0); |
+ $event = t1.pop(); |
+ t2 = init.globalState.topEventLoop.events; |
+ t3 = t2._head; |
+ t4 = t2._table; |
+ t5 = t4.length; |
+ t3 = (t3 - 1 & t5 - 1) >>> 0; |
+ t2._head = t3; |
+ if (t3 < 0 || t3 >= t5) |
+ return H.ioore(t4, t3); |
+ t4[t3] = $event; |
+ if (t3 === t2._tail) |
+ t2._grow$0(); |
+ ++t2._modificationCount; |
+ } |
+ this.isPaused = false; |
+ } |
+ this._updateGlobalState$0(); |
+ }, |
+ addDoneListener$1: function(responsePort) { |
+ var t1 = this.doneHandlers; |
+ if (t1 == null) { |
+ t1 = []; |
+ this.doneHandlers = t1; |
+ } |
+ if (J.contains$1$asx(t1, responsePort)) |
+ return; |
+ this.doneHandlers.push(responsePort); |
+ }, |
+ removeDoneListener$1: function(responsePort) { |
+ var t1 = this.doneHandlers; |
+ if (t1 == null) |
+ return; |
+ J.remove$1$ax(t1, responsePort); |
+ }, |
+ setErrorsFatal$2: function(authentification, errorsAreFatal) { |
+ if (!this.terminateCapability.$eq(0, authentification)) |
+ return; |
+ this.errorsAreFatal = errorsAreFatal; |
+ }, |
+ handlePing$2: function(responsePort, pingType) { |
+ var t1, t2; |
+ t1 = J.getInterceptor(pingType); |
+ if (!t1.$eq(pingType, 0)) |
+ t2 = t1.$eq(pingType, 1) && !this._isExecutingEvent; |
+ else |
+ t2 = true; |
+ if (t2) { |
+ J.send$1$x(responsePort, null); |
+ return; |
+ } |
+ t2 = new H._IsolateContext_handlePing_respond(responsePort); |
+ if (t1.$eq(pingType, 2)) { |
+ init.globalState.topEventLoop.events._add$1(new H._IsolateEvent(this, t2, "ping")); |
+ return; |
+ } |
+ t1 = this._scheduledControlEvents; |
+ if (t1 == null) { |
+ t1 = P.ListQueue$(null, null); |
+ this._scheduledControlEvents = t1; |
+ } |
+ t1._add$1(t2); |
+ }, |
+ handleKill$2: function(authentification, priority) { |
+ var t1, t2; |
+ if (!this.terminateCapability.$eq(0, authentification)) |
+ return; |
+ t1 = J.getInterceptor(priority); |
+ if (!t1.$eq(priority, 0)) |
+ t2 = t1.$eq(priority, 1) && !this._isExecutingEvent; |
+ else |
+ t2 = true; |
+ if (t2) { |
+ this.kill$0(); |
+ return; |
+ } |
+ if (t1.$eq(priority, 2)) { |
+ t1 = init.globalState.topEventLoop; |
+ t2 = this.get$kill(); |
+ t1.events._add$1(new H._IsolateEvent(this, t2, "kill")); |
+ return; |
+ } |
+ t1 = this._scheduledControlEvents; |
+ if (t1 == null) { |
+ t1 = P.ListQueue$(null, null); |
+ this._scheduledControlEvents = t1; |
+ } |
+ t1._add$1(this.get$kill()); |
+ }, |
+ handleUncaughtError$2: function(error, stackTrace) { |
+ var t1, message, t2; |
+ t1 = this.errorPorts; |
+ if (t1._collection$_length === 0) { |
+ if (this.errorsAreFatal === true && this === init.globalState.rootContext) |
+ return; |
+ if (self.console && self.console.error) |
+ self.console.error(error, stackTrace); |
+ else { |
+ P.print(error); |
+ if (stackTrace != null) |
+ P.print(stackTrace); |
+ } |
+ return; |
+ } |
+ message = Array(2); |
+ message.fixed$length = Array; |
+ message[0] = J.toString$0(error); |
+ message[1] = stackTrace == null ? null : J.toString$0(stackTrace); |
+ for (t2 = new P.LinkedHashSetIterator(t1, t1._collection$_modifications, null, null), t2._collection$_cell = t1._collection$_first; t2.moveNext$0();) |
+ J.send$1$x(t2._collection$_current, message); |
+ }, |
+ eval$1: function(code) { |
+ var old, result, e, s, exception, t1; |
+ old = init.globalState.currentContext; |
+ init.globalState.currentContext = this; |
+ $ = this.isolateStatics; |
+ result = null; |
+ this._isExecutingEvent = true; |
+ try { |
+ result = code.call$0(); |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ this.handleUncaughtError$2(e, s); |
+ if (this.errorsAreFatal === true) { |
+ this.kill$0(); |
+ if (this === init.globalState.rootContext) |
+ throw exception; |
+ } |
+ } finally { |
+ this._isExecutingEvent = false; |
+ init.globalState.currentContext = old; |
+ if (old != null) |
+ $ = old.get$isolateStatics(); |
+ if (this._scheduledControlEvents != null) |
+ for (; t1 = this._scheduledControlEvents, !t1.get$isEmpty(t1);) |
+ this._scheduledControlEvents.removeFirst$0().call$0(); |
+ } |
+ return result; |
+ }, |
+ lookup$1: function(portId) { |
+ return this.ports.$index(0, portId); |
+ }, |
+ _addRegistration$2: function(portId, port) { |
+ var t1 = this.ports; |
+ if (t1.containsKey$1(portId)) |
+ throw H.wrapException(P.Exception_Exception("Registry: ports must be registered only once.")); |
+ t1.$indexSet(0, portId, port); |
+ }, |
+ _updateGlobalState$0: function() { |
+ if (this.ports.__js_helper$_length - this.weakPorts._collection$_length > 0 || this.isPaused || !this.initialized) |
+ init.globalState.isolates.$indexSet(0, this.id, this); |
+ else |
+ this.kill$0(); |
+ }, |
+ kill$0: [function() { |
+ var t1, t2; |
+ t1 = this._scheduledControlEvents; |
+ if (t1 != null) |
+ t1.clear$0(0); |
+ for (t1 = this.ports, t2 = t1.get$values(t1), t2 = H.setRuntimeTypeInfo(new H.MappedIterator(null, J.get$iterator$ax(t2._iterable), t2._f), [H.getTypeArgumentByIndex(t2, 0), H.getTypeArgumentByIndex(t2, 1)]); t2.moveNext$0();) |
+ t2._current.__isolate_helper$_close$0(); |
+ t1.clear$0(0); |
+ this.weakPorts.clear$0(0); |
+ init.globalState.isolates.remove$1(0, this.id); |
+ this.errorPorts.clear$0(0); |
+ t1 = this.doneHandlers; |
+ if (t1 != null) { |
+ for (t1 = new H.ListIterator(t1, t1.length, 0, null); t1.moveNext$0();) |
+ J.send$1$x(t1._current, null); |
+ this.doneHandlers = null; |
+ } |
+ }, "call$0", "get$kill", 0, 0, 1] |
+ }, |
+ _IsolateContext_handlePing_respond: { |
+ "^": "Closure:1;responsePort_0", |
+ call$0: function() { |
+ J.send$1$x(this.responsePort_0, null); |
+ } |
+ }, |
+ _EventLoop: { |
+ "^": "Object;events,_activeJsAsyncCount", |
+ dequeue$0: function() { |
+ var t1 = this.events; |
+ if (t1._head === t1._tail) |
+ return; |
+ return t1.removeFirst$0(); |
+ }, |
+ runIteration$0: function() { |
+ var $event, t1, t2; |
+ $event = this.dequeue$0(); |
+ if ($event == null) { |
+ if (init.globalState.rootContext != null && init.globalState.isolates.containsKey$1(init.globalState.rootContext.id) && init.globalState.fromCommandLine === true && init.globalState.rootContext.ports.__js_helper$_length === 0) |
+ H.throwExpression(P.Exception_Exception("Program exited with open ReceivePorts.")); |
+ t1 = init.globalState; |
+ if (t1.isWorker === true && t1.isolates.__js_helper$_length === 0 && t1.topEventLoop._activeJsAsyncCount === 0) { |
+ t1 = t1.mainManager; |
+ t2 = P.LinkedHashMap_LinkedHashMap$_literal(["command", "close"], null, null); |
+ t2 = new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity(null, P.$int)).serialize$1(t2); |
+ t1.toString; |
+ self.postMessage(t2); |
+ } |
+ return false; |
+ } |
+ $event.process$0(); |
+ return true; |
+ }, |
+ _runHelper$0: function() { |
+ if (self.window != null) |
+ new H._EventLoop__runHelper_next(this).call$0(); |
+ else |
+ for (; this.runIteration$0();) |
+ ; |
+ }, |
+ run$0: function() { |
+ var e, trace, exception, t1, t2; |
+ if (init.globalState.isWorker !== true) |
+ this._runHelper$0(); |
+ else |
+ try { |
+ this._runHelper$0(); |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ trace = H.getTraceFromException(exception); |
+ t1 = init.globalState.mainManager; |
+ t2 = P.LinkedHashMap_LinkedHashMap$_literal(["command", "error", "msg", H.S(e) + "\n" + H.S(trace)], null, null); |
+ t2 = new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity(null, P.$int)).serialize$1(t2); |
+ t1.toString; |
+ self.postMessage(t2); |
+ } |
+ } |
+ }, |
+ _EventLoop__runHelper_next: { |
+ "^": "Closure:1;this_0", |
+ call$0: function() { |
+ if (!this.this_0.runIteration$0()) |
+ return; |
+ P.Timer_Timer(C.Duration_0, this); |
+ } |
+ }, |
+ _IsolateEvent: { |
+ "^": "Object;isolate,fn,message>", |
+ process$0: function() { |
+ var t1 = this.isolate; |
+ if (t1.isPaused) { |
+ t1.delayedEvents.push(this); |
+ return; |
+ } |
+ t1.eval$1(this.fn); |
+ } |
+ }, |
+ _MainManagerStub: { |
+ "^": "Object;" |
+ }, |
+ IsolateNatives__processWorkerMessage_closure: { |
+ "^": "Closure:0;entryPoint_0,args_1,message_2,isSpawnUri_3,startPaused_4,replyTo_5", |
+ call$0: function() { |
+ H.IsolateNatives__startIsolate(this.entryPoint_0, this.args_1, this.message_2, this.isSpawnUri_3, this.startPaused_4, this.replyTo_5); |
+ } |
+ }, |
+ IsolateNatives__startIsolate_runStartFunction: { |
+ "^": "Closure:1;topLevel_0,args_1,message_2,isSpawnUri_3,context_4", |
+ call$0: function() { |
+ var t1, t2, t3; |
+ this.context_4.initialized = true; |
+ if (this.isSpawnUri_3 !== true) |
+ this.topLevel_0.call$1(this.message_2); |
+ else { |
+ t1 = this.topLevel_0; |
+ t2 = H.getDynamicRuntimeType(); |
+ t3 = H.buildFunctionType(t2, [t2, t2])._isTest$1(t1); |
+ if (t3) |
+ t1.call$2(this.args_1, this.message_2); |
+ else { |
+ t2 = H.buildFunctionType(t2, [t2])._isTest$1(t1); |
+ if (t2) |
+ t1.call$1(this.args_1); |
+ else |
+ t1.call$0(); |
+ } |
+ } |
+ } |
+ }, |
+ _BaseSendPort: { |
+ "^": "Object;" |
+ }, |
+ _NativeJsSendPort: { |
+ "^": "_BaseSendPort;_receivePort,_isolateId", |
+ send$1: function(_, message) { |
+ var isolate, t1, msg, t2; |
+ isolate = init.globalState.isolates.$index(0, this._isolateId); |
+ if (isolate == null) |
+ return; |
+ t1 = this._receivePort; |
+ if (t1.get$_isClosed()) |
+ return; |
+ msg = H._clone(message); |
+ if (isolate.get$controlPort() === t1) { |
+ t1 = J.getInterceptor$asx(msg); |
+ switch (t1.$index(msg, 0)) { |
+ case "pause": |
+ isolate.addPause$2(t1.$index(msg, 1), t1.$index(msg, 2)); |
+ break; |
+ case "resume": |
+ isolate.removePause$1(t1.$index(msg, 1)); |
+ break; |
+ case "add-ondone": |
+ isolate.addDoneListener$1(t1.$index(msg, 1)); |
+ break; |
+ case "remove-ondone": |
+ isolate.removeDoneListener$1(t1.$index(msg, 1)); |
+ break; |
+ case "set-errors-fatal": |
+ isolate.setErrorsFatal$2(t1.$index(msg, 1), t1.$index(msg, 2)); |
+ break; |
+ case "ping": |
+ isolate.handlePing$2(t1.$index(msg, 1), t1.$index(msg, 2)); |
+ break; |
+ case "kill": |
+ isolate.handleKill$2(t1.$index(msg, 1), t1.$index(msg, 2)); |
+ break; |
+ case "getErrors": |
+ t1 = t1.$index(msg, 1); |
+ isolate.errorPorts.add$1(0, t1); |
+ break; |
+ case "stopErrors": |
+ t1 = t1.$index(msg, 1); |
+ isolate.errorPorts.remove$1(0, t1); |
+ break; |
+ } |
+ return; |
+ } |
+ t1 = init.globalState.topEventLoop; |
+ t2 = "receive " + H.S(message); |
+ t1.events._add$1(new H._IsolateEvent(isolate, new H._NativeJsSendPort_send_closure(this, msg), t2)); |
+ }, |
+ $eq: function(_, other) { |
+ if (other == null) |
+ return false; |
+ return other instanceof H._NativeJsSendPort && J.$eq(this._receivePort, other._receivePort); |
+ }, |
+ get$hashCode: function(_) { |
+ return this._receivePort.get$_id(); |
+ } |
+ }, |
+ _NativeJsSendPort_send_closure: { |
+ "^": "Closure:0;this_0,msg_1", |
+ call$0: function() { |
+ var t1 = this.this_0._receivePort; |
+ if (!t1.get$_isClosed()) |
+ t1.__isolate_helper$_add$1(this.msg_1); |
+ } |
+ }, |
+ _WorkerSendPort: { |
+ "^": "_BaseSendPort;_workerId,_receivePortId,_isolateId", |
+ send$1: function(_, message) { |
+ var t1, workerMessage, manager; |
+ t1 = P.LinkedHashMap_LinkedHashMap$_literal(["command", "message", "port", this, "msg", message], null, null); |
+ workerMessage = new H._Serializer(true, P.LinkedHashMap_LinkedHashMap$identity(null, P.$int)).serialize$1(t1); |
+ if (init.globalState.isWorker === true) { |
+ init.globalState.mainManager.toString; |
+ self.postMessage(workerMessage); |
+ } else { |
+ manager = init.globalState.managers.$index(0, this._workerId); |
+ if (manager != null) |
+ manager.postMessage(workerMessage); |
+ } |
+ }, |
+ $eq: function(_, other) { |
+ if (other == null) |
+ return false; |
+ return other instanceof H._WorkerSendPort && J.$eq(this._workerId, other._workerId) && J.$eq(this._isolateId, other._isolateId) && J.$eq(this._receivePortId, other._receivePortId); |
+ }, |
+ get$hashCode: function(_) { |
+ var t1, t2, t3; |
+ t1 = this._workerId; |
+ if (typeof t1 !== "number") |
+ return t1.$shl(); |
+ t2 = this._isolateId; |
+ if (typeof t2 !== "number") |
+ return t2.$shl(); |
+ t3 = this._receivePortId; |
+ if (typeof t3 !== "number") |
+ return H.iae(t3); |
+ return (t1 << 16 ^ t2 << 8 ^ t3) >>> 0; |
+ } |
+ }, |
+ RawReceivePortImpl: { |
+ "^": "Object;_id<,_handler,_isClosed<", |
+ __isolate_helper$_close$0: function() { |
+ this._isClosed = true; |
+ this._handler = null; |
+ }, |
+ close$0: function(_) { |
+ var t1, t2; |
+ if (this._isClosed) |
+ return; |
+ this._isClosed = true; |
+ this._handler = null; |
+ t1 = init.globalState.currentContext; |
+ t2 = this._id; |
+ t1.ports.remove$1(0, t2); |
+ t1.weakPorts.remove$1(0, t2); |
+ t1._updateGlobalState$0(); |
+ }, |
+ __isolate_helper$_add$1: function(dataEvent) { |
+ if (this._isClosed) |
+ return; |
+ this._handler$1(dataEvent); |
+ }, |
+ _handler$1: function(arg0) { |
+ return this._handler.call$1(arg0); |
+ }, |
+ $isRawReceivePort: 1 |
+ }, |
+ TimerImpl: { |
+ "^": "Object;_once,_inEventLoop,_handle", |
+ TimerImpl$periodic$2: function(milliseconds, callback) { |
+ if (self.setTimeout != null) { |
+ ++init.globalState.topEventLoop._activeJsAsyncCount; |
+ this._handle = self.setInterval(H.convertDartClosureToJS(new H.TimerImpl$periodic_closure(this, callback), 0), milliseconds); |
+ } else |
+ throw H.wrapException(P.UnsupportedError$("Periodic timer.")); |
+ }, |
+ TimerImpl$2: function(milliseconds, callback) { |
+ var t1, t2; |
+ if (milliseconds === 0) |
+ t1 = self.setTimeout == null || init.globalState.isWorker === true; |
+ else |
+ t1 = false; |
+ if (t1) { |
+ this._handle = 1; |
+ t1 = init.globalState.topEventLoop; |
+ t2 = init.globalState.currentContext; |
+ t1.events._add$1(new H._IsolateEvent(t2, new H.TimerImpl_internalCallback(this, callback), "timer")); |
+ this._inEventLoop = true; |
+ } else if (self.setTimeout != null) { |
+ ++init.globalState.topEventLoop._activeJsAsyncCount; |
+ this._handle = self.setTimeout(H.convertDartClosureToJS(new H.TimerImpl_internalCallback0(this, callback), 0), milliseconds); |
+ } else |
+ throw H.wrapException(P.UnsupportedError$("Timer greater than 0.")); |
+ }, |
+ static: {TimerImpl$: function(milliseconds, callback) { |
+ var t1 = new H.TimerImpl(true, false, null); |
+ t1.TimerImpl$2(milliseconds, callback); |
+ return t1; |
+ }, TimerImpl$periodic: function(milliseconds, callback) { |
+ var t1 = new H.TimerImpl(false, false, null); |
+ t1.TimerImpl$periodic$2(milliseconds, callback); |
+ return t1; |
+ }} |
+ }, |
+ TimerImpl_internalCallback: { |
+ "^": "Closure:1;this_0,callback_1", |
+ call$0: function() { |
+ this.this_0._handle = null; |
+ this.callback_1.call$0(); |
+ } |
+ }, |
+ TimerImpl_internalCallback0: { |
+ "^": "Closure:1;this_2,callback_3", |
+ call$0: function() { |
+ this.this_2._handle = null; |
+ H.leaveJsAsync(); |
+ this.callback_3.call$0(); |
+ } |
+ }, |
+ TimerImpl$periodic_closure: { |
+ "^": "Closure:0;this_0,callback_1", |
+ call$0: function() { |
+ this.callback_1.call$1(this.this_0); |
+ } |
+ }, |
+ CapabilityImpl: { |
+ "^": "Object;_id<", |
+ get$hashCode: function(_) { |
+ var hash = this._id; |
+ hash = C.JSInt_methods._shrOtherPositive$1(hash, 0) ^ C.JSInt_methods._tdivFast$1(hash, 4294967296); |
+ hash = (~hash >>> 0) + (hash << 15 >>> 0) & 4294967295; |
+ hash = ((hash ^ hash >>> 12) >>> 0) * 5 & 4294967295; |
+ hash = ((hash ^ hash >>> 4) >>> 0) * 2057 & 4294967295; |
+ return (hash ^ hash >>> 16) >>> 0; |
+ }, |
+ $eq: function(_, other) { |
+ if (other == null) |
+ return false; |
+ if (other === this) |
+ return true; |
+ if (other instanceof H.CapabilityImpl) |
+ return this._id === other._id; |
+ return false; |
+ } |
+ }, |
+ _Serializer: { |
+ "^": "Object;_serializeSendPorts,serializedObjectIds", |
+ serialize$1: [function(x) { |
+ var t1, serializationId, serializeTearOff, t2, $name; |
+ if (x == null || typeof x === "string" || typeof x === "number" || typeof x === "boolean") |
+ return x; |
+ t1 = this.serializedObjectIds; |
+ serializationId = t1.$index(0, x); |
+ if (serializationId != null) |
+ return ["ref", serializationId]; |
+ t1.$indexSet(0, x, t1.__js_helper$_length); |
+ t1 = J.getInterceptor(x); |
+ if (!!t1.$isNativeByteBuffer) |
+ return ["buffer", x]; |
+ if (!!t1.$isNativeTypedData) |
+ return ["typed", x]; |
+ if (!!t1.$isJSIndexable) |
+ return this.serializeJSIndexable$1(x); |
+ if (!!t1.$isInternalMap) { |
+ serializeTearOff = this.get$serialize(); |
+ t2 = x.get$keys(); |
+ t2 = H.MappedIterable_MappedIterable(t2, serializeTearOff, H.getRuntimeTypeArgument(t2, "IterableBase", 0), null); |
+ t2 = P.List_List$from(t2, true, H.getRuntimeTypeArgument(t2, "IterableBase", 0)); |
+ t1 = t1.get$values(x); |
+ t1 = H.MappedIterable_MappedIterable(t1, serializeTearOff, H.getRuntimeTypeArgument(t1, "IterableBase", 0), null); |
+ return ["map", t2, P.List_List$from(t1, true, H.getRuntimeTypeArgument(t1, "IterableBase", 0))]; |
+ } |
+ if (!!t1.$isJSObject) |
+ return this.serializeJSObject$1(x); |
+ if (!!t1.$isInterceptor) |
+ this.unsupported$1(x); |
+ if (!!t1.$isRawReceivePort) |
+ this.unsupported$2(x, "RawReceivePorts can't be transmitted:"); |
+ if (!!t1.$is_NativeJsSendPort) |
+ return this.serializeJsSendPort$1(x); |
+ if (!!t1.$is_WorkerSendPort) |
+ return this.serializeWorkerSendPort$1(x); |
+ if (!!t1.$isClosure) { |
+ $name = x.$name; |
+ if ($name == null) |
+ this.unsupported$2(x, "Closures can't be transmitted:"); |
+ return ["function", $name]; |
+ } |
+ return ["dart", init.classIdExtractor(x), this.serializeArrayInPlace$1(init.classFieldsExtractor(x))]; |
+ }, "call$1", "get$serialize", 2, 0, 2], |
+ unsupported$2: function(x, message) { |
+ throw H.wrapException(P.UnsupportedError$(H.S(message == null ? "Can't transmit:" : message) + " " + H.S(x))); |
+ }, |
+ unsupported$1: function(x) { |
+ return this.unsupported$2(x, null); |
+ }, |
+ serializeJSIndexable$1: function(indexable) { |
+ var serialized = this.serializeArray$1(indexable); |
+ if (!!indexable.fixed$length) |
+ return ["fixed", serialized]; |
+ if (!indexable.fixed$length) |
+ return ["extendable", serialized]; |
+ if (!indexable.immutable$list) |
+ return ["mutable", serialized]; |
+ if (indexable.constructor === Array) |
+ return ["const", serialized]; |
+ this.unsupported$2(indexable, "Can't serialize indexable: "); |
+ }, |
+ serializeArray$1: function(x) { |
+ var serialized, i, t1; |
+ serialized = []; |
+ C.JSArray_methods.set$length(serialized, x.length); |
+ for (i = 0; i < x.length; ++i) { |
+ t1 = this.serialize$1(x[i]); |
+ if (i >= serialized.length) |
+ return H.ioore(serialized, i); |
+ serialized[i] = t1; |
+ } |
+ return serialized; |
+ }, |
+ serializeArrayInPlace$1: function(x) { |
+ var i; |
+ for (i = 0; i < x.length; ++i) |
+ C.JSArray_methods.$indexSet(x, i, this.serialize$1(x[i])); |
+ return x; |
+ }, |
+ serializeJSObject$1: function(x) { |
+ var keys, values, i, t1; |
+ if (!!x.constructor && x.constructor !== Object) |
+ this.unsupported$2(x, "Only plain JS Objects are supported:"); |
+ keys = Object.keys(x); |
+ values = []; |
+ C.JSArray_methods.set$length(values, keys.length); |
+ for (i = 0; i < keys.length; ++i) { |
+ t1 = this.serialize$1(x[keys[i]]); |
+ if (i >= values.length) |
+ return H.ioore(values, i); |
+ values[i] = t1; |
+ } |
+ return ["js-object", keys, values]; |
+ }, |
+ serializeWorkerSendPort$1: function(x) { |
+ if (this._serializeSendPorts) |
+ return ["sendport", x._workerId, x._isolateId, x._receivePortId]; |
+ return ["raw sendport", x]; |
+ }, |
+ serializeJsSendPort$1: function(x) { |
+ if (this._serializeSendPorts) |
+ return ["sendport", init.globalState.currentManagerId, x._isolateId, x._receivePort.get$_id()]; |
+ return ["raw sendport", x]; |
+ } |
+ }, |
+ _Deserializer: { |
+ "^": "Object;_adjustSendPorts,deserializedObjects", |
+ deserialize$1: [function(x) { |
+ var serializationId, t1, result, classId, fields, emptyInstance; |
+ if (x == null || typeof x === "string" || typeof x === "number" || typeof x === "boolean") |
+ return x; |
+ if (typeof x !== "object" || x === null || x.constructor !== Array) |
+ throw H.wrapException(P.ArgumentError$("Bad serialized message: " + H.S(x))); |
+ switch (C.JSArray_methods.get$first(x)) { |
+ case "ref": |
+ if (1 >= x.length) |
+ return H.ioore(x, 1); |
+ serializationId = x[1]; |
+ t1 = this.deserializedObjects; |
+ if (serializationId >>> 0 !== serializationId || serializationId >= t1.length) |
+ return H.ioore(t1, serializationId); |
+ return t1[serializationId]; |
+ case "buffer": |
+ if (1 >= x.length) |
+ return H.ioore(x, 1); |
+ result = x[1]; |
+ this.deserializedObjects.push(result); |
+ return result; |
+ case "typed": |
+ if (1 >= x.length) |
+ return H.ioore(x, 1); |
+ result = x[1]; |
+ this.deserializedObjects.push(result); |
+ return result; |
+ case "fixed": |
+ if (1 >= x.length) |
+ return H.ioore(x, 1); |
+ result = x[1]; |
+ this.deserializedObjects.push(result); |
+ t1 = this.deserializeArrayInPlace$1(result); |
+ t1.$builtinTypeInfo = [null]; |
+ t1.fixed$length = Array; |
+ return t1; |
+ case "extendable": |
+ if (1 >= x.length) |
+ return H.ioore(x, 1); |
+ result = x[1]; |
+ this.deserializedObjects.push(result); |
+ t1 = this.deserializeArrayInPlace$1(result); |
+ t1.$builtinTypeInfo = [null]; |
+ return t1; |
+ case "mutable": |
+ if (1 >= x.length) |
+ return H.ioore(x, 1); |
+ result = x[1]; |
+ this.deserializedObjects.push(result); |
+ return this.deserializeArrayInPlace$1(result); |
+ case "const": |
+ if (1 >= x.length) |
+ return H.ioore(x, 1); |
+ result = x[1]; |
+ this.deserializedObjects.push(result); |
+ t1 = this.deserializeArrayInPlace$1(result); |
+ t1.$builtinTypeInfo = [null]; |
+ t1.fixed$length = Array; |
+ return t1; |
+ case "map": |
+ return this.deserializeMap$1(x); |
+ case "sendport": |
+ return this.deserializeSendPort$1(x); |
+ case "raw sendport": |
+ if (1 >= x.length) |
+ return H.ioore(x, 1); |
+ result = x[1]; |
+ this.deserializedObjects.push(result); |
+ return result; |
+ case "js-object": |
+ return this.deserializeJSObject$1(x); |
+ case "function": |
+ if (1 >= x.length) |
+ return H.ioore(x, 1); |
+ result = init.globalFunctions[x[1]](); |
+ this.deserializedObjects.push(result); |
+ return result; |
+ case "dart": |
+ t1 = x.length; |
+ if (1 >= t1) |
+ return H.ioore(x, 1); |
+ classId = x[1]; |
+ if (2 >= t1) |
+ return H.ioore(x, 2); |
+ fields = x[2]; |
+ emptyInstance = init.instanceFromClassId(classId); |
+ this.deserializedObjects.push(emptyInstance); |
+ this.deserializeArrayInPlace$1(fields); |
+ return init.initializeEmptyInstance(classId, emptyInstance, fields); |
+ default: |
+ throw H.wrapException("couldn't deserialize: " + H.S(x)); |
+ } |
+ }, "call$1", "get$deserialize", 2, 0, 2], |
+ deserializeArrayInPlace$1: function(x) { |
+ var t1, i, t2; |
+ t1 = J.getInterceptor$asx(x); |
+ i = 0; |
+ while (true) { |
+ t2 = t1.get$length(x); |
+ if (typeof t2 !== "number") |
+ return H.iae(t2); |
+ if (!(i < t2)) |
+ break; |
+ t1.$indexSet(x, i, this.deserialize$1(t1.$index(x, i))); |
+ ++i; |
+ } |
+ return x; |
+ }, |
+ deserializeMap$1: function(x) { |
+ var t1, keys, values, result, t2, i; |
+ t1 = x.length; |
+ if (1 >= t1) |
+ return H.ioore(x, 1); |
+ keys = x[1]; |
+ if (2 >= t1) |
+ return H.ioore(x, 2); |
+ values = x[2]; |
+ result = P.LinkedHashMap_LinkedHashMap$_empty(null, null); |
+ this.deserializedObjects.push(result); |
+ keys = J.map$1$ax(keys, this.get$deserialize()).toList$0(0); |
+ for (t1 = J.getInterceptor$asx(keys), t2 = J.getInterceptor$asx(values), i = 0; i < t1.get$length(keys); ++i) { |
+ if (i >= keys.length) |
+ return H.ioore(keys, i); |
+ result.$indexSet(0, keys[i], this.deserialize$1(t2.$index(values, i))); |
+ } |
+ return result; |
+ }, |
+ deserializeSendPort$1: function(x) { |
+ var t1, managerId, isolateId, receivePortId, isolate, receivePort, result; |
+ t1 = x.length; |
+ if (1 >= t1) |
+ return H.ioore(x, 1); |
+ managerId = x[1]; |
+ if (2 >= t1) |
+ return H.ioore(x, 2); |
+ isolateId = x[2]; |
+ if (3 >= t1) |
+ return H.ioore(x, 3); |
+ receivePortId = x[3]; |
+ if (J.$eq(managerId, init.globalState.currentManagerId)) { |
+ isolate = init.globalState.isolates.$index(0, isolateId); |
+ if (isolate == null) |
+ return; |
+ receivePort = isolate.lookup$1(receivePortId); |
+ if (receivePort == null) |
+ return; |
+ result = new H._NativeJsSendPort(receivePort, isolateId); |
+ } else |
+ result = new H._WorkerSendPort(managerId, receivePortId, isolateId); |
+ this.deserializedObjects.push(result); |
+ return result; |
+ }, |
+ deserializeJSObject$1: function(x) { |
+ var t1, keys, values, o, t2, i, t3; |
+ t1 = x.length; |
+ if (1 >= t1) |
+ return H.ioore(x, 1); |
+ keys = x[1]; |
+ if (2 >= t1) |
+ return H.ioore(x, 2); |
+ values = x[2]; |
+ o = {}; |
+ this.deserializedObjects.push(o); |
+ t1 = J.getInterceptor$asx(keys); |
+ t2 = J.getInterceptor$asx(values); |
+ i = 0; |
+ while (true) { |
+ t3 = t1.get$length(keys); |
+ if (typeof t3 !== "number") |
+ return H.iae(t3); |
+ if (!(i < t3)) |
+ break; |
+ o[t1.$index(keys, i)] = this.deserialize$1(t2.$index(values, i)); |
+ ++i; |
+ } |
+ return o; |
+ } |
+ } |
+}], |
+["_js_helper", "dart:_js_helper", , H, { |
+ "^": "", |
+ isJsIndexable: function(object, record) { |
+ var result; |
+ if (record != null) { |
+ result = record.x; |
+ if (result != null) |
+ return result; |
+ } |
+ return !!J.getInterceptor(object).$isJavaScriptIndexingBehavior; |
+ }, |
+ S: function(value) { |
+ var res; |
+ if (typeof value === "string") |
+ return value; |
+ if (typeof value === "number") { |
+ if (value !== 0) |
+ return "" + value; |
+ } else if (true === value) |
+ return "true"; |
+ else if (false === value) |
+ return "false"; |
+ else if (value == null) |
+ return "null"; |
+ res = J.toString$0(value); |
+ if (typeof res !== "string") |
+ throw H.wrapException(P.ArgumentError$(value)); |
+ return res; |
+ }, |
+ Primitives_objectHashCode: function(object) { |
+ var hash = object.$identityHash; |
+ if (hash == null) { |
+ hash = Math.random() * 0x3fffffff | 0; |
+ object.$identityHash = hash; |
+ } |
+ return hash; |
+ }, |
+ Primitives__throwFormatException: [function(string) { |
+ throw H.wrapException(P.FormatException$(string, null, null)); |
+ }, "call$1", "Primitives__throwFormatException$closure", 2, 0, 4], |
+ Primitives_parseInt: function(source, radix, handleError) { |
+ var match, t1, maxCharCode, digitsPart, i, t2; |
+ handleError = H.Primitives__throwFormatException$closure(); |
+ H.checkString(source); |
+ match = /^\s*[+-]?((0x[a-f0-9]+)|(\d+)|([a-z0-9]+))\s*$/i.exec(source); |
+ if (radix == null) { |
+ if (match != null) { |
+ t1 = match.length; |
+ if (2 >= t1) |
+ return H.ioore(match, 2); |
+ if (match[2] != null) |
+ return parseInt(source, 16); |
+ if (3 >= t1) |
+ return H.ioore(match, 3); |
+ if (match[3] != null) |
+ return parseInt(source, 10); |
+ return handleError.call$1(source); |
+ } |
+ radix = 10; |
+ } else { |
+ if (radix < 2 || radix > 36) |
+ throw H.wrapException(P.RangeError$("Radix " + H.S(radix) + " not in range 2..36")); |
+ if (match != null) { |
+ if (radix === 10) { |
+ if (3 >= match.length) |
+ return H.ioore(match, 3); |
+ t1 = match[3] != null; |
+ } else |
+ t1 = false; |
+ if (t1) |
+ return parseInt(source, 10); |
+ if (!(radix < 10)) { |
+ if (3 >= match.length) |
+ return H.ioore(match, 3); |
+ t1 = match[3] == null; |
+ } else |
+ t1 = true; |
+ if (t1) { |
+ maxCharCode = radix <= 10 ? 48 + radix - 1 : 97 + radix - 10 - 1; |
+ if (1 >= match.length) |
+ return H.ioore(match, 1); |
+ digitsPart = match[1]; |
+ t1 = J.getInterceptor$asx(digitsPart); |
+ i = 0; |
+ while (true) { |
+ t2 = t1.get$length(digitsPart); |
+ if (typeof t2 !== "number") |
+ return H.iae(t2); |
+ if (!(i < t2)) |
+ break; |
+ t1.codeUnitAt$1(digitsPart, 0); |
+ if (C.JSString_methods.codeUnitAt$1(digitsPart, i) > maxCharCode) |
+ return handleError.call$1(source); |
+ ++i; |
+ } |
+ } |
+ } |
+ } |
+ if (match == null) |
+ return handleError.call$1(source); |
+ return parseInt(source, radix); |
+ }, |
+ Primitives_objectTypeName: function(object) { |
+ var $name, decompiled; |
+ $name = C.JS_CONST_8ZY(J.getInterceptor(object)); |
+ if ($name === "Object") { |
+ decompiled = String(object.constructor).match(/^\s*function\s*(\S*)\s*\(/)[1]; |
+ if (typeof decompiled === "string") |
+ $name = /^\w+$/.test(decompiled) ? decompiled : $name; |
+ } |
+ if ($name.length > 1 && C.JSString_methods.codeUnitAt$1($name, 0) === 36) |
+ $name = C.JSString_methods.substring$1($name, 1); |
+ return ($name + H.joinArguments(H.getRuntimeTypeInfo(object), 0, null)).replace(/[^<,> ]+/g, function(m) { |
+ return init.mangledGlobalNames[m] || m; |
+ }); |
+ }, |
+ Primitives_objectToString: function(object) { |
+ return "Instance of '" + H.Primitives_objectTypeName(object) + "'"; |
+ }, |
+ Primitives_currentUri: function() { |
+ if (!!self.location) |
+ return self.location.href; |
+ return; |
+ }, |
+ Primitives__fromCharCodeApply: function(array) { |
+ var end, result, i, i0, chunkEnd; |
+ end = array.length; |
+ if (end <= 500) |
+ return String.fromCharCode.apply(null, array); |
+ for (result = "", i = 0; i < end; i = i0) { |
+ i0 = i + 500; |
+ chunkEnd = i0 < end ? i0 : end; |
+ result += String.fromCharCode.apply(null, array.slice(i, chunkEnd)); |
+ } |
+ return result; |
+ }, |
+ Primitives_stringFromCodePoints: function(codePoints) { |
+ var a, t1, i; |
+ a = []; |
+ a.$builtinTypeInfo = [P.$int]; |
+ for (t1 = new H.ListIterator(codePoints, codePoints.length, 0, null); t1.moveNext$0();) { |
+ i = t1._current; |
+ if (typeof i !== "number" || Math.floor(i) !== i) |
+ throw H.wrapException(P.ArgumentError$(i)); |
+ if (i <= 65535) |
+ a.push(i); |
+ else if (i <= 1114111) { |
+ a.push(55296 + (C.JSInt_methods._shrOtherPositive$1(i - 65536, 10) & 1023)); |
+ a.push(56320 + (i & 1023)); |
+ } else |
+ throw H.wrapException(P.ArgumentError$(i)); |
+ } |
+ return H.Primitives__fromCharCodeApply(a); |
+ }, |
+ Primitives_stringFromCharCodes: function(charCodes) { |
+ var t1, i; |
+ for (t1 = new H.ListIterator(charCodes, charCodes.length, 0, null); t1.moveNext$0();) { |
+ i = t1._current; |
+ if (typeof i !== "number" || Math.floor(i) !== i) |
+ throw H.wrapException(P.ArgumentError$(i)); |
+ if (i < 0) |
+ throw H.wrapException(P.ArgumentError$(i)); |
+ if (i > 65535) |
+ return H.Primitives_stringFromCodePoints(charCodes); |
+ } |
+ return H.Primitives__fromCharCodeApply(charCodes); |
+ }, |
+ Primitives_stringFromCharCode: function(charCode) { |
+ var bits; |
+ if (0 <= charCode) { |
+ if (charCode <= 65535) |
+ return String.fromCharCode(charCode); |
+ if (charCode <= 1114111) { |
+ bits = charCode - 65536; |
+ return String.fromCharCode((55296 | C.JSInt_methods._shrOtherPositive$1(bits, 10)) >>> 0, 56320 | bits & 1023); |
+ } |
+ } |
+ throw H.wrapException(P.RangeError$range(charCode, 0, 1114111, null, null)); |
+ }, |
+ Primitives_lazyAsJsDate: function(receiver) { |
+ if (receiver.date === void 0) |
+ receiver.date = new Date(receiver.millisecondsSinceEpoch); |
+ return receiver.date; |
+ }, |
+ Primitives_getProperty: function(object, key) { |
+ if (object == null || typeof object === "boolean" || typeof object === "number" || typeof object === "string") |
+ throw H.wrapException(P.ArgumentError$(object)); |
+ return object[key]; |
+ }, |
+ Primitives_setProperty: function(object, key, value) { |
+ if (object == null || typeof object === "boolean" || typeof object === "number" || typeof object === "string") |
+ throw H.wrapException(P.ArgumentError$(object)); |
+ object[key] = value; |
+ }, |
+ iae: function(argument) { |
+ throw H.wrapException(P.ArgumentError$(argument)); |
+ }, |
+ ioore: function(receiver, index) { |
+ if (receiver == null) |
+ J.get$length$asx(receiver); |
+ if (typeof index !== "number" || Math.floor(index) !== index) |
+ H.iae(index); |
+ throw H.wrapException(P.RangeError$value(index, null, null)); |
+ }, |
+ checkInt: function(value) { |
+ if (typeof value !== "number" || Math.floor(value) !== value) |
+ throw H.wrapException(P.ArgumentError$(value)); |
+ return value; |
+ }, |
+ checkString: function(value) { |
+ if (typeof value !== "string") |
+ throw H.wrapException(P.ArgumentError$(value)); |
+ return value; |
+ }, |
+ wrapException: function(ex) { |
+ var wrapper; |
+ if (ex == null) |
+ ex = new P.NullThrownError(); |
+ wrapper = new Error(); |
+ wrapper.dartException = ex; |
+ if ("defineProperty" in Object) { |
+ Object.defineProperty(wrapper, "message", {get: H.toStringWrapper}); |
+ wrapper.name = ""; |
+ } else |
+ wrapper.toString = H.toStringWrapper; |
+ return wrapper; |
+ }, |
+ toStringWrapper: function() { |
+ return J.toString$0(this.dartException); |
+ }, |
+ throwExpression: function(ex) { |
+ throw H.wrapException(ex); |
+ }, |
+ unwrapException: function(ex) { |
+ var t1, message, number, ieErrorCode, t2, t3, t4, nullLiteralCall, t5, t6, t7, t8, t9, match; |
+ t1 = new H.unwrapException_saveStackTrace(ex); |
+ if (ex == null) |
+ return; |
+ if (typeof ex !== "object") |
+ return ex; |
+ if ("dartException" in ex) |
+ return t1.call$1(ex.dartException); |
+ else if (!("message" in ex)) |
+ return ex; |
+ message = ex.message; |
+ if ("number" in ex && typeof ex.number == "number") { |
+ number = ex.number; |
+ ieErrorCode = number & 65535; |
+ if ((C.JSInt_methods._shrOtherPositive$1(number, 16) & 8191) === 10) |
+ switch (ieErrorCode) { |
+ case 438: |
+ return t1.call$1(H.JsNoSuchMethodError$(H.S(message) + " (Error " + ieErrorCode + ")", null)); |
+ case 445: |
+ case 5007: |
+ t2 = H.S(message) + " (Error " + ieErrorCode + ")"; |
+ return t1.call$1(new H.NullError(t2, null)); |
+ } |
+ } |
+ if (ex instanceof TypeError) { |
+ t2 = $.get$TypeErrorDecoder_noSuchMethodPattern(); |
+ t3 = $.get$TypeErrorDecoder_notClosurePattern(); |
+ t4 = $.get$TypeErrorDecoder_nullCallPattern(); |
+ nullLiteralCall = $.get$TypeErrorDecoder_nullLiteralCallPattern(); |
+ t5 = $.get$TypeErrorDecoder_undefinedCallPattern(); |
+ t6 = $.get$TypeErrorDecoder_undefinedLiteralCallPattern(); |
+ t7 = $.get$TypeErrorDecoder_nullPropertyPattern(); |
+ $.get$TypeErrorDecoder_nullLiteralPropertyPattern(); |
+ t8 = $.get$TypeErrorDecoder_undefinedPropertyPattern(); |
+ t9 = $.get$TypeErrorDecoder_undefinedLiteralPropertyPattern(); |
+ match = t2.matchTypeError$1(message); |
+ if (match != null) |
+ return t1.call$1(H.JsNoSuchMethodError$(message, match)); |
+ else { |
+ match = t3.matchTypeError$1(message); |
+ if (match != null) { |
+ match.method = "call"; |
+ return t1.call$1(H.JsNoSuchMethodError$(message, match)); |
+ } else { |
+ match = t4.matchTypeError$1(message); |
+ if (match == null) { |
+ match = nullLiteralCall.matchTypeError$1(message); |
+ if (match == null) { |
+ match = t5.matchTypeError$1(message); |
+ if (match == null) { |
+ match = t6.matchTypeError$1(message); |
+ if (match == null) { |
+ match = t7.matchTypeError$1(message); |
+ if (match == null) { |
+ match = nullLiteralCall.matchTypeError$1(message); |
+ if (match == null) { |
+ match = t8.matchTypeError$1(message); |
+ if (match == null) { |
+ match = t9.matchTypeError$1(message); |
+ t2 = match != null; |
+ } else |
+ t2 = true; |
+ } else |
+ t2 = true; |
+ } else |
+ t2 = true; |
+ } else |
+ t2 = true; |
+ } else |
+ t2 = true; |
+ } else |
+ t2 = true; |
+ } else |
+ t2 = true; |
+ if (t2) { |
+ t2 = match == null ? null : match.method; |
+ return t1.call$1(new H.NullError(message, t2)); |
+ } |
+ } |
+ } |
+ t2 = typeof message === "string" ? message : ""; |
+ return t1.call$1(new H.UnknownJsTypeError(t2)); |
+ } |
+ if (ex instanceof RangeError) { |
+ if (typeof message === "string" && message.indexOf("call stack") !== -1) |
+ return new P.StackOverflowError(); |
+ return t1.call$1(new P.ArgumentError(false, null, null, null)); |
+ } |
+ if (typeof InternalError == "function" && ex instanceof InternalError) |
+ if (typeof message === "string" && message === "too much recursion") |
+ return new P.StackOverflowError(); |
+ return ex; |
+ }, |
+ getTraceFromException: function(exception) { |
+ return new H._StackTrace(exception, null); |
+ }, |
+ objectHashCode: function(object) { |
+ if (object == null || typeof object != 'object') |
+ return J.get$hashCode$(object); |
+ else |
+ return H.Primitives_objectHashCode(object); |
+ }, |
+ fillLiteralMap: function(keyValuePairs, result) { |
+ var $length, index, index0, index1; |
+ $length = keyValuePairs.length; |
+ for (index = 0; index < $length; index = index1) { |
+ index0 = index + 1; |
+ index1 = index0 + 1; |
+ result.$indexSet(0, keyValuePairs[index], keyValuePairs[index0]); |
+ } |
+ return result; |
+ }, |
+ invokeClosure: function(closure, isolate, numberOfArguments, arg1, arg2, arg3, arg4) { |
+ var t1 = J.getInterceptor(numberOfArguments); |
+ if (t1.$eq(numberOfArguments, 0)) |
+ return H._callInIsolate(isolate, new H.invokeClosure_closure(closure)); |
+ else if (t1.$eq(numberOfArguments, 1)) |
+ return H._callInIsolate(isolate, new H.invokeClosure_closure0(closure, arg1)); |
+ else if (t1.$eq(numberOfArguments, 2)) |
+ return H._callInIsolate(isolate, new H.invokeClosure_closure1(closure, arg1, arg2)); |
+ else if (t1.$eq(numberOfArguments, 3)) |
+ return H._callInIsolate(isolate, new H.invokeClosure_closure2(closure, arg1, arg2, arg3)); |
+ else if (t1.$eq(numberOfArguments, 4)) |
+ return H._callInIsolate(isolate, new H.invokeClosure_closure3(closure, arg1, arg2, arg3, arg4)); |
+ else |
+ throw H.wrapException(P.Exception_Exception("Unsupported number of arguments for wrapped closure")); |
+ }, |
+ convertDartClosureToJS: function(closure, arity) { |
+ var $function; |
+ if (closure == null) |
+ return; |
+ $function = closure.$identity; |
+ if (!!$function) |
+ return $function; |
+ $function = function(closure, arity, context, invoke) { |
+ return function(a1, a2, a3, a4) { |
+ return invoke(closure, context, arity, a1, a2, a3, a4); |
+ }; |
+ }(closure, arity, init.globalState.currentContext, H.invokeClosure); |
+ closure.$identity = $function; |
+ return $function; |
+ }, |
+ Closure_fromTearOff: function(receiver, functions, reflectionInfo, isStatic, jsArguments, propertyName) { |
+ var $function, callName, functionType, $prototype, $constructor, t1, isIntercepted, trampoline, signatureFunction, getReceiver, i, stub, stubCallName, t2; |
+ $function = functions[0]; |
+ $function.$stubName; |
+ callName = $function.$callName; |
+ if (!!J.getInterceptor(reflectionInfo).$isList) { |
+ $function.$reflectionInfo = reflectionInfo; |
+ functionType = H.ReflectionInfo_ReflectionInfo($function).functionType; |
+ } else |
+ functionType = reflectionInfo; |
+ $prototype = isStatic ? Object.create(new H.TearOffClosure().constructor.prototype) : Object.create(new H.BoundClosure(null, null, null, null).constructor.prototype); |
+ $prototype.$initialize = $prototype.constructor; |
+ if (isStatic) |
+ $constructor = function() { |
+ this.$initialize(); |
+ }; |
+ else if (typeof dart_precompiled == "function") { |
+ t1 = function(a, b, c, d) { |
+ this.$initialize(a, b, c, d); |
+ }; |
+ $constructor = t1; |
+ } else { |
+ t1 = $.Closure_functionCounter; |
+ $.Closure_functionCounter = J.$add$ns(t1, 1); |
+ t1 = new Function("a", "b", "c", "d", "this.$initialize(a,b,c,d);" + t1); |
+ $constructor = t1; |
+ } |
+ $prototype.constructor = $constructor; |
+ $constructor.prototype = $prototype; |
+ t1 = !isStatic; |
+ if (t1) { |
+ isIntercepted = jsArguments.length == 1 && true; |
+ trampoline = H.Closure_forwardCallTo(receiver, $function, isIntercepted); |
+ trampoline.$reflectionInfo = reflectionInfo; |
+ } else { |
+ $prototype.$name = propertyName; |
+ trampoline = $function; |
+ isIntercepted = false; |
+ } |
+ if (typeof functionType == "number") |
+ signatureFunction = function(s) { |
+ return function() { |
+ return init.metadata[s]; |
+ }; |
+ }(functionType); |
+ else if (t1 && typeof functionType == "function") { |
+ getReceiver = isIntercepted ? H.BoundClosure_receiverOf : H.BoundClosure_selfOf; |
+ signatureFunction = function(f, r) { |
+ return function() { |
+ return f.apply({$receiver: r(this)}, arguments); |
+ }; |
+ }(functionType, getReceiver); |
+ } else |
+ throw H.wrapException("Error in reflectionInfo."); |
+ $prototype.$signature = signatureFunction; |
+ $prototype[callName] = trampoline; |
+ for (t1 = functions.length, i = 1; i < t1; ++i) { |
+ stub = functions[i]; |
+ stubCallName = stub.$callName; |
+ if (stubCallName != null) { |
+ t2 = isStatic ? stub : H.Closure_forwardCallTo(receiver, stub, isIntercepted); |
+ $prototype[stubCallName] = t2; |
+ } |
+ } |
+ $prototype["call*"] = trampoline; |
+ $prototype.$requiredArgCount = $function.$requiredArgCount; |
+ $prototype.$defaultValues = $function.$defaultValues; |
+ return $constructor; |
+ }, |
+ Closure_cspForwardCall: function(arity, isSuperCall, stubName, $function) { |
+ var getSelf = H.BoundClosure_selfOf; |
+ switch (isSuperCall ? -1 : arity) { |
+ case 0: |
+ return function(n, S) { |
+ return function() { |
+ return S(this)[n](); |
+ }; |
+ }(stubName, getSelf); |
+ case 1: |
+ return function(n, S) { |
+ return function(a) { |
+ return S(this)[n](a); |
+ }; |
+ }(stubName, getSelf); |
+ case 2: |
+ return function(n, S) { |
+ return function(a, b) { |
+ return S(this)[n](a, b); |
+ }; |
+ }(stubName, getSelf); |
+ case 3: |
+ return function(n, S) { |
+ return function(a, b, c) { |
+ return S(this)[n](a, b, c); |
+ }; |
+ }(stubName, getSelf); |
+ case 4: |
+ return function(n, S) { |
+ return function(a, b, c, d) { |
+ return S(this)[n](a, b, c, d); |
+ }; |
+ }(stubName, getSelf); |
+ case 5: |
+ return function(n, S) { |
+ return function(a, b, c, d, e) { |
+ return S(this)[n](a, b, c, d, e); |
+ }; |
+ }(stubName, getSelf); |
+ default: |
+ return function(f, s) { |
+ return function() { |
+ return f.apply(s(this), arguments); |
+ }; |
+ }($function, getSelf); |
+ } |
+ }, |
+ Closure_forwardCallTo: function(receiver, $function, isIntercepted) { |
+ var stubName, arity, lookedUpFunction, t1, t2, $arguments; |
+ if (isIntercepted) |
+ return H.Closure_forwardInterceptedCallTo(receiver, $function); |
+ stubName = $function.$stubName; |
+ arity = $function.length; |
+ lookedUpFunction = receiver[stubName]; |
+ t1 = $function == null ? lookedUpFunction == null : $function === lookedUpFunction; |
+ if (typeof dart_precompiled == "function" || !t1 || arity >= 27) |
+ return H.Closure_cspForwardCall(arity, !t1, stubName, $function); |
+ if (arity === 0) { |
+ t1 = $.BoundClosure_selfFieldNameCache; |
+ if (t1 == null) { |
+ t1 = H.BoundClosure_computeFieldNamed("self"); |
+ $.BoundClosure_selfFieldNameCache = t1; |
+ } |
+ t1 = "return function(){return this." + H.S(t1) + "." + H.S(stubName) + "();"; |
+ t2 = $.Closure_functionCounter; |
+ $.Closure_functionCounter = J.$add$ns(t2, 1); |
+ return new Function(t1 + H.S(t2) + "}")(); |
+ } |
+ $arguments = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity).join(","); |
+ t1 = "return function(" + $arguments + "){return this."; |
+ t2 = $.BoundClosure_selfFieldNameCache; |
+ if (t2 == null) { |
+ t2 = H.BoundClosure_computeFieldNamed("self"); |
+ $.BoundClosure_selfFieldNameCache = t2; |
+ } |
+ t2 = t1 + H.S(t2) + "." + H.S(stubName) + "(" + $arguments + ");"; |
+ t1 = $.Closure_functionCounter; |
+ $.Closure_functionCounter = J.$add$ns(t1, 1); |
+ return new Function(t2 + H.S(t1) + "}")(); |
+ }, |
+ Closure_cspForwardInterceptedCall: function(arity, isSuperCall, $name, $function) { |
+ var getSelf, getReceiver; |
+ getSelf = H.BoundClosure_selfOf; |
+ getReceiver = H.BoundClosure_receiverOf; |
+ switch (isSuperCall ? -1 : arity) { |
+ case 0: |
+ throw H.wrapException(H.RuntimeError$("Intercepted function with no arguments.")); |
+ case 1: |
+ return function(n, s, r) { |
+ return function() { |
+ return s(this)[n](r(this)); |
+ }; |
+ }($name, getSelf, getReceiver); |
+ case 2: |
+ return function(n, s, r) { |
+ return function(a) { |
+ return s(this)[n](r(this), a); |
+ }; |
+ }($name, getSelf, getReceiver); |
+ case 3: |
+ return function(n, s, r) { |
+ return function(a, b) { |
+ return s(this)[n](r(this), a, b); |
+ }; |
+ }($name, getSelf, getReceiver); |
+ case 4: |
+ return function(n, s, r) { |
+ return function(a, b, c) { |
+ return s(this)[n](r(this), a, b, c); |
+ }; |
+ }($name, getSelf, getReceiver); |
+ case 5: |
+ return function(n, s, r) { |
+ return function(a, b, c, d) { |
+ return s(this)[n](r(this), a, b, c, d); |
+ }; |
+ }($name, getSelf, getReceiver); |
+ case 6: |
+ return function(n, s, r) { |
+ return function(a, b, c, d, e) { |
+ return s(this)[n](r(this), a, b, c, d, e); |
+ }; |
+ }($name, getSelf, getReceiver); |
+ default: |
+ return function(f, s, r, a) { |
+ return function() { |
+ a = [r(this)]; |
+ Array.prototype.push.apply(a, arguments); |
+ return f.apply(s(this), a); |
+ }; |
+ }($function, getSelf, getReceiver); |
+ } |
+ }, |
+ Closure_forwardInterceptedCallTo: function(receiver, $function) { |
+ var selfField, t1, stubName, arity, isCsp, lookedUpFunction, t2, $arguments; |
+ selfField = H.BoundClosure_selfFieldName(); |
+ t1 = $.BoundClosure_receiverFieldNameCache; |
+ if (t1 == null) { |
+ t1 = H.BoundClosure_computeFieldNamed("receiver"); |
+ $.BoundClosure_receiverFieldNameCache = t1; |
+ } |
+ stubName = $function.$stubName; |
+ arity = $function.length; |
+ isCsp = typeof dart_precompiled == "function"; |
+ lookedUpFunction = receiver[stubName]; |
+ t2 = $function == null ? lookedUpFunction == null : $function === lookedUpFunction; |
+ if (isCsp || !t2 || arity >= 28) |
+ return H.Closure_cspForwardInterceptedCall(arity, !t2, stubName, $function); |
+ if (arity === 1) { |
+ t1 = "return function(){return this." + H.S(selfField) + "." + H.S(stubName) + "(this." + H.S(t1) + ");"; |
+ t2 = $.Closure_functionCounter; |
+ $.Closure_functionCounter = J.$add$ns(t2, 1); |
+ return new Function(t1 + H.S(t2) + "}")(); |
+ } |
+ $arguments = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity - 1).join(","); |
+ t1 = "return function(" + $arguments + "){return this." + H.S(selfField) + "." + H.S(stubName) + "(this." + H.S(t1) + ", " + $arguments + ");"; |
+ t2 = $.Closure_functionCounter; |
+ $.Closure_functionCounter = J.$add$ns(t2, 1); |
+ return new Function(t1 + H.S(t2) + "}")(); |
+ }, |
+ closureFromTearOff: function(receiver, functions, reflectionInfo, isStatic, jsArguments, $name) { |
+ var t1; |
+ functions.fixed$length = Array; |
+ if (!!J.getInterceptor(reflectionInfo).$isList) { |
+ reflectionInfo.fixed$length = Array; |
+ t1 = reflectionInfo; |
+ } else |
+ t1 = reflectionInfo; |
+ return H.Closure_fromTearOff(receiver, functions, t1, !!isStatic, jsArguments, $name); |
+ }, |
+ intTypeCast: function(value) { |
+ if (typeof value === "number" && Math.floor(value) === value || value == null) |
+ return value; |
+ throw H.wrapException(H.CastErrorImplementation$(H.Primitives_objectTypeName(value), "int")); |
+ }, |
+ throwCyclicInit: function(staticName) { |
+ throw H.wrapException(new P.CyclicInitializationError("Cyclic initialization for static " + H.S(staticName))); |
+ }, |
+ buildFunctionType: function(returnType, parameterTypes, optionalParameterTypes) { |
+ return new H.RuntimeFunctionType(returnType, parameterTypes, optionalParameterTypes, null); |
+ }, |
+ getDynamicRuntimeType: function() { |
+ return C.C_DynamicRuntimeType; |
+ }, |
+ random64: function() { |
+ return (Math.random() * 0x100000000 >>> 0) + (Math.random() * 0x100000000 >>> 0) * 4294967296; |
+ }, |
+ setRuntimeTypeInfo: function(target, typeInfo) { |
+ if (target != null) |
+ target.$builtinTypeInfo = typeInfo; |
+ return target; |
+ }, |
+ getRuntimeTypeInfo: function(target) { |
+ if (target == null) |
+ return; |
+ return target.$builtinTypeInfo; |
+ }, |
+ getRuntimeTypeArguments: function(target, substitutionName) { |
+ return H.substitute(target["$as" + H.S(substitutionName)], H.getRuntimeTypeInfo(target)); |
+ }, |
+ getRuntimeTypeArgument: function(target, substitutionName, index) { |
+ var $arguments = H.getRuntimeTypeArguments(target, substitutionName); |
+ return $arguments == null ? null : $arguments[index]; |
+ }, |
+ getTypeArgumentByIndex: function(target, index) { |
+ var rti = H.getRuntimeTypeInfo(target); |
+ return rti == null ? null : rti[index]; |
+ }, |
+ runtimeTypeToString: function(type, onTypeVariable) { |
+ if (type == null) |
+ return "dynamic"; |
+ else if (typeof type === "object" && type !== null && type.constructor === Array) |
+ return type[0].builtin$cls + H.joinArguments(type, 1, onTypeVariable); |
+ else if (typeof type == "function") |
+ return type.builtin$cls; |
+ else if (typeof type === "number" && Math.floor(type) === type) |
+ return C.JSInt_methods.toString$0(type); |
+ else |
+ return; |
+ }, |
+ joinArguments: function(types, startIndex, onTypeVariable) { |
+ var buffer, index, firstArgument, allDynamic, t1, argument; |
+ if (types == null) |
+ return ""; |
+ buffer = new P.StringBuffer(""); |
+ for (index = startIndex, firstArgument = true, allDynamic = true, t1 = ""; index < types.length; ++index) { |
+ if (firstArgument) |
+ firstArgument = false; |
+ else |
+ buffer._contents = t1 + ", "; |
+ argument = types[index]; |
+ if (argument != null) |
+ allDynamic = false; |
+ t1 = buffer._contents += H.S(H.runtimeTypeToString(argument, onTypeVariable)); |
+ } |
+ return allDynamic ? "" : "<" + H.S(buffer) + ">"; |
+ }, |
+ substitute: function(substitution, $arguments) { |
+ if (typeof substitution == "function") { |
+ substitution = H.invokeOn(substitution, null, $arguments); |
+ if (substitution == null || typeof substitution === "object" && substitution !== null && substitution.constructor === Array) |
+ $arguments = substitution; |
+ else if (typeof substitution == "function") |
+ $arguments = H.invokeOn(substitution, null, $arguments); |
+ } |
+ return $arguments; |
+ }, |
+ areSubtypes: function(s, t) { |
+ var len, i; |
+ if (s == null || t == null) |
+ return true; |
+ len = s.length; |
+ for (i = 0; i < len; ++i) |
+ if (!H.isSubtype(s[i], t[i])) |
+ return false; |
+ return true; |
+ }, |
+ computeSignature: function(signature, context, contextName) { |
+ return H.invokeOn(signature, context, H.getRuntimeTypeArguments(context, contextName)); |
+ }, |
+ isSubtype: function(s, t) { |
+ var t1, typeOfS, t2, typeOfT, $name, test, typeOfSPrototype, substitution; |
+ if (s === t) |
+ return true; |
+ if (s == null || t == null) |
+ return true; |
+ if ("func" in t) |
+ return H.isFunctionSubtype(s, t); |
+ if ("func" in s) |
+ return t.builtin$cls === "Function"; |
+ t1 = typeof s === "object" && s !== null && s.constructor === Array; |
+ typeOfS = t1 ? s[0] : s; |
+ t2 = typeof t === "object" && t !== null && t.constructor === Array; |
+ typeOfT = t2 ? t[0] : t; |
+ $name = H.runtimeTypeToString(typeOfT, null); |
+ if (typeOfT !== typeOfS) { |
+ test = "$is" + H.S($name); |
+ typeOfSPrototype = typeOfS.prototype; |
+ if (!(test in typeOfSPrototype)) |
+ return false; |
+ substitution = typeOfSPrototype["$as" + H.S(H.runtimeTypeToString(typeOfT, null))]; |
+ } else |
+ substitution = null; |
+ if (!t1 && substitution == null || !t2) |
+ return true; |
+ t1 = t1 ? s.slice(1) : null; |
+ t2 = t2 ? t.slice(1) : null; |
+ return H.areSubtypes(H.substitute(substitution, t1), t2); |
+ }, |
+ areAssignable: function(s, t, allowShorter) { |
+ var t1, sLength, tLength, i, t2; |
+ t1 = t == null; |
+ if (t1 && s == null) |
+ return true; |
+ if (t1) |
+ return allowShorter; |
+ if (s == null) |
+ return false; |
+ sLength = s.length; |
+ tLength = t.length; |
+ if (allowShorter) { |
+ if (sLength < tLength) |
+ return false; |
+ } else if (sLength !== tLength) |
+ return false; |
+ for (i = 0; i < tLength; ++i) { |
+ t1 = s[i]; |
+ t2 = t[i]; |
+ if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1))) |
+ return false; |
+ } |
+ return true; |
+ }, |
+ areAssignableMaps: function(s, t) { |
+ var t1, names, i, $name, tType, sType; |
+ if (t == null) |
+ return true; |
+ if (s == null) |
+ return false; |
+ t1 = Object.getOwnPropertyNames(t); |
+ t1.fixed$length = Array; |
+ names = t1; |
+ for (t1 = names.length, i = 0; i < t1; ++i) { |
+ $name = names[i]; |
+ if (!Object.hasOwnProperty.call(s, $name)) |
+ return false; |
+ tType = t[$name]; |
+ sType = s[$name]; |
+ if (!(H.isSubtype(tType, sType) || H.isSubtype(sType, tType))) |
+ return false; |
+ } |
+ return true; |
+ }, |
+ isFunctionSubtype: function(s, t) { |
+ var sReturnType, tReturnType, sParameterTypes, tParameterTypes, sOptionalParameterTypes, tOptionalParameterTypes, sParametersLen, tParametersLen, sOptionalParametersLen, tOptionalParametersLen, pos, t1, t2, tPos, sPos; |
+ if (!("func" in s)) |
+ return false; |
+ if ("void" in s) { |
+ if (!("void" in t) && "ret" in t) |
+ return false; |
+ } else if (!("void" in t)) { |
+ sReturnType = s.ret; |
+ tReturnType = t.ret; |
+ if (!(H.isSubtype(sReturnType, tReturnType) || H.isSubtype(tReturnType, sReturnType))) |
+ return false; |
+ } |
+ sParameterTypes = s.args; |
+ tParameterTypes = t.args; |
+ sOptionalParameterTypes = s.opt; |
+ tOptionalParameterTypes = t.opt; |
+ sParametersLen = sParameterTypes != null ? sParameterTypes.length : 0; |
+ tParametersLen = tParameterTypes != null ? tParameterTypes.length : 0; |
+ sOptionalParametersLen = sOptionalParameterTypes != null ? sOptionalParameterTypes.length : 0; |
+ tOptionalParametersLen = tOptionalParameterTypes != null ? tOptionalParameterTypes.length : 0; |
+ if (sParametersLen > tParametersLen) |
+ return false; |
+ if (sParametersLen + sOptionalParametersLen < tParametersLen + tOptionalParametersLen) |
+ return false; |
+ if (sParametersLen === tParametersLen) { |
+ if (!H.areAssignable(sParameterTypes, tParameterTypes, false)) |
+ return false; |
+ if (!H.areAssignable(sOptionalParameterTypes, tOptionalParameterTypes, true)) |
+ return false; |
+ } else { |
+ for (pos = 0; pos < sParametersLen; ++pos) { |
+ t1 = sParameterTypes[pos]; |
+ t2 = tParameterTypes[pos]; |
+ if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1))) |
+ return false; |
+ } |
+ for (tPos = pos, sPos = 0; tPos < tParametersLen; ++sPos, ++tPos) { |
+ t1 = sOptionalParameterTypes[sPos]; |
+ t2 = tParameterTypes[tPos]; |
+ if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1))) |
+ return false; |
+ } |
+ for (tPos = 0; tPos < tOptionalParametersLen; ++sPos, ++tPos) { |
+ t1 = sOptionalParameterTypes[sPos]; |
+ t2 = tOptionalParameterTypes[tPos]; |
+ if (!(H.isSubtype(t1, t2) || H.isSubtype(t2, t1))) |
+ return false; |
+ } |
+ } |
+ return H.areAssignableMaps(s.named, t.named); |
+ }, |
+ invokeOn: function($function, receiver, $arguments) { |
+ return $function.apply(receiver, $arguments); |
+ }, |
+ toStringForNativeObject: function(obj) { |
+ var t1 = $.getTagFunction; |
+ return "Instance of " + (t1 == null ? "<Unknown>" : t1.call$1(obj)); |
+ }, |
+ hashCodeForNativeObject: function(object) { |
+ return H.Primitives_objectHashCode(object); |
+ }, |
+ defineProperty: function(obj, property, value) { |
+ Object.defineProperty(obj, property, {value: value, enumerable: false, writable: true, configurable: true}); |
+ }, |
+ lookupAndCacheInterceptor: function(obj) { |
+ var tag, record, interceptor, interceptorClass, mark, t1; |
+ tag = $.getTagFunction.call$1(obj); |
+ record = $.dispatchRecordsForInstanceTags[tag]; |
+ if (record != null) { |
+ Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); |
+ return record.i; |
+ } |
+ interceptor = $.interceptorsForUncacheableTags[tag]; |
+ if (interceptor != null) |
+ return interceptor; |
+ interceptorClass = init.interceptorsByTag[tag]; |
+ if (interceptorClass == null) { |
+ tag = $.alternateTagFunction.call$2(obj, tag); |
+ if (tag != null) { |
+ record = $.dispatchRecordsForInstanceTags[tag]; |
+ if (record != null) { |
+ Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); |
+ return record.i; |
+ } |
+ interceptor = $.interceptorsForUncacheableTags[tag]; |
+ if (interceptor != null) |
+ return interceptor; |
+ interceptorClass = init.interceptorsByTag[tag]; |
+ } |
+ } |
+ if (interceptorClass == null) |
+ return; |
+ interceptor = interceptorClass.prototype; |
+ mark = tag[0]; |
+ if (mark === "!") { |
+ record = H.makeLeafDispatchRecord(interceptor); |
+ $.dispatchRecordsForInstanceTags[tag] = record; |
+ Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); |
+ return record.i; |
+ } |
+ if (mark === "~") { |
+ $.interceptorsForUncacheableTags[tag] = interceptor; |
+ return interceptor; |
+ } |
+ if (mark === "-") { |
+ t1 = H.makeLeafDispatchRecord(interceptor); |
+ Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {value: t1, enumerable: false, writable: true, configurable: true}); |
+ return t1.i; |
+ } |
+ if (mark === "+") |
+ return H.patchInteriorProto(obj, interceptor); |
+ if (mark === "*") |
+ throw H.wrapException(P.UnimplementedError$(tag)); |
+ if (init.leafTags[tag] === true) { |
+ t1 = H.makeLeafDispatchRecord(interceptor); |
+ Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {value: t1, enumerable: false, writable: true, configurable: true}); |
+ return t1.i; |
+ } else |
+ return H.patchInteriorProto(obj, interceptor); |
+ }, |
+ patchInteriorProto: function(obj, interceptor) { |
+ var proto = Object.getPrototypeOf(obj); |
+ Object.defineProperty(proto, init.dispatchPropertyName, {value: J.makeDispatchRecord(interceptor, proto, null, null), enumerable: false, writable: true, configurable: true}); |
+ return interceptor; |
+ }, |
+ makeLeafDispatchRecord: function(interceptor) { |
+ return J.makeDispatchRecord(interceptor, false, null, !!interceptor.$isJavaScriptIndexingBehavior); |
+ }, |
+ makeDefaultDispatchRecord: function(tag, interceptorClass, proto) { |
+ var interceptor = interceptorClass.prototype; |
+ if (init.leafTags[tag] === true) |
+ return J.makeDispatchRecord(interceptor, false, null, !!interceptor.$isJavaScriptIndexingBehavior); |
+ else |
+ return J.makeDispatchRecord(interceptor, proto, null, null); |
+ }, |
+ initNativeDispatch: function() { |
+ if (true === $.initNativeDispatchFlag) |
+ return; |
+ $.initNativeDispatchFlag = true; |
+ H.initNativeDispatchContinue(); |
+ }, |
+ initNativeDispatchContinue: function() { |
+ var map, tags, fun, i, tag, proto, record, interceptorClass; |
+ $.dispatchRecordsForInstanceTags = Object.create(null); |
+ $.interceptorsForUncacheableTags = Object.create(null); |
+ H.initHooks(); |
+ map = init.interceptorsByTag; |
+ tags = Object.getOwnPropertyNames(map); |
+ if (typeof window != "undefined") { |
+ window; |
+ fun = function() { |
+ }; |
+ for (i = 0; i < tags.length; ++i) { |
+ tag = tags[i]; |
+ proto = $.prototypeForTagFunction.call$1(tag); |
+ if (proto != null) { |
+ record = H.makeDefaultDispatchRecord(tag, map[tag], proto); |
+ if (record != null) { |
+ Object.defineProperty(proto, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true}); |
+ fun.prototype = proto; |
+ } |
+ } |
+ } |
+ } |
+ for (i = 0; i < tags.length; ++i) { |
+ tag = tags[i]; |
+ if (/^[A-Za-z_]/.test(tag)) { |
+ interceptorClass = map[tag]; |
+ map["!" + tag] = interceptorClass; |
+ map["~" + tag] = interceptorClass; |
+ map["-" + tag] = interceptorClass; |
+ map["+" + tag] = interceptorClass; |
+ map["*" + tag] = interceptorClass; |
+ } |
+ } |
+ }, |
+ initHooks: function() { |
+ var hooks, transformers, i, transformer, getTag, getUnknownTag, prototypeForTag; |
+ hooks = C.JS_CONST_gkc(); |
+ 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.JS_CONST_4hp, H.applyHooksTransformer(C.JS_CONST_QJm(C.JS_CONST_8ZY), hooks))))))); |
+ if (typeof dartNativeDispatchHooksTransformer != "undefined") { |
+ transformers = dartNativeDispatchHooksTransformer; |
+ if (typeof transformers == "function") |
+ transformers = [transformers]; |
+ if (transformers.constructor == Array) |
+ for (i = 0; i < transformers.length; ++i) { |
+ transformer = transformers[i]; |
+ if (typeof transformer == "function") |
+ hooks = transformer(hooks) || hooks; |
+ } |
+ } |
+ getTag = hooks.getTag; |
+ getUnknownTag = hooks.getUnknownTag; |
+ prototypeForTag = hooks.prototypeForTag; |
+ $.getTagFunction = new H.initHooks_closure(getTag); |
+ $.alternateTagFunction = new H.initHooks_closure0(getUnknownTag); |
+ $.prototypeForTagFunction = new H.initHooks_closure1(prototypeForTag); |
+ }, |
+ applyHooksTransformer: function(transformer, hooks) { |
+ return transformer(hooks) || hooks; |
+ }, |
+ allMatchesInStringUnchecked: function(needle, haystack, startIndex) { |
+ var result, t1, $length, patternLength, position, endIndex; |
+ result = H.setRuntimeTypeInfo([], [P.Match]); |
+ t1 = J.getInterceptor$asx(haystack); |
+ $length = t1.get$length(haystack); |
+ patternLength = needle.length; |
+ for (; true;) { |
+ position = t1.indexOf$2(haystack, needle, startIndex); |
+ if (position === -1) |
+ break; |
+ result.push(new H.StringMatch(position, haystack, needle)); |
+ endIndex = position + patternLength; |
+ if (endIndex === $length) |
+ break; |
+ else |
+ startIndex = position === endIndex ? startIndex + 1 : endIndex; |
+ } |
+ return result; |
+ }, |
+ stringContainsUnchecked: function(receiver, other, startIndex) { |
+ var t1; |
+ if (typeof other === "string") |
+ return C.JSString_methods.indexOf$2(receiver, other, startIndex) !== -1; |
+ else { |
+ t1 = J.getInterceptor(other); |
+ if (!!t1.$isJSSyntaxRegExp) { |
+ t1 = C.JSString_methods.substring$1(receiver, startIndex); |
+ return other._nativeRegExp.test(H.checkString(t1)); |
+ } else |
+ return J.get$isNotEmpty$asx(t1.allMatches$1(other, C.JSString_methods.substring$1(receiver, startIndex))); |
+ } |
+ }, |
+ stringReplaceFirstRE: function(receiver, regexp, to, startIndex) { |
+ var match, t1, start, t2; |
+ match = regexp._execGlobal$2(receiver, startIndex); |
+ if (match == null) |
+ return receiver; |
+ t1 = match._match; |
+ start = t1.index; |
+ t2 = t1.index; |
+ if (0 >= t1.length) |
+ return H.ioore(t1, 0); |
+ t1 = J.get$length$asx(t1[0]); |
+ if (typeof t1 !== "number") |
+ return H.iae(t1); |
+ return H.stringReplaceRangeUnchecked(receiver, start, t2 + t1, to); |
+ }, |
+ stringReplaceAllUnchecked: function(receiver, from, to) { |
+ var $length, t1, i, nativeRegexp; |
+ H.checkString(to); |
+ if (typeof from === "string") |
+ if (from === "") |
+ if (receiver === "") |
+ return to; |
+ else { |
+ $length = receiver.length; |
+ for (t1 = to, i = 0; i < $length; ++i) |
+ t1 = t1 + receiver[i] + to; |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ } |
+ else |
+ return receiver.replace(new RegExp(from.replace(new RegExp("[[\\]{}()*+?.\\\\^$|]", 'g'), "\\$&"), 'g'), to.replace(/\$/g, "$$$$")); |
+ else if (from instanceof H.JSSyntaxRegExp) { |
+ nativeRegexp = from.get$_nativeGlobalVersion(); |
+ nativeRegexp.lastIndex = 0; |
+ return receiver.replace(nativeRegexp, to.replace(/\$/g, "$$$$")); |
+ } else { |
+ if (from == null) |
+ H.throwExpression(P.ArgumentError$(null)); |
+ throw H.wrapException("String.replaceAll(Pattern) UNIMPLEMENTED"); |
+ } |
+ }, |
+ stringReplaceFirstUnchecked: function(receiver, from, to, startIndex) { |
+ var index, t1, matches, match; |
+ if (typeof from === "string") { |
+ index = C.JSString_methods.indexOf$2(receiver, from, startIndex); |
+ if (index < 0) |
+ return receiver; |
+ return H.stringReplaceRangeUnchecked(receiver, index, index + from.length, to); |
+ } |
+ t1 = J.getInterceptor(from); |
+ if (!!t1.$isJSSyntaxRegExp) |
+ return startIndex === 0 ? receiver.replace(from._nativeRegExp, to.replace(/\$/g, "$$$$")) : H.stringReplaceFirstRE(receiver, from, to, startIndex); |
+ if (from == null) |
+ H.throwExpression(P.ArgumentError$(null)); |
+ matches = J.get$iterator$ax(t1.allMatches$2(from, receiver, startIndex)); |
+ if (!matches.moveNext$0()) |
+ return receiver; |
+ match = matches.get$current(); |
+ return C.JSString_methods.substring$2(receiver, 0, J.get$start$x(match)) + to + C.JSString_methods.substring$1(receiver, match.get$end()); |
+ }, |
+ stringReplaceRangeUnchecked: function(receiver, start, end, replacement) { |
+ var prefix, suffix; |
+ prefix = receiver.substring(0, start); |
+ suffix = receiver.substring(end); |
+ return prefix + replacement + suffix; |
+ }, |
+ ReflectionInfo: { |
+ "^": "Object;jsFunction,data>,isAccessor,requiredParameterCount,optionalParameterCount,areOptionalParametersNamed,functionType,cachedSortedIndices", |
+ static: {ReflectionInfo_ReflectionInfo: function(jsFunction) { |
+ var data, requiredParametersInfo, optionalParametersInfo; |
+ data = jsFunction.$reflectionInfo; |
+ if (data == null) |
+ return; |
+ data.fixed$length = Array; |
+ data = data; |
+ requiredParametersInfo = data[0]; |
+ optionalParametersInfo = data[1]; |
+ return new H.ReflectionInfo(jsFunction, data, (requiredParametersInfo & 1) === 1, requiredParametersInfo >> 1, optionalParametersInfo >> 1, (optionalParametersInfo & 1) === 1, data[2], null); |
+ }} |
+ }, |
+ TypeErrorDecoder: { |
+ "^": "Object;_pattern,_arguments,_argumentsExpr,_expr,_method,_receiver", |
+ matchTypeError$1: function(message) { |
+ var match, result, t1; |
+ match = new RegExp(this._pattern).exec(message); |
+ if (match == null) |
+ return; |
+ result = Object.create(null); |
+ t1 = this._arguments; |
+ if (t1 !== -1) |
+ result.arguments = match[t1 + 1]; |
+ t1 = this._argumentsExpr; |
+ if (t1 !== -1) |
+ result.argumentsExpr = match[t1 + 1]; |
+ t1 = this._expr; |
+ if (t1 !== -1) |
+ result.expr = match[t1 + 1]; |
+ t1 = this._method; |
+ if (t1 !== -1) |
+ result.method = match[t1 + 1]; |
+ t1 = this._receiver; |
+ if (t1 !== -1) |
+ result.receiver = match[t1 + 1]; |
+ return result; |
+ }, |
+ static: {TypeErrorDecoder_extractPattern: function(message) { |
+ var match, $arguments, argumentsExpr, expr, method, receiver; |
+ message = message.replace(String({}), '$receiver$').replace(new RegExp("[[\\]{}()*+?.\\\\^$|]", 'g'), '\\$&'); |
+ match = message.match(/\\\$[a-zA-Z]+\\\$/g); |
+ if (match == null) |
+ match = []; |
+ $arguments = match.indexOf("\\$arguments\\$"); |
+ argumentsExpr = match.indexOf("\\$argumentsExpr\\$"); |
+ expr = match.indexOf("\\$expr\\$"); |
+ method = match.indexOf("\\$method\\$"); |
+ receiver = match.indexOf("\\$receiver\\$"); |
+ 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); |
+ }, TypeErrorDecoder_provokeCallErrorOn: function(expression) { |
+ return function($expr$) { |
+ var $argumentsExpr$ = '$arguments$'; |
+ try { |
+ $expr$.$method$($argumentsExpr$); |
+ } catch (e) { |
+ return e.message; |
+ } |
+ }(expression); |
+ }, TypeErrorDecoder_provokePropertyErrorOn: function(expression) { |
+ return function($expr$) { |
+ try { |
+ $expr$.$method$; |
+ } catch (e) { |
+ return e.message; |
+ } |
+ }(expression); |
+ }} |
+ }, |
+ NullError: { |
+ "^": "Error;_message,_method", |
+ toString$0: function(_) { |
+ var t1 = this._method; |
+ if (t1 == null) |
+ return "NullError: " + H.S(this._message); |
+ return "NullError: Cannot call \"" + H.S(t1) + "\" on null"; |
+ } |
+ }, |
+ JsNoSuchMethodError: { |
+ "^": "Error;_message,_method,_receiver", |
+ toString$0: function(_) { |
+ var t1, t2; |
+ t1 = this._method; |
+ if (t1 == null) |
+ return "NoSuchMethodError: " + H.S(this._message); |
+ t2 = this._receiver; |
+ if (t2 == null) |
+ return "NoSuchMethodError: Cannot call \"" + H.S(t1) + "\" (" + H.S(this._message) + ")"; |
+ return "NoSuchMethodError: Cannot call \"" + H.S(t1) + "\" on \"" + H.S(t2) + "\" (" + H.S(this._message) + ")"; |
+ }, |
+ static: {JsNoSuchMethodError$: function(_message, match) { |
+ var t1, t2; |
+ t1 = match == null; |
+ t2 = t1 ? null : match.method; |
+ t1 = t1 ? null : match.receiver; |
+ return new H.JsNoSuchMethodError(_message, t2, t1); |
+ }} |
+ }, |
+ UnknownJsTypeError: { |
+ "^": "Error;_message", |
+ toString$0: function(_) { |
+ var t1 = this._message; |
+ return C.JSString_methods.get$isEmpty(t1) ? "Error" : "Error: " + t1; |
+ } |
+ }, |
+ unwrapException_saveStackTrace: { |
+ "^": "Closure:2;ex_0", |
+ call$1: function(error) { |
+ if (!!J.getInterceptor(error).$isError) |
+ if (error.$thrownJsError == null) |
+ error.$thrownJsError = this.ex_0; |
+ return error; |
+ } |
+ }, |
+ _StackTrace: { |
+ "^": "Object;_exception,__js_helper$_trace", |
+ toString$0: function(_) { |
+ var t1, trace; |
+ t1 = this.__js_helper$_trace; |
+ if (t1 != null) |
+ return t1; |
+ t1 = this._exception; |
+ trace = t1 !== null && typeof t1 === "object" ? t1.stack : null; |
+ t1 = trace == null ? "" : trace; |
+ this.__js_helper$_trace = t1; |
+ return t1; |
+ } |
+ }, |
+ invokeClosure_closure: { |
+ "^": "Closure:0;closure_0", |
+ call$0: function() { |
+ return this.closure_0.call$0(); |
+ } |
+ }, |
+ invokeClosure_closure0: { |
+ "^": "Closure:0;closure_1,arg1_2", |
+ call$0: function() { |
+ return this.closure_1.call$1(this.arg1_2); |
+ } |
+ }, |
+ invokeClosure_closure1: { |
+ "^": "Closure:0;closure_3,arg1_4,arg2_5", |
+ call$0: function() { |
+ return this.closure_3.call$2(this.arg1_4, this.arg2_5); |
+ } |
+ }, |
+ invokeClosure_closure2: { |
+ "^": "Closure:0;closure_6,arg1_7,arg2_8,arg3_9", |
+ call$0: function() { |
+ return this.closure_6.call$3(this.arg1_7, this.arg2_8, this.arg3_9); |
+ } |
+ }, |
+ invokeClosure_closure3: { |
+ "^": "Closure:0;closure_10,arg1_11,arg2_12,arg3_13,arg4_14", |
+ call$0: function() { |
+ return this.closure_10.call$4(this.arg1_11, this.arg2_12, this.arg3_13, this.arg4_14); |
+ } |
+ }, |
+ Closure: { |
+ "^": "Object;", |
+ toString$0: function(_) { |
+ return "Closure"; |
+ }, |
+ get$$call: function() { |
+ return this; |
+ } |
+ }, |
+ TearOffClosure: { |
+ "^": "Closure;" |
+ }, |
+ BoundClosure: { |
+ "^": "TearOffClosure;_self,_target,_receiver,__js_helper$_name", |
+ $eq: function(_, other) { |
+ if (other == null) |
+ return false; |
+ if (this === other) |
+ return true; |
+ if (!(other instanceof H.BoundClosure)) |
+ return false; |
+ return this._self === other._self && this._target === other._target && this._receiver === other._receiver; |
+ }, |
+ get$hashCode: function(_) { |
+ var t1, receiverHashCode; |
+ t1 = this._receiver; |
+ if (t1 == null) |
+ receiverHashCode = H.Primitives_objectHashCode(this._self); |
+ else |
+ receiverHashCode = typeof t1 !== "object" ? J.get$hashCode$(t1) : H.Primitives_objectHashCode(t1); |
+ return (receiverHashCode ^ H.Primitives_objectHashCode(this._target)) >>> 0; |
+ }, |
+ static: {BoundClosure_selfOf: function(closure) { |
+ return closure._self; |
+ }, BoundClosure_receiverOf: function(closure) { |
+ return closure._receiver; |
+ }, BoundClosure_selfFieldName: function() { |
+ var t1 = $.BoundClosure_selfFieldNameCache; |
+ if (t1 == null) { |
+ t1 = H.BoundClosure_computeFieldNamed("self"); |
+ $.BoundClosure_selfFieldNameCache = t1; |
+ } |
+ return t1; |
+ }, BoundClosure_computeFieldNamed: function(fieldName) { |
+ var template, t1, names, i, $name; |
+ template = new H.BoundClosure("self", "target", "receiver", "name"); |
+ t1 = Object.getOwnPropertyNames(template); |
+ t1.fixed$length = Array; |
+ names = t1; |
+ for (t1 = names.length, i = 0; i < t1; ++i) { |
+ $name = names[i]; |
+ if (template[$name] === fieldName) |
+ return $name; |
+ } |
+ }} |
+ }, |
+ CastErrorImplementation: { |
+ "^": "Error;message>", |
+ toString$0: function(_) { |
+ return this.message; |
+ }, |
+ static: {CastErrorImplementation$: function(actualType, expectedType) { |
+ return new H.CastErrorImplementation("CastError: Casting value of type " + H.S(actualType) + " to incompatible type " + H.S(expectedType)); |
+ }} |
+ }, |
+ RuntimeError: { |
+ "^": "Error;message>", |
+ toString$0: function(_) { |
+ return "RuntimeError: " + H.S(this.message); |
+ }, |
+ static: {RuntimeError$: function(message) { |
+ return new H.RuntimeError(message); |
+ }} |
+ }, |
+ RuntimeType: { |
+ "^": "Object;" |
+ }, |
+ RuntimeFunctionType: { |
+ "^": "RuntimeType;returnType,parameterTypes,optionalParameterTypes,namedParameters", |
+ _isTest$1: function(expression) { |
+ var functionTypeObject = this._extractFunctionTypeObjectFrom$1(expression); |
+ return functionTypeObject == null ? false : H.isFunctionSubtype(functionTypeObject, this.toRti$0()); |
+ }, |
+ _extractFunctionTypeObjectFrom$1: function(o) { |
+ var interceptor = J.getInterceptor(o); |
+ return "$signature" in interceptor ? interceptor.$signature() : null; |
+ }, |
+ toRti$0: function() { |
+ var result, t1, t2, namedRti, keys, i, $name; |
+ result = {func: "dynafunc"}; |
+ t1 = this.returnType; |
+ t2 = J.getInterceptor(t1); |
+ if (!!t2.$isVoidRuntimeType) |
+ result.void = true; |
+ else if (!t2.$isDynamicRuntimeType) |
+ result.ret = t1.toRti$0(); |
+ t1 = this.parameterTypes; |
+ if (t1 != null && t1.length !== 0) |
+ result.args = H.RuntimeFunctionType_listToRti(t1); |
+ t1 = this.optionalParameterTypes; |
+ if (t1 != null && t1.length !== 0) |
+ result.opt = H.RuntimeFunctionType_listToRti(t1); |
+ t1 = this.namedParameters; |
+ if (t1 != null) { |
+ namedRti = Object.create(null); |
+ keys = H.extractKeys(t1); |
+ for (t2 = keys.length, i = 0; i < t2; ++i) { |
+ $name = keys[i]; |
+ namedRti[$name] = t1[$name].toRti$0(); |
+ } |
+ result.named = namedRti; |
+ } |
+ return result; |
+ }, |
+ toString$0: function(_) { |
+ var t1, t2, result, needsComma, i, type, keys, $name; |
+ t1 = this.parameterTypes; |
+ if (t1 != null) |
+ for (t2 = t1.length, result = "(", needsComma = false, i = 0; i < t2; ++i, needsComma = true) { |
+ type = t1[i]; |
+ if (needsComma) |
+ result += ", "; |
+ result += H.S(type); |
+ } |
+ else { |
+ result = "("; |
+ needsComma = false; |
+ } |
+ t1 = this.optionalParameterTypes; |
+ if (t1 != null && t1.length !== 0) { |
+ result = (needsComma ? result + ", " : result) + "["; |
+ for (t2 = t1.length, needsComma = false, i = 0; i < t2; ++i, needsComma = true) { |
+ type = t1[i]; |
+ if (needsComma) |
+ result += ", "; |
+ result += H.S(type); |
+ } |
+ result += "]"; |
+ } else { |
+ t1 = this.namedParameters; |
+ if (t1 != null) { |
+ result = (needsComma ? result + ", " : result) + "{"; |
+ keys = H.extractKeys(t1); |
+ for (t2 = keys.length, needsComma = false, i = 0; i < t2; ++i, needsComma = true) { |
+ $name = keys[i]; |
+ if (needsComma) |
+ result += ", "; |
+ result += H.S(t1[$name].toRti$0()) + " " + $name; |
+ } |
+ result += "}"; |
+ } |
+ } |
+ return result + (") -> " + H.S(this.returnType)); |
+ }, |
+ static: {RuntimeFunctionType_listToRti: function(list) { |
+ var result, t1, i; |
+ list = list; |
+ result = []; |
+ for (t1 = list.length, i = 0; i < t1; ++i) |
+ result.push(list[i].toRti$0()); |
+ return result; |
+ }} |
+ }, |
+ DynamicRuntimeType: { |
+ "^": "RuntimeType;", |
+ toString$0: function(_) { |
+ return "dynamic"; |
+ }, |
+ toRti$0: function() { |
+ return; |
+ } |
+ }, |
+ JsLinkedHashMap: { |
+ "^": "Object;__js_helper$_length,_strings,_nums,_rest,_first,_last,_modifications", |
+ get$length: function(_) { |
+ return this.__js_helper$_length; |
+ }, |
+ get$isEmpty: function(_) { |
+ return this.__js_helper$_length === 0; |
+ }, |
+ get$isNotEmpty: function(_) { |
+ return this.__js_helper$_length !== 0; |
+ }, |
+ get$keys: function() { |
+ return H.setRuntimeTypeInfo(new H.LinkedHashMapKeyIterable(this), [H.getTypeArgumentByIndex(this, 0)]); |
+ }, |
+ get$values: function(_) { |
+ return H.MappedIterable_MappedIterable(H.setRuntimeTypeInfo(new H.LinkedHashMapKeyIterable(this), [H.getTypeArgumentByIndex(this, 0)]), new H.JsLinkedHashMap_values_closure(this), H.getTypeArgumentByIndex(this, 0), H.getTypeArgumentByIndex(this, 1)); |
+ }, |
+ containsKey$1: function(key) { |
+ var strings, nums; |
+ if (typeof key === "string" && key !== "__proto__") { |
+ strings = this._strings; |
+ if (strings == null) |
+ return false; |
+ return strings[key] != null; |
+ } else if (typeof key === "number" && (key & 0x3ffffff) === key) { |
+ nums = this._nums; |
+ if (nums == null) |
+ return false; |
+ return nums[key] != null; |
+ } else |
+ return this.internalContainsKey$1(key); |
+ }, |
+ internalContainsKey$1: function(key) { |
+ var rest = this._rest; |
+ if (rest == null) |
+ return false; |
+ return this.internalFindBucketIndex$2(rest[this.internalComputeHashCode$1(key)], key) >= 0; |
+ }, |
+ $index: function(_, key) { |
+ var strings, cell, nums; |
+ if (typeof key === "string" && key !== "__proto__") { |
+ strings = this._strings; |
+ if (strings == null) |
+ return; |
+ cell = strings[key]; |
+ return cell == null ? null : cell.get$hashMapCellValue(); |
+ } else if (typeof key === "number" && (key & 0x3ffffff) === key) { |
+ nums = this._nums; |
+ if (nums == null) |
+ return; |
+ cell = nums[key]; |
+ return cell == null ? null : cell.get$hashMapCellValue(); |
+ } else |
+ return this.internalGet$1(key); |
+ }, |
+ internalGet$1: function(key) { |
+ var rest, bucket, index; |
+ rest = this._rest; |
+ if (rest == null) |
+ return; |
+ bucket = rest[this.internalComputeHashCode$1(key)]; |
+ index = this.internalFindBucketIndex$2(bucket, key); |
+ if (index < 0) |
+ return; |
+ return bucket[index].get$hashMapCellValue(); |
+ }, |
+ $indexSet: function(_, key, value) { |
+ var strings, nums; |
+ if (typeof key === "string" && key !== "__proto__") { |
+ strings = this._strings; |
+ if (strings == null) { |
+ strings = H.JsLinkedHashMap__newHashTable(); |
+ this._strings = strings; |
+ } |
+ this._addHashTableEntry$3(strings, key, value); |
+ } else if (typeof key === "number" && (key & 0x3ffffff) === key) { |
+ nums = this._nums; |
+ if (nums == null) { |
+ nums = H.JsLinkedHashMap__newHashTable(); |
+ this._nums = nums; |
+ } |
+ this._addHashTableEntry$3(nums, key, value); |
+ } else |
+ this.internalSet$2(key, value); |
+ }, |
+ internalSet$2: function(key, value) { |
+ var rest, hash, bucket, index; |
+ rest = this._rest; |
+ if (rest == null) { |
+ rest = H.JsLinkedHashMap__newHashTable(); |
+ this._rest = rest; |
+ } |
+ hash = this.internalComputeHashCode$1(key); |
+ bucket = rest[hash]; |
+ if (bucket == null) |
+ rest[hash] = [this._newLinkedCell$2(key, value)]; |
+ else { |
+ index = this.internalFindBucketIndex$2(bucket, key); |
+ if (index >= 0) |
+ bucket[index].set$hashMapCellValue(value); |
+ else |
+ bucket.push(this._newLinkedCell$2(key, value)); |
+ } |
+ }, |
+ remove$1: function(_, key) { |
+ if (typeof key === "string" && key !== "__proto__") |
+ return this._removeHashTableEntry$2(this._strings, key); |
+ else if (typeof key === "number" && (key & 0x3ffffff) === key) |
+ return this._removeHashTableEntry$2(this._nums, key); |
+ else |
+ return this.internalRemove$1(key); |
+ }, |
+ internalRemove$1: function(key) { |
+ var rest, bucket, index, cell; |
+ rest = this._rest; |
+ if (rest == null) |
+ return; |
+ bucket = rest[this.internalComputeHashCode$1(key)]; |
+ index = this.internalFindBucketIndex$2(bucket, key); |
+ if (index < 0) |
+ return; |
+ cell = bucket.splice(index, 1)[0]; |
+ this._unlinkCell$1(cell); |
+ return cell.get$hashMapCellValue(); |
+ }, |
+ clear$0: function(_) { |
+ if (this.__js_helper$_length > 0) { |
+ this._last = null; |
+ this._first = null; |
+ this._rest = null; |
+ this._nums = null; |
+ this._strings = null; |
+ this.__js_helper$_length = 0; |
+ this._modifications = this._modifications + 1 & 67108863; |
+ } |
+ }, |
+ forEach$1: function(_, action) { |
+ var cell, modifications; |
+ cell = this._first; |
+ modifications = this._modifications; |
+ for (; cell != null;) { |
+ action.call$2(cell.hashMapCellKey, cell.hashMapCellValue); |
+ if (modifications !== this._modifications) |
+ throw H.wrapException(P.ConcurrentModificationError$(this)); |
+ cell = cell._next; |
+ } |
+ }, |
+ _addHashTableEntry$3: function(table, key, value) { |
+ var cell = table[key]; |
+ if (cell == null) |
+ table[key] = this._newLinkedCell$2(key, value); |
+ else |
+ cell.set$hashMapCellValue(value); |
+ }, |
+ _removeHashTableEntry$2: function(table, key) { |
+ var cell; |
+ if (table == null) |
+ return; |
+ cell = table[key]; |
+ if (cell == null) |
+ return; |
+ this._unlinkCell$1(cell); |
+ delete table[key]; |
+ return cell.get$hashMapCellValue(); |
+ }, |
+ _newLinkedCell$2: function(key, value) { |
+ var cell, last; |
+ cell = new H.LinkedHashMapCell(key, value, null, null); |
+ if (this._first == null) { |
+ this._last = cell; |
+ this._first = cell; |
+ } else { |
+ last = this._last; |
+ cell._previous = last; |
+ last._next = cell; |
+ this._last = cell; |
+ } |
+ ++this.__js_helper$_length; |
+ this._modifications = this._modifications + 1 & 67108863; |
+ return cell; |
+ }, |
+ _unlinkCell$1: function(cell) { |
+ var previous, next; |
+ previous = cell.get$_previous(); |
+ next = cell._next; |
+ if (previous == null) |
+ this._first = next; |
+ else |
+ previous._next = next; |
+ if (next == null) |
+ this._last = previous; |
+ else |
+ next._previous = previous; |
+ --this.__js_helper$_length; |
+ this._modifications = this._modifications + 1 & 67108863; |
+ }, |
+ internalComputeHashCode$1: function(key) { |
+ return J.get$hashCode$(key) & 0x3ffffff; |
+ }, |
+ internalFindBucketIndex$2: function(bucket, key) { |
+ var $length, i; |
+ if (bucket == null) |
+ return -1; |
+ $length = bucket.length; |
+ for (i = 0; i < $length; ++i) |
+ if (J.$eq(bucket[i].get$hashMapCellKey(), key)) |
+ return i; |
+ return -1; |
+ }, |
+ toString$0: function(_) { |
+ return P.Maps_mapToString(this); |
+ }, |
+ $isInternalMap: 1, |
+ $isMap: 1, |
+ static: {JsLinkedHashMap__newHashTable: function() { |
+ var table = Object.create(null); |
+ table["<non-identifier-key>"] = table; |
+ delete table["<non-identifier-key>"]; |
+ return table; |
+ }} |
+ }, |
+ JsLinkedHashMap_values_closure: { |
+ "^": "Closure:2;this_0", |
+ call$1: function(each) { |
+ return this.this_0.$index(0, each); |
+ } |
+ }, |
+ LinkedHashMapCell: { |
+ "^": "Object;hashMapCellKey<,hashMapCellValue@,_next,_previous<" |
+ }, |
+ LinkedHashMapKeyIterable: { |
+ "^": "IterableBase;__js_helper$_map", |
+ get$length: function(_) { |
+ return this.__js_helper$_map.__js_helper$_length; |
+ }, |
+ get$isEmpty: function(_) { |
+ return this.__js_helper$_map.__js_helper$_length === 0; |
+ }, |
+ get$iterator: function(_) { |
+ var t1, t2; |
+ t1 = this.__js_helper$_map; |
+ t2 = new H.LinkedHashMapKeyIterator(t1, t1._modifications, null, null); |
+ t2._cell = t1._first; |
+ return t2; |
+ }, |
+ contains$1: function(_, element) { |
+ return this.__js_helper$_map.containsKey$1(element); |
+ }, |
+ forEach$1: function(_, f) { |
+ var t1, cell, modifications; |
+ t1 = this.__js_helper$_map; |
+ cell = t1._first; |
+ modifications = t1._modifications; |
+ for (; cell != null;) { |
+ f.call$1(cell.hashMapCellKey); |
+ if (modifications !== t1._modifications) |
+ throw H.wrapException(P.ConcurrentModificationError$(t1)); |
+ cell = cell._next; |
+ } |
+ }, |
+ $isEfficientLength: 1 |
+ }, |
+ LinkedHashMapKeyIterator: { |
+ "^": "Object;__js_helper$_map,_modifications,_cell,__js_helper$_current", |
+ get$current: function() { |
+ return this.__js_helper$_current; |
+ }, |
+ moveNext$0: function() { |
+ var t1 = this.__js_helper$_map; |
+ if (this._modifications !== t1._modifications) |
+ throw H.wrapException(P.ConcurrentModificationError$(t1)); |
+ else { |
+ t1 = this._cell; |
+ if (t1 == null) { |
+ this.__js_helper$_current = null; |
+ return false; |
+ } else { |
+ this.__js_helper$_current = t1.hashMapCellKey; |
+ this._cell = t1._next; |
+ return true; |
+ } |
+ } |
+ } |
+ }, |
+ initHooks_closure: { |
+ "^": "Closure:2;getTag_0", |
+ call$1: function(o) { |
+ return this.getTag_0(o); |
+ } |
+ }, |
+ initHooks_closure0: { |
+ "^": "Closure:3;getUnknownTag_1", |
+ call$2: function(o, tag) { |
+ return this.getUnknownTag_1(o, tag); |
+ } |
+ }, |
+ initHooks_closure1: { |
+ "^": "Closure:4;prototypeForTag_2", |
+ call$1: function(tag) { |
+ return this.prototypeForTag_2(tag); |
+ } |
+ }, |
+ JSSyntaxRegExp: { |
+ "^": "Object;pattern,_nativeRegExp,_nativeGlobalRegExp,_nativeAnchoredRegExp", |
+ toString$0: function(_) { |
+ return "RegExp/" + this.pattern + "/"; |
+ }, |
+ get$_nativeGlobalVersion: function() { |
+ var t1 = this._nativeGlobalRegExp; |
+ if (t1 != null) |
+ return t1; |
+ t1 = this._nativeRegExp; |
+ t1 = H.JSSyntaxRegExp_makeNative(this.pattern, t1.multiline, !t1.ignoreCase, true); |
+ this._nativeGlobalRegExp = t1; |
+ return t1; |
+ }, |
+ get$_nativeAnchoredVersion: function() { |
+ var t1 = this._nativeAnchoredRegExp; |
+ if (t1 != null) |
+ return t1; |
+ t1 = this._nativeRegExp; |
+ t1 = H.JSSyntaxRegExp_makeNative(this.pattern + "|()", t1.multiline, !t1.ignoreCase, true); |
+ this._nativeAnchoredRegExp = t1; |
+ return t1; |
+ }, |
+ firstMatch$1: function(string) { |
+ var m = this._nativeRegExp.exec(H.checkString(string)); |
+ if (m == null) |
+ return; |
+ return H._MatchImplementation$(this, m); |
+ }, |
+ allMatches$2: function(_, string, start) { |
+ H.checkString(string); |
+ H.checkInt(start); |
+ if (start > string.length) |
+ throw H.wrapException(P.RangeError$range(start, 0, string.length, null, null)); |
+ return new H._AllMatchesIterable(this, string, start); |
+ }, |
+ allMatches$1: function($receiver, string) { |
+ return this.allMatches$2($receiver, string, 0); |
+ }, |
+ _execGlobal$2: function(string, start) { |
+ var regexp, match; |
+ regexp = this.get$_nativeGlobalVersion(); |
+ regexp.lastIndex = start; |
+ match = regexp.exec(string); |
+ if (match == null) |
+ return; |
+ return H._MatchImplementation$(this, match); |
+ }, |
+ _execAnchored$2: function(string, start) { |
+ var regexp, match, t1, t2; |
+ regexp = this.get$_nativeAnchoredVersion(); |
+ regexp.lastIndex = start; |
+ match = regexp.exec(string); |
+ if (match == null) |
+ return; |
+ t1 = match.length; |
+ t2 = t1 - 1; |
+ if (t2 < 0) |
+ return H.ioore(match, t2); |
+ if (match[t2] != null) |
+ return; |
+ C.JSArray_methods.set$length(match, t2); |
+ return H._MatchImplementation$(this, match); |
+ }, |
+ matchAsPrefix$2: function(_, string, start) { |
+ if (start > string.length) |
+ throw H.wrapException(P.RangeError$range(start, 0, string.length, null, null)); |
+ return this._execAnchored$2(string, start); |
+ }, |
+ $isRegExp: 1, |
+ static: {JSSyntaxRegExp_makeNative: function(source, multiLine, caseSensitive, global) { |
+ var m, i, g, regexp, errorMessage; |
+ H.checkString(source); |
+ m = multiLine ? "m" : ""; |
+ i = caseSensitive ? "" : "i"; |
+ g = global ? "g" : ""; |
+ regexp = function() { |
+ try { |
+ return new RegExp(source, m + i + g); |
+ } catch (e) { |
+ return e; |
+ } |
+ }(); |
+ if (regexp instanceof RegExp) |
+ return regexp; |
+ errorMessage = String(regexp); |
+ throw H.wrapException(P.FormatException$("Illegal RegExp pattern: " + source + ", " + errorMessage, null, null)); |
+ }} |
+ }, |
+ _MatchImplementation: { |
+ "^": "Object;pattern,_match", |
+ get$start: function(_) { |
+ return this._match.index; |
+ }, |
+ get$end: function() { |
+ var t1, t2; |
+ t1 = this._match; |
+ t2 = t1.index; |
+ if (0 >= t1.length) |
+ return H.ioore(t1, 0); |
+ t1 = J.get$length$asx(t1[0]); |
+ if (typeof t1 !== "number") |
+ return H.iae(t1); |
+ return t2 + t1; |
+ }, |
+ $index: function(_, index) { |
+ var t1 = this._match; |
+ if (index >>> 0 !== index || index >= t1.length) |
+ return H.ioore(t1, index); |
+ return t1[index]; |
+ }, |
+ _MatchImplementation$2: function(pattern, _match) { |
+ }, |
+ static: {_MatchImplementation$: function(pattern, _match) { |
+ var t1 = new H._MatchImplementation(pattern, _match); |
+ t1._MatchImplementation$2(pattern, _match); |
+ return t1; |
+ }} |
+ }, |
+ _AllMatchesIterable: { |
+ "^": "IterableBase;_re,_string,_start", |
+ get$iterator: function(_) { |
+ return new H._AllMatchesIterator(this._re, this._string, this._start, null); |
+ }, |
+ $asIterableBase: function() { |
+ return [P.Match]; |
+ } |
+ }, |
+ _AllMatchesIterator: { |
+ "^": "Object;_regExp,_string,_nextIndex,__js_helper$_current", |
+ get$current: function() { |
+ return this.__js_helper$_current; |
+ }, |
+ moveNext$0: function() { |
+ var t1, t2, match, t3, nextIndex; |
+ t1 = this._string; |
+ if (t1 == null) |
+ return false; |
+ t2 = this._nextIndex; |
+ if (t2 <= t1.length) { |
+ match = this._regExp._execGlobal$2(t1, t2); |
+ if (match != null) { |
+ this.__js_helper$_current = match; |
+ t1 = match._match; |
+ t2 = t1.index; |
+ if (0 >= t1.length) |
+ return H.ioore(t1, 0); |
+ t3 = J.get$length$asx(t1[0]); |
+ if (typeof t3 !== "number") |
+ return H.iae(t3); |
+ nextIndex = t2 + t3; |
+ this._nextIndex = t1.index === nextIndex ? nextIndex + 1 : nextIndex; |
+ return true; |
+ } |
+ } |
+ this.__js_helper$_current = null; |
+ this._string = null; |
+ return false; |
+ } |
+ }, |
+ StringMatch: { |
+ "^": "Object;start>,input,pattern", |
+ get$end: function() { |
+ return this.start + this.pattern.length; |
+ }, |
+ $index: function(_, g) { |
+ if (g !== 0) |
+ H.throwExpression(P.RangeError$value(g, null, null)); |
+ return this.pattern; |
+ } |
+ } |
+}], |
+["dart._internal", "dart:_internal", , H, { |
+ "^": "", |
+ IterableElementError_noElement: function() { |
+ return new P.StateError("No element"); |
+ }, |
+ IterableElementError_tooFew: function() { |
+ return new P.StateError("Too few elements"); |
+ }, |
+ Symbol_getName: function(symbol) { |
+ return symbol.get$_name(); |
+ }, |
+ CodeUnits: { |
+ "^": "UnmodifiableListBase;__internal$_string", |
+ get$length: function(_) { |
+ return this.__internal$_string.length; |
+ }, |
+ $index: function(_, i) { |
+ return C.JSString_methods.codeUnitAt$1(this.__internal$_string, i); |
+ }, |
+ $asUnmodifiableListBase: function() { |
+ return [P.$int]; |
+ }, |
+ $asListBase: function() { |
+ return [P.$int]; |
+ }, |
+ $asList: function() { |
+ return [P.$int]; |
+ } |
+ }, |
+ ListIterable: { |
+ "^": "IterableBase;", |
+ get$iterator: function(_) { |
+ return new H.ListIterator(this, this.get$length(this), 0, null); |
+ }, |
+ forEach$1: function(_, action) { |
+ var $length, i; |
+ $length = this.get$length(this); |
+ for (i = 0; i < $length; ++i) { |
+ action.call$1(this.elementAt$1(0, i)); |
+ if ($length !== this.get$length(this)) |
+ throw H.wrapException(P.ConcurrentModificationError$(this)); |
+ } |
+ }, |
+ get$isEmpty: function(_) { |
+ return this.get$length(this) === 0; |
+ }, |
+ get$last: function(_) { |
+ if (this.get$length(this) === 0) |
+ throw H.wrapException(H.IterableElementError_noElement()); |
+ return this.elementAt$1(0, this.get$length(this) - 1); |
+ }, |
+ contains$1: function(_, element) { |
+ var $length, i; |
+ $length = this.get$length(this); |
+ for (i = 0; i < $length; ++i) { |
+ if (J.$eq(this.elementAt$1(0, i), element)) |
+ return true; |
+ if ($length !== this.get$length(this)) |
+ throw H.wrapException(P.ConcurrentModificationError$(this)); |
+ } |
+ return false; |
+ }, |
+ join$1: function(_, separator) { |
+ var $length, first, buffer, i, t1; |
+ $length = this.get$length(this); |
+ if (separator.length !== 0) { |
+ if ($length === 0) |
+ return ""; |
+ first = H.S(this.elementAt$1(0, 0)); |
+ if ($length !== this.get$length(this)) |
+ throw H.wrapException(P.ConcurrentModificationError$(this)); |
+ buffer = new P.StringBuffer(first); |
+ for (i = 1; i < $length; ++i) { |
+ buffer._contents += separator; |
+ buffer._contents += H.S(this.elementAt$1(0, i)); |
+ if ($length !== this.get$length(this)) |
+ throw H.wrapException(P.ConcurrentModificationError$(this)); |
+ } |
+ t1 = buffer._contents; |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ } else { |
+ buffer = new P.StringBuffer(""); |
+ for (i = 0; i < $length; ++i) { |
+ buffer._contents += H.S(this.elementAt$1(0, i)); |
+ if ($length !== this.get$length(this)) |
+ throw H.wrapException(P.ConcurrentModificationError$(this)); |
+ } |
+ t1 = buffer._contents; |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ } |
+ }, |
+ join$0: function($receiver) { |
+ return this.join$1($receiver, ""); |
+ }, |
+ map$1: function(_, f) { |
+ return H.setRuntimeTypeInfo(new H.MappedListIterable(this, f), [null, null]); |
+ }, |
+ fold$2: function(_, initialValue, combine) { |
+ var $length, value, i; |
+ $length = this.get$length(this); |
+ for (value = initialValue, i = 0; i < $length; ++i) { |
+ value = combine.call$2(value, this.elementAt$1(0, i)); |
+ if ($length !== this.get$length(this)) |
+ throw H.wrapException(P.ConcurrentModificationError$(this)); |
+ } |
+ return value; |
+ }, |
+ toList$1$growable: function(_, growable) { |
+ var result, i, t1; |
+ if (growable) { |
+ result = H.setRuntimeTypeInfo([], [H.getRuntimeTypeArgument(this, "ListIterable", 0)]); |
+ C.JSArray_methods.set$length(result, this.get$length(this)); |
+ } else |
+ result = H.setRuntimeTypeInfo(Array(this.get$length(this)), [H.getRuntimeTypeArgument(this, "ListIterable", 0)]); |
+ for (i = 0; i < this.get$length(this); ++i) { |
+ t1 = this.elementAt$1(0, i); |
+ if (i >= result.length) |
+ return H.ioore(result, i); |
+ result[i] = t1; |
+ } |
+ return result; |
+ }, |
+ toList$0: function($receiver) { |
+ return this.toList$1$growable($receiver, true); |
+ }, |
+ $isEfficientLength: 1 |
+ }, |
+ SubListIterable: { |
+ "^": "ListIterable;_iterable,__internal$_start,_endOrLength", |
+ get$_endIndex: function() { |
+ var $length, t1, t2; |
+ $length = J.get$length$asx(this._iterable); |
+ t1 = this._endOrLength; |
+ if (t1 != null) { |
+ if (typeof t1 !== "number") |
+ return t1.$gt(); |
+ t2 = t1 > $length; |
+ } else |
+ t2 = true; |
+ if (t2) |
+ return $length; |
+ return t1; |
+ }, |
+ get$_startIndex: function() { |
+ var $length, t1; |
+ $length = J.get$length$asx(this._iterable); |
+ t1 = this.__internal$_start; |
+ if (t1 > $length) |
+ return $length; |
+ return t1; |
+ }, |
+ get$length: function(_) { |
+ var $length, t1, t2, t3; |
+ $length = J.get$length$asx(this._iterable); |
+ t1 = this.__internal$_start; |
+ if (t1 >= $length) |
+ return 0; |
+ t2 = this._endOrLength; |
+ if (t2 != null) { |
+ if (typeof t2 !== "number") |
+ return t2.$ge(); |
+ t3 = t2 >= $length; |
+ } else |
+ t3 = true; |
+ if (t3) |
+ return $length - t1; |
+ if (typeof t2 !== "number") |
+ return t2.$sub(); |
+ return t2 - t1; |
+ }, |
+ elementAt$1: function(_, index) { |
+ var realIndex, t1; |
+ realIndex = this.get$_startIndex() + index; |
+ if (index >= 0) { |
+ t1 = this.get$_endIndex(); |
+ if (typeof t1 !== "number") |
+ return H.iae(t1); |
+ t1 = realIndex >= t1; |
+ } else |
+ t1 = true; |
+ if (t1) |
+ throw H.wrapException(P.IndexError$(index, this, "index", null, null)); |
+ return J.elementAt$1$ax(this._iterable, realIndex); |
+ }, |
+ SubListIterable$3: function(_iterable, _start, _endOrLength, $E) { |
+ var t1, t2; |
+ t1 = this.__internal$_start; |
+ if (t1 < 0) |
+ H.throwExpression(P.RangeError$range(t1, 0, null, "start", null)); |
+ t2 = this._endOrLength; |
+ if (t2 != null) { |
+ if (typeof t2 !== "number") |
+ return t2.$lt(); |
+ if (t2 < 0) |
+ H.throwExpression(P.RangeError$range(t2, 0, null, "end", null)); |
+ if (t1 > t2) |
+ throw H.wrapException(P.RangeError$range(t1, 0, t2, "start", null)); |
+ } |
+ }, |
+ static: {SubListIterable$: function(_iterable, _start, _endOrLength, $E) { |
+ var t1 = H.setRuntimeTypeInfo(new H.SubListIterable(_iterable, _start, _endOrLength), [$E]); |
+ t1.SubListIterable$3(_iterable, _start, _endOrLength, $E); |
+ return t1; |
+ }} |
+ }, |
+ ListIterator: { |
+ "^": "Object;_iterable,__internal$_length,_index,_current", |
+ get$current: function() { |
+ return this._current; |
+ }, |
+ moveNext$0: function() { |
+ var t1, t2, $length, t3; |
+ t1 = this._iterable; |
+ t2 = J.getInterceptor$asx(t1); |
+ $length = t2.get$length(t1); |
+ if (this.__internal$_length !== $length) |
+ throw H.wrapException(P.ConcurrentModificationError$(t1)); |
+ t3 = this._index; |
+ if (t3 >= $length) { |
+ this._current = null; |
+ return false; |
+ } |
+ this._current = t2.elementAt$1(t1, t3); |
+ ++this._index; |
+ return true; |
+ } |
+ }, |
+ MappedIterable: { |
+ "^": "IterableBase;_iterable,_f", |
+ get$iterator: function(_) { |
+ var t1 = new H.MappedIterator(null, J.get$iterator$ax(this._iterable), this._f); |
+ t1.$builtinTypeInfo = this.$builtinTypeInfo; |
+ return t1; |
+ }, |
+ get$length: function(_) { |
+ return J.get$length$asx(this._iterable); |
+ }, |
+ get$isEmpty: function(_) { |
+ return J.get$isEmpty$asx(this._iterable); |
+ }, |
+ get$last: function(_) { |
+ return this._f$1(J.get$last$ax(this._iterable)); |
+ }, |
+ _f$1: function(arg0) { |
+ return this._f.call$1(arg0); |
+ }, |
+ $asIterableBase: function($S, $T) { |
+ return [$T]; |
+ }, |
+ static: {MappedIterable_MappedIterable: function(iterable, $function, $S, $T) { |
+ if (!!J.getInterceptor(iterable).$isEfficientLength) |
+ return H.setRuntimeTypeInfo(new H.EfficientLengthMappedIterable(iterable, $function), [$S, $T]); |
+ return H.setRuntimeTypeInfo(new H.MappedIterable(iterable, $function), [$S, $T]); |
+ }} |
+ }, |
+ EfficientLengthMappedIterable: { |
+ "^": "MappedIterable;_iterable,_f", |
+ $isEfficientLength: 1 |
+ }, |
+ MappedIterator: { |
+ "^": "Iterator;_current,_iterator,_f", |
+ moveNext$0: function() { |
+ var t1 = this._iterator; |
+ if (t1.moveNext$0()) { |
+ this._current = this._f$1(t1.get$current()); |
+ return true; |
+ } |
+ this._current = null; |
+ return false; |
+ }, |
+ get$current: function() { |
+ return this._current; |
+ }, |
+ _f$1: function(arg0) { |
+ return this._f.call$1(arg0); |
+ } |
+ }, |
+ MappedListIterable: { |
+ "^": "ListIterable;_source,_f", |
+ get$length: function(_) { |
+ return J.get$length$asx(this._source); |
+ }, |
+ elementAt$1: function(_, index) { |
+ return this._f$1(J.elementAt$1$ax(this._source, index)); |
+ }, |
+ _f$1: function(arg0) { |
+ return this._f.call$1(arg0); |
+ }, |
+ $asListIterable: function($S, $T) { |
+ return [$T]; |
+ }, |
+ $asIterableBase: function($S, $T) { |
+ return [$T]; |
+ }, |
+ $isEfficientLength: 1 |
+ }, |
+ WhereIterable: { |
+ "^": "IterableBase;_iterable,_f", |
+ get$iterator: function(_) { |
+ var t1 = new H.WhereIterator(J.get$iterator$ax(this._iterable), this._f); |
+ t1.$builtinTypeInfo = this.$builtinTypeInfo; |
+ return t1; |
+ } |
+ }, |
+ WhereIterator: { |
+ "^": "Iterator;_iterator,_f", |
+ moveNext$0: function() { |
+ for (var t1 = this._iterator; t1.moveNext$0();) |
+ if (this._f$1(t1.get$current()) === true) |
+ return true; |
+ return false; |
+ }, |
+ get$current: function() { |
+ return this._iterator.get$current(); |
+ }, |
+ _f$1: function(arg0) { |
+ return this._f.call$1(arg0); |
+ } |
+ }, |
+ SkipWhileIterable: { |
+ "^": "IterableBase;_iterable,_f", |
+ get$iterator: function(_) { |
+ var t1 = new H.SkipWhileIterator(J.get$iterator$ax(this._iterable), this._f, false); |
+ t1.$builtinTypeInfo = this.$builtinTypeInfo; |
+ return t1; |
+ } |
+ }, |
+ SkipWhileIterator: { |
+ "^": "Iterator;_iterator,_f,_hasSkipped", |
+ moveNext$0: function() { |
+ if (!this._hasSkipped) { |
+ this._hasSkipped = true; |
+ for (var t1 = this._iterator; t1.moveNext$0();) |
+ if (this._f$1(t1.get$current()) !== true) |
+ return true; |
+ } |
+ return this._iterator.moveNext$0(); |
+ }, |
+ get$current: function() { |
+ return this._iterator.get$current(); |
+ }, |
+ _f$1: function(arg0) { |
+ return this._f.call$1(arg0); |
+ } |
+ }, |
+ FixedLengthListMixin: { |
+ "^": "Object;", |
+ set$length: function(receiver, newLength) { |
+ throw H.wrapException(P.UnsupportedError$("Cannot change the length of a fixed-length list")); |
+ }, |
+ add$1: function(receiver, value) { |
+ throw H.wrapException(P.UnsupportedError$("Cannot add to a fixed-length list")); |
+ } |
+ }, |
+ UnmodifiableListMixin: { |
+ "^": "Object;", |
+ $indexSet: function(_, index, value) { |
+ throw H.wrapException(P.UnsupportedError$("Cannot modify an unmodifiable list")); |
+ }, |
+ set$length: function(_, newLength) { |
+ throw H.wrapException(P.UnsupportedError$("Cannot change the length of an unmodifiable list")); |
+ }, |
+ add$1: function(_, value) { |
+ throw H.wrapException(P.UnsupportedError$("Cannot add to an unmodifiable list")); |
+ }, |
+ $isList: 1, |
+ $asList: null, |
+ $isEfficientLength: 1 |
+ }, |
+ UnmodifiableListBase: { |
+ "^": "ListBase+UnmodifiableListMixin;", |
+ $isList: 1, |
+ $asList: null, |
+ $isEfficientLength: 1 |
+ }, |
+ ReversedListIterable: { |
+ "^": "ListIterable;_source", |
+ get$length: function(_) { |
+ return J.get$length$asx(this._source); |
+ }, |
+ elementAt$1: function(_, index) { |
+ var t1, t2; |
+ t1 = this._source; |
+ t2 = J.getInterceptor$asx(t1); |
+ return t2.elementAt$1(t1, t2.get$length(t1) - 1 - index); |
+ } |
+ } |
+}], |
+["dart._js_names", "dart:_js_names", , H, { |
+ "^": "", |
+ extractKeys: function(victim) { |
+ var t1 = H.setRuntimeTypeInfo(victim ? Object.keys(victim) : [], [null]); |
+ t1.fixed$length = Array; |
+ return t1; |
+ } |
+}], |
+["dart.async", "dart:async", , P, { |
+ "^": "", |
+ _AsyncRun__initializeScheduleImmediate: function() { |
+ var t1, div, span; |
+ t1 = {}; |
+ if (self.scheduleImmediate != null) |
+ return P._AsyncRun__scheduleImmediateJsOverride$closure(); |
+ if (self.MutationObserver != null && self.document != null) { |
+ div = self.document.createElement("div"); |
+ span = self.document.createElement("span"); |
+ t1.storedCallback_0 = null; |
+ new self.MutationObserver(H.convertDartClosureToJS(new P._AsyncRun__initializeScheduleImmediate_internalCallback(t1), 1)).observe(div, {childList: true}); |
+ return new P._AsyncRun__initializeScheduleImmediate_closure(t1, div, span); |
+ } else if (self.setImmediate != null) |
+ return P._AsyncRun__scheduleImmediateWithSetImmediate$closure(); |
+ return P._AsyncRun__scheduleImmediateWithTimer$closure(); |
+ }, |
+ _AsyncRun__scheduleImmediateJsOverride: [function(callback) { |
+ ++init.globalState.topEventLoop._activeJsAsyncCount; |
+ self.scheduleImmediate(H.convertDartClosureToJS(new P._AsyncRun__scheduleImmediateJsOverride_internalCallback(callback), 0)); |
+ }, "call$1", "_AsyncRun__scheduleImmediateJsOverride$closure", 2, 0, 29], |
+ _AsyncRun__scheduleImmediateWithSetImmediate: [function(callback) { |
+ ++init.globalState.topEventLoop._activeJsAsyncCount; |
+ self.setImmediate(H.convertDartClosureToJS(new P._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback(callback), 0)); |
+ }, "call$1", "_AsyncRun__scheduleImmediateWithSetImmediate$closure", 2, 0, 29], |
+ _AsyncRun__scheduleImmediateWithTimer: [function(callback) { |
+ P.Timer__createTimer(C.Duration_0, callback); |
+ }, "call$1", "_AsyncRun__scheduleImmediateWithTimer$closure", 2, 0, 29], |
+ _registerErrorHandler: function(errorHandler, zone) { |
+ var t1 = H.getDynamicRuntimeType(); |
+ t1 = H.buildFunctionType(t1, [t1, t1])._isTest$1(errorHandler); |
+ if (t1) |
+ return zone.registerBinaryCallback$1(errorHandler); |
+ else |
+ return zone.registerUnaryCallback$1(errorHandler); |
+ }, |
+ _completeWithErrorCallback: function(result, error, stackTrace) { |
+ var replacement = $.Zone__current.errorCallback$2(error, stackTrace); |
+ if (replacement != null) { |
+ error = J.get$error$x(replacement); |
+ error = error != null ? error : new P.NullThrownError(); |
+ stackTrace = replacement.get$stackTrace(); |
+ } |
+ result._completeError$2(error, stackTrace); |
+ }, |
+ _asyncRunCallbackLoop: function() { |
+ var t1, t2; |
+ for (; t1 = $._nextCallback, t1 != null;) { |
+ $._lastPriorityCallback = null; |
+ t2 = t1.get$next(); |
+ $._nextCallback = t2; |
+ if (t2 == null) |
+ $._lastCallback = null; |
+ t1.callback$0(); |
+ } |
+ }, |
+ _asyncRunCallback: [function() { |
+ $._isInCallbackLoop = true; |
+ try { |
+ P._asyncRunCallbackLoop(); |
+ } finally { |
+ $._lastPriorityCallback = null; |
+ $._isInCallbackLoop = false; |
+ if ($._nextCallback != null) |
+ $.get$_AsyncRun_scheduleImmediateClosure().call$1(P._asyncRunCallback$closure()); |
+ } |
+ }, "call$0", "_asyncRunCallback$closure", 0, 0, 1], |
+ _scheduleAsyncCallback: function(callback) { |
+ var t1, newEntry; |
+ if ($._nextCallback == null) { |
+ t1 = new P._AsyncCallbackEntry(callback, null); |
+ $._lastCallback = t1; |
+ $._nextCallback = t1; |
+ if (!$._isInCallbackLoop) |
+ $.get$_AsyncRun_scheduleImmediateClosure().call$1(P._asyncRunCallback$closure()); |
+ } else { |
+ newEntry = new P._AsyncCallbackEntry(callback, null); |
+ $._lastCallback.next = newEntry; |
+ $._lastCallback = newEntry; |
+ } |
+ }, |
+ scheduleMicrotask: function(callback) { |
+ var t1 = $.Zone__current; |
+ if (C.C__RootZone === t1) { |
+ P._rootScheduleMicrotask(null, null, C.C__RootZone, callback); |
+ return; |
+ } |
+ t1.scheduleMicrotask$1(t1.bindCallback$2$runGuarded(callback, true)); |
+ }, |
+ StreamController_StreamController: function(onCancel, onListen, onPause, onResume, sync, $T) { |
+ if (onCancel == null) |
+ return sync ? new P._NoCallbackSyncStreamController(null, 0, null) : new P._NoCallbackAsyncStreamController(null, 0, null); |
+ return sync ? H.setRuntimeTypeInfo(new P._SyncStreamController(onListen, onPause, onResume, onCancel, null, 0, null), [$T]) : H.setRuntimeTypeInfo(new P._AsyncStreamController(onListen, onPause, onResume, onCancel, null, 0, null), [$T]); |
+ }, |
+ _runGuarded: function(notificationHandler) { |
+ var result, e, s, exception, t1; |
+ if (notificationHandler == null) |
+ return; |
+ try { |
+ result = notificationHandler.call$0(); |
+ if (!!J.getInterceptor(result).$isFuture) |
+ return result; |
+ return; |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ $.Zone__current.handleUncaughtError$2(e, s); |
+ } |
+ }, |
+ _AddStreamState_makeErrorHandler: function(controller) { |
+ return new P._AddStreamState_makeErrorHandler_closure(controller); |
+ }, |
+ _nullDataHandler: [function(value) { |
+ }, "call$1", "_nullDataHandler$closure", 2, 0, 30], |
+ _nullErrorHandler: [function(error, stackTrace) { |
+ $.Zone__current.handleUncaughtError$2(error, stackTrace); |
+ }, function(error) { |
+ return P._nullErrorHandler(error, null); |
+ }, null, "call$2", "call$1", "_nullErrorHandler$closure", 2, 2, 6, 50], |
+ _nullDoneHandler: [function() { |
+ }, "call$0", "_nullDoneHandler$closure", 0, 0, 1], |
+ _runUserCode: function(userCode, onSuccess, onError) { |
+ var e, s, replacement, error, stackTrace, exception, t1, error0; |
+ try { |
+ onSuccess.call$1(userCode.call$0()); |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ replacement = $.Zone__current.errorCallback$2(e, s); |
+ if (replacement == null) |
+ onError.call$2(e, s); |
+ else { |
+ error0 = J.get$error$x(replacement); |
+ error = error0 != null ? error0 : new P.NullThrownError(); |
+ stackTrace = replacement.get$stackTrace(); |
+ onError.call$2(error, stackTrace); |
+ } |
+ } |
+ }, |
+ _cancelAndError: function(subscription, future, error, stackTrace) { |
+ var cancelFuture = subscription.cancel$0(); |
+ if (!!J.getInterceptor(cancelFuture).$isFuture) |
+ cancelFuture.whenComplete$1(new P._cancelAndError_closure(future, error, stackTrace)); |
+ else |
+ future._completeError$2(error, stackTrace); |
+ }, |
+ _cancelAndErrorClosure: function(subscription, future) { |
+ return new P._cancelAndErrorClosure_closure(subscription, future); |
+ }, |
+ _cancelAndValue: function(subscription, future, value) { |
+ var cancelFuture = subscription.cancel$0(); |
+ if (!!J.getInterceptor(cancelFuture).$isFuture) |
+ cancelFuture.whenComplete$1(new P._cancelAndValue_closure(future, value)); |
+ else |
+ future._complete$1(value); |
+ }, |
+ _addErrorWithReplacement: function(sink, error, stackTrace) { |
+ var replacement = $.Zone__current.errorCallback$2(error, stackTrace); |
+ if (replacement != null) { |
+ error = J.get$error$x(replacement); |
+ error = error != null ? error : new P.NullThrownError(); |
+ stackTrace = replacement.get$stackTrace(); |
+ } |
+ sink._addError$2(error, stackTrace); |
+ }, |
+ Timer_Timer: function(duration, callback) { |
+ var t1; |
+ if (J.$eq($.Zone__current, C.C__RootZone)) |
+ return $.Zone__current.createTimer$2(duration, callback); |
+ t1 = $.Zone__current; |
+ return t1.createTimer$2(duration, t1.bindCallback$2$runGuarded(callback, true)); |
+ }, |
+ Timer__createTimer: function(duration, callback) { |
+ var milliseconds = duration.get$inMilliseconds(); |
+ return H.TimerImpl$(milliseconds < 0 ? 0 : milliseconds, callback); |
+ }, |
+ Timer__createPeriodicTimer: function(duration, callback) { |
+ var milliseconds = duration.get$inMilliseconds(); |
+ return H.TimerImpl$periodic(milliseconds < 0 ? 0 : milliseconds, callback); |
+ }, |
+ Zone__enter: function(zone) { |
+ var previous = $.Zone__current; |
+ $.Zone__current = zone; |
+ return previous; |
+ }, |
+ _parentDelegate: function(zone) { |
+ if (zone.get$parent(zone) == null) |
+ return; |
+ return zone.get$parent(zone).get$_delegate(); |
+ }, |
+ _rootHandleUncaughtError: [function($self, $parent, zone, error, stackTrace) { |
+ var t1, entry, t2; |
+ t1 = new P._rootHandleUncaughtError_closure(error, stackTrace); |
+ entry = new P._AsyncCallbackEntry(t1, null); |
+ t2 = $._nextCallback; |
+ if (t2 == null) { |
+ P._scheduleAsyncCallback(t1); |
+ $._lastPriorityCallback = $._lastCallback; |
+ } else { |
+ t1 = $._lastPriorityCallback; |
+ if (t1 == null) { |
+ entry.next = t2; |
+ $._lastPriorityCallback = entry; |
+ $._nextCallback = entry; |
+ } else { |
+ entry.next = t1.next; |
+ t1.next = entry; |
+ $._lastPriorityCallback = entry; |
+ if (entry.next == null) |
+ $._lastCallback = entry; |
+ } |
+ } |
+ }, "call$5", "_rootHandleUncaughtError$closure", 10, 0, 31], |
+ _rootRun: [function($self, $parent, zone, f) { |
+ var old, t1; |
+ if (J.$eq($.Zone__current, zone)) |
+ return f.call$0(); |
+ old = P.Zone__enter(zone); |
+ try { |
+ t1 = f.call$0(); |
+ return t1; |
+ } finally { |
+ $.Zone__current = old; |
+ } |
+ }, "call$4", "_rootRun$closure", 8, 0, 32], |
+ _rootRunUnary: [function($self, $parent, zone, f, arg) { |
+ var old, t1; |
+ if (J.$eq($.Zone__current, zone)) |
+ return f.call$1(arg); |
+ old = P.Zone__enter(zone); |
+ try { |
+ t1 = f.call$1(arg); |
+ return t1; |
+ } finally { |
+ $.Zone__current = old; |
+ } |
+ }, "call$5", "_rootRunUnary$closure", 10, 0, 33], |
+ _rootRunBinary: [function($self, $parent, zone, f, arg1, arg2) { |
+ var old, t1; |
+ if (J.$eq($.Zone__current, zone)) |
+ return f.call$2(arg1, arg2); |
+ old = P.Zone__enter(zone); |
+ try { |
+ t1 = f.call$2(arg1, arg2); |
+ return t1; |
+ } finally { |
+ $.Zone__current = old; |
+ } |
+ }, "call$6", "_rootRunBinary$closure", 12, 0, 34], |
+ _rootRegisterCallback: [function($self, $parent, zone, f) { |
+ return f; |
+ }, "call$4", "_rootRegisterCallback$closure", 8, 0, 35], |
+ _rootRegisterUnaryCallback: [function($self, $parent, zone, f) { |
+ return f; |
+ }, "call$4", "_rootRegisterUnaryCallback$closure", 8, 0, 36], |
+ _rootRegisterBinaryCallback: [function($self, $parent, zone, f) { |
+ return f; |
+ }, "call$4", "_rootRegisterBinaryCallback$closure", 8, 0, 37], |
+ _rootErrorCallback: [function($self, $parent, zone, error, stackTrace) { |
+ return; |
+ }, "call$5", "_rootErrorCallback$closure", 10, 0, 38], |
+ _rootScheduleMicrotask: [function($self, $parent, zone, f) { |
+ var t1 = C.C__RootZone !== zone; |
+ if (t1) |
+ f = zone.bindCallback$2$runGuarded(f, !(!t1 || C.C__RootZone.get$errorZone() === zone.get$errorZone())); |
+ P._scheduleAsyncCallback(f); |
+ }, "call$4", "_rootScheduleMicrotask$closure", 8, 0, 39], |
+ _rootCreateTimer: [function($self, $parent, zone, duration, callback) { |
+ return P.Timer__createTimer(duration, C.C__RootZone !== zone ? zone.bindCallback$1(callback) : callback); |
+ }, "call$5", "_rootCreateTimer$closure", 10, 0, 40], |
+ _rootCreatePeriodicTimer: [function($self, $parent, zone, duration, callback) { |
+ return P.Timer__createPeriodicTimer(duration, C.C__RootZone !== zone ? zone.bindUnaryCallback$1(callback) : callback); |
+ }, "call$5", "_rootCreatePeriodicTimer$closure", 10, 0, 41], |
+ _rootPrint: [function($self, $parent, zone, line) { |
+ H.printString(H.S(line)); |
+ }, "call$4", "_rootPrint$closure", 8, 0, 42], |
+ _printToZone: [function(line) { |
+ J.print$1$x($.Zone__current, line); |
+ }, "call$1", "_printToZone$closure", 2, 0, 23], |
+ _rootFork: [function($self, $parent, zone, specification, zoneValues) { |
+ var valueMap, t1; |
+ $.printToZone = P._printToZone$closure(); |
+ if (specification == null) |
+ specification = C._ZoneSpecification_ALf; |
+ else if (!(specification instanceof P._ZoneSpecification)) |
+ throw H.wrapException(P.ArgumentError$("ZoneSpecifications must be instantiated with the provided constructor.")); |
+ if (zoneValues == null) |
+ valueMap = zone instanceof P._Zone ? zone.get$_map() : P.HashMap_HashMap(null, null, null, null, null); |
+ else |
+ valueMap = P.HashMap_HashMap$from(zoneValues, null, null); |
+ t1 = new P._CustomZone(null, null, null, null, null, null, null, null, null, null, null, null, null, null, zone, valueMap); |
+ t1._CustomZone$3(zone, specification, valueMap); |
+ return t1; |
+ }, "call$5", "_rootFork$closure", 10, 0, 43], |
+ runZoned: function(body, onError, zoneSpecification, zoneValues) { |
+ var errorHandler, zone; |
+ errorHandler = new P.runZoned_closure(onError); |
+ zoneSpecification = new P._ZoneSpecification(errorHandler, null, null, null, null, null, null, null, null, null, null, null, null); |
+ zone = $.Zone__current.fork$2$specification$zoneValues(zoneSpecification, zoneValues); |
+ return zone.runGuarded$1(body); |
+ }, |
+ _AsyncRun__initializeScheduleImmediate_internalCallback: { |
+ "^": "Closure:2;box_0", |
+ call$1: function(_) { |
+ var t1, f; |
+ H.leaveJsAsync(); |
+ t1 = this.box_0; |
+ f = t1.storedCallback_0; |
+ t1.storedCallback_0 = null; |
+ f.call$0(); |
+ } |
+ }, |
+ _AsyncRun__initializeScheduleImmediate_closure: { |
+ "^": "Closure:5;box_0,div_1,span_2", |
+ call$1: function(callback) { |
+ var t1, t2; |
+ ++init.globalState.topEventLoop._activeJsAsyncCount; |
+ this.box_0.storedCallback_0 = callback; |
+ t1 = this.div_1; |
+ t2 = this.span_2; |
+ t1.firstChild ? t1.removeChild(t2) : t1.appendChild(t2); |
+ } |
+ }, |
+ _AsyncRun__scheduleImmediateJsOverride_internalCallback: { |
+ "^": "Closure:0;callback_0", |
+ call$0: function() { |
+ H.leaveJsAsync(); |
+ this.callback_0.call$0(); |
+ } |
+ }, |
+ _AsyncRun__scheduleImmediateWithSetImmediate_internalCallback: { |
+ "^": "Closure:0;callback_0", |
+ call$0: function() { |
+ H.leaveJsAsync(); |
+ this.callback_0.call$0(); |
+ } |
+ }, |
+ _UncaughtAsyncError: { |
+ "^": "AsyncError;error,stackTrace", |
+ toString$0: function(_) { |
+ var result, t1; |
+ result = "Uncaught Error: " + H.S(this.error); |
+ t1 = this.stackTrace; |
+ return t1 != null ? result + ("\nStack Trace:\n" + H.S(t1)) : result; |
+ }, |
+ static: {_UncaughtAsyncError__getBestStackTrace: function(error, stackTrace) { |
+ if (stackTrace != null) |
+ return stackTrace; |
+ if (!!J.getInterceptor(error).$isError) |
+ return error.get$stackTrace(); |
+ return; |
+ }} |
+ }, |
+ Future: { |
+ "^": "Object;" |
+ }, |
+ _FutureListener: { |
+ "^": "Object;_nextListener<,result>,state,callback,errorCallback", |
+ get$_zone: function() { |
+ return this.result._zone; |
+ }, |
+ get$handlesValue: function() { |
+ return (this.state & 1) !== 0; |
+ }, |
+ get$hasErrorTest: function() { |
+ return this.state === 6; |
+ }, |
+ get$handlesComplete: function() { |
+ return this.state === 8; |
+ }, |
+ get$_onValue: function() { |
+ return this.callback; |
+ }, |
+ get$_whenCompleteAction: function() { |
+ return this.callback; |
+ }, |
+ errorCallback$2: function(arg0, arg1) { |
+ return this.errorCallback.call$2(arg0, arg1); |
+ } |
+ }, |
+ _Future: { |
+ "^": "Object;_state,_zone<,_resultOrListeners", |
+ get$_hasError: function() { |
+ return this._state === 8; |
+ }, |
+ set$_isChained: function(value) { |
+ if (value) |
+ this._state = 2; |
+ else |
+ this._state = 0; |
+ }, |
+ then$2$onError: function(f, onError) { |
+ var result, t1; |
+ result = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [null]); |
+ t1 = result._zone; |
+ if (t1 !== C.C__RootZone) { |
+ f = t1.registerUnaryCallback$1(f); |
+ if (onError != null) |
+ onError = P._registerErrorHandler(onError, t1); |
+ } |
+ t1 = onError == null ? 1 : 3; |
+ this._addListener$1(new P._FutureListener(null, result, t1, f, onError)); |
+ return result; |
+ }, |
+ then$1: function(f) { |
+ return this.then$2$onError(f, null); |
+ }, |
+ whenComplete$1: function(action) { |
+ var t1, result; |
+ t1 = $.Zone__current; |
+ result = new P._Future(0, t1, null); |
+ result.$builtinTypeInfo = this.$builtinTypeInfo; |
+ if (t1 !== C.C__RootZone) |
+ action = t1.registerCallback$1(action); |
+ this._addListener$1(new P._FutureListener(null, result, 8, action, null)); |
+ return result; |
+ }, |
+ _markPendingCompletion$0: function() { |
+ if (this._state !== 0) |
+ throw H.wrapException(P.StateError$("Future already completed")); |
+ this._state = 1; |
+ }, |
+ get$_async$_value: function() { |
+ return this._resultOrListeners; |
+ }, |
+ get$_error: function() { |
+ return this._resultOrListeners; |
+ }, |
+ _setValue$1: function(value) { |
+ this._state = 4; |
+ this._resultOrListeners = value; |
+ }, |
+ _setErrorObject$1: function(error) { |
+ this._state = 8; |
+ this._resultOrListeners = error; |
+ }, |
+ _setError$2: function(error, stackTrace) { |
+ this._setErrorObject$1(new P.AsyncError(error, stackTrace)); |
+ }, |
+ _addListener$1: function(listener) { |
+ if (this._state >= 4) |
+ this._zone.scheduleMicrotask$1(new P._Future__addListener_closure(this, listener)); |
+ else { |
+ listener._nextListener = this._resultOrListeners; |
+ this._resultOrListeners = listener; |
+ } |
+ }, |
+ _removeListeners$0: function() { |
+ var current, prev, next; |
+ current = this._resultOrListeners; |
+ this._resultOrListeners = null; |
+ for (prev = null; current != null; prev = current, current = next) { |
+ next = current.get$_nextListener(); |
+ current._nextListener = prev; |
+ } |
+ return prev; |
+ }, |
+ _complete$1: function(value) { |
+ var t1, listeners; |
+ t1 = J.getInterceptor(value); |
+ if (!!t1.$isFuture) |
+ if (!!t1.$is_Future) |
+ P._Future__chainCoreFuture(value, this); |
+ else |
+ P._Future__chainForeignFuture(value, this); |
+ else { |
+ listeners = this._removeListeners$0(); |
+ this._setValue$1(value); |
+ P._Future__propagateToListeners(this, listeners); |
+ } |
+ }, |
+ _completeWithValue$1: function(value) { |
+ var listeners = this._removeListeners$0(); |
+ this._setValue$1(value); |
+ P._Future__propagateToListeners(this, listeners); |
+ }, |
+ _completeError$2: [function(error, stackTrace) { |
+ var listeners = this._removeListeners$0(); |
+ this._setErrorObject$1(new P.AsyncError(error, stackTrace)); |
+ P._Future__propagateToListeners(this, listeners); |
+ }, function(error) { |
+ return this._completeError$2(error, null); |
+ }, "_completeError$1", "call$2", "call$1", "get$_completeError", 2, 2, 6, 50], |
+ _asyncComplete$1: function(value) { |
+ var t1; |
+ if (value == null) |
+ ; |
+ else { |
+ t1 = J.getInterceptor(value); |
+ if (!!t1.$isFuture) { |
+ if (!!t1.$is_Future) { |
+ t1 = value._state; |
+ if (t1 >= 4 && t1 === 8) { |
+ this._markPendingCompletion$0(); |
+ this._zone.scheduleMicrotask$1(new P._Future__asyncComplete_closure(this, value)); |
+ } else |
+ P._Future__chainCoreFuture(value, this); |
+ } else |
+ P._Future__chainForeignFuture(value, this); |
+ return; |
+ } |
+ } |
+ this._markPendingCompletion$0(); |
+ this._zone.scheduleMicrotask$1(new P._Future__asyncComplete_closure0(this, value)); |
+ }, |
+ _asyncCompleteError$2: function(error, stackTrace) { |
+ this._markPendingCompletion$0(); |
+ this._zone.scheduleMicrotask$1(new P._Future__asyncCompleteError_closure(this, error, stackTrace)); |
+ }, |
+ $isFuture: 1, |
+ static: {_Future$immediate: function(value, $T) { |
+ var t1 = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [$T]); |
+ t1._asyncComplete$1(value); |
+ return t1; |
+ }, _Future__chainForeignFuture: function(source, target) { |
+ target._state = 2; |
+ source.then$2$onError(new P._Future__chainForeignFuture_closure(target), new P._Future__chainForeignFuture_closure0(target)); |
+ }, _Future__chainCoreFuture: function(source, target) { |
+ var listener; |
+ target._state = 2; |
+ listener = new P._FutureListener(null, target, 0, null, null); |
+ if (source._state >= 4) |
+ P._Future__propagateToListeners(source, listener); |
+ else |
+ source._addListener$1(listener); |
+ }, _Future__propagateToListeners: function(source, listeners) { |
+ var t1, t2, t3, hasError, asyncError, listeners0, sourceValue, zone, oldZone, chainSource, result; |
+ t1 = {}; |
+ t1.source_4 = source; |
+ for (t2 = source; true;) { |
+ t3 = {}; |
+ hasError = t2.get$_hasError(); |
+ if (listeners == null) { |
+ if (hasError) { |
+ asyncError = t1.source_4.get$_error(); |
+ t1.source_4.get$_zone().handleUncaughtError$2(J.get$error$x(asyncError), asyncError.get$stackTrace()); |
+ } |
+ return; |
+ } |
+ for (; listeners.get$_nextListener() != null; listeners = listeners0) { |
+ listeners0 = listeners._nextListener; |
+ listeners._nextListener = null; |
+ P._Future__propagateToListeners(t1.source_4, listeners); |
+ } |
+ t3.listenerHasValue_1 = true; |
+ sourceValue = hasError ? null : t1.source_4.get$_async$_value(); |
+ t3.listenerValueOrError_2 = sourceValue; |
+ t3.isPropagationAborted_3 = false; |
+ t2 = !hasError; |
+ if (!t2 || listeners.get$handlesValue() || listeners.state === 8) { |
+ zone = listeners.get$_zone(); |
+ if (hasError && !t1.source_4.get$_zone().inSameErrorZone$1(zone)) { |
+ asyncError = t1.source_4.get$_error(); |
+ t1.source_4.get$_zone().handleUncaughtError$2(J.get$error$x(asyncError), asyncError.get$stackTrace()); |
+ return; |
+ } |
+ oldZone = $.Zone__current; |
+ if (oldZone == null ? zone != null : oldZone !== zone) |
+ $.Zone__current = zone; |
+ else |
+ oldZone = null; |
+ if (t2) { |
+ if (listeners.get$handlesValue()) |
+ t3.listenerHasValue_1 = new P._Future__propagateToListeners_handleValueCallback(t3, listeners, sourceValue, zone).call$0(); |
+ } else |
+ new P._Future__propagateToListeners_handleError(t1, t3, listeners, zone).call$0(); |
+ if (listeners.get$handlesComplete()) |
+ new P._Future__propagateToListeners_handleWhenCompleteCallback(t1, t3, hasError, listeners, zone).call$0(); |
+ if (oldZone != null) |
+ $.Zone__current = oldZone; |
+ if (t3.isPropagationAborted_3) |
+ return; |
+ if (t3.listenerHasValue_1 === true) { |
+ t2 = t3.listenerValueOrError_2; |
+ t2 = (sourceValue == null ? t2 != null : sourceValue !== t2) && !!J.getInterceptor(t2).$isFuture; |
+ } else |
+ t2 = false; |
+ if (t2) { |
+ chainSource = t3.listenerValueOrError_2; |
+ result = listeners.result; |
+ if (chainSource instanceof P._Future) |
+ if (chainSource._state >= 4) { |
+ result._state = 2; |
+ t1.source_4 = chainSource; |
+ listeners = new P._FutureListener(null, result, 0, null, null); |
+ t2 = chainSource; |
+ continue; |
+ } else |
+ P._Future__chainCoreFuture(chainSource, result); |
+ else |
+ P._Future__chainForeignFuture(chainSource, result); |
+ return; |
+ } |
+ } |
+ result = listeners.result; |
+ listeners = result._removeListeners$0(); |
+ t2 = t3.listenerHasValue_1; |
+ t3 = t3.listenerValueOrError_2; |
+ if (t2 === true) { |
+ result._state = 4; |
+ result._resultOrListeners = t3; |
+ } else { |
+ result._state = 8; |
+ result._resultOrListeners = t3; |
+ } |
+ t1.source_4 = result; |
+ t2 = result; |
+ } |
+ }} |
+ }, |
+ _Future__addListener_closure: { |
+ "^": "Closure:0;this_0,listener_1", |
+ call$0: function() { |
+ P._Future__propagateToListeners(this.this_0, this.listener_1); |
+ } |
+ }, |
+ _Future__chainForeignFuture_closure: { |
+ "^": "Closure:2;target_0", |
+ call$1: function(value) { |
+ this.target_0._completeWithValue$1(value); |
+ } |
+ }, |
+ _Future__chainForeignFuture_closure0: { |
+ "^": "Closure:7;target_1", |
+ call$2: function(error, stackTrace) { |
+ this.target_1._completeError$2(error, stackTrace); |
+ }, |
+ call$1: function(error) { |
+ return this.call$2(error, null); |
+ } |
+ }, |
+ _Future__asyncComplete_closure: { |
+ "^": "Closure:0;this_0,coreFuture_1", |
+ call$0: function() { |
+ P._Future__chainCoreFuture(this.coreFuture_1, this.this_0); |
+ } |
+ }, |
+ _Future__asyncComplete_closure0: { |
+ "^": "Closure:0;this_2,value_3", |
+ call$0: function() { |
+ this.this_2._completeWithValue$1(this.value_3); |
+ } |
+ }, |
+ _Future__asyncCompleteError_closure: { |
+ "^": "Closure:0;this_0,error_1,stackTrace_2", |
+ call$0: function() { |
+ this.this_0._completeError$2(this.error_1, this.stackTrace_2); |
+ } |
+ }, |
+ _Future__propagateToListeners_handleValueCallback: { |
+ "^": "Closure:8;box_1,listener_3,sourceValue_4,zone_5", |
+ call$0: function() { |
+ var e, s, exception, t1; |
+ try { |
+ this.box_1.listenerValueOrError_2 = this.zone_5.runUnary$2(this.listener_3.get$_onValue(), this.sourceValue_4); |
+ return true; |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ this.box_1.listenerValueOrError_2 = new P.AsyncError(e, s); |
+ return false; |
+ } |
+ } |
+ }, |
+ _Future__propagateToListeners_handleError: { |
+ "^": "Closure:1;box_2,box_1,listener_6,zone_7", |
+ call$0: function() { |
+ var asyncError, matchesTest, test, e, s, errorCallback, e0, s0, t1, exception, t2, listenerValueOrError, t3, t4; |
+ asyncError = this.box_2.source_4.get$_error(); |
+ matchesTest = true; |
+ t1 = this.listener_6; |
+ if (t1.get$hasErrorTest()) { |
+ test = t1.callback; |
+ try { |
+ matchesTest = this.zone_7.runUnary$2(test, J.get$error$x(asyncError)); |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ t1 = J.get$error$x(asyncError); |
+ t2 = e; |
+ listenerValueOrError = (t1 == null ? t2 == null : t1 === t2) ? asyncError : new P.AsyncError(e, s); |
+ t1 = this.box_1; |
+ t1.listenerValueOrError_2 = listenerValueOrError; |
+ t1.listenerHasValue_1 = false; |
+ return; |
+ } |
+ } |
+ errorCallback = t1.errorCallback; |
+ if (matchesTest === true && errorCallback != null) { |
+ try { |
+ t1 = errorCallback; |
+ t2 = H.getDynamicRuntimeType(); |
+ t2 = H.buildFunctionType(t2, [t2, t2])._isTest$1(t1); |
+ t3 = this.zone_7; |
+ t4 = this.box_1; |
+ if (t2) |
+ t4.listenerValueOrError_2 = t3.runBinary$3(errorCallback, J.get$error$x(asyncError), asyncError.get$stackTrace()); |
+ else |
+ t4.listenerValueOrError_2 = t3.runUnary$2(errorCallback, J.get$error$x(asyncError)); |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e0 = t1; |
+ s0 = H.getTraceFromException(exception); |
+ t1 = J.get$error$x(asyncError); |
+ t2 = e0; |
+ listenerValueOrError = (t1 == null ? t2 == null : t1 === t2) ? asyncError : new P.AsyncError(e0, s0); |
+ t1 = this.box_1; |
+ t1.listenerValueOrError_2 = listenerValueOrError; |
+ t1.listenerHasValue_1 = false; |
+ return; |
+ } |
+ this.box_1.listenerHasValue_1 = true; |
+ } else { |
+ t1 = this.box_1; |
+ t1.listenerValueOrError_2 = asyncError; |
+ t1.listenerHasValue_1 = false; |
+ } |
+ } |
+ }, |
+ _Future__propagateToListeners_handleWhenCompleteCallback: { |
+ "^": "Closure:1;box_2,box_1,hasError_8,listener_9,zone_10", |
+ call$0: function() { |
+ var t1, e, s, completeResult, t2, exception, result; |
+ t1 = {}; |
+ t1.completeResult_0 = null; |
+ try { |
+ completeResult = this.zone_10.run$1(this.listener_9.get$_whenCompleteAction()); |
+ t1.completeResult_0 = completeResult; |
+ t2 = completeResult; |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ if (this.hasError_8) { |
+ t1 = J.get$error$x(this.box_2.source_4.get$_error()); |
+ t2 = e; |
+ t2 = t1 == null ? t2 == null : t1 === t2; |
+ t1 = t2; |
+ } else |
+ t1 = false; |
+ t2 = this.box_1; |
+ if (t1) |
+ t2.listenerValueOrError_2 = this.box_2.source_4.get$_error(); |
+ else |
+ t2.listenerValueOrError_2 = new P.AsyncError(e, s); |
+ t2.listenerHasValue_1 = false; |
+ return; |
+ } |
+ if (!!J.getInterceptor(t2).$isFuture) { |
+ t2 = this.listener_9; |
+ result = t2.get$result(t2); |
+ result.set$_isChained(true); |
+ this.box_1.isPropagationAborted_3 = true; |
+ t1.completeResult_0.then$2$onError(new P._Future__propagateToListeners_handleWhenCompleteCallback_closure(this.box_2, result), new P._Future__propagateToListeners_handleWhenCompleteCallback_closure0(t1, result)); |
+ } |
+ } |
+ }, |
+ _Future__propagateToListeners_handleWhenCompleteCallback_closure: { |
+ "^": "Closure:2;box_2,result_11", |
+ call$1: function(ignored) { |
+ P._Future__propagateToListeners(this.box_2.source_4, new P._FutureListener(null, this.result_11, 0, null, null)); |
+ } |
+ }, |
+ _Future__propagateToListeners_handleWhenCompleteCallback_closure0: { |
+ "^": "Closure:7;box_0,result_12", |
+ call$2: function(error, stackTrace) { |
+ var t1, completeResult; |
+ t1 = this.box_0; |
+ if (!(t1.completeResult_0 instanceof P._Future)) { |
+ completeResult = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [null]); |
+ t1.completeResult_0 = completeResult; |
+ completeResult._setError$2(error, stackTrace); |
+ } |
+ P._Future__propagateToListeners(t1.completeResult_0, new P._FutureListener(null, this.result_12, 0, null, null)); |
+ }, |
+ call$1: function(error) { |
+ return this.call$2(error, null); |
+ } |
+ }, |
+ _AsyncCallbackEntry: { |
+ "^": "Object;callback,next@", |
+ callback$0: function() { |
+ return this.callback.call$0(); |
+ } |
+ }, |
+ Stream: { |
+ "^": "Object;", |
+ map$1: function(_, convert) { |
+ return H.setRuntimeTypeInfo(new P._MapStream(convert, this), [H.getRuntimeTypeArgument(this, "Stream", 0), null]); |
+ }, |
+ pipe$1: function(streamConsumer) { |
+ return streamConsumer._async$_target.addStream$2$cancelOnError(this, true).then$1(new P.Stream_pipe_closure(streamConsumer)); |
+ }, |
+ contains$1: function(_, needle) { |
+ var t1, future; |
+ t1 = {}; |
+ future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [P.bool]); |
+ t1.subscription_0 = null; |
+ t1.subscription_0 = this.listen$4$cancelOnError$onDone$onError(new P.Stream_contains_closure(t1, this, needle, future), true, new P.Stream_contains_closure0(future), future.get$_completeError()); |
+ return future; |
+ }, |
+ forEach$1: function(_, action) { |
+ var t1, future; |
+ t1 = {}; |
+ future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [null]); |
+ t1.subscription_0 = null; |
+ t1.subscription_0 = this.listen$4$cancelOnError$onDone$onError(new P.Stream_forEach_closure(t1, this, action, future), true, new P.Stream_forEach_closure0(future), future.get$_completeError()); |
+ return future; |
+ }, |
+ get$length: function(_) { |
+ var t1, future; |
+ t1 = {}; |
+ future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [P.$int]); |
+ t1.count_0 = 0; |
+ this.listen$4$cancelOnError$onDone$onError(new P.Stream_length_closure(t1), true, new P.Stream_length_closure0(t1, future), future.get$_completeError()); |
+ return future; |
+ }, |
+ get$isEmpty: function(_) { |
+ var t1, future; |
+ t1 = {}; |
+ future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [P.bool]); |
+ t1.subscription_0 = null; |
+ t1.subscription_0 = this.listen$4$cancelOnError$onDone$onError(new P.Stream_isEmpty_closure(t1, future), true, new P.Stream_isEmpty_closure0(future), future.get$_completeError()); |
+ return future; |
+ }, |
+ toList$0: function(_) { |
+ var result, future; |
+ result = H.setRuntimeTypeInfo([], [H.getRuntimeTypeArgument(this, "Stream", 0)]); |
+ future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [[P.List, H.getRuntimeTypeArgument(this, "Stream", 0)]]); |
+ this.listen$4$cancelOnError$onDone$onError(new P.Stream_toList_closure(this, result), true, new P.Stream_toList_closure0(result, future), future.get$_completeError()); |
+ return future; |
+ }, |
+ get$first: function(_) { |
+ var t1, future; |
+ t1 = {}; |
+ future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [H.getRuntimeTypeArgument(this, "Stream", 0)]); |
+ t1.subscription_0 = null; |
+ t1.subscription_0 = this.listen$4$cancelOnError$onDone$onError(new P.Stream_first_closure(t1, this, future), true, new P.Stream_first_closure0(future), future.get$_completeError()); |
+ return future; |
+ }, |
+ get$last: function(_) { |
+ var t1, future; |
+ t1 = {}; |
+ future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [H.getRuntimeTypeArgument(this, "Stream", 0)]); |
+ t1.result_0 = null; |
+ t1.foundResult_1 = false; |
+ this.listen$4$cancelOnError$onDone$onError(new P.Stream_last_closure(t1, this), true, new P.Stream_last_closure0(t1, future), future.get$_completeError()); |
+ return future; |
+ } |
+ }, |
+ Stream_pipe_closure: { |
+ "^": "Closure:2;streamConsumer_0", |
+ call$1: function(_) { |
+ return this.streamConsumer_0._async$_target.close$0(0); |
+ } |
+ }, |
+ Stream_contains_closure: { |
+ "^": "Closure;box_0,this_1,needle_2,future_3", |
+ call$1: function(element) { |
+ var t1, t2; |
+ t1 = this.box_0; |
+ t2 = this.future_3; |
+ P._runUserCode(new P.Stream_contains__closure(this.needle_2, element), new P.Stream_contains__closure0(t1, t2), P._cancelAndErrorClosure(t1.subscription_0, t2)); |
+ }, |
+ $signature: function() { |
+ return H.computeSignature(function(T) { |
+ return {func: "dynamic__T", args: [T]}; |
+ }, this.this_1, "Stream"); |
+ } |
+ }, |
+ Stream_contains__closure: { |
+ "^": "Closure:0;needle_4,element_5", |
+ call$0: function() { |
+ return J.$eq(this.element_5, this.needle_4); |
+ } |
+ }, |
+ Stream_contains__closure0: { |
+ "^": "Closure:9;box_0,future_6", |
+ call$1: function(isMatch) { |
+ if (isMatch === true) |
+ P._cancelAndValue(this.box_0.subscription_0, this.future_6, true); |
+ } |
+ }, |
+ Stream_contains_closure0: { |
+ "^": "Closure:0;future_7", |
+ call$0: function() { |
+ this.future_7._complete$1(false); |
+ } |
+ }, |
+ Stream_forEach_closure: { |
+ "^": "Closure;box_0,this_1,action_2,future_3", |
+ call$1: function(element) { |
+ P._runUserCode(new P.Stream_forEach__closure(this.action_2, element), new P.Stream_forEach__closure0(), P._cancelAndErrorClosure(this.box_0.subscription_0, this.future_3)); |
+ }, |
+ $signature: function() { |
+ return H.computeSignature(function(T) { |
+ return {func: "dynamic__T", args: [T]}; |
+ }, this.this_1, "Stream"); |
+ } |
+ }, |
+ Stream_forEach__closure: { |
+ "^": "Closure:0;action_4,element_5", |
+ call$0: function() { |
+ return this.action_4.call$1(this.element_5); |
+ } |
+ }, |
+ Stream_forEach__closure0: { |
+ "^": "Closure:2;", |
+ call$1: function(_) { |
+ } |
+ }, |
+ Stream_forEach_closure0: { |
+ "^": "Closure:0;future_6", |
+ call$0: function() { |
+ this.future_6._complete$1(null); |
+ } |
+ }, |
+ Stream_length_closure: { |
+ "^": "Closure:2;box_0", |
+ call$1: function(_) { |
+ ++this.box_0.count_0; |
+ } |
+ }, |
+ Stream_length_closure0: { |
+ "^": "Closure:0;box_0,future_1", |
+ call$0: function() { |
+ this.future_1._complete$1(this.box_0.count_0); |
+ } |
+ }, |
+ Stream_isEmpty_closure: { |
+ "^": "Closure:2;box_0,future_1", |
+ call$1: function(_) { |
+ P._cancelAndValue(this.box_0.subscription_0, this.future_1, false); |
+ } |
+ }, |
+ Stream_isEmpty_closure0: { |
+ "^": "Closure:0;future_2", |
+ call$0: function() { |
+ this.future_2._complete$1(true); |
+ } |
+ }, |
+ Stream_toList_closure: { |
+ "^": "Closure;this_0,result_1", |
+ call$1: function(data) { |
+ this.result_1.push(data); |
+ }, |
+ $signature: function() { |
+ return H.computeSignature(function(T) { |
+ return {func: "dynamic__T", args: [T]}; |
+ }, this.this_0, "Stream"); |
+ } |
+ }, |
+ Stream_toList_closure0: { |
+ "^": "Closure:0;result_2,future_3", |
+ call$0: function() { |
+ this.future_3._complete$1(this.result_2); |
+ } |
+ }, |
+ Stream_first_closure: { |
+ "^": "Closure;box_0,this_1,future_2", |
+ call$1: function(value) { |
+ P._cancelAndValue(this.box_0.subscription_0, this.future_2, value); |
+ }, |
+ $signature: function() { |
+ return H.computeSignature(function(T) { |
+ return {func: "dynamic__T", args: [T]}; |
+ }, this.this_1, "Stream"); |
+ } |
+ }, |
+ Stream_first_closure0: { |
+ "^": "Closure:0;future_3", |
+ call$0: function() { |
+ var e, s, t1, exception; |
+ try { |
+ t1 = H.IterableElementError_noElement(); |
+ throw H.wrapException(t1); |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ P._completeWithErrorCallback(this.future_3, e, s); |
+ } |
+ } |
+ }, |
+ Stream_last_closure: { |
+ "^": "Closure;box_0,this_1", |
+ call$1: function(value) { |
+ var t1 = this.box_0; |
+ t1.foundResult_1 = true; |
+ t1.result_0 = value; |
+ }, |
+ $signature: function() { |
+ return H.computeSignature(function(T) { |
+ return {func: "dynamic__T", args: [T]}; |
+ }, this.this_1, "Stream"); |
+ } |
+ }, |
+ Stream_last_closure0: { |
+ "^": "Closure:0;box_0,future_2", |
+ call$0: function() { |
+ var e, s, t1, exception; |
+ t1 = this.box_0; |
+ if (t1.foundResult_1) { |
+ this.future_2._complete$1(t1.result_0); |
+ return; |
+ } |
+ try { |
+ t1 = H.IterableElementError_noElement(); |
+ throw H.wrapException(t1); |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ P._completeWithErrorCallback(this.future_2, e, s); |
+ } |
+ } |
+ }, |
+ StreamSubscription: { |
+ "^": "Object;" |
+ }, |
+ StreamController: { |
+ "^": "Object;" |
+ }, |
+ _StreamController: { |
+ "^": "Object;", |
+ get$_pendingEvents: function() { |
+ if ((this._state & 8) === 0) |
+ return this._varData; |
+ return this._varData.get$varData(); |
+ }, |
+ _ensurePendingEvents$0: function() { |
+ var t1, state; |
+ if ((this._state & 8) === 0) { |
+ t1 = this._varData; |
+ if (t1 == null) { |
+ t1 = new P._StreamImplEvents(null, null, 0); |
+ this._varData = t1; |
+ } |
+ return t1; |
+ } |
+ state = this._varData; |
+ if (state.get$varData() == null) |
+ state.varData = new P._StreamImplEvents(null, null, 0); |
+ return state.varData; |
+ }, |
+ get$_subscription: function() { |
+ if ((this._state & 8) !== 0) |
+ return this._varData.get$varData(); |
+ return this._varData; |
+ }, |
+ _badEventState$0: function() { |
+ if ((this._state & 4) !== 0) |
+ return new P.StateError("Cannot add event after closing"); |
+ return new P.StateError("Cannot add event while adding a stream"); |
+ }, |
+ addStream$2$cancelOnError: function(source, cancelOnError) { |
+ var t1, t2, t3, t4, addState; |
+ t1 = this._state; |
+ if (t1 >= 4) |
+ throw H.wrapException(this._badEventState$0()); |
+ if ((t1 & 2) !== 0) { |
+ t1 = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [null]); |
+ t1._asyncComplete$1(null); |
+ return t1; |
+ } |
+ t1 = this._varData; |
+ t2 = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [null]); |
+ t3 = this.get$_async$_add(); |
+ t4 = cancelOnError ? P._AddStreamState_makeErrorHandler(this) : this.get$_addError(); |
+ addState = H.setRuntimeTypeInfo(new P._StreamControllerAddStreamState(t1, t2, source.listen$4$cancelOnError$onDone$onError(t3, cancelOnError, this.get$_close(), t4)), [null]); |
+ t1 = this._state; |
+ if ((t1 & 1) !== 0 ? this.get$_subscription().get$_isInputPaused() : (t1 & 2) === 0) |
+ addState.addSubscription.pause$0(0); |
+ this._varData = addState; |
+ this._state |= 8; |
+ return addState.addStreamFuture; |
+ }, |
+ _ensureDoneFuture$0: function() { |
+ var t1 = this._doneFuture; |
+ if (t1 == null) { |
+ t1 = (this._state & 2) !== 0 ? $.get$Future__nullFuture() : H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [null]); |
+ this._doneFuture = t1; |
+ } |
+ return t1; |
+ }, |
+ add$1: function(_, value) { |
+ if (this._state >= 4) |
+ throw H.wrapException(this._badEventState$0()); |
+ this._async$_add$1(value); |
+ }, |
+ addError$2: [function(error, stackTrace) { |
+ var replacement; |
+ if (this._state >= 4) |
+ throw H.wrapException(this._badEventState$0()); |
+ error = error != null ? error : new P.NullThrownError(); |
+ replacement = $.Zone__current.errorCallback$2(error, stackTrace); |
+ if (replacement != null) { |
+ error = J.get$error$x(replacement); |
+ error = error != null ? error : new P.NullThrownError(); |
+ stackTrace = replacement.get$stackTrace(); |
+ } |
+ this._addError$2(error, stackTrace); |
+ }, function(error) { |
+ return this.addError$2(error, null); |
+ }, "addError$1", "call$2", "call$1", "get$addError", 2, 2, 10, 50], |
+ close$0: function(_) { |
+ var t1 = this._state; |
+ if ((t1 & 4) !== 0) |
+ return this._ensureDoneFuture$0(); |
+ if (t1 >= 4) |
+ throw H.wrapException(this._badEventState$0()); |
+ t1 |= 4; |
+ this._state = t1; |
+ if ((t1 & 1) !== 0) |
+ this._sendDone$0(); |
+ else if ((t1 & 3) === 0) |
+ this._ensurePendingEvents$0().add$1(0, C.C__DelayedDone); |
+ return this._ensureDoneFuture$0(); |
+ }, |
+ _async$_add$1: [function(value) { |
+ var t1 = this._state; |
+ if ((t1 & 1) !== 0) |
+ this._sendData$1(value); |
+ else if ((t1 & 3) === 0) |
+ this._ensurePendingEvents$0().add$1(0, new P._DelayedData(value, null)); |
+ }, "call$1", "get$_async$_add", 2, 0, function() { |
+ return H.computeSignature(function(T) { |
+ return {func: "void__T", void: true, args: [T]}; |
+ }, this.$receiver, "_StreamController"); |
+ }], |
+ _addError$2: [function(error, stackTrace) { |
+ var t1 = this._state; |
+ if ((t1 & 1) !== 0) |
+ this._sendError$2(error, stackTrace); |
+ else if ((t1 & 3) === 0) |
+ this._ensurePendingEvents$0().add$1(0, new P._DelayedError(error, stackTrace, null)); |
+ }, "call$2", "get$_addError", 4, 0, 11], |
+ _close$0: [function() { |
+ var addState = this._varData; |
+ this._varData = addState.get$varData(); |
+ this._state &= 4294967287; |
+ addState.addStreamFuture._asyncComplete$1(null); |
+ }, "call$0", "get$_close", 0, 0, 1], |
+ _subscribe$4: function(onData, onError, onDone, cancelOnError) { |
+ var t1, t2, subscription, pendingEvents, addState; |
+ if ((this._state & 3) !== 0) |
+ throw H.wrapException(P.StateError$("Stream has already been listened to.")); |
+ t1 = $.Zone__current; |
+ t2 = cancelOnError ? 1 : 0; |
+ subscription = H.setRuntimeTypeInfo(new P._ControllerSubscription(this, null, null, null, t1, t2, null, null), [null]); |
+ subscription._BufferingStreamSubscription$4(onData, onError, onDone, cancelOnError, null); |
+ pendingEvents = this.get$_pendingEvents(); |
+ t2 = this._state |= 1; |
+ if ((t2 & 8) !== 0) { |
+ addState = this._varData; |
+ addState.set$varData(subscription); |
+ addState.addSubscription.resume$0(); |
+ } else |
+ this._varData = subscription; |
+ subscription._setPendingEvents$1(pendingEvents); |
+ subscription._guardCallback$1(new P._StreamController__subscribe_closure(this)); |
+ return subscription; |
+ }, |
+ _recordCancel$1: function(subscription) { |
+ var result, e, s, exception, t1, result0; |
+ result = null; |
+ if ((this._state & 8) !== 0) |
+ result = this._varData.cancel$0(); |
+ this._varData = null; |
+ this._state = this._state & 4294967286 | 2; |
+ if (this.get$_onCancel() != null) |
+ if (result == null) |
+ try { |
+ result = this._onCancel$0(); |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ result0 = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [null]); |
+ result0._asyncCompleteError$2(e, s); |
+ result = result0; |
+ } |
+ else |
+ result = result.whenComplete$1(this.get$_onCancel()); |
+ t1 = new P._StreamController__recordCancel_complete(this); |
+ if (result != null) |
+ result = result.whenComplete$1(t1); |
+ else |
+ t1.call$0(); |
+ return result; |
+ } |
+ }, |
+ _StreamController__subscribe_closure: { |
+ "^": "Closure:0;this_0", |
+ call$0: function() { |
+ P._runGuarded(this.this_0.get$_onListen()); |
+ } |
+ }, |
+ _StreamController__recordCancel_complete: { |
+ "^": "Closure:1;this_0", |
+ call$0: function() { |
+ var t1 = this.this_0._doneFuture; |
+ if (t1 != null && t1._state === 0) |
+ t1._asyncComplete$1(null); |
+ } |
+ }, |
+ _SyncStreamControllerDispatch: { |
+ "^": "Object;", |
+ _sendData$1: function(data) { |
+ this.get$_subscription()._async$_add$1(data); |
+ }, |
+ _sendError$2: function(error, stackTrace) { |
+ this.get$_subscription()._addError$2(error, stackTrace); |
+ }, |
+ _sendDone$0: function() { |
+ this.get$_subscription()._close$0(); |
+ } |
+ }, |
+ _AsyncStreamControllerDispatch: { |
+ "^": "Object;", |
+ _sendData$1: function(data) { |
+ this.get$_subscription()._addPending$1(new P._DelayedData(data, null)); |
+ }, |
+ _sendError$2: function(error, stackTrace) { |
+ this.get$_subscription()._addPending$1(new P._DelayedError(error, stackTrace, null)); |
+ }, |
+ _sendDone$0: function() { |
+ this.get$_subscription()._addPending$1(C.C__DelayedDone); |
+ } |
+ }, |
+ _AsyncStreamController: { |
+ "^": "_StreamController__AsyncStreamControllerDispatch;_onListen<,_onPause<,_onResume<,_onCancel<,_varData,_state,_doneFuture", |
+ _onCancel$0: function() { |
+ return this._onCancel.call$0(); |
+ } |
+ }, |
+ _StreamController__AsyncStreamControllerDispatch: { |
+ "^": "_StreamController+_AsyncStreamControllerDispatch;" |
+ }, |
+ _SyncStreamController: { |
+ "^": "_StreamController__SyncStreamControllerDispatch;_onListen<,_onPause<,_onResume<,_onCancel<,_varData,_state,_doneFuture", |
+ _onCancel$0: function() { |
+ return this._onCancel.call$0(); |
+ } |
+ }, |
+ _StreamController__SyncStreamControllerDispatch: { |
+ "^": "_StreamController+_SyncStreamControllerDispatch;" |
+ }, |
+ _NoCallbacks: { |
+ "^": "Object;", |
+ get$_onListen: function() { |
+ return; |
+ }, |
+ get$_onPause: function() { |
+ return; |
+ }, |
+ get$_onResume: function() { |
+ return; |
+ }, |
+ get$_onCancel: function() { |
+ return; |
+ }, |
+ _onCancel$0: function() { |
+ return this.get$_onCancel().call$0(); |
+ } |
+ }, |
+ _NoCallbackAsyncStreamController: { |
+ "^": "_StreamController__AsyncStreamControllerDispatch0+_NoCallbacks;_varData,_state,_doneFuture" |
+ }, |
+ _StreamController__AsyncStreamControllerDispatch0: { |
+ "^": "_StreamController+_AsyncStreamControllerDispatch;", |
+ $as_StreamController: $.functionThatReturnsNull |
+ }, |
+ _NoCallbackSyncStreamController: { |
+ "^": "_StreamController__SyncStreamControllerDispatch0+_NoCallbacks;_varData,_state,_doneFuture" |
+ }, |
+ _StreamController__SyncStreamControllerDispatch0: { |
+ "^": "_StreamController+_SyncStreamControllerDispatch;", |
+ $as_StreamController: $.functionThatReturnsNull |
+ }, |
+ _ControllerStream: { |
+ "^": "_StreamImpl;_controller", |
+ _createSubscription$4: function(onData, onError, onDone, cancelOnError) { |
+ return this._controller._subscribe$4(onData, onError, onDone, cancelOnError); |
+ }, |
+ get$hashCode: function(_) { |
+ return (H.Primitives_objectHashCode(this._controller) ^ 892482866) >>> 0; |
+ }, |
+ $eq: function(_, other) { |
+ if (other == null) |
+ return false; |
+ if (this === other) |
+ return true; |
+ if (!(other instanceof P._ControllerStream)) |
+ return false; |
+ return other._controller === this._controller; |
+ } |
+ }, |
+ _ControllerSubscription: { |
+ "^": "_BufferingStreamSubscription;_controller,_onData,_onError,_onDone,_zone,_state,_cancelFuture,_pending", |
+ _onCancel$0: function() { |
+ return this._controller._recordCancel$1(this); |
+ }, |
+ _onPause$0: [function() { |
+ var t1 = this._controller; |
+ if ((t1._state & 8) !== 0) |
+ t1._varData.pause$0(0); |
+ P._runGuarded(t1.get$_onPause()); |
+ }, "call$0", "get$_onPause", 0, 0, 1], |
+ _onResume$0: [function() { |
+ var t1 = this._controller; |
+ if ((t1._state & 8) !== 0) |
+ t1._varData.resume$0(); |
+ P._runGuarded(t1.get$_onResume()); |
+ }, "call$0", "get$_onResume", 0, 0, 1] |
+ }, |
+ _StreamSinkWrapper: { |
+ "^": "Object;_async$_target", |
+ add$1: function(_, data) { |
+ var t1 = this._async$_target; |
+ if (t1._state >= 4) |
+ H.throwExpression(t1._badEventState$0()); |
+ t1._async$_add$1(data); |
+ }, |
+ close$0: function(_) { |
+ return this._async$_target.close$0(0); |
+ } |
+ }, |
+ _AddStreamState: { |
+ "^": "Object;", |
+ pause$0: function(_) { |
+ this.addSubscription.pause$0(0); |
+ }, |
+ resume$0: function() { |
+ this.addSubscription.resume$0(); |
+ }, |
+ cancel$0: function() { |
+ var cancel = this.addSubscription.cancel$0(); |
+ if (cancel == null) { |
+ this.addStreamFuture._asyncComplete$1(null); |
+ return; |
+ } |
+ return cancel.whenComplete$1(new P._AddStreamState_cancel_closure(this)); |
+ } |
+ }, |
+ _AddStreamState_makeErrorHandler_closure: { |
+ "^": "Closure:12;controller_0", |
+ call$2: function(e, s) { |
+ var t1 = this.controller_0; |
+ t1._addError$2(e, s); |
+ t1._close$0(); |
+ } |
+ }, |
+ _AddStreamState_cancel_closure: { |
+ "^": "Closure:0;this_0", |
+ call$0: function() { |
+ this.this_0.addStreamFuture._asyncComplete$1(null); |
+ } |
+ }, |
+ _StreamControllerAddStreamState: { |
+ "^": "_AddStreamState;varData@,addStreamFuture,addSubscription" |
+ }, |
+ _EventSink: { |
+ "^": "Object;" |
+ }, |
+ _BufferingStreamSubscription: { |
+ "^": "Object;_onData,_onError,_onDone,_zone<,_state,_cancelFuture,_pending", |
+ _setPendingEvents$1: function(pendingEvents) { |
+ if (pendingEvents == null) |
+ return; |
+ this._pending = pendingEvents; |
+ if (!pendingEvents.get$isEmpty(pendingEvents)) { |
+ this._state = (this._state | 64) >>> 0; |
+ this._pending.schedule$1(this); |
+ } |
+ }, |
+ pause$1: function(_, resumeSignal) { |
+ var t1 = this._state; |
+ if ((t1 & 8) !== 0) |
+ return; |
+ this._state = (t1 + 128 | 4) >>> 0; |
+ if (t1 < 128 && this._pending != null) |
+ this._pending.cancelSchedule$0(); |
+ if ((t1 & 4) === 0 && (this._state & 32) === 0) |
+ this._guardCallback$1(this.get$_onPause()); |
+ }, |
+ pause$0: function($receiver) { |
+ return this.pause$1($receiver, null); |
+ }, |
+ resume$0: function() { |
+ var t1 = this._state; |
+ if ((t1 & 8) !== 0) |
+ return; |
+ if (t1 >= 128) { |
+ t1 -= 128; |
+ this._state = t1; |
+ if (t1 < 128) { |
+ if ((t1 & 64) !== 0) { |
+ t1 = this._pending; |
+ t1 = !t1.get$isEmpty(t1); |
+ } else |
+ t1 = false; |
+ if (t1) |
+ this._pending.schedule$1(this); |
+ else { |
+ t1 = (this._state & 4294967291) >>> 0; |
+ this._state = t1; |
+ if ((t1 & 32) === 0) |
+ this._guardCallback$1(this.get$_onResume()); |
+ } |
+ } |
+ } |
+ }, |
+ cancel$0: function() { |
+ var t1 = (this._state & 4294967279) >>> 0; |
+ this._state = t1; |
+ if ((t1 & 8) !== 0) |
+ return this._cancelFuture; |
+ this._cancel$0(); |
+ return this._cancelFuture; |
+ }, |
+ get$_isInputPaused: function() { |
+ return (this._state & 4) !== 0; |
+ }, |
+ _cancel$0: function() { |
+ var t1 = (this._state | 8) >>> 0; |
+ this._state = t1; |
+ if ((t1 & 64) !== 0) |
+ this._pending.cancelSchedule$0(); |
+ if ((this._state & 32) === 0) |
+ this._pending = null; |
+ this._cancelFuture = this._onCancel$0(); |
+ }, |
+ _async$_add$1: ["super$_BufferingStreamSubscription$_async$_add$1", function(data) { |
+ var t1 = this._state; |
+ if ((t1 & 8) !== 0) |
+ return; |
+ if (t1 < 32) |
+ this._sendData$1(data); |
+ else |
+ this._addPending$1(new P._DelayedData(data, null)); |
+ }], |
+ _addError$2: ["super$_BufferingStreamSubscription$_addError$2", function(error, stackTrace) { |
+ var t1 = this._state; |
+ if ((t1 & 8) !== 0) |
+ return; |
+ if (t1 < 32) |
+ this._sendError$2(error, stackTrace); |
+ else |
+ this._addPending$1(new P._DelayedError(error, stackTrace, null)); |
+ }], |
+ _close$0: function() { |
+ var t1 = this._state; |
+ if ((t1 & 8) !== 0) |
+ return; |
+ t1 = (t1 | 2) >>> 0; |
+ this._state = t1; |
+ if (t1 < 32) |
+ this._sendDone$0(); |
+ else |
+ this._addPending$1(C.C__DelayedDone); |
+ }, |
+ _onPause$0: [function() { |
+ }, "call$0", "get$_onPause", 0, 0, 1], |
+ _onResume$0: [function() { |
+ }, "call$0", "get$_onResume", 0, 0, 1], |
+ _onCancel$0: function() { |
+ return; |
+ }, |
+ _addPending$1: function($event) { |
+ var pending, t1; |
+ pending = this._pending; |
+ if (pending == null) { |
+ pending = new P._StreamImplEvents(null, null, 0); |
+ this._pending = pending; |
+ } |
+ pending.add$1(0, $event); |
+ t1 = this._state; |
+ if ((t1 & 64) === 0) { |
+ t1 = (t1 | 64) >>> 0; |
+ this._state = t1; |
+ if (t1 < 128) |
+ this._pending.schedule$1(this); |
+ } |
+ }, |
+ _sendData$1: function(data) { |
+ var t1 = this._state; |
+ this._state = (t1 | 32) >>> 0; |
+ this._zone.runUnaryGuarded$2(this._onData, data); |
+ this._state = (this._state & 4294967263) >>> 0; |
+ this._checkState$1((t1 & 4) !== 0); |
+ }, |
+ _sendError$2: function(error, stackTrace) { |
+ var t1, t2; |
+ t1 = this._state; |
+ t2 = new P._BufferingStreamSubscription__sendError_sendError(this, error, stackTrace); |
+ if ((t1 & 1) !== 0) { |
+ this._state = (t1 | 16) >>> 0; |
+ this._cancel$0(); |
+ t1 = this._cancelFuture; |
+ if (!!J.getInterceptor(t1).$isFuture) |
+ t1.whenComplete$1(t2); |
+ else |
+ t2.call$0(); |
+ } else { |
+ t2.call$0(); |
+ this._checkState$1((t1 & 4) !== 0); |
+ } |
+ }, |
+ _sendDone$0: function() { |
+ var t1, t2; |
+ t1 = new P._BufferingStreamSubscription__sendDone_sendDone(this); |
+ this._cancel$0(); |
+ this._state = (this._state | 16) >>> 0; |
+ t2 = this._cancelFuture; |
+ if (!!J.getInterceptor(t2).$isFuture) |
+ t2.whenComplete$1(t1); |
+ else |
+ t1.call$0(); |
+ }, |
+ _guardCallback$1: function(callback) { |
+ var t1 = this._state; |
+ this._state = (t1 | 32) >>> 0; |
+ callback.call$0(); |
+ this._state = (this._state & 4294967263) >>> 0; |
+ this._checkState$1((t1 & 4) !== 0); |
+ }, |
+ _checkState$1: function(wasInputPaused) { |
+ var t1, isInputPaused; |
+ if ((this._state & 64) !== 0) { |
+ t1 = this._pending; |
+ t1 = t1.get$isEmpty(t1); |
+ } else |
+ t1 = false; |
+ if (t1) { |
+ t1 = (this._state & 4294967231) >>> 0; |
+ this._state = t1; |
+ if ((t1 & 4) !== 0) |
+ if (t1 < 128) { |
+ t1 = this._pending; |
+ t1 = t1 == null || t1.get$isEmpty(t1); |
+ } else |
+ t1 = false; |
+ else |
+ t1 = false; |
+ if (t1) |
+ this._state = (this._state & 4294967291) >>> 0; |
+ } |
+ for (; true; wasInputPaused = isInputPaused) { |
+ t1 = this._state; |
+ if ((t1 & 8) !== 0) { |
+ this._pending = null; |
+ return; |
+ } |
+ isInputPaused = (t1 & 4) !== 0; |
+ if (wasInputPaused === isInputPaused) |
+ break; |
+ this._state = (t1 ^ 32) >>> 0; |
+ if (isInputPaused) |
+ this._onPause$0(); |
+ else |
+ this._onResume$0(); |
+ this._state = (this._state & 4294967263) >>> 0; |
+ } |
+ t1 = this._state; |
+ if ((t1 & 64) !== 0 && t1 < 128) |
+ this._pending.schedule$1(this); |
+ }, |
+ _BufferingStreamSubscription$4: function(onData, onError, onDone, cancelOnError, $T) { |
+ var t1 = this._zone; |
+ this._onData = t1.registerUnaryCallback$1(onData); |
+ this._onError = P._registerErrorHandler(onError == null ? P._nullErrorHandler$closure() : onError, t1); |
+ this._onDone = t1.registerCallback$1(onDone == null ? P._nullDoneHandler$closure() : onDone); |
+ }, |
+ static: {_BufferingStreamSubscription$: function(onData, onError, onDone, cancelOnError, $T) { |
+ var t1, t2; |
+ t1 = $.Zone__current; |
+ t2 = cancelOnError ? 1 : 0; |
+ t2 = H.setRuntimeTypeInfo(new P._BufferingStreamSubscription(null, null, null, t1, t2, null, null), [$T]); |
+ t2._BufferingStreamSubscription$4(onData, onError, onDone, cancelOnError, $T); |
+ return t2; |
+ }} |
+ }, |
+ _BufferingStreamSubscription__sendError_sendError: { |
+ "^": "Closure:1;this_0,error_1,stackTrace_2", |
+ call$0: function() { |
+ var t1, t2, t3, t4, t5, t6; |
+ t1 = this.this_0; |
+ t2 = t1._state; |
+ if ((t2 & 8) !== 0 && (t2 & 16) === 0) |
+ return; |
+ t1._state = (t2 | 32) >>> 0; |
+ t2 = t1._onError; |
+ t3 = H.getDynamicRuntimeType(); |
+ t3 = H.buildFunctionType(t3, [t3, t3])._isTest$1(t2); |
+ t4 = t1._zone; |
+ t5 = this.error_1; |
+ t6 = t1._onError; |
+ if (t3) |
+ t4.runBinaryGuarded$3(t6, t5, this.stackTrace_2); |
+ else |
+ t4.runUnaryGuarded$2(t6, t5); |
+ t1._state = (t1._state & 4294967263) >>> 0; |
+ } |
+ }, |
+ _BufferingStreamSubscription__sendDone_sendDone: { |
+ "^": "Closure:1;this_0", |
+ call$0: function() { |
+ var t1, t2; |
+ t1 = this.this_0; |
+ t2 = t1._state; |
+ if ((t2 & 16) === 0) |
+ return; |
+ t1._state = (t2 | 42) >>> 0; |
+ t1._zone.runGuarded$1(t1._onDone); |
+ t1._state = (t1._state & 4294967263) >>> 0; |
+ } |
+ }, |
+ _StreamImpl: { |
+ "^": "Stream;", |
+ listen$4$cancelOnError$onDone$onError: function(onData, cancelOnError, onDone, onError) { |
+ return this._createSubscription$4(onData, onError, onDone, true === cancelOnError); |
+ }, |
+ listen$1: function(onData) { |
+ return this.listen$4$cancelOnError$onDone$onError(onData, null, null, null); |
+ }, |
+ listen$2$onDone: function(onData, onDone) { |
+ return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, null); |
+ }, |
+ listen$3$onDone$onError: function(onData, onDone, onError) { |
+ return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError); |
+ }, |
+ listen$3$onDone$onError: function(onData, onDone, onError) { |
+ return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError); |
+ }, |
+ _createSubscription$4: function(onData, onError, onDone, cancelOnError) { |
+ return P._BufferingStreamSubscription$(onData, onError, onDone, cancelOnError, H.getTypeArgumentByIndex(this, 0)); |
+ } |
+ }, |
+ _DelayedEvent: { |
+ "^": "Object;next@" |
+ }, |
+ _DelayedData: { |
+ "^": "_DelayedEvent;value,next", |
+ perform$1: function(dispatch) { |
+ dispatch._sendData$1(this.value); |
+ } |
+ }, |
+ _DelayedError: { |
+ "^": "_DelayedEvent;error>,stackTrace<,next", |
+ perform$1: function(dispatch) { |
+ dispatch._sendError$2(this.error, this.stackTrace); |
+ } |
+ }, |
+ _DelayedDone: { |
+ "^": "Object;", |
+ perform$1: function(dispatch) { |
+ dispatch._sendDone$0(); |
+ }, |
+ get$next: function() { |
+ return; |
+ }, |
+ set$next: function(_) { |
+ throw H.wrapException(P.StateError$("No events after a done.")); |
+ } |
+ }, |
+ _PendingEvents: { |
+ "^": "Object;", |
+ schedule$1: function(dispatch) { |
+ var t1 = this._state; |
+ if (t1 === 1) |
+ return; |
+ if (t1 >= 1) { |
+ this._state = 1; |
+ return; |
+ } |
+ P.scheduleMicrotask(new P._PendingEvents_schedule_closure(this, dispatch)); |
+ this._state = 1; |
+ }, |
+ cancelSchedule$0: function() { |
+ if (this._state === 1) |
+ this._state = 3; |
+ } |
+ }, |
+ _PendingEvents_schedule_closure: { |
+ "^": "Closure:0;this_0,dispatch_1", |
+ call$0: function() { |
+ var t1, oldState; |
+ t1 = this.this_0; |
+ oldState = t1._state; |
+ t1._state = 0; |
+ if (oldState === 3) |
+ return; |
+ t1.handleNext$1(this.dispatch_1); |
+ } |
+ }, |
+ _StreamImplEvents: { |
+ "^": "_PendingEvents;firstPendingEvent,lastPendingEvent,_state", |
+ get$isEmpty: function(_) { |
+ return this.lastPendingEvent == null; |
+ }, |
+ add$1: function(_, $event) { |
+ var t1 = this.lastPendingEvent; |
+ if (t1 == null) { |
+ this.lastPendingEvent = $event; |
+ this.firstPendingEvent = $event; |
+ } else { |
+ t1.set$next($event); |
+ this.lastPendingEvent = $event; |
+ } |
+ }, |
+ handleNext$1: function(dispatch) { |
+ var $event, t1; |
+ $event = this.firstPendingEvent; |
+ t1 = $event.get$next(); |
+ this.firstPendingEvent = t1; |
+ if (t1 == null) |
+ this.lastPendingEvent = null; |
+ $event.perform$1(dispatch); |
+ } |
+ }, |
+ _cancelAndError_closure: { |
+ "^": "Closure:0;future_0,error_1,stackTrace_2", |
+ call$0: function() { |
+ return this.future_0._completeError$2(this.error_1, this.stackTrace_2); |
+ } |
+ }, |
+ _cancelAndErrorClosure_closure: { |
+ "^": "Closure:12;subscription_0,future_1", |
+ call$2: function(error, stackTrace) { |
+ return P._cancelAndError(this.subscription_0, this.future_1, error, stackTrace); |
+ } |
+ }, |
+ _cancelAndValue_closure: { |
+ "^": "Closure:0;future_0,value_1", |
+ call$0: function() { |
+ return this.future_0._complete$1(this.value_1); |
+ } |
+ }, |
+ _ForwardingStream: { |
+ "^": "Stream;", |
+ listen$4$cancelOnError$onDone$onError: function(onData, cancelOnError, onDone, onError) { |
+ return this._createSubscription$4(onData, onError, onDone, true === cancelOnError); |
+ }, |
+ listen$3$onDone$onError: function(onData, onDone, onError) { |
+ return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError); |
+ }, |
+ _createSubscription$4: function(onData, onError, onDone, cancelOnError) { |
+ return P._ForwardingStreamSubscription$(this, onData, onError, onDone, cancelOnError, H.getRuntimeTypeArgument(this, "_ForwardingStream", 0), H.getRuntimeTypeArgument(this, "_ForwardingStream", 1)); |
+ }, |
+ _handleData$2: function(data, sink) { |
+ sink._async$_add$1(data); |
+ }, |
+ $asStream: function($S, $T) { |
+ return [$T]; |
+ } |
+ }, |
+ _ForwardingStreamSubscription: { |
+ "^": "_BufferingStreamSubscription;_stream,_subscription,_onData,_onError,_onDone,_zone,_state,_cancelFuture,_pending", |
+ _async$_add$1: function(data) { |
+ if ((this._state & 2) !== 0) |
+ return; |
+ this.super$_BufferingStreamSubscription$_async$_add$1(data); |
+ }, |
+ _addError$2: function(error, stackTrace) { |
+ if ((this._state & 2) !== 0) |
+ return; |
+ this.super$_BufferingStreamSubscription$_addError$2(error, stackTrace); |
+ }, |
+ _onPause$0: [function() { |
+ var t1 = this._subscription; |
+ if (t1 == null) |
+ return; |
+ t1.pause$0(0); |
+ }, "call$0", "get$_onPause", 0, 0, 1], |
+ _onResume$0: [function() { |
+ var t1 = this._subscription; |
+ if (t1 == null) |
+ return; |
+ t1.resume$0(); |
+ }, "call$0", "get$_onResume", 0, 0, 1], |
+ _onCancel$0: function() { |
+ var t1 = this._subscription; |
+ if (t1 != null) { |
+ this._subscription = null; |
+ t1.cancel$0(); |
+ } |
+ return; |
+ }, |
+ _handleData$1: [function(data) { |
+ this._stream._handleData$2(data, this); |
+ }, "call$1", "get$_handleData", 2, 0, function() { |
+ return H.computeSignature(function(S, T) { |
+ return {func: "void__S", void: true, args: [S]}; |
+ }, this.$receiver, "_ForwardingStreamSubscription"); |
+ }], |
+ _handleError$2: [function(error, stackTrace) { |
+ this._addError$2(error, stackTrace); |
+ }, "call$2", "get$_handleError", 4, 0, 13], |
+ _handleDone$0: [function() { |
+ this._close$0(); |
+ }, "call$0", "get$_handleDone", 0, 0, 1], |
+ _ForwardingStreamSubscription$5: function(_stream, onData, onError, onDone, cancelOnError, $S, $T) { |
+ var t1, t2; |
+ t1 = this.get$_handleData(); |
+ t2 = this.get$_handleError(); |
+ this._subscription = this._stream._async$_source.listen$3$onDone$onError(t1, this.get$_handleDone(), t2); |
+ }, |
+ $as_BufferingStreamSubscription: function($S, $T) { |
+ return [$T]; |
+ }, |
+ static: {_ForwardingStreamSubscription$: function(_stream, onData, onError, onDone, cancelOnError, $S, $T) { |
+ var t1, t2; |
+ t1 = $.Zone__current; |
+ t2 = cancelOnError ? 1 : 0; |
+ t2 = H.setRuntimeTypeInfo(new P._ForwardingStreamSubscription(_stream, null, null, null, null, t1, t2, null, null), [$S, $T]); |
+ t2._BufferingStreamSubscription$4(onData, onError, onDone, cancelOnError, $T); |
+ t2._ForwardingStreamSubscription$5(_stream, onData, onError, onDone, cancelOnError, $S, $T); |
+ return t2; |
+ }} |
+ }, |
+ _MapStream: { |
+ "^": "_ForwardingStream;_transform,_async$_source", |
+ _handleData$2: function(inputEvent, sink) { |
+ var outputEvent, e, s, exception, t1; |
+ outputEvent = null; |
+ try { |
+ outputEvent = this._transform$1(inputEvent); |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ P._addErrorWithReplacement(sink, e, s); |
+ return; |
+ } |
+ sink._async$_add$1(outputEvent); |
+ }, |
+ _transform$1: function(arg0) { |
+ return this._transform.call$1(arg0); |
+ } |
+ }, |
+ Timer: { |
+ "^": "Object;" |
+ }, |
+ AsyncError: { |
+ "^": "Object;error>,stackTrace<", |
+ toString$0: function(_) { |
+ return H.S(this.error); |
+ }, |
+ $isError: 1 |
+ }, |
+ _ZoneFunction: { |
+ "^": "Object;zone,$function" |
+ }, |
+ ZoneSpecification: { |
+ "^": "Object;" |
+ }, |
+ _ZoneSpecification: { |
+ "^": "Object;handleUncaughtError,run,runUnary,runBinary,registerCallback,registerUnaryCallback,registerBinaryCallback,errorCallback,scheduleMicrotask,createTimer,createPeriodicTimer,print,fork", |
+ handleUncaughtError$2: function(arg0, arg1) { |
+ return this.handleUncaughtError.call$2(arg0, arg1); |
+ }, |
+ handleUncaughtError$3: function(arg0, arg1, arg2) { |
+ return this.handleUncaughtError.call$3(arg0, arg1, arg2); |
+ }, |
+ run$1: function(arg0) { |
+ return this.run.call$1(arg0); |
+ }, |
+ runUnary$2: function(arg0, arg1) { |
+ return this.runUnary.call$2(arg0, arg1); |
+ }, |
+ runBinary$3: function(arg0, arg1, arg2) { |
+ return this.runBinary.call$3(arg0, arg1, arg2); |
+ }, |
+ registerCallback$1: function(arg0) { |
+ return this.registerCallback.call$1(arg0); |
+ }, |
+ registerUnaryCallback$1: function(arg0) { |
+ return this.registerUnaryCallback.call$1(arg0); |
+ }, |
+ registerBinaryCallback$1: function(arg0) { |
+ return this.registerBinaryCallback.call$1(arg0); |
+ }, |
+ errorCallback$2: function(arg0, arg1) { |
+ return this.errorCallback.call$2(arg0, arg1); |
+ }, |
+ scheduleMicrotask$1: function(arg0) { |
+ return this.scheduleMicrotask.call$1(arg0); |
+ }, |
+ createTimer$2: function(arg0, arg1) { |
+ return this.createTimer.call$2(arg0, arg1); |
+ }, |
+ print$1: function($receiver, arg0) { |
+ return this.print.call$1(arg0); |
+ }, |
+ fork$2$specification$zoneValues: function(arg0, arg1) { |
+ return this.fork.call$2$specification$zoneValues(arg0, arg1); |
+ } |
+ }, |
+ ZoneDelegate: { |
+ "^": "Object;" |
+ }, |
+ Zone: { |
+ "^": "Object;" |
+ }, |
+ _ZoneDelegate: { |
+ "^": "Object;_delegationTarget", |
+ handleUncaughtError$3: function(zone, error, stackTrace) { |
+ var implementation, implZone; |
+ implementation = this._delegationTarget.get$_handleUncaughtError(); |
+ implZone = implementation.zone; |
+ return implementation.$function.call$5(implZone, P._parentDelegate(implZone), zone, error, stackTrace); |
+ } |
+ }, |
+ _Zone: { |
+ "^": "Object;", |
+ inSameErrorZone$1: function(otherZone) { |
+ return this === otherZone || this.get$errorZone() === otherZone.get$errorZone(); |
+ } |
+ }, |
+ _CustomZone: { |
+ "^": "_Zone;_runUnary<,_run<,_runBinary<,_registerCallback<,_registerUnaryCallback<,_registerBinaryCallback<,_errorCallback<,_scheduleMicrotask<,_createTimer<,_createPeriodicTimer<,_print<,_fork<,_handleUncaughtError<,_delegateCache,parent>,_map<", |
+ get$_delegate: function() { |
+ var t1 = this._delegateCache; |
+ if (t1 != null) |
+ return t1; |
+ t1 = new P._ZoneDelegate(this); |
+ this._delegateCache = t1; |
+ return t1; |
+ }, |
+ get$errorZone: function() { |
+ return this._handleUncaughtError.zone; |
+ }, |
+ runGuarded$1: function(f) { |
+ var e, s, t1, exception; |
+ try { |
+ t1 = this.run$1(f); |
+ return t1; |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ return this.handleUncaughtError$2(e, s); |
+ } |
+ }, |
+ runUnaryGuarded$2: function(f, arg) { |
+ var e, s, t1, exception; |
+ try { |
+ t1 = this.runUnary$2(f, arg); |
+ return t1; |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ return this.handleUncaughtError$2(e, s); |
+ } |
+ }, |
+ runBinaryGuarded$3: function(f, arg1, arg2) { |
+ var e, s, t1, exception; |
+ try { |
+ t1 = this.runBinary$3(f, arg1, arg2); |
+ return t1; |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ return this.handleUncaughtError$2(e, s); |
+ } |
+ }, |
+ bindCallback$2$runGuarded: function(f, runGuarded) { |
+ var registered = this.registerCallback$1(f); |
+ if (runGuarded) |
+ return new P._CustomZone_bindCallback_closure(this, registered); |
+ else |
+ return new P._CustomZone_bindCallback_closure0(this, registered); |
+ }, |
+ bindCallback$1: function(f) { |
+ return this.bindCallback$2$runGuarded(f, true); |
+ }, |
+ bindUnaryCallback$2$runGuarded: function(f, runGuarded) { |
+ var registered = this.registerUnaryCallback$1(f); |
+ if (runGuarded) |
+ return new P._CustomZone_bindUnaryCallback_closure(this, registered); |
+ else |
+ return new P._CustomZone_bindUnaryCallback_closure0(this, registered); |
+ }, |
+ bindUnaryCallback$1: function(f) { |
+ return this.bindUnaryCallback$2$runGuarded(f, true); |
+ }, |
+ $index: function(_, key) { |
+ var t1, result, t2, value; |
+ t1 = this._map; |
+ result = t1.$index(0, key); |
+ if (result != null || t1.containsKey$1(key)) |
+ return result; |
+ t2 = this.parent; |
+ if (t2 != null) { |
+ value = J.$index$asx(t2, key); |
+ if (value != null) |
+ t1.$indexSet(0, key, value); |
+ return value; |
+ } |
+ return; |
+ }, |
+ handleUncaughtError$2: function(error, stackTrace) { |
+ var implementation, t1, parentDelegate; |
+ implementation = this._handleUncaughtError; |
+ t1 = implementation.zone; |
+ parentDelegate = P._parentDelegate(t1); |
+ return implementation.$function.call$5(t1, parentDelegate, this, error, stackTrace); |
+ }, |
+ fork$2$specification$zoneValues: function(specification, zoneValues) { |
+ var implementation, t1, parentDelegate; |
+ implementation = this._fork; |
+ t1 = implementation.zone; |
+ parentDelegate = P._parentDelegate(t1); |
+ return implementation.$function.call$5(t1, parentDelegate, this, specification, zoneValues); |
+ }, |
+ run$1: function(f) { |
+ var implementation, t1, parentDelegate; |
+ implementation = this._run; |
+ t1 = implementation.zone; |
+ parentDelegate = P._parentDelegate(t1); |
+ return implementation.$function.call$4(t1, parentDelegate, this, f); |
+ }, |
+ runUnary$2: function(f, arg) { |
+ var implementation, t1, parentDelegate; |
+ implementation = this._runUnary; |
+ t1 = implementation.zone; |
+ parentDelegate = P._parentDelegate(t1); |
+ return implementation.$function.call$5(t1, parentDelegate, this, f, arg); |
+ }, |
+ runBinary$3: function(f, arg1, arg2) { |
+ var implementation, t1, parentDelegate; |
+ implementation = this._runBinary; |
+ t1 = implementation.zone; |
+ parentDelegate = P._parentDelegate(t1); |
+ return implementation.$function.call$6(t1, parentDelegate, this, f, arg1, arg2); |
+ }, |
+ registerCallback$1: function(f) { |
+ var implementation, t1, parentDelegate; |
+ implementation = this._registerCallback; |
+ t1 = implementation.zone; |
+ parentDelegate = P._parentDelegate(t1); |
+ return implementation.$function.call$4(t1, parentDelegate, this, f); |
+ }, |
+ registerUnaryCallback$1: function(f) { |
+ var implementation, t1, parentDelegate; |
+ implementation = this._registerUnaryCallback; |
+ t1 = implementation.zone; |
+ parentDelegate = P._parentDelegate(t1); |
+ return implementation.$function.call$4(t1, parentDelegate, this, f); |
+ }, |
+ registerBinaryCallback$1: function(f) { |
+ var implementation, t1, parentDelegate; |
+ implementation = this._registerBinaryCallback; |
+ t1 = implementation.zone; |
+ parentDelegate = P._parentDelegate(t1); |
+ return implementation.$function.call$4(t1, parentDelegate, this, f); |
+ }, |
+ errorCallback$2: function(error, stackTrace) { |
+ var implementation, implementationZone, parentDelegate; |
+ implementation = this._errorCallback; |
+ implementationZone = implementation.zone; |
+ if (implementationZone === C.C__RootZone) |
+ return; |
+ parentDelegate = P._parentDelegate(implementationZone); |
+ return implementation.$function.call$5(implementationZone, parentDelegate, this, error, stackTrace); |
+ }, |
+ scheduleMicrotask$1: function(f) { |
+ var implementation, t1, parentDelegate; |
+ implementation = this._scheduleMicrotask; |
+ t1 = implementation.zone; |
+ parentDelegate = P._parentDelegate(t1); |
+ return implementation.$function.call$4(t1, parentDelegate, this, f); |
+ }, |
+ createTimer$2: function(duration, f) { |
+ var implementation, t1, parentDelegate; |
+ implementation = this._createTimer; |
+ t1 = implementation.zone; |
+ parentDelegate = P._parentDelegate(t1); |
+ return implementation.$function.call$5(t1, parentDelegate, this, duration, f); |
+ }, |
+ print$1: function(_, line) { |
+ var implementation, t1, parentDelegate; |
+ implementation = this._print; |
+ t1 = implementation.zone; |
+ parentDelegate = P._parentDelegate(t1); |
+ return implementation.$function.call$4(t1, parentDelegate, this, line); |
+ }, |
+ _CustomZone$3: function($parent, specification, _map) { |
+ var t1; |
+ this._run = this.parent.get$_run(); |
+ this._runUnary = this.parent.get$_runUnary(); |
+ this._runBinary = this.parent.get$_runBinary(); |
+ this._registerCallback = this.parent.get$_registerCallback(); |
+ this._registerUnaryCallback = this.parent.get$_registerUnaryCallback(); |
+ this._registerBinaryCallback = this.parent.get$_registerBinaryCallback(); |
+ this._errorCallback = this.parent.get$_errorCallback(); |
+ this._scheduleMicrotask = this.parent.get$_scheduleMicrotask(); |
+ this._createTimer = this.parent.get$_createTimer(); |
+ this._createPeriodicTimer = this.parent.get$_createPeriodicTimer(); |
+ this._print = this.parent.get$_print(); |
+ this._fork = this.parent.get$_fork(); |
+ t1 = specification.handleUncaughtError; |
+ this._handleUncaughtError = t1 != null ? new P._ZoneFunction(this, t1) : this.parent.get$_handleUncaughtError(); |
+ } |
+ }, |
+ _CustomZone_bindCallback_closure: { |
+ "^": "Closure:0;this_0,registered_1", |
+ call$0: function() { |
+ return this.this_0.runGuarded$1(this.registered_1); |
+ } |
+ }, |
+ _CustomZone_bindCallback_closure0: { |
+ "^": "Closure:0;this_2,registered_3", |
+ call$0: function() { |
+ return this.this_2.run$1(this.registered_3); |
+ } |
+ }, |
+ _CustomZone_bindUnaryCallback_closure: { |
+ "^": "Closure:2;this_0,registered_1", |
+ call$1: function(arg) { |
+ return this.this_0.runUnaryGuarded$2(this.registered_1, arg); |
+ } |
+ }, |
+ _CustomZone_bindUnaryCallback_closure0: { |
+ "^": "Closure:2;this_2,registered_3", |
+ call$1: function(arg) { |
+ return this.this_2.runUnary$2(this.registered_3, arg); |
+ } |
+ }, |
+ _rootHandleUncaughtError_closure: { |
+ "^": "Closure:0;error_0,stackTrace_1", |
+ call$0: function() { |
+ var t1 = this.error_0; |
+ throw H.wrapException(new P._UncaughtAsyncError(t1, P._UncaughtAsyncError__getBestStackTrace(t1, this.stackTrace_1))); |
+ } |
+ }, |
+ _RootZone: { |
+ "^": "_Zone;", |
+ get$_run: function() { |
+ return C._ZoneFunction__RootZone__rootRun; |
+ }, |
+ get$_runUnary: function() { |
+ return C._ZoneFunction__RootZone__rootRunUnary; |
+ }, |
+ get$_runBinary: function() { |
+ return C._ZoneFunction__RootZone__rootRunBinary; |
+ }, |
+ get$_registerCallback: function() { |
+ return C._ZoneFunction__RootZone__rootRegisterCallback; |
+ }, |
+ get$_registerUnaryCallback: function() { |
+ return C._ZoneFunction_Eeh; |
+ }, |
+ get$_registerBinaryCallback: function() { |
+ return C._ZoneFunction_7G2; |
+ }, |
+ get$_errorCallback: function() { |
+ return C._ZoneFunction__RootZone__rootErrorCallback; |
+ }, |
+ get$_scheduleMicrotask: function() { |
+ return C._ZoneFunction__RootZone__rootScheduleMicrotask; |
+ }, |
+ get$_createTimer: function() { |
+ return C._ZoneFunction__RootZone__rootCreateTimer; |
+ }, |
+ get$_createPeriodicTimer: function() { |
+ return C._ZoneFunction_3bB; |
+ }, |
+ get$_print: function() { |
+ return C._ZoneFunction__RootZone__rootPrint; |
+ }, |
+ get$_fork: function() { |
+ return C._ZoneFunction__RootZone__rootFork; |
+ }, |
+ get$_handleUncaughtError: function() { |
+ return C._ZoneFunction_NMc; |
+ }, |
+ get$parent: function(_) { |
+ return; |
+ }, |
+ get$_map: function() { |
+ return $.get$_RootZone__rootMap(); |
+ }, |
+ get$_delegate: function() { |
+ var t1 = $._RootZone__rootDelegate; |
+ if (t1 != null) |
+ return t1; |
+ t1 = new P._ZoneDelegate(this); |
+ $._RootZone__rootDelegate = t1; |
+ return t1; |
+ }, |
+ get$errorZone: function() { |
+ return this; |
+ }, |
+ runGuarded$1: function(f) { |
+ var e, s, t1, exception; |
+ try { |
+ if (C.C__RootZone === $.Zone__current) { |
+ t1 = f.call$0(); |
+ return t1; |
+ } |
+ t1 = P._rootRun(null, null, this, f); |
+ return t1; |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ return P._rootHandleUncaughtError(null, null, this, e, s); |
+ } |
+ }, |
+ runUnaryGuarded$2: function(f, arg) { |
+ var e, s, t1, exception; |
+ try { |
+ if (C.C__RootZone === $.Zone__current) { |
+ t1 = f.call$1(arg); |
+ return t1; |
+ } |
+ t1 = P._rootRunUnary(null, null, this, f, arg); |
+ return t1; |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ return P._rootHandleUncaughtError(null, null, this, e, s); |
+ } |
+ }, |
+ runBinaryGuarded$3: function(f, arg1, arg2) { |
+ var e, s, t1, exception; |
+ try { |
+ if (C.C__RootZone === $.Zone__current) { |
+ t1 = f.call$2(arg1, arg2); |
+ return t1; |
+ } |
+ t1 = P._rootRunBinary(null, null, this, f, arg1, arg2); |
+ return t1; |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ return P._rootHandleUncaughtError(null, null, this, e, s); |
+ } |
+ }, |
+ bindCallback$2$runGuarded: function(f, runGuarded) { |
+ if (runGuarded) |
+ return new P._RootZone_bindCallback_closure(this, f); |
+ else |
+ return new P._RootZone_bindCallback_closure0(this, f); |
+ }, |
+ bindCallback$1: function(f) { |
+ return this.bindCallback$2$runGuarded(f, true); |
+ }, |
+ bindUnaryCallback$2$runGuarded: function(f, runGuarded) { |
+ if (runGuarded) |
+ return new P._RootZone_bindUnaryCallback_closure(this, f); |
+ else |
+ return new P._RootZone_bindUnaryCallback_closure0(this, f); |
+ }, |
+ bindUnaryCallback$1: function(f) { |
+ return this.bindUnaryCallback$2$runGuarded(f, true); |
+ }, |
+ $index: function(_, key) { |
+ return; |
+ }, |
+ handleUncaughtError$2: function(error, stackTrace) { |
+ return P._rootHandleUncaughtError(null, null, this, error, stackTrace); |
+ }, |
+ fork$2$specification$zoneValues: function(specification, zoneValues) { |
+ return P._rootFork(null, null, this, specification, zoneValues); |
+ }, |
+ run$1: function(f) { |
+ if ($.Zone__current === C.C__RootZone) |
+ return f.call$0(); |
+ return P._rootRun(null, null, this, f); |
+ }, |
+ runUnary$2: function(f, arg) { |
+ if ($.Zone__current === C.C__RootZone) |
+ return f.call$1(arg); |
+ return P._rootRunUnary(null, null, this, f, arg); |
+ }, |
+ runBinary$3: function(f, arg1, arg2) { |
+ if ($.Zone__current === C.C__RootZone) |
+ return f.call$2(arg1, arg2); |
+ return P._rootRunBinary(null, null, this, f, arg1, arg2); |
+ }, |
+ registerCallback$1: function(f) { |
+ return f; |
+ }, |
+ registerUnaryCallback$1: function(f) { |
+ return f; |
+ }, |
+ registerBinaryCallback$1: function(f) { |
+ return f; |
+ }, |
+ errorCallback$2: function(error, stackTrace) { |
+ return; |
+ }, |
+ scheduleMicrotask$1: function(f) { |
+ P._rootScheduleMicrotask(null, null, this, f); |
+ }, |
+ createTimer$2: function(duration, f) { |
+ return P.Timer__createTimer(duration, f); |
+ }, |
+ print$1: function(_, line) { |
+ H.printString(line); |
+ } |
+ }, |
+ _RootZone_bindCallback_closure: { |
+ "^": "Closure:0;this_0,f_1", |
+ call$0: function() { |
+ return this.this_0.runGuarded$1(this.f_1); |
+ } |
+ }, |
+ _RootZone_bindCallback_closure0: { |
+ "^": "Closure:0;this_2,f_3", |
+ call$0: function() { |
+ return this.this_2.run$1(this.f_3); |
+ } |
+ }, |
+ _RootZone_bindUnaryCallback_closure: { |
+ "^": "Closure:2;this_0,f_1", |
+ call$1: function(arg) { |
+ return this.this_0.runUnaryGuarded$2(this.f_1, arg); |
+ } |
+ }, |
+ _RootZone_bindUnaryCallback_closure0: { |
+ "^": "Closure:2;this_2,f_3", |
+ call$1: function(arg) { |
+ return this.this_2.runUnary$2(this.f_3, arg); |
+ } |
+ }, |
+ runZoned_closure: { |
+ "^": "Closure:14;onError_0", |
+ call$5: function($self, $parent, zone, error, stackTrace) { |
+ var e, s, t1, t2, exception; |
+ try { |
+ t1 = this.onError_0; |
+ t2 = H.getDynamicRuntimeType(); |
+ t2 = H.buildFunctionType(t2, [t2, t2])._isTest$1(t1); |
+ if (t2) { |
+ t1 = J.get$parent$x($self).runBinary$3(t1, error, stackTrace); |
+ return t1; |
+ } |
+ t1 = J.get$parent$x($self).runUnary$2(t1, error); |
+ return t1; |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ s = H.getTraceFromException(exception); |
+ t1 = e; |
+ t2 = error; |
+ if (t1 == null ? t2 == null : t1 === t2) |
+ return $parent.handleUncaughtError$3(zone, error, stackTrace); |
+ else |
+ return $parent.handleUncaughtError$3(zone, e, s); |
+ } |
+ } |
+ } |
+}], |
+["dart.collection", "dart:collection", , P, { |
+ "^": "", |
+ LinkedHashMap_LinkedHashMap$_literal: function(keyValuePairs, $K, $V) { |
+ return H.fillLiteralMap(keyValuePairs, H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, null, null, null, 0), [$K, $V])); |
+ }, |
+ LinkedHashMap_LinkedHashMap$_empty: function($K, $V) { |
+ return H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, null, null, null, 0), [$K, $V]); |
+ }, |
+ _defaultEquals: [function(a, b) { |
+ return J.$eq(a, b); |
+ }, "call$2", "_defaultEquals$closure", 4, 0, 44], |
+ _defaultHashCode: [function(a) { |
+ return J.get$hashCode$(a); |
+ }, "call$1", "_defaultHashCode$closure", 2, 0, 26], |
+ HashMap_HashMap: function(equals, hashCode, isValidKey, $K, $V) { |
+ return H.setRuntimeTypeInfo(new P._HashMap(0, null, null, null, null), [$K, $V]); |
+ }, |
+ HashMap_HashMap$from: function(other, $K, $V) { |
+ var result = P.HashMap_HashMap(null, null, null, $K, $V); |
+ J.forEach$1$ax(other, new P.HashMap_HashMap$from_closure(result)); |
+ return result; |
+ }, |
+ IterableBase_iterableToShortString: function(iterable, leftDelimiter, rightDelimiter) { |
+ var parts, t1; |
+ if (P.IterableBase__isToStringVisiting(iterable)) { |
+ if (leftDelimiter === "(" && rightDelimiter === ")") |
+ return "(...)"; |
+ return leftDelimiter + "..." + rightDelimiter; |
+ } |
+ parts = []; |
+ t1 = $.get$IterableBase__toStringVisiting(); |
+ t1.push(iterable); |
+ try { |
+ P.IterableBase__iterablePartsToStrings(iterable, parts); |
+ } finally { |
+ if (0 >= t1.length) |
+ return H.ioore(t1, 0); |
+ t1.pop(); |
+ } |
+ t1 = new P.StringBuffer(leftDelimiter); |
+ t1.writeAll$2(parts, ", "); |
+ t1 = t1._contents += rightDelimiter; |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ }, |
+ IterableBase_iterableToFullString: function(iterable, leftDelimiter, rightDelimiter) { |
+ var buffer, t1; |
+ if (P.IterableBase__isToStringVisiting(iterable)) |
+ return leftDelimiter + "..." + rightDelimiter; |
+ buffer = new P.StringBuffer(leftDelimiter); |
+ t1 = $.get$IterableBase__toStringVisiting(); |
+ t1.push(iterable); |
+ try { |
+ buffer.writeAll$2(iterable, ", "); |
+ } finally { |
+ if (0 >= t1.length) |
+ return H.ioore(t1, 0); |
+ t1.pop(); |
+ } |
+ t1 = buffer; |
+ t1._contents = t1.get$_contents() + rightDelimiter; |
+ t1 = buffer.get$_contents(); |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ }, |
+ IterableBase__isToStringVisiting: function(o) { |
+ var i, t1; |
+ for (i = 0; t1 = $.get$IterableBase__toStringVisiting(), i < t1.length; ++i) { |
+ t1 = t1[i]; |
+ if (o == null ? t1 == null : o === t1) |
+ return true; |
+ } |
+ return false; |
+ }, |
+ IterableBase__iterablePartsToStrings: function(iterable, parts) { |
+ var it, $length, count, next, ultimateString, penultimateString, penultimate, ultimate, ultimate0, elision; |
+ it = iterable.get$iterator(iterable); |
+ $length = 0; |
+ count = 0; |
+ while (true) { |
+ if (!($length < 80 || count < 3)) |
+ break; |
+ if (!it.moveNext$0()) |
+ return; |
+ next = H.S(it.get$current()); |
+ parts.push(next); |
+ $length += next.length + 2; |
+ ++count; |
+ } |
+ if (!it.moveNext$0()) { |
+ if (count <= 5) |
+ return; |
+ if (0 >= parts.length) |
+ return H.ioore(parts, 0); |
+ ultimateString = parts.pop(); |
+ if (0 >= parts.length) |
+ return H.ioore(parts, 0); |
+ penultimateString = parts.pop(); |
+ } else { |
+ penultimate = it.get$current(); |
+ ++count; |
+ if (!it.moveNext$0()) { |
+ if (count <= 4) { |
+ parts.push(H.S(penultimate)); |
+ return; |
+ } |
+ ultimateString = H.S(penultimate); |
+ if (0 >= parts.length) |
+ return H.ioore(parts, 0); |
+ penultimateString = parts.pop(); |
+ $length += ultimateString.length + 2; |
+ } else { |
+ ultimate = it.get$current(); |
+ ++count; |
+ for (; it.moveNext$0(); penultimate = ultimate, ultimate = ultimate0) { |
+ ultimate0 = it.get$current(); |
+ ++count; |
+ if (count > 100) { |
+ while (true) { |
+ if (!($length > 75 && count > 3)) |
+ break; |
+ if (0 >= parts.length) |
+ return H.ioore(parts, 0); |
+ $length -= parts.pop().length + 2; |
+ --count; |
+ } |
+ parts.push("..."); |
+ return; |
+ } |
+ } |
+ penultimateString = H.S(penultimate); |
+ ultimateString = H.S(ultimate); |
+ $length += ultimateString.length + penultimateString.length + 4; |
+ } |
+ } |
+ if (count > parts.length + 2) { |
+ $length += 5; |
+ elision = "..."; |
+ } else |
+ elision = null; |
+ while (true) { |
+ if (!($length > 80 && parts.length > 3)) |
+ break; |
+ if (0 >= parts.length) |
+ return H.ioore(parts, 0); |
+ $length -= parts.pop().length + 2; |
+ if (elision == null) { |
+ $length += 5; |
+ elision = "..."; |
+ } |
+ } |
+ if (elision != null) |
+ parts.push(elision); |
+ parts.push(penultimateString); |
+ parts.push(ultimateString); |
+ }, |
+ LinkedHashMap_LinkedHashMap: function(equals, hashCode, isValidKey, $K, $V) { |
+ return H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, null, null, null, 0), [$K, $V]); |
+ }, |
+ LinkedHashMap_LinkedHashMap$identity: function($K, $V) { |
+ return H.setRuntimeTypeInfo(new P._LinkedIdentityHashMap(0, null, null, null, null, null, 0), [$K, $V]); |
+ }, |
+ LinkedHashSet_LinkedHashSet: function(equals, hashCode, isValidKey, $E) { |
+ return H.setRuntimeTypeInfo(new P._LinkedHashSet(0, null, null, null, null, null, 0), [$E]); |
+ }, |
+ Maps_mapToString: function(m) { |
+ var t1, result, t2; |
+ t1 = {}; |
+ if (P.IterableBase__isToStringVisiting(m)) |
+ return "{...}"; |
+ result = new P.StringBuffer(""); |
+ try { |
+ $.get$IterableBase__toStringVisiting().push(m); |
+ t2 = result; |
+ t2._contents = t2.get$_contents() + "{"; |
+ t1.first_0 = true; |
+ J.forEach$1$ax(m, new P.Maps_mapToString_closure(t1, result)); |
+ t1 = result; |
+ t1._contents = t1.get$_contents() + "}"; |
+ } finally { |
+ t1 = $.get$IterableBase__toStringVisiting(); |
+ if (0 >= t1.length) |
+ return H.ioore(t1, 0); |
+ t1.pop(); |
+ } |
+ t1 = result.get$_contents(); |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ }, |
+ _HashMap: { |
+ "^": "Object;_collection$_length,_collection$_strings,_collection$_nums,_collection$_rest,_keys", |
+ get$length: function(_) { |
+ return this._collection$_length; |
+ }, |
+ get$isEmpty: function(_) { |
+ return this._collection$_length === 0; |
+ }, |
+ get$isNotEmpty: function(_) { |
+ return this._collection$_length !== 0; |
+ }, |
+ containsKey$1: function(key) { |
+ var strings, nums; |
+ if (typeof key === "string" && key !== "__proto__") { |
+ strings = this._collection$_strings; |
+ return strings == null ? false : strings[key] != null; |
+ } else if (typeof key === "number" && (key & 0x3ffffff) === key) { |
+ nums = this._collection$_nums; |
+ return nums == null ? false : nums[key] != null; |
+ } else |
+ return this._containsKey$1(key); |
+ }, |
+ _containsKey$1: function(key) { |
+ var rest = this._collection$_rest; |
+ if (rest == null) |
+ return false; |
+ return this._findBucketIndex$2(rest[this._computeHashCode$1(key)], key) >= 0; |
+ }, |
+ $index: function(_, key) { |
+ var strings, t1, entry, nums; |
+ if (typeof key === "string" && key !== "__proto__") { |
+ strings = this._collection$_strings; |
+ if (strings == null) |
+ t1 = null; |
+ else { |
+ entry = strings[key]; |
+ t1 = entry === strings ? null : entry; |
+ } |
+ return t1; |
+ } else if (typeof key === "number" && (key & 0x3ffffff) === key) { |
+ nums = this._collection$_nums; |
+ if (nums == null) |
+ t1 = null; |
+ else { |
+ entry = nums[key]; |
+ t1 = entry === nums ? null : entry; |
+ } |
+ return t1; |
+ } else |
+ return this._get$1(key); |
+ }, |
+ _get$1: function(key) { |
+ var rest, bucket, index; |
+ rest = this._collection$_rest; |
+ if (rest == null) |
+ return; |
+ bucket = rest[this._computeHashCode$1(key)]; |
+ index = this._findBucketIndex$2(bucket, key); |
+ return index < 0 ? null : bucket[index + 1]; |
+ }, |
+ $indexSet: function(_, key, value) { |
+ var strings, nums; |
+ if (typeof key === "string" && key !== "__proto__") { |
+ strings = this._collection$_strings; |
+ if (strings == null) { |
+ strings = P._HashMap__newHashTable(); |
+ this._collection$_strings = strings; |
+ } |
+ this._collection$_addHashTableEntry$3(strings, key, value); |
+ } else if (typeof key === "number" && (key & 0x3ffffff) === key) { |
+ nums = this._collection$_nums; |
+ if (nums == null) { |
+ nums = P._HashMap__newHashTable(); |
+ this._collection$_nums = nums; |
+ } |
+ this._collection$_addHashTableEntry$3(nums, key, value); |
+ } else |
+ this._set$2(key, value); |
+ }, |
+ _set$2: function(key, value) { |
+ var rest, hash, bucket, index; |
+ rest = this._collection$_rest; |
+ if (rest == null) { |
+ rest = P._HashMap__newHashTable(); |
+ this._collection$_rest = rest; |
+ } |
+ hash = this._computeHashCode$1(key); |
+ bucket = rest[hash]; |
+ if (bucket == null) { |
+ P._HashMap__setTableEntry(rest, hash, [key, value]); |
+ ++this._collection$_length; |
+ this._keys = null; |
+ } else { |
+ index = this._findBucketIndex$2(bucket, key); |
+ if (index >= 0) |
+ bucket[index + 1] = value; |
+ else { |
+ bucket.push(key, value); |
+ ++this._collection$_length; |
+ this._keys = null; |
+ } |
+ } |
+ }, |
+ forEach$1: function(_, action) { |
+ var keys, $length, i, key; |
+ keys = this._collection$_computeKeys$0(); |
+ for ($length = keys.length, i = 0; i < $length; ++i) { |
+ key = keys[i]; |
+ action.call$2(key, this.$index(0, key)); |
+ if (keys !== this._keys) |
+ throw H.wrapException(P.ConcurrentModificationError$(this)); |
+ } |
+ }, |
+ _collection$_computeKeys$0: function() { |
+ var t1, result, strings, names, entries, index, i, nums, rest, bucket, $length, i0; |
+ t1 = this._keys; |
+ if (t1 != null) |
+ return t1; |
+ result = Array(this._collection$_length); |
+ result.fixed$length = Array; |
+ strings = this._collection$_strings; |
+ if (strings != null) { |
+ names = Object.getOwnPropertyNames(strings); |
+ entries = names.length; |
+ for (index = 0, i = 0; i < entries; ++i) { |
+ result[index] = names[i]; |
+ ++index; |
+ } |
+ } else |
+ index = 0; |
+ nums = this._collection$_nums; |
+ if (nums != null) { |
+ names = Object.getOwnPropertyNames(nums); |
+ entries = names.length; |
+ for (i = 0; i < entries; ++i) { |
+ result[index] = +names[i]; |
+ ++index; |
+ } |
+ } |
+ rest = this._collection$_rest; |
+ if (rest != null) { |
+ names = Object.getOwnPropertyNames(rest); |
+ entries = names.length; |
+ for (i = 0; i < entries; ++i) { |
+ bucket = rest[names[i]]; |
+ $length = bucket.length; |
+ for (i0 = 0; i0 < $length; i0 += 2) { |
+ result[index] = bucket[i0]; |
+ ++index; |
+ } |
+ } |
+ } |
+ this._keys = result; |
+ return result; |
+ }, |
+ _collection$_addHashTableEntry$3: function(table, key, value) { |
+ if (table[key] == null) { |
+ ++this._collection$_length; |
+ this._keys = null; |
+ } |
+ P._HashMap__setTableEntry(table, key, value); |
+ }, |
+ _computeHashCode$1: function(key) { |
+ return J.get$hashCode$(key) & 0x3ffffff; |
+ }, |
+ _findBucketIndex$2: function(bucket, key) { |
+ var $length, i; |
+ if (bucket == null) |
+ return -1; |
+ $length = bucket.length; |
+ for (i = 0; i < $length; i += 2) |
+ if (J.$eq(bucket[i], key)) |
+ return i; |
+ return -1; |
+ }, |
+ $isMap: 1, |
+ static: {_HashMap__setTableEntry: function(table, key, value) { |
+ if (value == null) |
+ table[key] = table; |
+ else |
+ table[key] = value; |
+ }, _HashMap__newHashTable: function() { |
+ var table = Object.create(null); |
+ P._HashMap__setTableEntry(table, "<non-identifier-key>", table); |
+ delete table["<non-identifier-key>"]; |
+ return table; |
+ }} |
+ }, |
+ _LinkedIdentityHashMap: { |
+ "^": "JsLinkedHashMap;__js_helper$_length,_strings,_nums,_rest,_first,_last,_modifications", |
+ internalComputeHashCode$1: function(key) { |
+ return H.objectHashCode(key) & 0x3ffffff; |
+ }, |
+ internalFindBucketIndex$2: function(bucket, key) { |
+ var $length, i, t1; |
+ if (bucket == null) |
+ return -1; |
+ $length = bucket.length; |
+ for (i = 0; i < $length; ++i) { |
+ t1 = bucket[i].get$hashMapCellKey(); |
+ if (t1 == null ? key == null : t1 === key) |
+ return i; |
+ } |
+ return -1; |
+ } |
+ }, |
+ _LinkedHashSet: { |
+ "^": "_HashSetBase;_collection$_length,_collection$_strings,_collection$_nums,_collection$_rest,_collection$_first,_collection$_last,_collection$_modifications", |
+ get$iterator: function(_) { |
+ var t1 = new P.LinkedHashSetIterator(this, this._collection$_modifications, null, null); |
+ t1._collection$_cell = this._collection$_first; |
+ return t1; |
+ }, |
+ get$length: function(_) { |
+ return this._collection$_length; |
+ }, |
+ get$isEmpty: function(_) { |
+ return this._collection$_length === 0; |
+ }, |
+ get$isNotEmpty: function(_) { |
+ return this._collection$_length !== 0; |
+ }, |
+ contains$1: function(_, object) { |
+ var strings, nums; |
+ if (typeof object === "string" && object !== "__proto__") { |
+ strings = this._collection$_strings; |
+ if (strings == null) |
+ return false; |
+ return strings[object] != null; |
+ } else if (typeof object === "number" && (object & 0x3ffffff) === object) { |
+ nums = this._collection$_nums; |
+ if (nums == null) |
+ return false; |
+ return nums[object] != null; |
+ } else |
+ return this._contains$1(object); |
+ }, |
+ _contains$1: function(object) { |
+ var rest = this._collection$_rest; |
+ if (rest == null) |
+ return false; |
+ return this._findBucketIndex$2(rest[this._computeHashCode$1(object)], object) >= 0; |
+ }, |
+ lookup$1: function(object) { |
+ var t1; |
+ if (!(typeof object === "string" && object !== "__proto__")) |
+ t1 = typeof object === "number" && (object & 0x3ffffff) === object; |
+ else |
+ t1 = true; |
+ if (t1) |
+ return this.contains$1(0, object) ? object : null; |
+ else |
+ return this._lookup$1(object); |
+ }, |
+ _lookup$1: function(object) { |
+ var rest, bucket, index; |
+ rest = this._collection$_rest; |
+ if (rest == null) |
+ return; |
+ bucket = rest[this._computeHashCode$1(object)]; |
+ index = this._findBucketIndex$2(bucket, object); |
+ if (index < 0) |
+ return; |
+ return J.$index$asx(bucket, index).get$_element(); |
+ }, |
+ forEach$1: function(_, action) { |
+ var cell, modifications; |
+ cell = this._collection$_first; |
+ modifications = this._collection$_modifications; |
+ for (; cell != null;) { |
+ action.call$1(cell._element); |
+ if (modifications !== this._collection$_modifications) |
+ throw H.wrapException(P.ConcurrentModificationError$(this)); |
+ cell = cell._collection$_next; |
+ } |
+ }, |
+ get$last: function(_) { |
+ var t1 = this._collection$_last; |
+ if (t1 == null) |
+ throw H.wrapException(P.StateError$("No elements")); |
+ return t1._element; |
+ }, |
+ add$1: function(_, element) { |
+ var strings, table, nums; |
+ if (typeof element === "string" && element !== "__proto__") { |
+ strings = this._collection$_strings; |
+ if (strings == null) { |
+ table = Object.create(null); |
+ table["<non-identifier-key>"] = table; |
+ delete table["<non-identifier-key>"]; |
+ this._collection$_strings = table; |
+ strings = table; |
+ } |
+ return this._collection$_addHashTableEntry$2(strings, element); |
+ } else if (typeof element === "number" && (element & 0x3ffffff) === element) { |
+ nums = this._collection$_nums; |
+ if (nums == null) { |
+ table = Object.create(null); |
+ table["<non-identifier-key>"] = table; |
+ delete table["<non-identifier-key>"]; |
+ this._collection$_nums = table; |
+ nums = table; |
+ } |
+ return this._collection$_addHashTableEntry$2(nums, element); |
+ } else |
+ return this._add$1(element); |
+ }, |
+ _add$1: function(element) { |
+ var rest, hash, bucket; |
+ rest = this._collection$_rest; |
+ if (rest == null) { |
+ rest = P._LinkedHashSet__newHashTable(); |
+ this._collection$_rest = rest; |
+ } |
+ hash = this._computeHashCode$1(element); |
+ bucket = rest[hash]; |
+ if (bucket == null) |
+ rest[hash] = [this._collection$_newLinkedCell$1(element)]; |
+ else { |
+ if (this._findBucketIndex$2(bucket, element) >= 0) |
+ return false; |
+ bucket.push(this._collection$_newLinkedCell$1(element)); |
+ } |
+ return true; |
+ }, |
+ remove$1: function(_, object) { |
+ if (typeof object === "string" && object !== "__proto__") |
+ return this._collection$_removeHashTableEntry$2(this._collection$_strings, object); |
+ else if (typeof object === "number" && (object & 0x3ffffff) === object) |
+ return this._collection$_removeHashTableEntry$2(this._collection$_nums, object); |
+ else |
+ return this._remove$1(object); |
+ }, |
+ _remove$1: function(object) { |
+ var rest, bucket, index; |
+ rest = this._collection$_rest; |
+ if (rest == null) |
+ return false; |
+ bucket = rest[this._computeHashCode$1(object)]; |
+ index = this._findBucketIndex$2(bucket, object); |
+ if (index < 0) |
+ return false; |
+ this._collection$_unlinkCell$1(bucket.splice(index, 1)[0]); |
+ return true; |
+ }, |
+ clear$0: function(_) { |
+ if (this._collection$_length > 0) { |
+ this._collection$_last = null; |
+ this._collection$_first = null; |
+ this._collection$_rest = null; |
+ this._collection$_nums = null; |
+ this._collection$_strings = null; |
+ this._collection$_length = 0; |
+ this._collection$_modifications = this._collection$_modifications + 1 & 67108863; |
+ } |
+ }, |
+ _collection$_addHashTableEntry$2: function(table, element) { |
+ if (table[element] != null) |
+ return false; |
+ table[element] = this._collection$_newLinkedCell$1(element); |
+ return true; |
+ }, |
+ _collection$_removeHashTableEntry$2: function(table, element) { |
+ var cell; |
+ if (table == null) |
+ return false; |
+ cell = table[element]; |
+ if (cell == null) |
+ return false; |
+ this._collection$_unlinkCell$1(cell); |
+ delete table[element]; |
+ return true; |
+ }, |
+ _collection$_newLinkedCell$1: function(element) { |
+ var cell, last; |
+ cell = new P.LinkedHashSetCell(element, null, null); |
+ if (this._collection$_first == null) { |
+ this._collection$_last = cell; |
+ this._collection$_first = cell; |
+ } else { |
+ last = this._collection$_last; |
+ cell._collection$_previous = last; |
+ last._collection$_next = cell; |
+ this._collection$_last = cell; |
+ } |
+ ++this._collection$_length; |
+ this._collection$_modifications = this._collection$_modifications + 1 & 67108863; |
+ return cell; |
+ }, |
+ _collection$_unlinkCell$1: function(cell) { |
+ var previous, next; |
+ previous = cell.get$_collection$_previous(); |
+ next = cell._collection$_next; |
+ if (previous == null) |
+ this._collection$_first = next; |
+ else |
+ previous._collection$_next = next; |
+ if (next == null) |
+ this._collection$_last = previous; |
+ else |
+ next._collection$_previous = previous; |
+ --this._collection$_length; |
+ this._collection$_modifications = this._collection$_modifications + 1 & 67108863; |
+ }, |
+ _computeHashCode$1: function(element) { |
+ return J.get$hashCode$(element) & 0x3ffffff; |
+ }, |
+ _findBucketIndex$2: function(bucket, element) { |
+ var $length, i; |
+ if (bucket == null) |
+ return -1; |
+ $length = bucket.length; |
+ for (i = 0; i < $length; ++i) |
+ if (J.$eq(bucket[i].get$_element(), element)) |
+ return i; |
+ return -1; |
+ }, |
+ $isEfficientLength: 1, |
+ static: {_LinkedHashSet__newHashTable: function() { |
+ var table = Object.create(null); |
+ table["<non-identifier-key>"] = table; |
+ delete table["<non-identifier-key>"]; |
+ return table; |
+ }} |
+ }, |
+ LinkedHashSetCell: { |
+ "^": "Object;_element<,_collection$_next,_collection$_previous<" |
+ }, |
+ LinkedHashSetIterator: { |
+ "^": "Object;_set,_collection$_modifications,_collection$_cell,_collection$_current", |
+ get$current: function() { |
+ return this._collection$_current; |
+ }, |
+ moveNext$0: function() { |
+ var t1 = this._set; |
+ if (this._collection$_modifications !== t1._collection$_modifications) |
+ throw H.wrapException(P.ConcurrentModificationError$(t1)); |
+ else { |
+ t1 = this._collection$_cell; |
+ if (t1 == null) { |
+ this._collection$_current = null; |
+ return false; |
+ } else { |
+ this._collection$_current = t1._element; |
+ this._collection$_cell = t1._collection$_next; |
+ return true; |
+ } |
+ } |
+ } |
+ }, |
+ UnmodifiableListView: { |
+ "^": "UnmodifiableListBase;_collection$_source", |
+ get$length: function(_) { |
+ return this._collection$_source.length; |
+ }, |
+ $index: function(_, index) { |
+ var t1 = this._collection$_source; |
+ if (index >>> 0 !== index || index >= t1.length) |
+ return H.ioore(t1, index); |
+ return t1[index]; |
+ } |
+ }, |
+ HashMap_HashMap$from_closure: { |
+ "^": "Closure:15;result_0", |
+ call$2: function(k, v) { |
+ this.result_0.$indexSet(0, k, v); |
+ } |
+ }, |
+ _HashSetBase: { |
+ "^": "SetBase;" |
+ }, |
+ IterableBase: { |
+ "^": "Object;", |
+ map$1: function(_, f) { |
+ return H.MappedIterable_MappedIterable(this, f, H.getRuntimeTypeArgument(this, "IterableBase", 0), null); |
+ }, |
+ contains$1: function(_, element) { |
+ var t1; |
+ for (t1 = this.get$iterator(this); t1.moveNext$0();) |
+ if (J.$eq(t1.get$current(), element)) |
+ return true; |
+ return false; |
+ }, |
+ forEach$1: function(_, f) { |
+ var t1; |
+ for (t1 = this.get$iterator(this); t1.moveNext$0();) |
+ f.call$1(t1.get$current()); |
+ }, |
+ toList$1$growable: function(_, growable) { |
+ return P.List_List$from(this, growable, H.getRuntimeTypeArgument(this, "IterableBase", 0)); |
+ }, |
+ toList$0: function($receiver) { |
+ return this.toList$1$growable($receiver, true); |
+ }, |
+ get$length: function(_) { |
+ var it, count; |
+ it = this.get$iterator(this); |
+ for (count = 0; it.moveNext$0();) |
+ ++count; |
+ return count; |
+ }, |
+ get$isEmpty: function(_) { |
+ return !this.get$iterator(this).moveNext$0(); |
+ }, |
+ get$isNotEmpty: function(_) { |
+ return this.get$isEmpty(this) !== true; |
+ }, |
+ skipWhile$1: ["super$IterableBase$skipWhile$1", function(_, test) { |
+ return H.setRuntimeTypeInfo(new H.SkipWhileIterable(this, test), [H.getRuntimeTypeArgument(this, "IterableBase", 0)]); |
+ }], |
+ get$first: function(_) { |
+ var it = this.get$iterator(this); |
+ if (!it.moveNext$0()) |
+ throw H.wrapException(H.IterableElementError_noElement()); |
+ return it.get$current(); |
+ }, |
+ get$last: function(_) { |
+ var it, result; |
+ it = this.get$iterator(this); |
+ if (!it.moveNext$0()) |
+ throw H.wrapException(H.IterableElementError_noElement()); |
+ do |
+ result = it.get$current(); |
+ while (it.moveNext$0()); |
+ return result; |
+ }, |
+ elementAt$1: function(_, index) { |
+ var t1, elementIndex, element; |
+ if (index < 0) |
+ H.throwExpression(P.RangeError$range(index, 0, null, "index", null)); |
+ for (t1 = this.get$iterator(this), elementIndex = 0; t1.moveNext$0();) { |
+ element = t1.get$current(); |
+ if (index === elementIndex) |
+ return element; |
+ ++elementIndex; |
+ } |
+ throw H.wrapException(P.IndexError$(index, this, "index", null, elementIndex)); |
+ }, |
+ toString$0: function(_) { |
+ return P.IterableBase_iterableToShortString(this, "(", ")"); |
+ } |
+ }, |
+ ListBase: { |
+ "^": "Object_ListMixin;" |
+ }, |
+ Object_ListMixin: { |
+ "^": "Object+ListMixin;", |
+ $isList: 1, |
+ $asList: null, |
+ $isEfficientLength: 1 |
+ }, |
+ ListMixin: { |
+ "^": "Object;", |
+ get$iterator: function(receiver) { |
+ return new H.ListIterator(receiver, this.get$length(receiver), 0, null); |
+ }, |
+ elementAt$1: function(receiver, index) { |
+ return this.$index(receiver, index); |
+ }, |
+ forEach$1: function(receiver, action) { |
+ var $length, i; |
+ $length = this.get$length(receiver); |
+ for (i = 0; i < $length; ++i) { |
+ action.call$1(this.$index(receiver, i)); |
+ if ($length !== this.get$length(receiver)) |
+ throw H.wrapException(P.ConcurrentModificationError$(receiver)); |
+ } |
+ }, |
+ get$isEmpty: function(receiver) { |
+ return this.get$length(receiver) === 0; |
+ }, |
+ get$isNotEmpty: function(receiver) { |
+ return !this.get$isEmpty(receiver); |
+ }, |
+ get$last: function(receiver) { |
+ if (this.get$length(receiver) === 0) |
+ throw H.wrapException(H.IterableElementError_noElement()); |
+ return this.$index(receiver, this.get$length(receiver) - 1); |
+ }, |
+ contains$1: function(receiver, element) { |
+ var $length, i; |
+ $length = this.get$length(receiver); |
+ for (i = 0; i < this.get$length(receiver); ++i) { |
+ if (J.$eq(this.$index(receiver, i), element)) |
+ return true; |
+ if ($length !== this.get$length(receiver)) |
+ throw H.wrapException(P.ConcurrentModificationError$(receiver)); |
+ } |
+ return false; |
+ }, |
+ map$1: function(receiver, f) { |
+ return H.setRuntimeTypeInfo(new H.MappedListIterable(receiver, f), [null, null]); |
+ }, |
+ skip$1: function(receiver, count) { |
+ return H.SubListIterable$(receiver, count, null, H.getRuntimeTypeArgument(receiver, "ListMixin", 0)); |
+ }, |
+ add$1: function(receiver, element) { |
+ var t1 = this.get$length(receiver); |
+ this.set$length(receiver, t1 + 1); |
+ this.$indexSet(receiver, t1, element); |
+ }, |
+ indexOf$2: function(receiver, element, startIndex) { |
+ var i; |
+ if (startIndex >= this.get$length(receiver)) |
+ return -1; |
+ if (startIndex < 0) |
+ startIndex = 0; |
+ for (i = startIndex; i < this.get$length(receiver); ++i) |
+ if (J.$eq(this.$index(receiver, i), element)) |
+ return i; |
+ return -1; |
+ }, |
+ indexOf$1: function($receiver, element) { |
+ return this.indexOf$2($receiver, element, 0); |
+ }, |
+ get$reversed: function(receiver) { |
+ return H.setRuntimeTypeInfo(new H.ReversedListIterable(receiver), [H.getRuntimeTypeArgument(receiver, "ListMixin", 0)]); |
+ }, |
+ toString$0: function(receiver) { |
+ return P.IterableBase_iterableToFullString(receiver, "[", "]"); |
+ }, |
+ $isList: 1, |
+ $asList: null, |
+ $isEfficientLength: 1 |
+ }, |
+ _UnmodifiableMapMixin: { |
+ "^": "Object;", |
+ $indexSet: function(_, key, value) { |
+ throw H.wrapException(P.UnsupportedError$("Cannot modify unmodifiable map")); |
+ }, |
+ $isMap: 1 |
+ }, |
+ MapView: { |
+ "^": "Object;", |
+ $index: function(_, key) { |
+ return J.$index$asx(this._collection$_map, key); |
+ }, |
+ $indexSet: function(_, key, value) { |
+ J.$indexSet$ax(this._collection$_map, key, value); |
+ }, |
+ forEach$1: function(_, action) { |
+ J.forEach$1$ax(this._collection$_map, action); |
+ }, |
+ get$isEmpty: function(_) { |
+ return J.get$isEmpty$asx(this._collection$_map); |
+ }, |
+ get$isNotEmpty: function(_) { |
+ return J.get$isNotEmpty$asx(this._collection$_map); |
+ }, |
+ get$length: function(_) { |
+ return J.get$length$asx(this._collection$_map); |
+ }, |
+ toString$0: function(_) { |
+ return J.toString$0(this._collection$_map); |
+ }, |
+ $isMap: 1 |
+ }, |
+ UnmodifiableMapView: { |
+ "^": "MapView+_UnmodifiableMapMixin;_collection$_map", |
+ $isMap: 1 |
+ }, |
+ Maps_mapToString_closure: { |
+ "^": "Closure:15;box_0,result_1", |
+ call$2: function(k, v) { |
+ var t1, t2; |
+ t1 = this.box_0; |
+ if (!t1.first_0) |
+ this.result_1._contents += ", "; |
+ t1.first_0 = false; |
+ t1 = this.result_1; |
+ t2 = t1._contents += H.S(k); |
+ t1._contents = t2 + ": "; |
+ t1._contents += H.S(v); |
+ } |
+ }, |
+ ListQueue: { |
+ "^": "IterableBase;_table,_head,_tail,_modificationCount", |
+ get$iterator: function(_) { |
+ return new P._ListQueueIterator(this, this._tail, this._modificationCount, this._head, null); |
+ }, |
+ forEach$1: function(_, action) { |
+ var modificationCount, i, t1; |
+ modificationCount = this._modificationCount; |
+ for (i = this._head; i !== this._tail; i = (i + 1 & this._table.length - 1) >>> 0) { |
+ t1 = this._table; |
+ if (i < 0 || i >= t1.length) |
+ return H.ioore(t1, i); |
+ action.call$1(t1[i]); |
+ if (modificationCount !== this._modificationCount) |
+ H.throwExpression(P.ConcurrentModificationError$(this)); |
+ } |
+ }, |
+ get$isEmpty: function(_) { |
+ return this._head === this._tail; |
+ }, |
+ get$length: function(_) { |
+ return (this._tail - this._head & this._table.length - 1) >>> 0; |
+ }, |
+ get$last: function(_) { |
+ var t1, t2, t3; |
+ t1 = this._head; |
+ t2 = this._tail; |
+ if (t1 === t2) |
+ throw H.wrapException(H.IterableElementError_noElement()); |
+ t1 = this._table; |
+ t3 = t1.length; |
+ t2 = (t2 - 1 & t3 - 1) >>> 0; |
+ if (t2 < 0 || t2 >= t3) |
+ return H.ioore(t1, t2); |
+ return t1[t2]; |
+ }, |
+ add$1: function(_, element) { |
+ this._add$1(element); |
+ }, |
+ clear$0: function(_) { |
+ var i, t1, t2, t3, t4; |
+ i = this._head; |
+ t1 = this._tail; |
+ if (i !== t1) { |
+ for (t2 = this._table, t3 = t2.length, t4 = t3 - 1; i !== t1; i = (i + 1 & t4) >>> 0) { |
+ if (i < 0 || i >= t3) |
+ return H.ioore(t2, i); |
+ t2[i] = null; |
+ } |
+ this._tail = 0; |
+ this._head = 0; |
+ ++this._modificationCount; |
+ } |
+ }, |
+ toString$0: function(_) { |
+ return P.IterableBase_iterableToFullString(this, "{", "}"); |
+ }, |
+ removeFirst$0: function() { |
+ var t1, t2, t3, result; |
+ t1 = this._head; |
+ if (t1 === this._tail) |
+ throw H.wrapException(H.IterableElementError_noElement()); |
+ ++this._modificationCount; |
+ t2 = this._table; |
+ t3 = t2.length; |
+ if (t1 >= t3) |
+ return H.ioore(t2, t1); |
+ result = t2[t1]; |
+ t2[t1] = null; |
+ this._head = (t1 + 1 & t3 - 1) >>> 0; |
+ return result; |
+ }, |
+ _add$1: function(element) { |
+ var t1, t2, t3; |
+ t1 = this._table; |
+ t2 = this._tail; |
+ t3 = t1.length; |
+ if (t2 < 0 || t2 >= t3) |
+ return H.ioore(t1, t2); |
+ t1[t2] = element; |
+ t3 = (t2 + 1 & t3 - 1) >>> 0; |
+ this._tail = t3; |
+ if (this._head === t3) |
+ this._grow$0(); |
+ ++this._modificationCount; |
+ }, |
+ _grow$0: function() { |
+ var t1, newTable, t2, split; |
+ t1 = Array(this._table.length * 2); |
+ t1.fixed$length = Array; |
+ newTable = H.setRuntimeTypeInfo(t1, [H.getTypeArgumentByIndex(this, 0)]); |
+ t1 = this._table; |
+ t2 = this._head; |
+ split = t1.length - t2; |
+ C.JSArray_methods.setRange$4(newTable, 0, split, t1, t2); |
+ C.JSArray_methods.setRange$4(newTable, split, split + this._head, this._table, 0); |
+ this._head = 0; |
+ this._tail = this._table.length; |
+ this._table = newTable; |
+ }, |
+ ListQueue$1: function(initialCapacity, $E) { |
+ var t1 = Array(8); |
+ t1.fixed$length = Array; |
+ this._table = H.setRuntimeTypeInfo(t1, [$E]); |
+ }, |
+ $isEfficientLength: 1, |
+ static: {ListQueue$: function(initialCapacity, $E) { |
+ var t1 = H.setRuntimeTypeInfo(new P.ListQueue(null, 0, 0, 0), [$E]); |
+ t1.ListQueue$1(initialCapacity, $E); |
+ return t1; |
+ }} |
+ }, |
+ _ListQueueIterator: { |
+ "^": "Object;_queue,_end,_modificationCount,_collection$_position,_collection$_current", |
+ get$current: function() { |
+ return this._collection$_current; |
+ }, |
+ moveNext$0: function() { |
+ var t1, t2, t3; |
+ t1 = this._queue; |
+ if (this._modificationCount !== t1._modificationCount) |
+ H.throwExpression(P.ConcurrentModificationError$(t1)); |
+ t2 = this._collection$_position; |
+ if (t2 === this._end) { |
+ this._collection$_current = null; |
+ return false; |
+ } |
+ t1 = t1._table; |
+ t3 = t1.length; |
+ if (t2 >= t3) |
+ return H.ioore(t1, t2); |
+ this._collection$_current = t1[t2]; |
+ this._collection$_position = (t2 + 1 & t3 - 1) >>> 0; |
+ return true; |
+ } |
+ }, |
+ SetMixin: { |
+ "^": "Object;", |
+ get$isEmpty: function(_) { |
+ return this.get$length(this) === 0; |
+ }, |
+ get$isNotEmpty: function(_) { |
+ return this.get$length(this) !== 0; |
+ }, |
+ map$1: function(_, f) { |
+ return H.setRuntimeTypeInfo(new H.EfficientLengthMappedIterable(this, f), [H.getTypeArgumentByIndex(this, 0), null]); |
+ }, |
+ toString$0: function(_) { |
+ return P.IterableBase_iterableToFullString(this, "{", "}"); |
+ }, |
+ forEach$1: function(_, f) { |
+ var t1; |
+ for (t1 = this.get$iterator(this); t1.moveNext$0();) |
+ f.call$1(t1._collection$_current); |
+ }, |
+ get$last: function(_) { |
+ var it, result; |
+ it = this.get$iterator(this); |
+ if (!it.moveNext$0()) |
+ throw H.wrapException(H.IterableElementError_noElement()); |
+ do |
+ result = it._collection$_current; |
+ while (it.moveNext$0()); |
+ return result; |
+ }, |
+ $isEfficientLength: 1 |
+ }, |
+ SetBase: { |
+ "^": "SetMixin;" |
+ } |
+}], |
+["dart.convert", "dart:convert", , P, { |
+ "^": "", |
+ _convertJsonToDartLazy: function(object) { |
+ var i; |
+ if (object == null) |
+ return; |
+ if (typeof object != "object") |
+ return object; |
+ if (Object.getPrototypeOf(object) !== Array.prototype) |
+ return new P._JsonMap(object, Object.create(null), null); |
+ for (i = 0; i < object.length; ++i) |
+ object[i] = P._convertJsonToDartLazy(object[i]); |
+ return object; |
+ }, |
+ _parseJson: function(source, reviver) { |
+ var parsed, e, t1, exception; |
+ t1 = source; |
+ if (typeof t1 !== "string") |
+ throw H.wrapException(P.ArgumentError$(source)); |
+ parsed = null; |
+ try { |
+ parsed = JSON.parse(source); |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ throw H.wrapException(P.FormatException$(String(e), null, null)); |
+ } |
+ return P._convertJsonToDartLazy(parsed); |
+ }, |
+ _defaultToEncodable: [function(object) { |
+ return object.toJson$0(); |
+ }, "call$1", "_defaultToEncodable$closure", 2, 0, 45], |
+ _JsonMap: { |
+ "^": "Object;_original,_processed,_data", |
+ $index: function(_, key) { |
+ var t1, result; |
+ t1 = this._processed; |
+ if (t1 == null) |
+ return this._data.$index(0, key); |
+ else if (typeof key !== "string") |
+ return; |
+ else { |
+ result = t1[key]; |
+ return typeof result == "undefined" ? this._process$1(key) : result; |
+ } |
+ }, |
+ get$length: function(_) { |
+ var t1; |
+ if (this._processed == null) { |
+ t1 = this._data; |
+ t1 = t1.get$length(t1); |
+ } else |
+ t1 = this._computeKeys$0().length; |
+ return t1; |
+ }, |
+ get$isEmpty: function(_) { |
+ var t1; |
+ if (this._processed == null) { |
+ t1 = this._data; |
+ t1 = t1.get$length(t1); |
+ } else |
+ t1 = this._computeKeys$0().length; |
+ return t1 === 0; |
+ }, |
+ get$isNotEmpty: function(_) { |
+ var t1; |
+ if (this._processed == null) { |
+ t1 = this._data; |
+ t1 = t1.get$length(t1); |
+ } else |
+ t1 = this._computeKeys$0().length; |
+ return t1 > 0; |
+ }, |
+ $indexSet: function(_, key, value) { |
+ var processed, original; |
+ if (this._processed == null) |
+ this._data.$indexSet(0, key, value); |
+ else if (this.containsKey$1(key)) { |
+ processed = this._processed; |
+ processed[key] = value; |
+ original = this._original; |
+ if (original == null ? processed != null : original !== processed) |
+ original[key] = null; |
+ } else |
+ this._upgrade$0().$indexSet(0, key, value); |
+ }, |
+ containsKey$1: function(key) { |
+ if (this._processed == null) |
+ return this._data.containsKey$1(key); |
+ if (typeof key !== "string") |
+ return false; |
+ return Object.prototype.hasOwnProperty.call(this._original, key); |
+ }, |
+ forEach$1: function(_, f) { |
+ var keys, i, key, value; |
+ if (this._processed == null) |
+ return this._data.forEach$1(0, f); |
+ keys = this._computeKeys$0(); |
+ for (i = 0; i < keys.length; ++i) { |
+ key = keys[i]; |
+ value = this._processed[key]; |
+ if (typeof value == "undefined") { |
+ value = P._convertJsonToDartLazy(this._original[key]); |
+ this._processed[key] = value; |
+ } |
+ f.call$2(key, value); |
+ if (keys !== this._data) |
+ throw H.wrapException(P.ConcurrentModificationError$(this)); |
+ } |
+ }, |
+ toString$0: function(_) { |
+ return P.Maps_mapToString(this); |
+ }, |
+ _computeKeys$0: function() { |
+ var keys = this._data; |
+ if (keys == null) { |
+ keys = Object.keys(this._original); |
+ this._data = keys; |
+ } |
+ return keys; |
+ }, |
+ _upgrade$0: function() { |
+ var result, keys, i, t1, key; |
+ if (this._processed == null) |
+ return this._data; |
+ result = P.LinkedHashMap_LinkedHashMap$_empty(null, null); |
+ keys = this._computeKeys$0(); |
+ for (i = 0; t1 = keys.length, i < t1; ++i) { |
+ key = keys[i]; |
+ result.$indexSet(0, key, this.$index(0, key)); |
+ } |
+ if (t1 === 0) |
+ keys.push(null); |
+ else |
+ C.JSArray_methods.set$length(keys, 0); |
+ this._processed = null; |
+ this._original = null; |
+ this._data = result; |
+ return result; |
+ }, |
+ _process$1: function(key) { |
+ var result; |
+ if (!Object.prototype.hasOwnProperty.call(this._original, key)) |
+ return; |
+ result = P._convertJsonToDartLazy(this._original[key]); |
+ return this._processed[key] = result; |
+ }, |
+ $isMap: 1, |
+ $asMap: $.functionThatReturnsNull |
+ }, |
+ Codec: { |
+ "^": "Object;" |
+ }, |
+ Converter: { |
+ "^": "Object;" |
+ }, |
+ Encoding: { |
+ "^": "Codec;" |
+ }, |
+ JsonUnsupportedObjectError: { |
+ "^": "Error;unsupportedObject,cause", |
+ toString$0: function(_) { |
+ if (this.cause != null) |
+ return "Converting object to an encodable object failed."; |
+ else |
+ return "Converting object did not return an encodable object."; |
+ }, |
+ static: {JsonUnsupportedObjectError$: function(unsupportedObject, cause) { |
+ return new P.JsonUnsupportedObjectError(unsupportedObject, cause); |
+ }} |
+ }, |
+ JsonCyclicError: { |
+ "^": "JsonUnsupportedObjectError;unsupportedObject,cause", |
+ toString$0: function(_) { |
+ return "Cyclic error in JSON stringify"; |
+ } |
+ }, |
+ JsonCodec: { |
+ "^": "Codec;_reviver,_toEncodable", |
+ decode$2$reviver: function(source, reviver) { |
+ return P._parseJson(source, this.get$decoder()._reviver); |
+ }, |
+ decode$1: function(source) { |
+ return this.decode$2$reviver(source, null); |
+ }, |
+ encode$2$toEncodable: function(value, toEncodable) { |
+ var t1 = this.get$encoder(); |
+ return P._JsonStringStringifier_stringify(value, t1._toEncodable, t1.indent); |
+ }, |
+ encode$1: function(value) { |
+ return this.encode$2$toEncodable(value, null); |
+ }, |
+ get$encoder: function() { |
+ return C.JsonEncoder_null_null; |
+ }, |
+ get$decoder: function() { |
+ return C.JsonDecoder_null; |
+ } |
+ }, |
+ JsonEncoder: { |
+ "^": "Converter;indent,_toEncodable" |
+ }, |
+ JsonDecoder: { |
+ "^": "Converter;_reviver" |
+ }, |
+ _JsonStringifier: { |
+ "^": "Object;", |
+ writeStringContent$1: function(s) { |
+ var t1, $length, offset, i, charCode, t2; |
+ t1 = J.getInterceptor$asx(s); |
+ $length = t1.get$length(s); |
+ if (typeof $length !== "number") |
+ return H.iae($length); |
+ offset = 0; |
+ i = 0; |
+ for (; i < $length; ++i) { |
+ charCode = t1.codeUnitAt$1(s, i); |
+ if (charCode > 92) |
+ continue; |
+ if (charCode < 32) { |
+ if (i > offset) |
+ this.writeStringSlice$3(s, offset, i); |
+ offset = i + 1; |
+ this.writeCharCode$1(92); |
+ switch (charCode) { |
+ case 8: |
+ this.writeCharCode$1(98); |
+ break; |
+ case 9: |
+ this.writeCharCode$1(116); |
+ break; |
+ case 10: |
+ this.writeCharCode$1(110); |
+ break; |
+ case 12: |
+ this.writeCharCode$1(102); |
+ break; |
+ case 13: |
+ this.writeCharCode$1(114); |
+ break; |
+ default: |
+ this.writeCharCode$1(117); |
+ this.writeCharCode$1(48); |
+ this.writeCharCode$1(48); |
+ t2 = charCode >>> 4 & 15; |
+ this.writeCharCode$1(t2 < 10 ? 48 + t2 : 87 + t2); |
+ t2 = charCode & 15; |
+ this.writeCharCode$1(t2 < 10 ? 48 + t2 : 87 + t2); |
+ break; |
+ } |
+ } else if (charCode === 34 || charCode === 92) { |
+ if (i > offset) |
+ this.writeStringSlice$3(s, offset, i); |
+ offset = i + 1; |
+ this.writeCharCode$1(92); |
+ this.writeCharCode$1(charCode); |
+ } |
+ } |
+ if (offset === 0) |
+ this.writeString$1(s); |
+ else if (offset < $length) |
+ this.writeStringSlice$3(s, offset, $length); |
+ }, |
+ _checkCycle$1: function(object) { |
+ var t1, t2, i, t3; |
+ for (t1 = this._seen, t2 = t1.length, i = 0; i < t2; ++i) { |
+ t3 = t1[i]; |
+ if (object == null ? t3 == null : object === t3) |
+ throw H.wrapException(new P.JsonCyclicError(object, null)); |
+ } |
+ t1.push(object); |
+ }, |
+ _removeSeen$1: function(object) { |
+ var t1 = this._seen; |
+ if (0 >= t1.length) |
+ return H.ioore(t1, 0); |
+ t1.pop(); |
+ }, |
+ writeObject$1: function(object) { |
+ var customJson, e, t1, exception; |
+ if (this.writeJsonValue$1(object)) |
+ return; |
+ this._checkCycle$1(object); |
+ try { |
+ customJson = this._toEncodable$1(object); |
+ if (!this.writeJsonValue$1(customJson)) { |
+ t1 = P.JsonUnsupportedObjectError$(object, null); |
+ throw H.wrapException(t1); |
+ } |
+ t1 = this._seen; |
+ if (0 >= t1.length) |
+ return H.ioore(t1, 0); |
+ t1.pop(); |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ e = t1; |
+ throw H.wrapException(P.JsonUnsupportedObjectError$(object, e)); |
+ } |
+ }, |
+ writeJsonValue$1: function(object) { |
+ var t1; |
+ if (typeof object === "number") { |
+ if (!C.JSNumber_methods.get$isFinite(object)) |
+ return false; |
+ this.writeNumber$1(object); |
+ return true; |
+ } else if (object === true) { |
+ this.writeString$1("true"); |
+ return true; |
+ } else if (object === false) { |
+ this.writeString$1("false"); |
+ return true; |
+ } else if (object == null) { |
+ this.writeString$1("null"); |
+ return true; |
+ } else if (typeof object === "string") { |
+ this.writeString$1("\""); |
+ this.writeStringContent$1(object); |
+ this.writeString$1("\""); |
+ return true; |
+ } else { |
+ t1 = J.getInterceptor(object); |
+ if (!!t1.$isList) { |
+ this._checkCycle$1(object); |
+ this.writeList$1(object); |
+ this._removeSeen$1(object); |
+ return true; |
+ } else if (!!t1.$isMap) { |
+ this._checkCycle$1(object); |
+ this.writeMap$1(object); |
+ this._removeSeen$1(object); |
+ return true; |
+ } else |
+ return false; |
+ } |
+ }, |
+ writeList$1: function(list) { |
+ var t1, i; |
+ this.writeString$1("["); |
+ t1 = J.getInterceptor$asx(list); |
+ if (t1.get$length(list) > 0) { |
+ this.writeObject$1(t1.$index(list, 0)); |
+ for (i = 1; i < t1.get$length(list); ++i) { |
+ this.writeString$1(","); |
+ this.writeObject$1(t1.$index(list, i)); |
+ } |
+ } |
+ this.writeString$1("]"); |
+ }, |
+ writeMap$1: function(map) { |
+ var t1 = {}; |
+ this.writeString$1("{"); |
+ t1.separator_0 = "\""; |
+ map.forEach$1(0, new P._JsonStringifier_writeMap_closure(t1, this)); |
+ this.writeString$1("}"); |
+ }, |
+ _toEncodable$1: function(arg0) { |
+ return this._toEncodable.call$1(arg0); |
+ } |
+ }, |
+ _JsonStringifier_writeMap_closure: { |
+ "^": "Closure:16;box_0,this_1", |
+ call$2: function(key, value) { |
+ var t1, t2; |
+ t1 = this.this_1; |
+ t2 = this.box_0; |
+ t1.writeString$1(t2.separator_0); |
+ t2.separator_0 = ",\""; |
+ t1.writeStringContent$1(key); |
+ t1.writeString$1("\":"); |
+ t1.writeObject$1(value); |
+ } |
+ }, |
+ _JsonStringStringifier: { |
+ "^": "_JsonStringifier;_sink,_seen,_toEncodable", |
+ writeNumber$1: function(number) { |
+ this._sink._contents += C.JSNumber_methods.toString$0(number); |
+ }, |
+ writeString$1: function(string) { |
+ this._sink._contents += H.S(string); |
+ }, |
+ writeStringSlice$3: function(string, start, end) { |
+ this._sink._contents += J.substring$2$s(string, start, end); |
+ }, |
+ writeCharCode$1: function(charCode) { |
+ this._sink._contents += H.Primitives_stringFromCharCode(charCode); |
+ }, |
+ static: {_JsonStringStringifier_stringify: function(object, toEncodable, indent) { |
+ var output, t1, stringifier; |
+ output = new P.StringBuffer(""); |
+ t1 = P._defaultToEncodable$closure(); |
+ stringifier = new P._JsonStringStringifier(output, [], t1); |
+ stringifier.writeObject$1(object); |
+ t1 = output._contents; |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ }} |
+ }, |
+ Utf8Codec: { |
+ "^": "Encoding;_allowMalformed", |
+ get$encoder: function() { |
+ return new P.Utf8Encoder(); |
+ } |
+ }, |
+ Utf8Encoder: { |
+ "^": "Converter;", |
+ convert$3: function(string, start, end) { |
+ var t1, stringLength, t2, $length, t3, encoder; |
+ t1 = J.getInterceptor$asx(string); |
+ stringLength = t1.get$length(string); |
+ P.RangeError_checkValidRange(start, end, stringLength, null, null, null); |
+ t2 = J.getInterceptor$n(stringLength); |
+ $length = t2.$sub(stringLength, start); |
+ t3 = J.getInterceptor($length); |
+ if (t3.$eq($length, 0)) |
+ return new Uint8Array(0); |
+ t3 = t3.$mul($length, 3); |
+ if (typeof t3 !== "number" || Math.floor(t3) !== t3) |
+ H.throwExpression(P.ArgumentError$("Invalid length " + H.S(t3))); |
+ t3 = new Uint8Array(t3); |
+ encoder = new P._Utf8Encoder(0, 0, t3); |
+ if (encoder._fillBuffer$3(string, start, stringLength) !== stringLength) |
+ encoder._writeSurrogate$2(t1.codeUnitAt$1(string, t2.$sub(stringLength, 1)), 0); |
+ return new Uint8Array(t3.subarray(0, C.NativeUint8List_methods._checkSublistArguments$3(t3, 0, encoder._bufferIndex, t3.length))); |
+ }, |
+ convert$1: function(string) { |
+ return this.convert$3(string, 0, null); |
+ } |
+ }, |
+ _Utf8Encoder: { |
+ "^": "Object;_carry,_bufferIndex,_buffer", |
+ _writeSurrogate$2: function(leadingSurrogate, nextCodeUnit) { |
+ var t1, t2, rune, t3, t4; |
+ t1 = this._buffer; |
+ t2 = this._bufferIndex; |
+ if ((nextCodeUnit & 64512) === 56320) { |
+ rune = 65536 + ((leadingSurrogate & 1023) << 10 >>> 0) | nextCodeUnit & 1023; |
+ t3 = t2 + 1; |
+ this._bufferIndex = t3; |
+ t4 = t1.length; |
+ if (t2 >= t4) |
+ return H.ioore(t1, t2); |
+ t1[t2] = (240 | rune >>> 18) >>> 0; |
+ t2 = t3 + 1; |
+ this._bufferIndex = t2; |
+ if (t3 >= t4) |
+ return H.ioore(t1, t3); |
+ t1[t3] = 128 | rune >>> 12 & 63; |
+ t3 = t2 + 1; |
+ this._bufferIndex = t3; |
+ if (t2 >= t4) |
+ return H.ioore(t1, t2); |
+ t1[t2] = 128 | rune >>> 6 & 63; |
+ this._bufferIndex = t3 + 1; |
+ if (t3 >= t4) |
+ return H.ioore(t1, t3); |
+ t1[t3] = 128 | rune & 63; |
+ return true; |
+ } else { |
+ t3 = t2 + 1; |
+ this._bufferIndex = t3; |
+ t4 = t1.length; |
+ if (t2 >= t4) |
+ return H.ioore(t1, t2); |
+ t1[t2] = 224 | leadingSurrogate >>> 12; |
+ t2 = t3 + 1; |
+ this._bufferIndex = t2; |
+ if (t3 >= t4) |
+ return H.ioore(t1, t3); |
+ t1[t3] = 128 | leadingSurrogate >>> 6 & 63; |
+ this._bufferIndex = t2 + 1; |
+ if (t2 >= t4) |
+ return H.ioore(t1, t2); |
+ t1[t2] = 128 | leadingSurrogate & 63; |
+ return false; |
+ } |
+ }, |
+ _fillBuffer$3: function(str, start, end) { |
+ var t1, t2, t3, stringIndex, codeUnit, t4, stringIndex0, t5; |
+ if (start !== end && (J.codeUnitAt$1$s(str, J.$sub$n(end, 1)) & 64512) === 55296) |
+ end = J.$sub$n(end, 1); |
+ if (typeof end !== "number") |
+ return H.iae(end); |
+ t1 = this._buffer; |
+ t2 = t1.length; |
+ t3 = J.getInterceptor$s(str); |
+ stringIndex = start; |
+ for (; stringIndex < end; ++stringIndex) { |
+ codeUnit = t3.codeUnitAt$1(str, stringIndex); |
+ if (codeUnit <= 127) { |
+ t4 = this._bufferIndex; |
+ if (t4 >= t2) |
+ break; |
+ this._bufferIndex = t4 + 1; |
+ t1[t4] = codeUnit; |
+ } else if ((codeUnit & 64512) === 55296) { |
+ if (this._bufferIndex + 3 >= t2) |
+ break; |
+ stringIndex0 = stringIndex + 1; |
+ if (this._writeSurrogate$2(codeUnit, C.JSString_methods.codeUnitAt$1(str, stringIndex0))) |
+ stringIndex = stringIndex0; |
+ } else if (codeUnit <= 2047) { |
+ t4 = this._bufferIndex; |
+ t5 = t4 + 1; |
+ if (t5 >= t2) |
+ break; |
+ this._bufferIndex = t5; |
+ if (t4 >= t2) |
+ return H.ioore(t1, t4); |
+ t1[t4] = 192 | codeUnit >>> 6; |
+ this._bufferIndex = t5 + 1; |
+ t1[t5] = 128 | codeUnit & 63; |
+ } else { |
+ t4 = this._bufferIndex; |
+ if (t4 + 2 >= t2) |
+ break; |
+ t5 = t4 + 1; |
+ this._bufferIndex = t5; |
+ if (t4 >= t2) |
+ return H.ioore(t1, t4); |
+ t1[t4] = 224 | codeUnit >>> 12; |
+ t4 = t5 + 1; |
+ this._bufferIndex = t4; |
+ if (t5 >= t2) |
+ return H.ioore(t1, t5); |
+ t1[t5] = 128 | codeUnit >>> 6 & 63; |
+ this._bufferIndex = t4 + 1; |
+ if (t4 >= t2) |
+ return H.ioore(t1, t4); |
+ t1[t4] = 128 | codeUnit & 63; |
+ } |
+ } |
+ return stringIndex; |
+ } |
+ }, |
+ Utf8Decoder: { |
+ "^": "Converter;_allowMalformed", |
+ convert$3: function(codeUnits, start, end) { |
+ var $length, buffer, decoder, t1; |
+ $length = J.get$length$asx(codeUnits); |
+ P.RangeError_checkValidRange(start, end, $length, null, null, null); |
+ buffer = new P.StringBuffer(""); |
+ decoder = new P._Utf8Decoder(this._allowMalformed, buffer, true, 0, 0, 0); |
+ decoder.convert$3(codeUnits, start, $length); |
+ decoder.flush$0(); |
+ t1 = buffer._contents; |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ }, |
+ convert$1: function(codeUnits) { |
+ return this.convert$3(codeUnits, 0, null); |
+ } |
+ }, |
+ _Utf8Decoder: { |
+ "^": "Object;_allowMalformed,_stringSink,_isFirstCharacter,_value,_expectedUnits,_extraUnits", |
+ close$0: function(_) { |
+ this.flush$0(); |
+ }, |
+ flush$0: function() { |
+ if (this._expectedUnits > 0) { |
+ if (!this._allowMalformed) |
+ throw H.wrapException(P.FormatException$("Unfinished UTF-8 octet sequence", null, null)); |
+ this._stringSink._contents += H.Primitives_stringFromCharCode(65533); |
+ this._value = 0; |
+ this._expectedUnits = 0; |
+ this._extraUnits = 0; |
+ } |
+ }, |
+ convert$3: function(codeUnits, startIndex, endIndex) { |
+ var value, expectedUnits, extraUnits, t1, t2, t3, t4, t5, i, unit, t6, oneBytes, i0; |
+ value = this._value; |
+ expectedUnits = this._expectedUnits; |
+ extraUnits = this._extraUnits; |
+ this._value = 0; |
+ this._expectedUnits = 0; |
+ this._extraUnits = 0; |
+ t1 = new P._Utf8Decoder_convert_scanOneByteCharacters(endIndex); |
+ t2 = new P._Utf8Decoder_convert_addSingleBytes(this, codeUnits, startIndex, endIndex); |
+ $loop$0: |
+ for (t3 = this._stringSink, t4 = !this._allowMalformed, t5 = J.getInterceptor$asx(codeUnits), i = startIndex; true; i = i0) { |
+ $multibyte$2: |
+ if (expectedUnits > 0) { |
+ do { |
+ if (i === endIndex) |
+ break $loop$0; |
+ unit = t5.$index(codeUnits, i); |
+ if (typeof unit !== "number") |
+ return unit.$and(); |
+ if ((unit & 192) !== 128) { |
+ if (t4) |
+ throw H.wrapException(P.FormatException$("Bad UTF-8 encoding 0x" + C.JSNumber_methods.toRadixString$1(unit, 16), null, null)); |
+ this._isFirstCharacter = false; |
+ t3._contents += H.Primitives_stringFromCharCode(65533); |
+ expectedUnits = 0; |
+ break $multibyte$2; |
+ } else { |
+ value = (value << 6 | unit & 63) >>> 0; |
+ --expectedUnits; |
+ ++i; |
+ } |
+ } while (expectedUnits > 0); |
+ t6 = extraUnits - 1; |
+ if (t6 < 0 || t6 >= 4) |
+ return H.ioore(C.List_127_2047_65535_1114111, t6); |
+ if (value <= C.List_127_2047_65535_1114111[t6]) { |
+ if (t4) |
+ throw H.wrapException(P.FormatException$("Overlong encoding of 0x" + C.JSInt_methods.toRadixString$1(value, 16), null, null)); |
+ value = 65533; |
+ expectedUnits = 0; |
+ extraUnits = 0; |
+ } |
+ if (value > 1114111) { |
+ if (t4) |
+ throw H.wrapException(P.FormatException$("Character outside valid Unicode range: 0x" + C.JSInt_methods.toRadixString$1(value, 16), null, null)); |
+ value = 65533; |
+ } |
+ if (!this._isFirstCharacter || value !== 65279) |
+ t3._contents += H.Primitives_stringFromCharCode(value); |
+ this._isFirstCharacter = false; |
+ } |
+ for (; i < endIndex; i = i0) { |
+ oneBytes = t1.call$2(codeUnits, i); |
+ if (J.$gt$n(oneBytes, 0)) { |
+ this._isFirstCharacter = false; |
+ if (typeof oneBytes !== "number") |
+ return H.iae(oneBytes); |
+ i0 = i + oneBytes; |
+ t2.call$2(i, i0); |
+ if (i0 === endIndex) |
+ break; |
+ i = i0; |
+ } |
+ i0 = i + 1; |
+ unit = t5.$index(codeUnits, i); |
+ t6 = J.getInterceptor$n(unit); |
+ if (t6.$lt(unit, 0)) { |
+ if (t4) |
+ throw H.wrapException(P.FormatException$("Negative UTF-8 code unit: -0x" + J.toRadixString$1$n(t6.$negate(unit), 16), null, null)); |
+ t3._contents += H.Primitives_stringFromCharCode(65533); |
+ } else { |
+ if (typeof unit !== "number") |
+ return unit.$and(); |
+ if ((unit & 224) === 192) { |
+ value = unit & 31; |
+ expectedUnits = 1; |
+ extraUnits = 1; |
+ continue $loop$0; |
+ } |
+ if ((unit & 240) === 224) { |
+ value = unit & 15; |
+ expectedUnits = 2; |
+ extraUnits = 2; |
+ continue $loop$0; |
+ } |
+ if ((unit & 248) === 240 && unit < 245) { |
+ value = unit & 7; |
+ expectedUnits = 3; |
+ extraUnits = 3; |
+ continue $loop$0; |
+ } |
+ if (t4) |
+ throw H.wrapException(P.FormatException$("Bad UTF-8 encoding 0x" + C.JSNumber_methods.toRadixString$1(unit, 16), null, null)); |
+ this._isFirstCharacter = false; |
+ t3._contents += H.Primitives_stringFromCharCode(65533); |
+ value = 65533; |
+ expectedUnits = 0; |
+ extraUnits = 0; |
+ } |
+ } |
+ break $loop$0; |
+ } |
+ if (expectedUnits > 0) { |
+ this._value = value; |
+ this._expectedUnits = expectedUnits; |
+ this._extraUnits = extraUnits; |
+ } |
+ } |
+ }, |
+ _Utf8Decoder_convert_scanOneByteCharacters: { |
+ "^": "Closure:17;endIndex_0", |
+ call$2: function(units, from) { |
+ var to, t1, i, unit; |
+ to = this.endIndex_0; |
+ for (t1 = J.getInterceptor$asx(units), i = from; i < to; ++i) { |
+ unit = t1.$index(units, i); |
+ if (typeof unit !== "number") |
+ return unit.$and(); |
+ if ((unit & 127) !== unit) |
+ return i - from; |
+ } |
+ return to - from; |
+ } |
+ }, |
+ _Utf8Decoder_convert_addSingleBytes: { |
+ "^": "Closure:18;this_1,codeUnits_2,startIndex_3,endIndex_4", |
+ call$2: function(from, to) { |
+ this.this_1._stringSink._contents += P.String_String$fromCharCodes(this.codeUnits_2, from, to); |
+ } |
+ } |
+}], |
+["dart.core", "dart:core", , P, { |
+ "^": "", |
+ _symbolToString: function(symbol) { |
+ return H.Symbol_getName(symbol); |
+ }, |
+ String__checkBounds: function(len, start, end) { |
+ if (start < 0 || start > len) |
+ throw H.wrapException(P.RangeError$range(start, 0, len, null, null)); |
+ if (end == null) |
+ end = len; |
+ else if (end < start || end > len) |
+ throw H.wrapException(P.RangeError$range(end, start, len, null, null)); |
+ return end; |
+ }, |
+ String__stringFromIterable: function(charCodes, start, end) { |
+ var t1, it, i, list; |
+ if (start < 0) |
+ throw H.wrapException(P.RangeError$range(start, 0, J.get$length$asx(charCodes), null, null)); |
+ t1 = end == null; |
+ if (!t1 && end < start) |
+ throw H.wrapException(P.RangeError$range(end, start, J.get$length$asx(charCodes), null, null)); |
+ it = J.get$iterator$ax(charCodes); |
+ for (i = 0; i < start; ++i) |
+ if (!it.moveNext$0()) |
+ throw H.wrapException(P.RangeError$range(start, 0, i, null, null)); |
+ list = []; |
+ if (t1) |
+ for (; it.moveNext$0();) |
+ list.push(it._current); |
+ else |
+ for (i = start; i < end; ++i) { |
+ if (!it.moveNext$0()) |
+ throw H.wrapException(P.RangeError$range(end, start, i, null, null)); |
+ list.push(it._current); |
+ } |
+ return H.Primitives_stringFromCharCodes(list); |
+ }, |
+ Error_safeToString: function(object) { |
+ if (typeof object === "number" || typeof object === "boolean" || null == object) |
+ return J.toString$0(object); |
+ if (typeof object === "string") |
+ return JSON.stringify(object); |
+ return "Instance of '" + H.Primitives_objectTypeName(object) + "'"; |
+ }, |
+ Exception_Exception: function(message) { |
+ return new P._ExceptionImplementation(message); |
+ }, |
+ identical: [function(a, b) { |
+ return a == null ? b == null : a === b; |
+ }, "call$2", "identical$closure", 4, 0, 46], |
+ identityHashCode: [function(object) { |
+ return H.objectHashCode(object); |
+ }, "call$1", "identityHashCode$closure", 2, 0, 47], |
+ List_List$filled: function($length, fill, $E) { |
+ var result, t1, i; |
+ result = J.JSArray_JSArray$fixed($length, $E); |
+ if ($length !== 0 && true) |
+ for (t1 = result.length, i = 0; i < t1; ++i) |
+ result[i] = fill; |
+ return result; |
+ }, |
+ List_List$from: function(elements, growable, $E) { |
+ var list, t1; |
+ list = H.setRuntimeTypeInfo([], [$E]); |
+ for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();) |
+ list.push(t1.get$current()); |
+ if (growable) |
+ return list; |
+ list.fixed$length = Array; |
+ return list; |
+ }, |
+ List_List$generate: function($length, generator, growable, $E) { |
+ var result, t1, i; |
+ if (growable) { |
+ result = H.setRuntimeTypeInfo([], [$E]); |
+ C.JSArray_methods.set$length(result, $length); |
+ } else { |
+ t1 = Array($length); |
+ t1.fixed$length = Array; |
+ result = H.setRuntimeTypeInfo(t1, [$E]); |
+ } |
+ for (i = 0; i < $length; ++i) { |
+ t1 = generator.call$1(i); |
+ if (i >= result.length) |
+ return H.ioore(result, i); |
+ result[i] = t1; |
+ } |
+ return result; |
+ }, |
+ print: function(object) { |
+ var line, t1; |
+ line = H.S(object); |
+ t1 = $.printToZone; |
+ if (t1 == null) |
+ H.printString(line); |
+ else |
+ t1.call$1(line); |
+ }, |
+ RegExp_RegExp: function(source, caseSensitive, multiLine) { |
+ return new H.JSSyntaxRegExp(source, H.JSSyntaxRegExp_makeNative(source, multiLine, caseSensitive, false), null, null); |
+ }, |
+ String_String$fromCharCodes: function(charCodes, start, end) { |
+ var len; |
+ if (charCodes.constructor === Array) { |
+ len = charCodes.length; |
+ end = P.String__checkBounds(len, start, end); |
+ return H.Primitives_stringFromCharCodes(start > 0 || end < len ? C.JSArray_methods.sublist$2(charCodes, start, end) : charCodes); |
+ } |
+ return P.String__stringFromIterable(charCodes, start, end); |
+ }, |
+ String_String$fromCharCode: function(charCode) { |
+ return H.Primitives_stringFromCharCode(charCode); |
+ }, |
+ NoSuchMethodError_toString_closure: { |
+ "^": "Closure:19;box_0", |
+ call$2: function(key, value) { |
+ var t1 = this.box_0; |
+ if (t1.i_1 > 0) |
+ t1.sb_0._contents += ", "; |
+ P._symbolToString(key); |
+ } |
+ }, |
+ bool: { |
+ "^": "Object;" |
+ }, |
+ "+bool": 0, |
+ DateTime: { |
+ "^": "Object;millisecondsSinceEpoch,isUtc", |
+ $eq: function(_, other) { |
+ if (other == null) |
+ return false; |
+ if (!(other instanceof P.DateTime)) |
+ return false; |
+ return this.millisecondsSinceEpoch === other.millisecondsSinceEpoch && this.isUtc === other.isUtc; |
+ }, |
+ get$hashCode: function(_) { |
+ return this.millisecondsSinceEpoch; |
+ }, |
+ toString$0: function(_) { |
+ var t1, y, m, d, h, min, sec, ms; |
+ t1 = this.isUtc; |
+ y = P.DateTime__fourDigits(t1 ? H.Primitives_lazyAsJsDate(this).getUTCFullYear() + 0 : H.Primitives_lazyAsJsDate(this).getFullYear() + 0); |
+ m = P.DateTime__twoDigits(t1 ? H.Primitives_lazyAsJsDate(this).getUTCMonth() + 1 : H.Primitives_lazyAsJsDate(this).getMonth() + 1); |
+ d = P.DateTime__twoDigits(t1 ? H.Primitives_lazyAsJsDate(this).getUTCDate() + 0 : H.Primitives_lazyAsJsDate(this).getDate() + 0); |
+ h = P.DateTime__twoDigits(t1 ? H.Primitives_lazyAsJsDate(this).getUTCHours() + 0 : H.Primitives_lazyAsJsDate(this).getHours() + 0); |
+ min = P.DateTime__twoDigits(t1 ? H.Primitives_lazyAsJsDate(this).getUTCMinutes() + 0 : H.Primitives_lazyAsJsDate(this).getMinutes() + 0); |
+ sec = P.DateTime__twoDigits(t1 ? H.Primitives_lazyAsJsDate(this).getUTCSeconds() + 0 : H.Primitives_lazyAsJsDate(this).getSeconds() + 0); |
+ ms = P.DateTime__threeDigits(t1 ? H.Primitives_lazyAsJsDate(this).getUTCMilliseconds() + 0 : H.Primitives_lazyAsJsDate(this).getMilliseconds() + 0); |
+ if (t1) |
+ return y + "-" + m + "-" + d + " " + h + ":" + min + ":" + sec + "." + ms + "Z"; |
+ else |
+ return y + "-" + m + "-" + d + " " + h + ":" + min + ":" + sec + "." + ms; |
+ }, |
+ add$1: function(_, duration) { |
+ return P.DateTime$fromMillisecondsSinceEpoch(this.millisecondsSinceEpoch + duration.get$inMilliseconds(), this.isUtc); |
+ }, |
+ DateTime$fromMillisecondsSinceEpoch$2$isUtc: function(millisecondsSinceEpoch, isUtc) { |
+ if (Math.abs(millisecondsSinceEpoch) > 864e13) |
+ throw H.wrapException(P.ArgumentError$(millisecondsSinceEpoch)); |
+ }, |
+ static: {DateTime$fromMillisecondsSinceEpoch: function(millisecondsSinceEpoch, isUtc) { |
+ var t1 = new P.DateTime(millisecondsSinceEpoch, isUtc); |
+ t1.DateTime$fromMillisecondsSinceEpoch$2$isUtc(millisecondsSinceEpoch, isUtc); |
+ return t1; |
+ }, DateTime__fourDigits: function(n) { |
+ var absN, sign; |
+ absN = Math.abs(n); |
+ sign = n < 0 ? "-" : ""; |
+ if (absN >= 1000) |
+ return "" + n; |
+ if (absN >= 100) |
+ return sign + "0" + H.S(absN); |
+ if (absN >= 10) |
+ return sign + "00" + H.S(absN); |
+ return sign + "000" + H.S(absN); |
+ }, DateTime__threeDigits: function(n) { |
+ if (n >= 100) |
+ return "" + n; |
+ if (n >= 10) |
+ return "0" + n; |
+ return "00" + n; |
+ }, DateTime__twoDigits: function(n) { |
+ if (n >= 10) |
+ return "" + n; |
+ return "0" + n; |
+ }} |
+ }, |
+ $double: { |
+ "^": "num;" |
+ }, |
+ "+double": 0, |
+ Duration: { |
+ "^": "Object;_duration<", |
+ $add: function(_, other) { |
+ return new P.Duration(C.JSInt_methods.$add(this._duration, other.get$_duration())); |
+ }, |
+ $sub: function(_, other) { |
+ return new P.Duration(this._duration - other.get$_duration()); |
+ }, |
+ $mul: function(_, factor) { |
+ return new P.Duration(C.JSInt_methods.round$0(this._duration * factor)); |
+ }, |
+ $lt: function(_, other) { |
+ return this._duration < other.get$_duration(); |
+ }, |
+ $gt: function(_, other) { |
+ return this._duration > other.get$_duration(); |
+ }, |
+ $ge: function(_, other) { |
+ return C.JSInt_methods.$ge(this._duration, other.get$_duration()); |
+ }, |
+ get$inMilliseconds: function() { |
+ return C.JSInt_methods._tdivFast$1(this._duration, 1000); |
+ }, |
+ $eq: function(_, other) { |
+ if (other == null) |
+ return false; |
+ if (!(other instanceof P.Duration)) |
+ return false; |
+ return this._duration === other._duration; |
+ }, |
+ get$hashCode: function(_) { |
+ return this._duration & 0x1FFFFFFF; |
+ }, |
+ toString$0: function(_) { |
+ var t1, t2, twoDigitMinutes, twoDigitSeconds, sixDigitUs; |
+ t1 = new P.Duration_toString_twoDigits(); |
+ t2 = this._duration; |
+ if (t2 < 0) |
+ return "-" + new P.Duration(-t2).toString$0(0); |
+ twoDigitMinutes = t1.call$1(C.JSInt_methods.remainder$1(C.JSInt_methods._tdivFast$1(t2, 60000000), 60)); |
+ twoDigitSeconds = t1.call$1(C.JSInt_methods.remainder$1(C.JSInt_methods._tdivFast$1(t2, 1000000), 60)); |
+ sixDigitUs = new P.Duration_toString_sixDigits().call$1(C.JSInt_methods.remainder$1(t2, 1000000)); |
+ return "" + C.JSInt_methods._tdivFast$1(t2, 3600000000) + ":" + H.S(twoDigitMinutes) + ":" + H.S(twoDigitSeconds) + "." + H.S(sixDigitUs); |
+ }, |
+ $negate: function(_) { |
+ return new P.Duration(-this._duration); |
+ } |
+ }, |
+ Duration_toString_sixDigits: { |
+ "^": "Closure:20;", |
+ call$1: function(n) { |
+ if (n >= 100000) |
+ return "" + n; |
+ if (n >= 10000) |
+ return "0" + n; |
+ if (n >= 1000) |
+ return "00" + n; |
+ if (n >= 100) |
+ return "000" + n; |
+ if (n >= 10) |
+ return "0000" + n; |
+ return "00000" + n; |
+ } |
+ }, |
+ Duration_toString_twoDigits: { |
+ "^": "Closure:20;", |
+ call$1: function(n) { |
+ if (n >= 10) |
+ return "" + n; |
+ return "0" + n; |
+ } |
+ }, |
+ Error: { |
+ "^": "Object;", |
+ get$stackTrace: function() { |
+ return H.getTraceFromException(this.$thrownJsError); |
+ } |
+ }, |
+ NullThrownError: { |
+ "^": "Error;", |
+ toString$0: function(_) { |
+ return "Throw of null."; |
+ } |
+ }, |
+ ArgumentError: { |
+ "^": "Error;_hasValue,invalidValue,name,message>", |
+ get$_errorName: function() { |
+ return "Invalid argument" + (!this._hasValue ? "(s)" : ""); |
+ }, |
+ get$_errorExplanation: function() { |
+ return ""; |
+ }, |
+ toString$0: function(_) { |
+ var t1, nameString, message, prefix, explanation, errorValue; |
+ t1 = this.name; |
+ nameString = t1 != null ? " (" + H.S(t1) + ")" : ""; |
+ t1 = this.message; |
+ message = t1 == null ? "" : ": " + H.S(t1); |
+ prefix = this.get$_errorName() + nameString + message; |
+ if (!this._hasValue) |
+ return prefix; |
+ explanation = this.get$_errorExplanation(); |
+ errorValue = P.Error_safeToString(this.invalidValue); |
+ return prefix + explanation + ": " + H.S(errorValue); |
+ }, |
+ static: {ArgumentError$: function(message) { |
+ return new P.ArgumentError(false, null, null, message); |
+ }} |
+ }, |
+ RangeError: { |
+ "^": "ArgumentError;start>,end<,_hasValue,invalidValue,name,message", |
+ get$_errorName: function() { |
+ return "RangeError"; |
+ }, |
+ get$_errorExplanation: function() { |
+ var t1, explanation, t2, t3; |
+ t1 = this.start; |
+ if (t1 == null) { |
+ t1 = this.end; |
+ explanation = t1 != null ? ": Not less than or equal to " + H.S(t1) : ""; |
+ } else { |
+ t2 = this.end; |
+ if (t2 == null) |
+ explanation = ": Not greater than or equal to " + H.S(t1); |
+ else { |
+ t3 = J.getInterceptor$n(t2); |
+ if (t3.$gt(t2, t1)) |
+ explanation = ": Not in range " + H.S(t1) + ".." + H.S(t2) + ", inclusive"; |
+ else |
+ explanation = t3.$lt(t2, t1) ? ": Valid value range is empty" : ": Only valid value is " + H.S(t1); |
+ } |
+ } |
+ return explanation; |
+ }, |
+ static: {RangeError$: function(message) { |
+ return new P.RangeError(null, null, false, null, null, message); |
+ }, RangeError$value: function(value, $name, message) { |
+ return new P.RangeError(null, null, true, value, $name, "Value not in range"); |
+ }, RangeError$range: function(invalidValue, minValue, maxValue, $name, message) { |
+ return new P.RangeError(minValue, maxValue, true, invalidValue, $name, "Invalid value"); |
+ }, RangeError_checkValueInInterval: function(value, minValue, maxValue, $name, message) { |
+ if (value < minValue || value > maxValue) |
+ throw H.wrapException(P.RangeError$range(value, minValue, maxValue, $name, message)); |
+ }, RangeError_checkValidRange: function(start, end, $length, startName, endName, message) { |
+ var t1; |
+ if (start >= 0) { |
+ if (typeof $length !== "number") |
+ return H.iae($length); |
+ t1 = start > $length; |
+ } else |
+ t1 = true; |
+ if (t1) |
+ throw H.wrapException(P.RangeError$range(start, 0, $length, "start", message)); |
+ if (end != null) { |
+ if (!(end < start)) { |
+ if (typeof $length !== "number") |
+ return H.iae($length); |
+ t1 = end > $length; |
+ } else |
+ t1 = true; |
+ if (t1) |
+ throw H.wrapException(P.RangeError$range(end, start, $length, "end", message)); |
+ return end; |
+ } |
+ return $length; |
+ }} |
+ }, |
+ IndexError: { |
+ "^": "ArgumentError;indexable,length>,_hasValue,invalidValue,name,message", |
+ get$start: function(_) { |
+ return 0; |
+ }, |
+ get$end: function() { |
+ return J.$sub$n(this.length, 1); |
+ }, |
+ get$_errorName: function() { |
+ return "RangeError"; |
+ }, |
+ get$_errorExplanation: function() { |
+ P.Error_safeToString(this.indexable); |
+ var explanation = ": index should be less than " + H.S(this.length); |
+ return J.$lt$n(this.invalidValue, 0) ? ": index must not be negative" : explanation; |
+ }, |
+ static: {IndexError$: function(invalidValue, indexable, $name, message, $length) { |
+ var t1 = $length != null ? $length : J.get$length$asx(indexable); |
+ return new P.IndexError(indexable, t1, true, invalidValue, $name, "Index out of range"); |
+ }} |
+ }, |
+ UnsupportedError: { |
+ "^": "Error;message>", |
+ toString$0: function(_) { |
+ return "Unsupported operation: " + this.message; |
+ }, |
+ static: {UnsupportedError$: function(message) { |
+ return new P.UnsupportedError(message); |
+ }} |
+ }, |
+ UnimplementedError: { |
+ "^": "Error;message>", |
+ toString$0: function(_) { |
+ var t1 = this.message; |
+ return t1 != null ? "UnimplementedError: " + H.S(t1) : "UnimplementedError"; |
+ }, |
+ static: {UnimplementedError$: function(message) { |
+ return new P.UnimplementedError(message); |
+ }} |
+ }, |
+ StateError: { |
+ "^": "Error;message>", |
+ toString$0: function(_) { |
+ return "Bad state: " + this.message; |
+ }, |
+ static: {StateError$: function(message) { |
+ return new P.StateError(message); |
+ }} |
+ }, |
+ ConcurrentModificationError: { |
+ "^": "Error;modifiedObject", |
+ toString$0: function(_) { |
+ return "Concurrent modification during iteration: " + H.S(P.Error_safeToString(this.modifiedObject)) + "."; |
+ }, |
+ static: {ConcurrentModificationError$: function(modifiedObject) { |
+ return new P.ConcurrentModificationError(modifiedObject); |
+ }} |
+ }, |
+ OutOfMemoryError: { |
+ "^": "Object;", |
+ toString$0: function(_) { |
+ return "Out of Memory"; |
+ }, |
+ get$stackTrace: function() { |
+ return; |
+ }, |
+ $isError: 1 |
+ }, |
+ StackOverflowError: { |
+ "^": "Object;", |
+ toString$0: function(_) { |
+ return "Stack Overflow"; |
+ }, |
+ get$stackTrace: function() { |
+ return; |
+ }, |
+ $isError: 1 |
+ }, |
+ CyclicInitializationError: { |
+ "^": "Error;variableName", |
+ toString$0: function(_) { |
+ return "Reading static variable '" + this.variableName + "' during its initialization"; |
+ } |
+ }, |
+ _ExceptionImplementation: { |
+ "^": "Object;message>", |
+ toString$0: function(_) { |
+ var t1 = this.message; |
+ if (t1 == null) |
+ return "Exception"; |
+ return "Exception: " + H.S(t1); |
+ } |
+ }, |
+ FormatException: { |
+ "^": "Object;message>,source,offset", |
+ toString$0: function(_) { |
+ var t1, report, offset, source, lineNum, lineStart, lastWasCR, i, $char, lineEnd, t2, end, start, prefix, postfix, slice; |
+ t1 = this.message; |
+ report = t1 != null && "" !== t1 ? "FormatException: " + H.S(t1) : "FormatException"; |
+ offset = this.offset; |
+ source = this.source; |
+ if (typeof source !== "string") |
+ return offset != null ? report + (" (at offset " + H.S(offset) + ")") : report; |
+ if (offset != null) { |
+ t1 = J.getInterceptor$n(offset); |
+ t1 = t1.$lt(offset, 0) || t1.$gt(offset, J.get$length$asx(source)); |
+ } else |
+ t1 = false; |
+ if (t1) |
+ offset = null; |
+ if (offset == null) { |
+ t1 = J.getInterceptor$asx(source); |
+ if (J.$gt$n(t1.get$length(source), 78)) |
+ source = t1.substring$2(source, 0, 75) + "..."; |
+ return report + "\n" + H.S(source); |
+ } |
+ if (typeof offset !== "number") |
+ return H.iae(offset); |
+ t1 = J.getInterceptor$asx(source); |
+ lineNum = 1; |
+ lineStart = 0; |
+ lastWasCR = null; |
+ i = 0; |
+ for (; i < offset; ++i) { |
+ $char = t1.codeUnitAt$1(source, i); |
+ if ($char === 10) { |
+ if (lineStart !== i || lastWasCR !== true) |
+ ++lineNum; |
+ lineStart = i + 1; |
+ lastWasCR = false; |
+ } else if ($char === 13) { |
+ ++lineNum; |
+ lineStart = i + 1; |
+ lastWasCR = true; |
+ } |
+ } |
+ report = lineNum > 1 ? report + (" (at line " + lineNum + ", character " + H.S(offset - lineStart + 1) + ")\n") : report + (" (at character " + H.S(offset + 1) + ")\n"); |
+ lineEnd = t1.get$length(source); |
+ i = offset; |
+ while (true) { |
+ t2 = t1.get$length(source); |
+ if (typeof t2 !== "number") |
+ return H.iae(t2); |
+ if (!(i < t2)) |
+ break; |
+ $char = t1.codeUnitAt$1(source, i); |
+ if ($char === 10 || $char === 13) { |
+ lineEnd = i; |
+ break; |
+ } |
+ ++i; |
+ } |
+ t2 = J.getInterceptor$n(lineEnd); |
+ if (J.$gt$n(t2.$sub(lineEnd, lineStart), 78)) |
+ if (offset - lineStart < 75) { |
+ end = lineStart + 75; |
+ start = lineStart; |
+ prefix = ""; |
+ postfix = "..."; |
+ } else { |
+ if (J.$lt$n(t2.$sub(lineEnd, offset), 75)) { |
+ start = t2.$sub(lineEnd, 75); |
+ end = lineEnd; |
+ postfix = ""; |
+ } else { |
+ start = offset - 36; |
+ end = offset + 36; |
+ postfix = "..."; |
+ } |
+ prefix = "..."; |
+ } |
+ else { |
+ end = lineEnd; |
+ start = lineStart; |
+ prefix = ""; |
+ postfix = ""; |
+ } |
+ slice = t1.substring$2(source, start, end); |
+ if (typeof start !== "number") |
+ return H.iae(start); |
+ return report + prefix + slice + postfix + "\n" + C.JSString_methods.$mul(" ", offset - start + prefix.length) + "^\n"; |
+ }, |
+ static: {FormatException$: function(message, source, offset) { |
+ return new P.FormatException(message, source, offset); |
+ }} |
+ }, |
+ Expando: { |
+ "^": "Object;name", |
+ toString$0: function(_) { |
+ return "Expando:" + H.S(this.name); |
+ }, |
+ $index: function(_, object) { |
+ var values = H.Primitives_getProperty(object, "expando$values"); |
+ return values == null ? null : H.Primitives_getProperty(values, this._getKey$0()); |
+ }, |
+ $indexSet: function(_, object, value) { |
+ var values = H.Primitives_getProperty(object, "expando$values"); |
+ if (values == null) { |
+ values = new P.Object(); |
+ H.Primitives_setProperty(object, "expando$values", values); |
+ } |
+ H.Primitives_setProperty(values, this._getKey$0(), value); |
+ }, |
+ _getKey$0: function() { |
+ var key, t1; |
+ key = H.Primitives_getProperty(this, "expando$key"); |
+ if (key == null) { |
+ t1 = $.Expando__keyCount; |
+ $.Expando__keyCount = t1 + 1; |
+ key = "expando$key$" + t1; |
+ H.Primitives_setProperty(this, "expando$key", key); |
+ } |
+ return key; |
+ } |
+ }, |
+ $int: { |
+ "^": "num;" |
+ }, |
+ "+int": 0, |
+ Iterator: { |
+ "^": "Object;" |
+ }, |
+ List: { |
+ "^": "Object;", |
+ $asList: null, |
+ $isEfficientLength: 1 |
+ }, |
+ "+List": 0, |
+ Map: { |
+ "^": "Object;" |
+ }, |
+ Null: { |
+ "^": "Object;", |
+ toString$0: function(_) { |
+ return "null"; |
+ } |
+ }, |
+ "+Null": 0, |
+ num: { |
+ "^": "Object;" |
+ }, |
+ "+num": 0, |
+ Object: { |
+ "^": ";", |
+ $eq: function(_, other) { |
+ return this === other; |
+ }, |
+ get$hashCode: function(_) { |
+ return H.Primitives_objectHashCode(this); |
+ }, |
+ toString$0: function(_) { |
+ return H.Primitives_objectToString(this); |
+ } |
+ }, |
+ Match: { |
+ "^": "Object;" |
+ }, |
+ StackTrace: { |
+ "^": "Object;" |
+ }, |
+ String: { |
+ "^": "Object;" |
+ }, |
+ "+String": 0, |
+ StringBuffer: { |
+ "^": "Object;_contents<", |
+ get$length: function(_) { |
+ return this._contents.length; |
+ }, |
+ get$isEmpty: function(_) { |
+ return this._contents.length === 0; |
+ }, |
+ get$isNotEmpty: function(_) { |
+ return this._contents.length !== 0; |
+ }, |
+ writeAll$2: function(objects, separator) { |
+ var iterator = J.get$iterator$ax(objects); |
+ if (!iterator.moveNext$0()) |
+ return; |
+ if (separator.length === 0) { |
+ do |
+ this._contents += H.S(iterator.get$current()); |
+ while (iterator.moveNext$0()); |
+ } else { |
+ this._contents += H.S(iterator.get$current()); |
+ for (; iterator.moveNext$0();) { |
+ this._contents += separator; |
+ this._contents += H.S(iterator.get$current()); |
+ } |
+ } |
+ }, |
+ toString$0: function(_) { |
+ var t1 = this._contents; |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ } |
+ }, |
+ Symbol: { |
+ "^": "Object;" |
+ }, |
+ Uri: { |
+ "^": "Object;_host,_port,_path,scheme,_userInfo,_query,_fragment,_pathSegments,_queryParameters", |
+ get$host: function(_) { |
+ var t1 = this._host; |
+ if (t1 == null) |
+ return ""; |
+ if (J.getInterceptor$s(t1).startsWith$1(t1, "[")) |
+ return C.JSString_methods.substring$2(t1, 1, t1.length - 1); |
+ return t1; |
+ }, |
+ get$port: function(_) { |
+ var t1 = this._port; |
+ if (t1 == null) |
+ return P.Uri__defaultPort(this.scheme); |
+ return t1; |
+ }, |
+ get$pathSegments: function() { |
+ var t1, pathToSplit; |
+ t1 = this._pathSegments; |
+ if (t1 == null) { |
+ pathToSplit = this._path; |
+ if (pathToSplit.length !== 0 && C.JSString_methods.codeUnitAt$1(pathToSplit, 0) === 47) |
+ pathToSplit = C.JSString_methods.substring$1(pathToSplit, 1); |
+ t1 = pathToSplit === "" ? C.List_empty : H.setRuntimeTypeInfo(new H.MappedListIterable(pathToSplit.split("/"), P.Uri_decodeComponent$closure()), [null, null]).toList$1$growable(0, false); |
+ t1 = H.setRuntimeTypeInfo(new P.UnmodifiableListView(t1), [null]); |
+ this._pathSegments = t1; |
+ } |
+ return t1; |
+ }, |
+ _merge$2: function(base, reference) { |
+ var backCount, refStart, baseEnd, newEnd, delta, t1; |
+ if (base.length === 0) |
+ return "/" + reference; |
+ for (backCount = 0, refStart = 0; C.JSString_methods.startsWith$2(reference, "../", refStart);) { |
+ refStart += 3; |
+ ++backCount; |
+ } |
+ baseEnd = C.JSString_methods.lastIndexOf$1(base, "/"); |
+ while (true) { |
+ if (!(baseEnd > 0 && backCount > 0)) |
+ break; |
+ newEnd = C.JSString_methods.lastIndexOf$2(base, "/", baseEnd - 1); |
+ if (newEnd < 0) |
+ break; |
+ delta = baseEnd - newEnd; |
+ t1 = delta !== 2; |
+ if (!t1 || delta === 3) |
+ if (C.JSString_methods.codeUnitAt$1(base, newEnd + 1) === 46) |
+ t1 = !t1 || C.JSString_methods.codeUnitAt$1(base, newEnd + 2) === 46; |
+ else |
+ t1 = false; |
+ else |
+ t1 = false; |
+ if (t1) |
+ break; |
+ --backCount; |
+ baseEnd = newEnd; |
+ } |
+ return C.JSString_methods.replaceRange$3(base, baseEnd + 1, null, C.JSString_methods.substring$1(reference, refStart - 3 * backCount)); |
+ }, |
+ _hasDotSegments$1: function(path) { |
+ if (path.length > 0 && C.JSString_methods.codeUnitAt$1(path, 0) === 46) |
+ return true; |
+ return C.JSString_methods.indexOf$1(path, "/.") !== -1; |
+ }, |
+ _removeDotSegments$1: function(path) { |
+ var output, t1, appendSlash, segment, t2; |
+ if (!this._hasDotSegments$1(path)) |
+ return path; |
+ output = []; |
+ for (t1 = path.split("/"), t1 = new H.ListIterator(t1, t1.length, 0, null), appendSlash = false; t1.moveNext$0();) { |
+ segment = t1._current; |
+ if (J.$eq(segment, "..")) { |
+ t2 = output.length; |
+ if (t2 !== 0) |
+ if (t2 === 1) { |
+ if (0 >= t2) |
+ return H.ioore(output, 0); |
+ t2 = !J.$eq(output[0], ""); |
+ } else |
+ t2 = true; |
+ else |
+ t2 = false; |
+ if (t2) { |
+ if (0 >= output.length) |
+ return H.ioore(output, 0); |
+ output.pop(); |
+ } |
+ appendSlash = true; |
+ } else if ("." === segment) |
+ appendSlash = true; |
+ else { |
+ output.push(segment); |
+ appendSlash = false; |
+ } |
+ } |
+ if (appendSlash) |
+ output.push(""); |
+ return C.JSArray_methods.join$1(output, "/"); |
+ }, |
+ resolveUri$1: function(reference) { |
+ var targetScheme, targetUserInfo, targetHost, targetPort, targetPath, targetQuery, t1, fragment; |
+ targetScheme = reference.scheme; |
+ if (targetScheme.length !== 0) { |
+ if (reference._host != null) { |
+ targetUserInfo = reference._userInfo; |
+ targetHost = reference.get$host(reference); |
+ targetPort = reference._port != null ? reference.get$port(reference) : null; |
+ } else { |
+ targetUserInfo = ""; |
+ targetHost = null; |
+ targetPort = null; |
+ } |
+ targetPath = this._removeDotSegments$1(reference._path); |
+ targetQuery = reference._query; |
+ if (targetQuery != null) |
+ ; |
+ else |
+ targetQuery = null; |
+ } else { |
+ targetScheme = this.scheme; |
+ if (reference._host != null) { |
+ targetUserInfo = reference._userInfo; |
+ targetHost = reference.get$host(reference); |
+ targetPort = P.Uri__makePort(reference._port != null ? reference.get$port(reference) : null, targetScheme); |
+ targetPath = this._removeDotSegments$1(reference._path); |
+ targetQuery = reference._query; |
+ if (targetQuery != null) |
+ ; |
+ else |
+ targetQuery = null; |
+ } else { |
+ t1 = reference._path; |
+ if (t1 === "") { |
+ targetPath = this._path; |
+ targetQuery = reference._query; |
+ if (targetQuery != null) |
+ ; |
+ else |
+ targetQuery = this._query; |
+ } else { |
+ targetPath = C.JSString_methods.startsWith$1(t1, "/") ? this._removeDotSegments$1(t1) : this._removeDotSegments$1(this._merge$2(this._path, t1)); |
+ targetQuery = reference._query; |
+ if (targetQuery != null) |
+ ; |
+ else |
+ targetQuery = null; |
+ } |
+ targetUserInfo = this._userInfo; |
+ targetHost = this._host; |
+ targetPort = this._port; |
+ } |
+ } |
+ fragment = reference._fragment; |
+ if (fragment != null) |
+ ; |
+ else |
+ fragment = null; |
+ return new P.Uri(targetHost, targetPort, targetPath, targetScheme, targetUserInfo, targetQuery, fragment, null, null); |
+ }, |
+ get$origin: function(_) { |
+ var t1, t2; |
+ t1 = this.scheme; |
+ if (t1 !== "") { |
+ t2 = this._host; |
+ t2 = t2 == null || t2 === ""; |
+ } else |
+ t2 = true; |
+ if (t2) |
+ throw H.wrapException(P.StateError$("Cannot use origin without a scheme: " + this.toString$0(0))); |
+ if (t1 !== "http" && t1 !== "https") |
+ throw H.wrapException(P.StateError$("Origin is only applicable schemes http and https: " + this.toString$0(0))); |
+ t2 = this._port; |
+ if (t2 == null) |
+ return t1 + "://" + H.S(this._host); |
+ return t1 + "://" + H.S(this._host) + ":" + H.S(t2); |
+ }, |
+ toFilePath$1$windows: function(windows) { |
+ var t1, result; |
+ t1 = this.scheme; |
+ if (t1 !== "" && t1 !== "file") |
+ throw H.wrapException(P.UnsupportedError$("Cannot extract a file path from a " + t1 + " URI")); |
+ t1 = this._query; |
+ if ((t1 == null ? "" : t1) !== "") |
+ throw H.wrapException(P.UnsupportedError$("Cannot extract a file path from a URI with a query component")); |
+ t1 = this._fragment; |
+ if ((t1 == null ? "" : t1) !== "") |
+ throw H.wrapException(P.UnsupportedError$("Cannot extract a file path from a URI with a fragment component")); |
+ if (this.get$host(this) !== "") |
+ H.throwExpression(P.UnsupportedError$("Cannot extract a non-Windows file path from a file URI with an authority")); |
+ P.Uri__checkNonWindowsPathReservedCharacters(this.get$pathSegments(), false); |
+ result = new P.StringBuffer(""); |
+ if (this.get$_isPathAbsolute()) |
+ result._contents = "/"; |
+ result.writeAll$2(this.get$pathSegments(), "/"); |
+ t1 = result._contents; |
+ t1 = t1.charCodeAt(0) == 0 ? t1 : t1; |
+ return t1; |
+ }, |
+ toFilePath$0: function() { |
+ return this.toFilePath$1$windows(null); |
+ }, |
+ get$_isPathAbsolute: function() { |
+ if (this._path.length === 0) |
+ return false; |
+ return C.JSString_methods.startsWith$1(this._path, "/"); |
+ }, |
+ toString$0: function(_) { |
+ var t1, t2, t3, t4; |
+ t1 = this.scheme; |
+ t2 = "" !== t1 ? t1 + ":" : ""; |
+ t3 = this._host; |
+ t4 = t3 == null; |
+ if (!t4 || C.JSString_methods.startsWith$1(this._path, "//") || t1 === "file") { |
+ t1 = t2 + "//"; |
+ t2 = this._userInfo; |
+ if (t2.length !== 0) |
+ t1 = t1 + t2 + "@"; |
+ if (!t4) |
+ t1 += H.S(t3); |
+ t2 = this._port; |
+ if (t2 != null) |
+ t1 = t1 + ":" + H.S(t2); |
+ } else |
+ t1 = t2; |
+ t1 += this._path; |
+ t2 = this._query; |
+ if (t2 != null) |
+ t1 = t1 + "?" + H.S(t2); |
+ t2 = this._fragment; |
+ if (t2 != null) |
+ t1 = t1 + "#" + H.S(t2); |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ }, |
+ $eq: function(_, other) { |
+ var t1, t2, t3, t4; |
+ if (other == null) |
+ return false; |
+ t1 = J.getInterceptor(other); |
+ if (!t1.$isUri) |
+ return false; |
+ if (this.scheme === other.scheme) |
+ if (this._host != null === (other._host != null)) |
+ if (this._userInfo === other._userInfo) { |
+ t2 = this.get$host(this); |
+ t3 = t1.get$host(other); |
+ if (t2 == null ? t3 == null : t2 === t3) { |
+ t2 = this.get$port(this); |
+ t1 = t1.get$port(other); |
+ if (t2 == null ? t1 == null : t2 === t1) |
+ if (this._path === other._path) { |
+ t1 = this._query; |
+ t2 = t1 == null; |
+ t3 = other._query; |
+ t4 = t3 == null; |
+ if (!t2 === !t4) { |
+ if (t2) |
+ t1 = ""; |
+ if (t1 == null ? (t4 ? "" : t3) == null : t1 === (t4 ? "" : t3)) { |
+ t1 = this._fragment; |
+ t2 = t1 == null; |
+ t3 = other._fragment; |
+ t4 = t3 == null; |
+ if (!t2 === !t4) { |
+ if (t2) |
+ t1 = ""; |
+ t1 = t1 == null ? (t4 ? "" : t3) == null : t1 === (t4 ? "" : t3); |
+ } else |
+ t1 = false; |
+ } else |
+ t1 = false; |
+ } else |
+ t1 = false; |
+ } else |
+ t1 = false; |
+ else |
+ t1 = false; |
+ } else |
+ t1 = false; |
+ } else |
+ t1 = false; |
+ else |
+ t1 = false; |
+ else |
+ t1 = false; |
+ return t1; |
+ }, |
+ get$hashCode: function(_) { |
+ var t1, t2, t3, t4, t5; |
+ t1 = new P.Uri_hashCode_combine(); |
+ t2 = this.get$host(this); |
+ t3 = this.get$port(this); |
+ t4 = this._query; |
+ if (t4 == null) |
+ t4 = ""; |
+ t5 = this._fragment; |
+ 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))))))); |
+ }, |
+ static: {Uri__defaultPort: function(scheme) { |
+ if (scheme === "http") |
+ return 80; |
+ if (scheme === "https") |
+ return 443; |
+ return 0; |
+ }, Uri_parse: function(uri) { |
+ var t1, pathStart, state, t2, i, t3, $char, index, t4, path, numberSignIndex, query, fragment; |
+ t1 = {}; |
+ t1.scheme_0 = ""; |
+ t1.userinfo_1 = ""; |
+ t1.host_2 = null; |
+ t1.port_3 = null; |
+ t1.index_4 = 0; |
+ t1.char_5 = -1; |
+ t2 = J.getInterceptor$asx(uri); |
+ i = 0; |
+ while (true) { |
+ t3 = t2.get$length(uri); |
+ if (typeof t3 !== "number") |
+ return H.iae(t3); |
+ if (!(i < t3)) { |
+ pathStart = 0; |
+ state = 0; |
+ break; |
+ } |
+ $char = t2.codeUnitAt$1(uri, i); |
+ t1.char_5 = $char; |
+ if ($char === 63 || $char === 35) { |
+ pathStart = 0; |
+ state = 0; |
+ break; |
+ } |
+ if ($char === 47) { |
+ state = i === 0 ? 2 : 1; |
+ pathStart = 0; |
+ break; |
+ } |
+ if ($char === 58) { |
+ if (i === 0) |
+ P.Uri__fail(uri, 0, "Invalid empty scheme"); |
+ t1.scheme_0 = P.Uri__makeScheme(uri, i); |
+ ++i; |
+ if (i === uri.length) { |
+ t1.char_5 = -1; |
+ state = 0; |
+ } else { |
+ $char = C.JSString_methods.codeUnitAt$1(uri, i); |
+ t1.char_5 = $char; |
+ if ($char === 63 || $char === 35) |
+ state = 0; |
+ else |
+ state = $char === 47 ? 2 : 1; |
+ } |
+ pathStart = i; |
+ break; |
+ } |
+ ++i; |
+ t1.char_5 = -1; |
+ } |
+ t1.index_4 = i; |
+ if (state === 2) { |
+ index = i + 1; |
+ t1.index_4 = index; |
+ if (index === t2.get$length(uri)) { |
+ t1.char_5 = -1; |
+ state = 0; |
+ } else { |
+ $char = t2.codeUnitAt$1(uri, t1.index_4); |
+ t1.char_5 = $char; |
+ if ($char === 47) { |
+ ++t1.index_4; |
+ new P.Uri_parse_parseAuth(t1, uri, -1).call$0(); |
+ pathStart = t1.index_4; |
+ } |
+ t3 = t1.char_5; |
+ state = t3 === 63 || t3 === 35 || t3 === -1 ? 0 : 1; |
+ } |
+ } |
+ if (state === 1) |
+ while (true) { |
+ t3 = ++t1.index_4; |
+ t4 = t2.get$length(uri); |
+ if (typeof t4 !== "number") |
+ return H.iae(t4); |
+ if (!(t3 < t4)) |
+ break; |
+ $char = t2.codeUnitAt$1(uri, t1.index_4); |
+ t1.char_5 = $char; |
+ if ($char === 63 || $char === 35) |
+ break; |
+ t1.char_5 = -1; |
+ } |
+ t3 = t1.scheme_0; |
+ t4 = t1.host_2; |
+ path = P.Uri__makePath(uri, pathStart, t1.index_4, null, t4 != null, t3 === "file"); |
+ t3 = t1.char_5; |
+ if (t3 === 63) { |
+ numberSignIndex = t2.indexOf$2(uri, "#", t1.index_4 + 1); |
+ t3 = t1.index_4; |
+ if (numberSignIndex < 0) { |
+ query = P.Uri__makeQuery(uri, t3 + 1, t2.get$length(uri), null); |
+ fragment = null; |
+ } else { |
+ query = P.Uri__makeQuery(uri, t3 + 1, numberSignIndex, null); |
+ fragment = P.Uri__makeFragment(uri, numberSignIndex + 1, t2.get$length(uri)); |
+ } |
+ } else { |
+ fragment = t3 === 35 ? P.Uri__makeFragment(uri, t1.index_4 + 1, t2.get$length(uri)) : null; |
+ query = null; |
+ } |
+ t2 = t1.scheme_0; |
+ t3 = t1.userinfo_1; |
+ return new P.Uri(t1.host_2, t1.port_3, path, t2, t3, query, fragment, null, null); |
+ }, Uri__fail: function(uri, index, message) { |
+ throw H.wrapException(P.FormatException$(message, uri, index)); |
+ }, Uri_Uri: function(fragment, host, path, pathSegments, port, query, queryParameters, scheme, userInfo) { |
+ var isFile, t1; |
+ scheme = P.Uri__makeScheme(scheme, scheme.length); |
+ userInfo = P.Uri__makeUserInfo(userInfo, 0, userInfo.length); |
+ host = P.Uri__makeHost(host, 0, host == null ? 0 : J.get$length$asx(host), false); |
+ query = P.Uri__makeQuery(query, 0, 0, queryParameters); |
+ fragment = P.Uri__makeFragment(fragment, 0, 0); |
+ port = P.Uri__makePort(port, scheme); |
+ isFile = scheme === "file"; |
+ if (host == null) |
+ t1 = userInfo.length !== 0 || port != null || isFile; |
+ else |
+ t1 = false; |
+ if (t1) |
+ host = ""; |
+ t1 = path == null ? 0 : path.length; |
+ return new P.Uri(host, port, P.Uri__makePath(path, 0, t1, pathSegments, host != null, isFile), scheme, userInfo, query, fragment, null, null); |
+ }, Uri_Uri$file: function(path, windows) { |
+ return windows ? P.Uri__makeWindowsFileUrl(path) : P.Uri__makeFileUri(path); |
+ }, Uri_base: function() { |
+ var uri = H.Primitives_currentUri(); |
+ if (uri != null) |
+ return P.Uri_parse(uri); |
+ throw H.wrapException(P.UnsupportedError$("'Uri.base' is not supported")); |
+ }, Uri__checkNonWindowsPathReservedCharacters: function(segments, argumentError) { |
+ segments.forEach$1(segments, new P.Uri__checkNonWindowsPathReservedCharacters_closure(argumentError)); |
+ }, Uri__checkWindowsPathReservedCharacters: function(segments, argumentError, firstSegment) { |
+ J.skip$1$ax(segments, firstSegment).forEach$1(0, new P.Uri__checkWindowsPathReservedCharacters_closure(argumentError)); |
+ }, Uri__checkWindowsDriveLetter: function(charCode, argumentError) { |
+ var t1; |
+ if (!(65 <= charCode && charCode <= 90)) |
+ t1 = 97 <= charCode && charCode <= 122; |
+ else |
+ t1 = true; |
+ if (t1) |
+ return; |
+ if (argumentError) |
+ throw H.wrapException(P.ArgumentError$("Illegal drive letter " + P.String_String$fromCharCode(charCode))); |
+ else |
+ throw H.wrapException(P.UnsupportedError$("Illegal drive letter " + P.String_String$fromCharCode(charCode))); |
+ }, Uri__makeFileUri: function(path) { |
+ if (J.startsWith$1$s(path, "/")) |
+ return P.Uri_Uri(null, null, null, path.split("/"), null, null, null, "file", ""); |
+ else |
+ return P.Uri_Uri(null, null, null, path.split("/"), null, null, null, "", ""); |
+ }, Uri__makeWindowsFileUrl: function(path) { |
+ var t1, pathSegments, pathStart, hostPart; |
+ if (J.getInterceptor$s(path).startsWith$1(path, "\\\\?\\")) |
+ if (C.JSString_methods.startsWith$2(path, "UNC\\", 4)) |
+ path = C.JSString_methods.replaceRange$3(path, 0, 7, "\\"); |
+ else { |
+ path = C.JSString_methods.substring$1(path, 4); |
+ if (path.length < 3 || C.JSString_methods.codeUnitAt$1(path, 1) !== 58 || C.JSString_methods.codeUnitAt$1(path, 2) !== 92) |
+ throw H.wrapException(P.ArgumentError$("Windows paths with \\\\?\\ prefix must be absolute")); |
+ } |
+ else { |
+ H.checkString("\\"); |
+ path = H.stringReplaceAllUnchecked(path, "/", "\\"); |
+ } |
+ t1 = path.length; |
+ if (t1 > 1 && C.JSString_methods.codeUnitAt$1(path, 1) === 58) { |
+ P.Uri__checkWindowsDriveLetter(C.JSString_methods.codeUnitAt$1(path, 0), true); |
+ if (t1 === 2 || C.JSString_methods.codeUnitAt$1(path, 2) !== 92) |
+ throw H.wrapException(P.ArgumentError$("Windows paths with drive letter must be absolute")); |
+ pathSegments = path.split("\\"); |
+ P.Uri__checkWindowsPathReservedCharacters(pathSegments, true, 1); |
+ return P.Uri_Uri(null, null, null, pathSegments, null, null, null, "file", ""); |
+ } |
+ if (C.JSString_methods.startsWith$1(path, "\\")) |
+ if (C.JSString_methods.startsWith$2(path, "\\", 1)) { |
+ pathStart = C.JSString_methods.indexOf$2(path, "\\", 2); |
+ t1 = pathStart < 0; |
+ hostPart = t1 ? C.JSString_methods.substring$1(path, 2) : C.JSString_methods.substring$2(path, 2, pathStart); |
+ pathSegments = (t1 ? "" : C.JSString_methods.substring$1(path, pathStart + 1)).split("\\"); |
+ P.Uri__checkWindowsPathReservedCharacters(pathSegments, true, 0); |
+ return P.Uri_Uri(null, hostPart, null, pathSegments, null, null, null, "file", ""); |
+ } else { |
+ pathSegments = path.split("\\"); |
+ P.Uri__checkWindowsPathReservedCharacters(pathSegments, true, 0); |
+ return P.Uri_Uri(null, null, null, pathSegments, null, null, null, "file", ""); |
+ } |
+ else { |
+ pathSegments = path.split("\\"); |
+ P.Uri__checkWindowsPathReservedCharacters(pathSegments, true, 0); |
+ return P.Uri_Uri(null, null, null, pathSegments, null, null, null, "", ""); |
+ } |
+ }, Uri__makePort: function(port, scheme) { |
+ if (port != null && port === P.Uri__defaultPort(scheme)) |
+ return; |
+ return port; |
+ }, Uri__makeHost: function(host, start, end, strictIPv6) { |
+ var t1, i; |
+ if (host == null) |
+ return; |
+ if (start === end) |
+ return ""; |
+ if (J.getInterceptor$s(host).codeUnitAt$1(host, start) === 91) { |
+ t1 = J.getInterceptor$n(end); |
+ if (C.JSString_methods.codeUnitAt$1(host, t1.$sub(end, 1)) !== 93) |
+ P.Uri__fail(host, start, "Missing end `]` to match `[` in host"); |
+ P.Uri_parseIPv6Address(host, start + 1, t1.$sub(end, 1)); |
+ return C.JSString_methods.substring$2(host, start, end).toLowerCase(); |
+ } |
+ if (!strictIPv6) { |
+ if (typeof end !== "number") |
+ return H.iae(end); |
+ i = start; |
+ for (; i < end; ++i) |
+ if (C.JSString_methods.codeUnitAt$1(host, i) === 58) { |
+ P.Uri_parseIPv6Address(host, start, end); |
+ return "[" + host + "]"; |
+ } |
+ } |
+ return P.Uri__normalizeRegName(host, start, end); |
+ }, Uri__normalizeRegName: function(host, start, end) { |
+ var index, sectionStart, buffer, isNormalized, $char, replacement, t1, slice, sourceLength, tail; |
+ if (typeof end !== "number") |
+ return H.iae(end); |
+ index = start; |
+ sectionStart = index; |
+ buffer = null; |
+ isNormalized = true; |
+ for (; index < end;) { |
+ $char = C.JSString_methods.codeUnitAt$1(host, index); |
+ if ($char === 37) { |
+ replacement = P.Uri__normalizeEscape(host, index, true); |
+ t1 = replacement == null; |
+ if (t1 && isNormalized) { |
+ index += 3; |
+ continue; |
+ } |
+ if (buffer == null) |
+ buffer = new P.StringBuffer(""); |
+ slice = C.JSString_methods.substring$2(host, sectionStart, index); |
+ if (!isNormalized) |
+ slice = slice.toLowerCase(); |
+ buffer._contents = buffer._contents + slice; |
+ if (t1) { |
+ replacement = C.JSString_methods.substring$2(host, index, index + 3); |
+ sourceLength = 3; |
+ } else if (replacement === "%") { |
+ replacement = "%25"; |
+ sourceLength = 1; |
+ } else |
+ sourceLength = 3; |
+ buffer._contents += replacement; |
+ index += sourceLength; |
+ sectionStart = index; |
+ isNormalized = true; |
+ } else { |
+ if ($char < 127) { |
+ t1 = $char >>> 4; |
+ if (t1 >= 8) |
+ return H.ioore(C.List_qNA, t1); |
+ t1 = (C.List_qNA[t1] & C.JSInt_methods._shlPositive$1(1, $char & 15)) !== 0; |
+ } else |
+ t1 = false; |
+ if (t1) { |
+ if (isNormalized && 65 <= $char && 90 >= $char) { |
+ if (buffer == null) |
+ buffer = new P.StringBuffer(""); |
+ if (sectionStart < index) { |
+ t1 = C.JSString_methods.substring$2(host, sectionStart, index); |
+ buffer._contents = buffer._contents + t1; |
+ sectionStart = index; |
+ } |
+ isNormalized = false; |
+ } |
+ ++index; |
+ } else { |
+ if ($char <= 93) { |
+ t1 = $char >>> 4; |
+ if (t1 >= 8) |
+ return H.ioore(C.List_2Vk, t1); |
+ t1 = (C.List_2Vk[t1] & C.JSInt_methods._shlPositive$1(1, $char & 15)) !== 0; |
+ } else |
+ t1 = false; |
+ if (t1) |
+ P.Uri__fail(host, index, "Invalid character"); |
+ else { |
+ if (($char & 64512) === 55296 && index + 1 < end) { |
+ tail = C.JSString_methods.codeUnitAt$1(host, index + 1); |
+ if ((tail & 64512) === 56320) { |
+ $char = (65536 | ($char & 1023) << 10 | tail & 1023) >>> 0; |
+ sourceLength = 2; |
+ } else |
+ sourceLength = 1; |
+ } else |
+ sourceLength = 1; |
+ if (buffer == null) |
+ buffer = new P.StringBuffer(""); |
+ slice = C.JSString_methods.substring$2(host, sectionStart, index); |
+ if (!isNormalized) |
+ slice = slice.toLowerCase(); |
+ buffer._contents = buffer._contents + slice; |
+ buffer._contents += P.Uri__escapeChar($char); |
+ index += sourceLength; |
+ sectionStart = index; |
+ } |
+ } |
+ } |
+ } |
+ if (buffer == null) |
+ return C.JSString_methods.substring$2(host, start, end); |
+ if (sectionStart < end) { |
+ slice = C.JSString_methods.substring$2(host, sectionStart, end); |
+ buffer._contents += !isNormalized ? slice.toLowerCase() : slice; |
+ } |
+ t1 = buffer._contents; |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ }, Uri__makeScheme: function(scheme, end) { |
+ var firstCodeUnit, allLowercase, t1, i, codeUnit; |
+ if (J.$eq(end, 0)) |
+ return ""; |
+ firstCodeUnit = J.getInterceptor$s(scheme).codeUnitAt$1(scheme, 0); |
+ allLowercase = firstCodeUnit >= 97; |
+ if (!(allLowercase && firstCodeUnit <= 122)) |
+ t1 = firstCodeUnit >= 65 && firstCodeUnit <= 90; |
+ else |
+ t1 = true; |
+ if (!t1) |
+ P.Uri__fail(scheme, 0, "Scheme not starting with alphabetic character"); |
+ if (typeof end !== "number") |
+ return H.iae(end); |
+ i = 0; |
+ for (; i < end; ++i) { |
+ codeUnit = C.JSString_methods.codeUnitAt$1(scheme, i); |
+ if (codeUnit < 128) { |
+ t1 = codeUnit >>> 4; |
+ if (t1 >= 8) |
+ return H.ioore(C.List_JYB, t1); |
+ t1 = (C.List_JYB[t1] & C.JSInt_methods._shlPositive$1(1, codeUnit & 15)) !== 0; |
+ } else |
+ t1 = false; |
+ if (!t1) |
+ P.Uri__fail(scheme, i, "Illegal scheme character"); |
+ if (codeUnit < 97 || codeUnit > 122) |
+ allLowercase = false; |
+ } |
+ scheme = C.JSString_methods.substring$2(scheme, 0, end); |
+ return !allLowercase ? scheme.toLowerCase() : scheme; |
+ }, Uri__makeUserInfo: function(userInfo, start, end) { |
+ return P.Uri__normalize(userInfo, start, end, C.List_gRj); |
+ }, Uri__makePath: function(path, start, end, pathSegments, ensureLeadingSlash, isFile) { |
+ var t1, result; |
+ t1 = path == null; |
+ if (t1 && pathSegments == null) |
+ return isFile ? "/" : ""; |
+ t1 = !t1; |
+ if (t1 && pathSegments != null) |
+ throw H.wrapException(P.ArgumentError$("Both path and pathSegments specified")); |
+ if (t1) |
+ result = P.Uri__normalize(path, start, end, C.List_qg4); |
+ else { |
+ pathSegments.toString; |
+ result = H.setRuntimeTypeInfo(new H.MappedListIterable(pathSegments, new P.Uri__makePath_closure()), [null, null]).join$1(0, "/"); |
+ } |
+ if (result.length === 0) { |
+ if (isFile) |
+ return "/"; |
+ } else if ((isFile || ensureLeadingSlash) && C.JSString_methods.codeUnitAt$1(result, 0) !== 47) |
+ return "/" + result; |
+ return result; |
+ }, Uri__makeQuery: function(query, start, end, queryParameters) { |
+ var t1, t2, result; |
+ t1 = {}; |
+ t2 = query == null; |
+ if (t2 && true) |
+ return; |
+ t2 = !t2; |
+ if (t2) |
+ ; |
+ if (t2) |
+ return P.Uri__normalize(query, start, end, C.List_CVk); |
+ result = new P.StringBuffer(""); |
+ t1.first_0 = true; |
+ C.JSNull_methods.forEach$1(queryParameters, new P.Uri__makeQuery_closure(t1, result)); |
+ t1 = result._contents; |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ }, Uri__makeFragment: function(fragment, start, end) { |
+ if (fragment == null) |
+ return; |
+ return P.Uri__normalize(fragment, start, end, C.List_CVk); |
+ }, Uri__isHexDigit: function($char) { |
+ if (57 >= $char) |
+ return 48 <= $char; |
+ $char |= 32; |
+ return 97 <= $char && 102 >= $char; |
+ }, Uri__hexValue: function($char) { |
+ if (57 >= $char) |
+ return $char - 48; |
+ return ($char | 32) - 87; |
+ }, Uri__normalizeEscape: function(source, index, lowerCase) { |
+ var t1, firstDigit, secondDigit, value; |
+ t1 = index + 2; |
+ if (t1 >= source.length) |
+ return "%"; |
+ firstDigit = C.JSString_methods.codeUnitAt$1(source, index + 1); |
+ secondDigit = C.JSString_methods.codeUnitAt$1(source, t1); |
+ if (!P.Uri__isHexDigit(firstDigit) || !P.Uri__isHexDigit(secondDigit)) |
+ return "%"; |
+ value = P.Uri__hexValue(firstDigit) * 16 + P.Uri__hexValue(secondDigit); |
+ if (value < 127) { |
+ t1 = C.JSInt_methods._shrOtherPositive$1(value, 4); |
+ if (t1 >= 8) |
+ return H.ioore(C.List_nxB, t1); |
+ t1 = (C.List_nxB[t1] & C.JSInt_methods._shlPositive$1(1, value & 15)) !== 0; |
+ } else |
+ t1 = false; |
+ if (t1) |
+ return H.Primitives_stringFromCharCode(lowerCase && 65 <= value && 90 >= value ? (value | 32) >>> 0 : value); |
+ if (firstDigit >= 97 || secondDigit >= 97) |
+ return C.JSString_methods.substring$2(source, index, index + 3).toUpperCase(); |
+ return; |
+ }, Uri__escapeChar: function($char) { |
+ var codeUnits, flag, encodedBytes, t1, index, $byte, t2, t3; |
+ if ($char < 128) { |
+ codeUnits = Array(3); |
+ codeUnits.fixed$length = Array; |
+ codeUnits[0] = 37; |
+ codeUnits[1] = C.JSString_methods.codeUnitAt$1("0123456789ABCDEF", $char >>> 4); |
+ codeUnits[2] = C.JSString_methods.codeUnitAt$1("0123456789ABCDEF", $char & 15); |
+ } else { |
+ if ($char > 2047) |
+ if ($char > 65535) { |
+ flag = 240; |
+ encodedBytes = 4; |
+ } else { |
+ flag = 224; |
+ encodedBytes = 3; |
+ } |
+ else { |
+ flag = 192; |
+ encodedBytes = 2; |
+ } |
+ t1 = 3 * encodedBytes; |
+ codeUnits = Array(t1); |
+ codeUnits.fixed$length = Array; |
+ for (index = 0; --encodedBytes, encodedBytes >= 0; flag = 128) { |
+ $byte = C.JSInt_methods._shrReceiverPositive$1($char, 6 * encodedBytes) & 63 | flag; |
+ if (index >= t1) |
+ return H.ioore(codeUnits, index); |
+ codeUnits[index] = 37; |
+ t2 = index + 1; |
+ t3 = C.JSString_methods.codeUnitAt$1("0123456789ABCDEF", $byte >>> 4); |
+ if (t2 >= t1) |
+ return H.ioore(codeUnits, t2); |
+ codeUnits[t2] = t3; |
+ t3 = index + 2; |
+ t2 = C.JSString_methods.codeUnitAt$1("0123456789ABCDEF", $byte & 15); |
+ if (t3 >= t1) |
+ return H.ioore(codeUnits, t3); |
+ codeUnits[t3] = t2; |
+ index += 3; |
+ } |
+ } |
+ return P.String_String$fromCharCodes(codeUnits, 0, null); |
+ }, Uri__normalize: function(component, start, end, charTable) { |
+ var t1, index, sectionStart, buffer, $char, t2, replacement, sourceLength, tail; |
+ if (typeof end !== "number") |
+ return H.iae(end); |
+ t1 = J.getInterceptor$s(component); |
+ index = start; |
+ sectionStart = index; |
+ buffer = null; |
+ for (; index < end;) { |
+ $char = t1.codeUnitAt$1(component, index); |
+ if ($char < 127) { |
+ t2 = $char >>> 4; |
+ if (t2 >= 8) |
+ return H.ioore(charTable, t2); |
+ t2 = (charTable[t2] & C.JSInt_methods._shlPositive$1(1, $char & 15)) !== 0; |
+ } else |
+ t2 = false; |
+ if (t2) |
+ ++index; |
+ else { |
+ if ($char === 37) { |
+ replacement = P.Uri__normalizeEscape(component, index, false); |
+ if (replacement == null) { |
+ index += 3; |
+ continue; |
+ } |
+ if ("%" === replacement) { |
+ replacement = "%25"; |
+ sourceLength = 1; |
+ } else |
+ sourceLength = 3; |
+ } else { |
+ if ($char <= 93) { |
+ t2 = $char >>> 4; |
+ if (t2 >= 8) |
+ return H.ioore(C.List_2Vk, t2); |
+ t2 = (C.List_2Vk[t2] & C.JSInt_methods._shlPositive$1(1, $char & 15)) !== 0; |
+ } else |
+ t2 = false; |
+ if (t2) { |
+ P.Uri__fail(component, index, "Invalid character"); |
+ replacement = null; |
+ sourceLength = null; |
+ } else { |
+ if (($char & 64512) === 55296) { |
+ t2 = index + 1; |
+ if (t2 < end) { |
+ tail = C.JSString_methods.codeUnitAt$1(component, t2); |
+ if ((tail & 64512) === 56320) { |
+ $char = (65536 | ($char & 1023) << 10 | tail & 1023) >>> 0; |
+ sourceLength = 2; |
+ } else |
+ sourceLength = 1; |
+ } else |
+ sourceLength = 1; |
+ } else |
+ sourceLength = 1; |
+ replacement = P.Uri__escapeChar($char); |
+ } |
+ } |
+ if (buffer == null) |
+ buffer = new P.StringBuffer(""); |
+ t2 = C.JSString_methods.substring$2(component, sectionStart, index); |
+ buffer._contents = buffer._contents + t2; |
+ buffer._contents += H.S(replacement); |
+ if (typeof sourceLength !== "number") |
+ return H.iae(sourceLength); |
+ index += sourceLength; |
+ sectionStart = index; |
+ } |
+ } |
+ if (buffer == null) |
+ return t1.substring$2(component, start, end); |
+ if (sectionStart < end) |
+ buffer._contents += t1.substring$2(component, sectionStart, end); |
+ t1 = buffer._contents; |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ }, Uri_decodeComponent: [function(encodedComponent) { |
+ return P.Uri__uriDecode(encodedComponent, C.Utf8Codec_false, false); |
+ }, "call$1", "Uri_decodeComponent$closure", 2, 0, 48], Uri_splitQueryString: function(query, encoding) { |
+ return C.JSArray_methods.fold$2(query.split("&"), P.LinkedHashMap_LinkedHashMap$_empty(null, null), new P.Uri_splitQueryString_closure(encoding)); |
+ }, Uri_parseIPv4Address: function(host) { |
+ var t1, bytes; |
+ t1 = new P.Uri_parseIPv4Address_error(); |
+ bytes = host.split("."); |
+ if (bytes.length !== 4) |
+ t1.call$1("IPv4 address should contain exactly 4 parts"); |
+ return H.setRuntimeTypeInfo(new H.MappedListIterable(bytes, new P.Uri_parseIPv4Address_closure(t1)), [null, null]).toList$0(0); |
+ }, Uri_parseIPv6Address: function(host, start, end) { |
+ var error, parseHex, parts, partStart, last, i, wildcardSeen, t1, atEnd, isLastWildcard, exception, t2, bytes, index, value, wildCardLength, j; |
+ if (end == null) |
+ end = J.get$length$asx(host); |
+ error = new P.Uri_parseIPv6Address_error(host); |
+ parseHex = new P.Uri_parseIPv6Address_parseHex(host, error); |
+ if (J.get$length$asx(host) < 2) |
+ error.call$1("address is too short"); |
+ parts = []; |
+ partStart = start; |
+ i = start; |
+ wildcardSeen = false; |
+ while (true) { |
+ t1 = end; |
+ if (typeof t1 !== "number") |
+ return H.iae(t1); |
+ if (!(i < t1)) |
+ break; |
+ if (J.codeUnitAt$1$s(host, i) === 58) { |
+ if (i === start) { |
+ ++i; |
+ if (J.codeUnitAt$1$s(host, i) !== 58) |
+ error.call$2("invalid start colon.", i); |
+ partStart = i; |
+ } |
+ if (i === partStart) { |
+ if (wildcardSeen) |
+ error.call$2("only one wildcard `::` is allowed", i); |
+ J.add$1$ax(parts, -1); |
+ wildcardSeen = true; |
+ } else |
+ J.add$1$ax(parts, parseHex.call$2(partStart, i)); |
+ partStart = i + 1; |
+ } |
+ ++i; |
+ } |
+ if (J.get$length$asx(parts) === 0) |
+ error.call$1("too few parts"); |
+ atEnd = J.$eq(partStart, end); |
+ isLastWildcard = J.$eq(J.get$last$ax(parts), -1); |
+ if (atEnd && !isLastWildcard) |
+ error.call$2("expected a part after last `:`", end); |
+ if (!atEnd) |
+ try { |
+ J.add$1$ax(parts, parseHex.call$2(partStart, end)); |
+ } catch (exception) { |
+ H.unwrapException(exception); |
+ try { |
+ last = P.Uri_parseIPv4Address(J.substring$2$s(host, partStart, end)); |
+ t1 = J.$index$asx(last, 0); |
+ if (typeof t1 !== "number") |
+ return t1.$shl(); |
+ t2 = J.$index$asx(last, 1); |
+ if (typeof t2 !== "number") |
+ return H.iae(t2); |
+ J.add$1$ax(parts, (t1 << 8 | t2) >>> 0); |
+ t2 = J.$index$asx(last, 2); |
+ if (typeof t2 !== "number") |
+ return t2.$shl(); |
+ t1 = J.$index$asx(last, 3); |
+ if (typeof t1 !== "number") |
+ return H.iae(t1); |
+ J.add$1$ax(parts, (t2 << 8 | t1) >>> 0); |
+ } catch (exception) { |
+ H.unwrapException(exception); |
+ error.call$2("invalid end of IPv6 address.", partStart); |
+ } |
+ } |
+ if (wildcardSeen) { |
+ if (J.get$length$asx(parts) > 7) |
+ error.call$1("an address with a wildcard must have less than 7 parts"); |
+ } else if (J.get$length$asx(parts) !== 8) |
+ error.call$1("an address without a wildcard must contain exactly 8 parts"); |
+ bytes = Array(16); |
+ bytes.$builtinTypeInfo = [P.$int]; |
+ i = 0; |
+ index = 0; |
+ while (true) { |
+ t1 = J.get$length$asx(parts); |
+ if (typeof t1 !== "number") |
+ return H.iae(t1); |
+ if (!(i < t1)) |
+ break; |
+ value = J.$index$asx(parts, i); |
+ if (J.getInterceptor(value).$eq(value, -1)) { |
+ wildCardLength = 9 - J.get$length$asx(parts); |
+ for (j = 0; j < wildCardLength; ++j) { |
+ if (index < 0 || index >= 16) |
+ return H.ioore(bytes, index); |
+ bytes[index] = 0; |
+ t1 = index + 1; |
+ if (t1 >= 16) |
+ return H.ioore(bytes, t1); |
+ bytes[t1] = 0; |
+ index += 2; |
+ } |
+ } else { |
+ if (typeof value !== "number") |
+ return value.$shr(); |
+ t1 = C.JSNumber_methods._shrOtherPositive$1(value, 8); |
+ if (index < 0 || index >= 16) |
+ return H.ioore(bytes, index); |
+ bytes[index] = t1; |
+ t1 = index + 1; |
+ if (t1 >= 16) |
+ return H.ioore(bytes, t1); |
+ bytes[t1] = value & 255; |
+ index += 2; |
+ } |
+ ++i; |
+ } |
+ return bytes; |
+ }, Uri__uriEncode: function(canonicalTable, text, encoding, spaceToPlus) { |
+ var t1, result, bytes, t2, i, $byte, t3; |
+ t1 = new P.Uri__uriEncode_byteToHex(); |
+ result = new P.StringBuffer(""); |
+ bytes = encoding.get$encoder().convert$1(text); |
+ for (t2 = bytes.length, i = 0; i < t2; ++i) { |
+ $byte = bytes[i]; |
+ if ($byte < 128) { |
+ t3 = $byte >>> 4; |
+ if (t3 >= 8) |
+ return H.ioore(canonicalTable, t3); |
+ t3 = (canonicalTable[t3] & C.JSInt_methods._shlPositive$1(1, $byte & 15)) !== 0; |
+ } else |
+ t3 = false; |
+ if (t3) |
+ result._contents += H.Primitives_stringFromCharCode($byte); |
+ else if (spaceToPlus && $byte === 32) |
+ result._contents += H.Primitives_stringFromCharCode(43); |
+ else { |
+ result._contents += H.Primitives_stringFromCharCode(37); |
+ t1.call$2($byte, result); |
+ } |
+ } |
+ t1 = result._contents; |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ }, Uri__hexCharPairToByte: function(s, pos) { |
+ var $byte, i, charCode; |
+ for ($byte = 0, i = 0; i < 2; ++i) { |
+ charCode = C.JSString_methods.codeUnitAt$1(s, pos + i); |
+ if (48 <= charCode && charCode <= 57) |
+ $byte = $byte * 16 + charCode - 48; |
+ else { |
+ charCode |= 32; |
+ if (97 <= charCode && charCode <= 102) |
+ $byte = $byte * 16 + charCode - 87; |
+ else |
+ throw H.wrapException(P.ArgumentError$("Invalid URL encoding")); |
+ } |
+ } |
+ return $byte; |
+ }, Uri__uriDecode: function(text, encoding, plusToSpace) { |
+ var t1, simple, i, t2, codeUnit, bytes, allowMalformed; |
+ t1 = J.getInterceptor$asx(text); |
+ simple = true; |
+ i = 0; |
+ while (true) { |
+ t2 = t1.get$length(text); |
+ if (typeof t2 !== "number") |
+ return H.iae(t2); |
+ if (!(i < t2 && simple)) |
+ break; |
+ codeUnit = t1.codeUnitAt$1(text, i); |
+ simple = codeUnit !== 37 && codeUnit !== 43; |
+ ++i; |
+ } |
+ if (simple) |
+ if (encoding === C.Utf8Codec_false || false) |
+ return text; |
+ else |
+ bytes = t1.get$codeUnits(text); |
+ else { |
+ bytes = []; |
+ i = 0; |
+ while (true) { |
+ t2 = t1.get$length(text); |
+ if (typeof t2 !== "number") |
+ return H.iae(t2); |
+ if (!(i < t2)) |
+ break; |
+ codeUnit = t1.codeUnitAt$1(text, i); |
+ if (codeUnit > 127) |
+ throw H.wrapException(P.ArgumentError$("Illegal percent encoding in URI")); |
+ if (codeUnit === 37) { |
+ if (i + 3 > text.length) |
+ throw H.wrapException(P.ArgumentError$("Truncated URI")); |
+ bytes.push(P.Uri__hexCharPairToByte(text, i + 1)); |
+ i += 2; |
+ } else if (plusToSpace && codeUnit === 43) |
+ bytes.push(32); |
+ else |
+ bytes.push(codeUnit); |
+ ++i; |
+ } |
+ } |
+ allowMalformed = encoding._allowMalformed; |
+ return new P.Utf8Decoder(allowMalformed).convert$1(bytes); |
+ }} |
+ }, |
+ Uri_parse_isRegName: { |
+ "^": "Closure:21;", |
+ call$1: function(ch) { |
+ ch.$lt(0, 128); |
+ return false; |
+ } |
+ }, |
+ Uri_parse_parseAuth: { |
+ "^": "Closure:1;box_0,uri_1,EOI_2", |
+ call$0: function() { |
+ var t1, t2, t3, authStart, $char, lastColon, lastAt, char0, endBracket, hostEnd, hostStart, i, portNumber, digit; |
+ t1 = this.box_0; |
+ t2 = this.uri_1; |
+ t3 = J.getInterceptor$asx(t2); |
+ if (t1.index_4 === t3.get$length(t2)) { |
+ t1.char_5 = this.EOI_2; |
+ return; |
+ } |
+ authStart = t1.index_4; |
+ t1.char_5 = t3.codeUnitAt$1(t2, authStart); |
+ for ($char = this.EOI_2, lastColon = -1, lastAt = -1; t1.index_4 < t2.length;) { |
+ char0 = C.JSString_methods.codeUnitAt$1(t2, t1.index_4); |
+ t1.char_5 = char0; |
+ if (char0 === 47 || char0 === 63 || char0 === 35) |
+ break; |
+ if (char0 === 64) { |
+ lastAt = t1.index_4; |
+ lastColon = -1; |
+ } else if (char0 === 58) |
+ lastColon = t1.index_4; |
+ else if (char0 === 91) { |
+ endBracket = C.JSString_methods.indexOf$2(t2, "]", t1.index_4 + 1); |
+ if (endBracket === -1) { |
+ t1.index_4 = t2.length; |
+ t1.char_5 = $char; |
+ lastColon = -1; |
+ break; |
+ } else |
+ t1.index_4 = endBracket; |
+ lastColon = -1; |
+ } |
+ ++t1.index_4; |
+ t1.char_5 = $char; |
+ } |
+ hostEnd = t1.index_4; |
+ if (lastAt >= 0) { |
+ t1.userinfo_1 = P.Uri__makeUserInfo(t2, authStart, lastAt); |
+ hostStart = lastAt + 1; |
+ } else |
+ hostStart = authStart; |
+ if (lastColon >= 0) { |
+ i = lastColon + 1; |
+ if (i < t1.index_4) |
+ for (portNumber = 0; i < t1.index_4; ++i) { |
+ digit = C.JSString_methods.codeUnitAt$1(t2, i); |
+ if (48 > digit || 57 < digit) |
+ P.Uri__fail(t2, i, "Invalid port number"); |
+ portNumber = portNumber * 10 + (digit - 48); |
+ } |
+ else |
+ portNumber = null; |
+ t1.port_3 = P.Uri__makePort(portNumber, t1.scheme_0); |
+ hostEnd = lastColon; |
+ } |
+ t1.host_2 = P.Uri__makeHost(t2, hostStart, hostEnd, true); |
+ if (t1.index_4 < t2.length) |
+ t1.char_5 = C.JSString_methods.codeUnitAt$1(t2, t1.index_4); |
+ } |
+ }, |
+ Uri__checkNonWindowsPathReservedCharacters_closure: { |
+ "^": "Closure:2;argumentError_0", |
+ call$1: function(segment) { |
+ if (J.contains$1$asx(segment, "/") === true) |
+ if (this.argumentError_0) |
+ throw H.wrapException(P.ArgumentError$("Illegal path character " + H.S(segment))); |
+ else |
+ throw H.wrapException(P.UnsupportedError$("Illegal path character " + H.S(segment))); |
+ } |
+ }, |
+ Uri__checkWindowsPathReservedCharacters_closure: { |
+ "^": "Closure:2;argumentError_0", |
+ call$1: function(segment) { |
+ if (J.contains$1$asx(segment, new H.JSSyntaxRegExp("[\"*/:<>?\\\\|]", H.JSSyntaxRegExp_makeNative("[\"*/:<>?\\\\|]", false, true, false), null, null)) === true) |
+ if (this.argumentError_0) |
+ throw H.wrapException(P.ArgumentError$("Illegal character in path")); |
+ else |
+ throw H.wrapException(P.UnsupportedError$("Illegal character in path")); |
+ } |
+ }, |
+ Uri__makePath_closure: { |
+ "^": "Closure:2;", |
+ call$1: function(s) { |
+ return P.Uri__uriEncode(C.List_qg40, s, C.Utf8Codec_false, false); |
+ } |
+ }, |
+ Uri__makeQuery_closure: { |
+ "^": "Closure:15;box_0,result_1", |
+ call$2: function(key, value) { |
+ var t1 = this.box_0; |
+ if (!t1.first_0) |
+ this.result_1._contents += "&"; |
+ t1.first_0 = false; |
+ t1 = this.result_1; |
+ t1._contents += P.Uri__uriEncode(C.List_nxB, key, C.Utf8Codec_false, true); |
+ value.get$isEmpty(value); |
+ t1._contents += "="; |
+ t1._contents += P.Uri__uriEncode(C.List_nxB, value, C.Utf8Codec_false, true); |
+ } |
+ }, |
+ Uri_hashCode_combine: { |
+ "^": "Closure:22;", |
+ call$2: function(part, current) { |
+ return current * 31 + J.get$hashCode$(part) & 1073741823; |
+ } |
+ }, |
+ Uri_splitQueryString_closure: { |
+ "^": "Closure:15;encoding_0", |
+ call$2: function(map, element) { |
+ var t1, index, key, value; |
+ t1 = J.getInterceptor$asx(element); |
+ index = t1.indexOf$1(element, "="); |
+ if (index === -1) { |
+ if (element !== "") |
+ J.$indexSet$ax(map, P.Uri__uriDecode(element, this.encoding_0, true), ""); |
+ } else if (index !== 0) { |
+ key = t1.substring$2(element, 0, index); |
+ value = C.JSString_methods.substring$1(element, index + 1); |
+ t1 = this.encoding_0; |
+ J.$indexSet$ax(map, P.Uri__uriDecode(key, t1, true), P.Uri__uriDecode(value, t1, true)); |
+ } |
+ return map; |
+ } |
+ }, |
+ Uri_parseIPv4Address_error: { |
+ "^": "Closure:23;", |
+ call$1: function(msg) { |
+ throw H.wrapException(P.FormatException$("Illegal IPv4 address, " + msg, null, null)); |
+ } |
+ }, |
+ Uri_parseIPv4Address_closure: { |
+ "^": "Closure:2;error_0", |
+ call$1: function(byteString) { |
+ var $byte, t1; |
+ $byte = H.Primitives_parseInt(byteString, null, null); |
+ t1 = J.getInterceptor$n($byte); |
+ if (t1.$lt($byte, 0) || t1.$gt($byte, 255)) |
+ this.error_0.call$1("each part must be in the range of `0..255`"); |
+ return $byte; |
+ } |
+ }, |
+ Uri_parseIPv6Address_error: { |
+ "^": "Closure:24;host_0", |
+ call$2: function(msg, position) { |
+ throw H.wrapException(P.FormatException$("Illegal IPv6 address, " + msg, this.host_0, position)); |
+ }, |
+ call$1: function(msg) { |
+ return this.call$2(msg, null); |
+ } |
+ }, |
+ Uri_parseIPv6Address_parseHex: { |
+ "^": "Closure:25;host_1,error_2", |
+ call$2: function(start, end) { |
+ var value, t1; |
+ if (J.$gt$n(J.$sub$n(end, start), 4)) |
+ this.error_2.call$2("an IPv6 part can only contain a maximum of 4 hex digits", start); |
+ value = H.Primitives_parseInt(C.JSString_methods.substring$2(this.host_1, start, end), 16, null); |
+ t1 = J.getInterceptor$n(value); |
+ if (t1.$lt(value, 0) || t1.$gt(value, 65535)) |
+ this.error_2.call$2("each part must be in the range of `0x0..0xFFFF`", start); |
+ return value; |
+ } |
+ }, |
+ Uri__uriEncode_byteToHex: { |
+ "^": "Closure:15;", |
+ call$2: function($byte, buffer) { |
+ buffer._contents += H.Primitives_stringFromCharCode(C.JSString_methods.codeUnitAt$1("0123456789ABCDEF", $byte >>> 4)); |
+ buffer._contents += H.Primitives_stringFromCharCode(C.JSString_methods.codeUnitAt$1("0123456789ABCDEF", $byte & 15)); |
+ } |
+ } |
+}], |
+["dart.dom.html", "dart:html", , W, { |
+ "^": "", |
+ WebSocket_WebSocket: function(url, protocol_OR_protocols) { |
+ return new WebSocket(url); |
+ }, |
+ _JenkinsSmiHash_combine: function(hash, value) { |
+ hash = 536870911 & hash + value; |
+ hash = 536870911 & hash + ((524287 & hash) << 10 >>> 0); |
+ return hash ^ hash >>> 6; |
+ }, |
+ _JenkinsSmiHash_finish: function(hash) { |
+ hash = 536870911 & hash + ((67108863 & hash) << 3 >>> 0); |
+ hash ^= hash >>> 11; |
+ return 536870911 & hash + ((16383 & hash) << 15 >>> 0); |
+ }, |
+ _convertNativeToDart_Window: function(win) { |
+ if (win == null) |
+ return; |
+ return W._DOMWindowCrossFrame__createSafe(win); |
+ }, |
+ _wrapZone: function(callback) { |
+ if (J.$eq($.Zone__current, C.C__RootZone)) |
+ return callback; |
+ return $.Zone__current.bindUnaryCallback$2$runGuarded(callback, true); |
+ }, |
+ HtmlElement: { |
+ "^": "Element;", |
+ $isHtmlElement: 1, |
+ $isElement: 1, |
+ $isNode: 1, |
+ $isObject: 1, |
+ "%": "HTMLAppletElement|HTMLBRElement|HTMLBaseElement|HTMLButtonElement|HTMLCanvasElement|HTMLContentElement|HTMLDListElement|HTMLDataListElement|HTMLDetailsElement|HTMLDialogElement|HTMLDirectoryElement|HTMLDivElement|HTMLFieldSetElement|HTMLFontElement|HTMLFrameElement|HTMLHRElement|HTMLHeadElement|HTMLHeadingElement|HTMLHtmlElement|HTMLKeygenElement|HTMLLIElement|HTMLLabelElement|HTMLLegendElement|HTMLLinkElement|HTMLMapElement|HTMLMarqueeElement|HTMLMenuElement|HTMLMenuItemElement|HTMLMetaElement|HTMLMeterElement|HTMLModElement|HTMLOptGroupElement|HTMLOptionElement|HTMLOutputElement|HTMLParagraphElement|HTMLParamElement|HTMLPictureElement|HTMLPreElement|HTMLProgressElement|HTMLQuoteElement|HTMLShadowElement|HTMLSpanElement|HTMLStyleElement|HTMLTableCaptionElement|HTMLTableCellElement|HTMLTableColElement|HTMLTableDataCellElement|HTMLTableElement|HTMLTableHeaderCellElement|HTMLTableRowElement|HTMLTableSectionElement|HTMLTemplateElement|HTMLTextAreaElement|HTMLTitleElement|HTMLUListElement|HTMLUnknownElement;HTMLElement" |
+ }, |
+ AnchorElement: { |
+ "^": "HtmlElement;origin=", |
+ toString$0: function(receiver) { |
+ return String(receiver); |
+ }, |
+ $isInterceptor: 1, |
+ "%": "HTMLAnchorElement" |
+ }, |
+ ApplicationCacheErrorEvent: { |
+ "^": "Event;message=", |
+ "%": "ApplicationCacheErrorEvent" |
+ }, |
+ AreaElement: { |
+ "^": "HtmlElement;origin=", |
+ toString$0: function(receiver) { |
+ return String(receiver); |
+ }, |
+ $isInterceptor: 1, |
+ "%": "HTMLAreaElement" |
+ }, |
+ Blob: { |
+ "^": "Interceptor;", |
+ close$0: function(receiver) { |
+ return receiver.close(); |
+ }, |
+ $isBlob: 1, |
+ "%": ";Blob" |
+ }, |
+ BodyElement: { |
+ "^": "HtmlElement;", |
+ get$onLoad: function(receiver) { |
+ return H.setRuntimeTypeInfo(new W._ElementEventStreamImpl(receiver, "load", false), [null]); |
+ }, |
+ $isInterceptor: 1, |
+ "%": "HTMLBodyElement" |
+ }, |
+ CharacterData: { |
+ "^": "Node;data=,length=", |
+ $isInterceptor: 1, |
+ "%": "CDATASection|CharacterData|Comment|ProcessingInstruction|Text" |
+ }, |
+ CompositionEvent: { |
+ "^": "UIEvent;data=", |
+ "%": "CompositionEvent" |
+ }, |
+ CssStyleDeclaration: { |
+ "^": "Interceptor_CssStyleDeclarationBase;length=", |
+ "%": "CSS2Properties|CSSStyleDeclaration|MSStyleCSSProperties" |
+ }, |
+ Interceptor_CssStyleDeclarationBase: { |
+ "^": "Interceptor+CssStyleDeclarationBase;" |
+ }, |
+ CssStyleDeclarationBase: { |
+ "^": "Object;" |
+ }, |
+ DocumentFragment: { |
+ "^": "Node;", |
+ $isInterceptor: 1, |
+ "%": "DocumentFragment|ShadowRoot" |
+ }, |
+ DomError: { |
+ "^": "Interceptor;message=", |
+ "%": "DOMError|FileError" |
+ }, |
+ DomException: { |
+ "^": "Interceptor;message=", |
+ toString$0: function(receiver) { |
+ return String(receiver); |
+ }, |
+ "%": "DOMException" |
+ }, |
+ DomRectReadOnly: { |
+ "^": "Interceptor;bottom=,height=,left=,right=,top=,width=", |
+ toString$0: function(receiver) { |
+ return "Rectangle (" + H.S(receiver.left) + ", " + H.S(receiver.top) + ") " + H.S(this.get$width(receiver)) + " x " + H.S(this.get$height(receiver)); |
+ }, |
+ $eq: function(receiver, other) { |
+ var t1, t2, t3; |
+ if (other == null) |
+ return false; |
+ t1 = J.getInterceptor(other); |
+ if (!t1.$isRectangle) |
+ return false; |
+ t2 = receiver.left; |
+ t3 = t1.get$left(other); |
+ if (t2 == null ? t3 == null : t2 === t3) { |
+ t2 = receiver.top; |
+ t3 = t1.get$top(other); |
+ if (t2 == null ? t3 == null : t2 === t3) { |
+ t2 = this.get$width(receiver); |
+ t3 = t1.get$width(other); |
+ if (t2 == null ? t3 == null : t2 === t3) { |
+ t2 = this.get$height(receiver); |
+ t1 = t1.get$height(other); |
+ t1 = t2 == null ? t1 == null : t2 === t1; |
+ } else |
+ t1 = false; |
+ } else |
+ t1 = false; |
+ } else |
+ t1 = false; |
+ return t1; |
+ }, |
+ get$hashCode: function(receiver) { |
+ var t1, t2, t3, t4; |
+ t1 = J.get$hashCode$(receiver.left); |
+ t2 = J.get$hashCode$(receiver.top); |
+ t3 = J.get$hashCode$(this.get$width(receiver)); |
+ t4 = J.get$hashCode$(this.get$height(receiver)); |
+ return W._JenkinsSmiHash_finish(W._JenkinsSmiHash_combine(W._JenkinsSmiHash_combine(W._JenkinsSmiHash_combine(W._JenkinsSmiHash_combine(0, t1), t2), t3), t4)); |
+ }, |
+ $isRectangle: 1, |
+ $asRectangle: $.functionThatReturnsNull, |
+ "%": ";DOMRectReadOnly" |
+ }, |
+ Element: { |
+ "^": "Node;", |
+ toString$0: function(receiver) { |
+ return receiver.localName; |
+ }, |
+ get$onLoad: function(receiver) { |
+ return H.setRuntimeTypeInfo(new W._ElementEventStreamImpl(receiver, "load", false), [null]); |
+ }, |
+ $isElement: 1, |
+ $isNode: 1, |
+ $isObject: 1, |
+ $isInterceptor: 1, |
+ "%": ";Element" |
+ }, |
+ EmbedElement: { |
+ "^": "HtmlElement;src}", |
+ "%": "HTMLEmbedElement" |
+ }, |
+ ErrorEvent: { |
+ "^": "Event;error=,message=", |
+ "%": "ErrorEvent" |
+ }, |
+ Event: { |
+ "^": "Interceptor;", |
+ "%": "AnimationPlayerEvent|AudioProcessingEvent|AutocompleteErrorEvent|BeforeUnloadEvent|CloseEvent|CustomEvent|DeviceLightEvent|DeviceMotionEvent|DeviceOrientationEvent|FetchEvent|FontFaceSetLoadEvent|GamepadEvent|HashChangeEvent|IDBVersionChangeEvent|InstallEvent|InstallPhaseEvent|MIDIConnectionEvent|MediaKeyNeededEvent|MediaStreamEvent|MediaStreamTrackEvent|MutationEvent|OfflineAudioCompletionEvent|OverflowEvent|PageTransitionEvent|PopStateEvent|ProgressEvent|RTCDTMFToneChangeEvent|RTCDataChannelEvent|RTCIceCandidateEvent|RelatedEvent|ResourceProgressEvent|SecurityPolicyViolationEvent|SpeechRecognitionEvent|SpeechSynthesisEvent|StorageEvent|TrackEvent|TransitionEvent|WebGLContextEvent|WebKitAnimationEvent|WebKitTransitionEvent|XMLHttpRequestProgressEvent;ClipboardEvent|Event|InputEvent" |
+ }, |
+ EventTarget: { |
+ "^": "Interceptor;", |
+ _addEventListener$3: function(receiver, type, listener, useCapture) { |
+ return receiver.addEventListener(type, H.convertDartClosureToJS(listener, 1), useCapture); |
+ }, |
+ _removeEventListener$3: function(receiver, type, listener, useCapture) { |
+ return receiver.removeEventListener(type, H.convertDartClosureToJS(listener, 1), useCapture); |
+ }, |
+ "%": "MediaStream;EventTarget" |
+ }, |
+ File: { |
+ "^": "Blob;", |
+ $isFile: 1, |
+ "%": "File" |
+ }, |
+ FormElement: { |
+ "^": "HtmlElement;length=", |
+ "%": "HTMLFormElement" |
+ }, |
+ HtmlCollection: { |
+ "^": "Interceptor_ListMixin_ImmutableListMixin;", |
+ get$length: function(receiver) { |
+ return receiver.length; |
+ }, |
+ $index: function(receiver, index) { |
+ if (index >>> 0 !== index || index >= receiver.length) |
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null)); |
+ return receiver[index]; |
+ }, |
+ $indexSet: function(receiver, index, value) { |
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List.")); |
+ }, |
+ set$length: function(receiver, value) { |
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List.")); |
+ }, |
+ get$last: function(receiver) { |
+ var len = receiver.length; |
+ if (len > 0) |
+ return receiver[len - 1]; |
+ throw H.wrapException(P.StateError$("No elements")); |
+ }, |
+ elementAt$1: function(receiver, index) { |
+ if (index < 0 || index >= receiver.length) |
+ return H.ioore(receiver, index); |
+ return receiver[index]; |
+ }, |
+ $isList: 1, |
+ $asList: function() { |
+ return [W.Node]; |
+ }, |
+ $isEfficientLength: 1, |
+ $isJavaScriptIndexingBehavior: 1, |
+ $isJSIndexable: 1, |
+ "%": "HTMLCollection|HTMLFormControlsCollection|HTMLOptionsCollection" |
+ }, |
+ Interceptor_ListMixin: { |
+ "^": "Interceptor+ListMixin;", |
+ $isList: 1, |
+ $asList: function() { |
+ return [W.Node]; |
+ }, |
+ $isEfficientLength: 1 |
+ }, |
+ Interceptor_ListMixin_ImmutableListMixin: { |
+ "^": "Interceptor_ListMixin+ImmutableListMixin;", |
+ $isList: 1, |
+ $asList: function() { |
+ return [W.Node]; |
+ }, |
+ $isEfficientLength: 1 |
+ }, |
+ IFrameElement: { |
+ "^": "HtmlElement;src}", |
+ get$contentWindow: function(receiver) { |
+ return W._convertNativeToDart_Window(receiver.contentWindow); |
+ }, |
+ "%": "HTMLIFrameElement" |
+ }, |
+ ImageElement: { |
+ "^": "HtmlElement;src}", |
+ "%": "HTMLImageElement" |
+ }, |
+ InputElement: { |
+ "^": "HtmlElement;src}", |
+ $isInterceptor: 1, |
+ "%": "HTMLInputElement" |
+ }, |
+ KeyboardEvent: { |
+ "^": "UIEvent;location=", |
+ "%": "KeyboardEvent" |
+ }, |
+ Location: { |
+ "^": "Interceptor;", |
+ get$origin: function(receiver) { |
+ if ("origin" in receiver) |
+ return receiver.origin; |
+ return H.S(receiver.protocol) + "//" + H.S(receiver.host); |
+ }, |
+ toString$0: function(receiver) { |
+ return String(receiver); |
+ }, |
+ "%": "Location" |
+ }, |
+ MediaElement: { |
+ "^": "HtmlElement;error=,src}", |
+ "%": "HTMLAudioElement|HTMLMediaElement|HTMLVideoElement" |
+ }, |
+ MediaKeyEvent: { |
+ "^": "Event;message=", |
+ "%": "MediaKeyEvent" |
+ }, |
+ MediaKeyMessageEvent: { |
+ "^": "Event;message=", |
+ "%": "MediaKeyMessageEvent" |
+ }, |
+ MessageEvent: { |
+ "^": "Event;origin=", |
+ get$data: function(receiver) { |
+ return P.convertNativeToDart_AcceptStructuredClone(receiver.data, true); |
+ }, |
+ "%": "MessageEvent" |
+ }, |
+ MidiMessageEvent: { |
+ "^": "Event;data=", |
+ "%": "MIDIMessageEvent" |
+ }, |
+ MidiOutput: { |
+ "^": "MidiPort;", |
+ send$2: function(receiver, data, timestamp) { |
+ return receiver.send(data, timestamp); |
+ }, |
+ send$1: function($receiver, data) { |
+ return $receiver.send(data); |
+ }, |
+ "%": "MIDIOutput" |
+ }, |
+ MidiPort: { |
+ "^": "EventTarget;", |
+ "%": "MIDIInput;MIDIPort" |
+ }, |
+ Navigator: { |
+ "^": "Interceptor;", |
+ $isInterceptor: 1, |
+ "%": "Navigator" |
+ }, |
+ NavigatorUserMediaError: { |
+ "^": "Interceptor;message=", |
+ "%": "NavigatorUserMediaError" |
+ }, |
+ Node: { |
+ "^": "EventTarget;parent:parentElement=", |
+ toString$0: function(receiver) { |
+ var value = receiver.nodeValue; |
+ return value == null ? this.super$Interceptor$toString$0(receiver) : value; |
+ }, |
+ contains$1: function(receiver, other) { |
+ return receiver.contains(other); |
+ }, |
+ $isNode: 1, |
+ $isObject: 1, |
+ "%": "Attr|Document|HTMLDocument|Notation|XMLDocument;Node" |
+ }, |
+ NodeList: { |
+ "^": "Interceptor_ListMixin_ImmutableListMixin0;", |
+ get$length: function(receiver) { |
+ return receiver.length; |
+ }, |
+ $index: function(receiver, index) { |
+ if (index >>> 0 !== index || index >= receiver.length) |
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null)); |
+ return receiver[index]; |
+ }, |
+ $indexSet: function(receiver, index, value) { |
+ throw H.wrapException(P.UnsupportedError$("Cannot assign element of immutable List.")); |
+ }, |
+ set$length: function(receiver, value) { |
+ throw H.wrapException(P.UnsupportedError$("Cannot resize immutable List.")); |
+ }, |
+ get$last: function(receiver) { |
+ var len = receiver.length; |
+ if (len > 0) |
+ return receiver[len - 1]; |
+ throw H.wrapException(P.StateError$("No elements")); |
+ }, |
+ elementAt$1: function(receiver, index) { |
+ if (index < 0 || index >= receiver.length) |
+ return H.ioore(receiver, index); |
+ return receiver[index]; |
+ }, |
+ $isList: 1, |
+ $asList: function() { |
+ return [W.Node]; |
+ }, |
+ $isEfficientLength: 1, |
+ $isJavaScriptIndexingBehavior: 1, |
+ $isJSIndexable: 1, |
+ "%": "NodeList|RadioNodeList" |
+ }, |
+ Interceptor_ListMixin0: { |
+ "^": "Interceptor+ListMixin;", |
+ $isList: 1, |
+ $asList: function() { |
+ return [W.Node]; |
+ }, |
+ $isEfficientLength: 1 |
+ }, |
+ Interceptor_ListMixin_ImmutableListMixin0: { |
+ "^": "Interceptor_ListMixin0+ImmutableListMixin;", |
+ $isList: 1, |
+ $asList: function() { |
+ return [W.Node]; |
+ }, |
+ $isEfficientLength: 1 |
+ }, |
+ OListElement: { |
+ "^": "HtmlElement;start=", |
+ "%": "HTMLOListElement" |
+ }, |
+ ObjectElement: { |
+ "^": "HtmlElement;data=", |
+ "%": "HTMLObjectElement" |
+ }, |
+ PositionError: { |
+ "^": "Interceptor;message=", |
+ "%": "PositionError" |
+ }, |
+ PushEvent: { |
+ "^": "Event;data=", |
+ "%": "PushEvent" |
+ }, |
+ ScriptElement: { |
+ "^": "HtmlElement;src}", |
+ "%": "HTMLScriptElement" |
+ }, |
+ SelectElement: { |
+ "^": "HtmlElement;length=", |
+ "%": "HTMLSelectElement" |
+ }, |
+ SourceElement: { |
+ "^": "HtmlElement;src}", |
+ "%": "HTMLSourceElement" |
+ }, |
+ SpeechRecognitionError: { |
+ "^": "Event;error=,message=", |
+ "%": "SpeechRecognitionError" |
+ }, |
+ TextEvent: { |
+ "^": "UIEvent;data=", |
+ "%": "TextEvent" |
+ }, |
+ TrackElement: { |
+ "^": "HtmlElement;src}", |
+ "%": "HTMLTrackElement" |
+ }, |
+ UIEvent: { |
+ "^": "Event;", |
+ "%": "DragEvent|FocusEvent|MSPointerEvent|MouseEvent|MouseScrollEvent|MouseWheelEvent|PointerEvent|SVGZoomEvent|TouchEvent|WheelEvent;UIEvent" |
+ }, |
+ WebSocket: { |
+ "^": "EventTarget;", |
+ close$2: function(receiver, code, reason) { |
+ return receiver.close(code, reason); |
+ }, |
+ close$0: function($receiver) { |
+ return $receiver.close(); |
+ }, |
+ send$1: function(receiver, data) { |
+ return receiver.send(data); |
+ }, |
+ "%": "WebSocket" |
+ }, |
+ Window: { |
+ "^": "EventTarget;", |
+ get$location: function(receiver) { |
+ return receiver.location; |
+ }, |
+ get$parent: function(receiver) { |
+ return W._convertNativeToDart_Window(receiver.parent); |
+ }, |
+ close$0: function(receiver) { |
+ return receiver.close(); |
+ }, |
+ postMessage$3: function(receiver, message, targetOrigin, transfer) { |
+ receiver.postMessage(P._convertDartToNative_PrepareForStructuredClone(message), targetOrigin); |
+ return; |
+ }, |
+ postMessage$2: function($receiver, message, targetOrigin) { |
+ return this.postMessage$3($receiver, message, targetOrigin, null); |
+ }, |
+ $isInterceptor: 1, |
+ "%": "DOMWindow|Window" |
+ }, |
+ _ClientRect: { |
+ "^": "Interceptor;bottom=,height=,left=,right=,top=,width=", |
+ toString$0: function(receiver) { |
+ return "Rectangle (" + H.S(receiver.left) + ", " + H.S(receiver.top) + ") " + H.S(receiver.width) + " x " + H.S(receiver.height); |
+ }, |
+ $eq: function(receiver, other) { |
+ var t1, t2, t3; |
+ if (other == null) |
+ return false; |
+ t1 = J.getInterceptor(other); |
+ if (!t1.$isRectangle) |
+ return false; |
+ t2 = receiver.left; |
+ t3 = t1.get$left(other); |
+ if (t2 == null ? t3 == null : t2 === t3) { |
+ t2 = receiver.top; |
+ t3 = t1.get$top(other); |
+ if (t2 == null ? t3 == null : t2 === t3) { |
+ t2 = receiver.width; |
+ t3 = t1.get$width(other); |
+ if (t2 == null ? t3 == null : t2 === t3) { |
+ t2 = receiver.height; |
+ t1 = t1.get$height(other); |
+ t1 = t2 == null ? t1 == null : t2 === t1; |
+ } else |
+ t1 = false; |
+ } else |
+ t1 = false; |
+ } else |
+ t1 = false; |
+ return t1; |
+ }, |
+ get$hashCode: function(receiver) { |
+ var t1, t2, t3, t4; |
+ t1 = J.get$hashCode$(receiver.left); |
+ t2 = J.get$hashCode$(receiver.top); |
+ t3 = J.get$hashCode$(receiver.width); |
+ t4 = J.get$hashCode$(receiver.height); |
+ return W._JenkinsSmiHash_finish(W._JenkinsSmiHash_combine(W._JenkinsSmiHash_combine(W._JenkinsSmiHash_combine(W._JenkinsSmiHash_combine(0, t1), t2), t3), t4)); |
+ }, |
+ $isRectangle: 1, |
+ $asRectangle: $.functionThatReturnsNull, |
+ "%": "ClientRect" |
+ }, |
+ _DocumentType: { |
+ "^": "Node;", |
+ $isInterceptor: 1, |
+ "%": "DocumentType" |
+ }, |
+ _DomRect: { |
+ "^": "DomRectReadOnly;", |
+ get$height: function(receiver) { |
+ return receiver.height; |
+ }, |
+ get$width: function(receiver) { |
+ return receiver.width; |
+ }, |
+ "%": "DOMRect" |
+ }, |
+ _HTMLFrameSetElement: { |
+ "^": "HtmlElement;", |
+ $isInterceptor: 1, |
+ "%": "HTMLFrameSetElement" |
+ }, |
+ _EventStream: { |
+ "^": "Stream;_html$_target,_eventType,_useCapture", |
+ listen$4$cancelOnError$onDone$onError: function(onData, cancelOnError, onDone, onError) { |
+ var t1 = new W._EventStreamSubscription(0, this._html$_target, this._eventType, W._wrapZone(onData), this._useCapture); |
+ t1.$builtinTypeInfo = this.$builtinTypeInfo; |
+ t1._tryResume$0(); |
+ return t1; |
+ }, |
+ listen$3$onDone$onError: function(onData, onDone, onError) { |
+ return this.listen$4$cancelOnError$onDone$onError(onData, null, onDone, onError); |
+ } |
+ }, |
+ _ElementEventStreamImpl: { |
+ "^": "_EventStream;_html$_target,_eventType,_useCapture" |
+ }, |
+ _EventStreamSubscription: { |
+ "^": "StreamSubscription;_pauseCount,_html$_target,_eventType,_html$_onData,_useCapture", |
+ cancel$0: function() { |
+ if (this._html$_target == null) |
+ return; |
+ this._unlisten$0(); |
+ this._html$_target = null; |
+ this._html$_onData = null; |
+ return; |
+ }, |
+ pause$1: function(_, resumeSignal) { |
+ if (this._html$_target == null) |
+ return; |
+ ++this._pauseCount; |
+ this._unlisten$0(); |
+ }, |
+ pause$0: function($receiver) { |
+ return this.pause$1($receiver, null); |
+ }, |
+ resume$0: function() { |
+ if (this._html$_target == null || this._pauseCount <= 0) |
+ return; |
+ --this._pauseCount; |
+ this._tryResume$0(); |
+ }, |
+ _tryResume$0: function() { |
+ var t1, t2, t3; |
+ t1 = this._html$_onData; |
+ t2 = t1 != null; |
+ if (t2 && this._pauseCount <= 0) { |
+ t3 = this._html$_target; |
+ t3.toString; |
+ if (t2) |
+ J._addEventListener$3$x(t3, this._eventType, t1, this._useCapture); |
+ } |
+ }, |
+ _unlisten$0: function() { |
+ var t1, t2, t3; |
+ t1 = this._html$_onData; |
+ t2 = t1 != null; |
+ if (t2) { |
+ t3 = this._html$_target; |
+ t3.toString; |
+ if (t2) |
+ J._removeEventListener$3$x(t3, this._eventType, t1, this._useCapture); |
+ } |
+ } |
+ }, |
+ ImmutableListMixin: { |
+ "^": "Object;", |
+ get$iterator: function(receiver) { |
+ return new W.FixedSizeListIterator(receiver, this.get$length(receiver), -1, null); |
+ }, |
+ add$1: function(receiver, value) { |
+ throw H.wrapException(P.UnsupportedError$("Cannot add to immutable List.")); |
+ }, |
+ $isList: 1, |
+ $asList: null, |
+ $isEfficientLength: 1 |
+ }, |
+ FixedSizeListIterator: { |
+ "^": "Object;_array,_length,_position,_html$_current", |
+ moveNext$0: function() { |
+ var nextPosition, t1; |
+ nextPosition = this._position + 1; |
+ t1 = this._length; |
+ if (nextPosition < t1) { |
+ this._html$_current = J.$index$asx(this._array, nextPosition); |
+ this._position = nextPosition; |
+ return true; |
+ } |
+ this._html$_current = null; |
+ this._position = t1; |
+ return false; |
+ }, |
+ get$current: function() { |
+ return this._html$_current; |
+ } |
+ }, |
+ _DOMWindowCrossFrame: { |
+ "^": "Object;_window", |
+ get$location: function(_) { |
+ return W._LocationCrossFrame__createSafe(this._window.location); |
+ }, |
+ get$parent: function(_) { |
+ return W._DOMWindowCrossFrame__createSafe(this._window.parent); |
+ }, |
+ close$0: function(_) { |
+ return this._window.close(); |
+ }, |
+ postMessage$3: function(_, message, targetOrigin, messagePorts) { |
+ this._window.postMessage(P._convertDartToNative_PrepareForStructuredClone(message), targetOrigin); |
+ }, |
+ postMessage$2: function($receiver, message, targetOrigin) { |
+ return this.postMessage$3($receiver, message, targetOrigin, null); |
+ }, |
+ $isInterceptor: 1, |
+ static: {_DOMWindowCrossFrame__createSafe: function(w) { |
+ if (w === window) |
+ return w; |
+ else |
+ return new W._DOMWindowCrossFrame(w); |
+ }} |
+ }, |
+ _LocationCrossFrame: { |
+ "^": "Object;_location", |
+ static: {_LocationCrossFrame__createSafe: function($location) { |
+ if ($location === window.location) |
+ return $location; |
+ else |
+ return new W._LocationCrossFrame($location); |
+ }} |
+ } |
+}], |
+["dart.dom.indexed_db", "dart:indexed_db", , P, { |
+ "^": "" |
+}], |
+["dart.dom.svg", "dart:svg", , P, { |
+ "^": "", |
+ AElement: { |
+ "^": "GraphicsElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGAElement" |
+ }, |
+ AltGlyphElement: { |
+ "^": "TextPositioningElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGAltGlyphElement" |
+ }, |
+ AnimationElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGAnimateElement|SVGAnimateMotionElement|SVGAnimateTransformElement|SVGAnimationElement|SVGSetElement" |
+ }, |
+ FEBlendElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFEBlendElement" |
+ }, |
+ FEColorMatrixElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFEColorMatrixElement" |
+ }, |
+ FEComponentTransferElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFEComponentTransferElement" |
+ }, |
+ FECompositeElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFECompositeElement" |
+ }, |
+ FEConvolveMatrixElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFEConvolveMatrixElement" |
+ }, |
+ FEDiffuseLightingElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFEDiffuseLightingElement" |
+ }, |
+ FEDisplacementMapElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFEDisplacementMapElement" |
+ }, |
+ FEFloodElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFEFloodElement" |
+ }, |
+ FEGaussianBlurElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFEGaussianBlurElement" |
+ }, |
+ FEImageElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFEImageElement" |
+ }, |
+ FEMergeElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFEMergeElement" |
+ }, |
+ FEMorphologyElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFEMorphologyElement" |
+ }, |
+ FEOffsetElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFEOffsetElement" |
+ }, |
+ FESpecularLightingElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFESpecularLightingElement" |
+ }, |
+ FETileElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFETileElement" |
+ }, |
+ FETurbulenceElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFETurbulenceElement" |
+ }, |
+ FilterElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFilterElement" |
+ }, |
+ GraphicsElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGCircleElement|SVGClipPathElement|SVGDefsElement|SVGEllipseElement|SVGForeignObjectElement|SVGGElement|SVGGeometryElement|SVGLineElement|SVGPathElement|SVGPolygonElement|SVGPolylineElement|SVGRectElement|SVGSwitchElement;SVGGraphicsElement" |
+ }, |
+ ImageElement0: { |
+ "^": "GraphicsElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGImageElement" |
+ }, |
+ MarkerElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGMarkerElement" |
+ }, |
+ MaskElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGMaskElement" |
+ }, |
+ PatternElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGPatternElement" |
+ }, |
+ ScriptElement0: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGScriptElement" |
+ }, |
+ SvgElement: { |
+ "^": "Element;", |
+ $isInterceptor: 1, |
+ "%": "SVGAltGlyphDefElement|SVGAltGlyphItemElement|SVGComponentTransferFunctionElement|SVGDescElement|SVGDiscardElement|SVGFEDistantLightElement|SVGFEFuncAElement|SVGFEFuncBElement|SVGFEFuncGElement|SVGFEFuncRElement|SVGFEMergeNodeElement|SVGFEPointLightElement|SVGFESpotLightElement|SVGFontElement|SVGFontFaceElement|SVGFontFaceFormatElement|SVGFontFaceNameElement|SVGFontFaceSrcElement|SVGFontFaceUriElement|SVGGlyphElement|SVGHKernElement|SVGMetadataElement|SVGMissingGlyphElement|SVGStopElement|SVGStyleElement|SVGTitleElement|SVGVKernElement;SVGElement" |
+ }, |
+ SvgSvgElement: { |
+ "^": "GraphicsElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGSVGElement" |
+ }, |
+ SymbolElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGSymbolElement" |
+ }, |
+ TextContentElement: { |
+ "^": "GraphicsElement;", |
+ "%": ";SVGTextContentElement" |
+ }, |
+ TextPathElement: { |
+ "^": "TextContentElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGTextPathElement" |
+ }, |
+ TextPositioningElement: { |
+ "^": "TextContentElement;", |
+ "%": "SVGTSpanElement|SVGTextElement;SVGTextPositioningElement" |
+ }, |
+ UseElement: { |
+ "^": "GraphicsElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGUseElement" |
+ }, |
+ ViewElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGViewElement" |
+ }, |
+ _GradientElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGGradientElement|SVGLinearGradientElement|SVGRadialGradientElement" |
+ }, |
+ _SVGCursorElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGCursorElement" |
+ }, |
+ _SVGFEDropShadowElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGFEDropShadowElement" |
+ }, |
+ _SVGGlyphRefElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGGlyphRefElement" |
+ }, |
+ _SVGMPathElement: { |
+ "^": "SvgElement;", |
+ $isInterceptor: 1, |
+ "%": "SVGMPathElement" |
+ } |
+}], |
+["dart.dom.web_audio", "dart:web_audio", , P, { |
+ "^": "" |
+}], |
+["dart.dom.web_gl", "dart:web_gl", , P, { |
+ "^": "" |
+}], |
+["dart.dom.web_sql", "dart:web_sql", , P, { |
+ "^": "", |
+ SqlError: { |
+ "^": "Interceptor;message=", |
+ "%": "SQLError" |
+ } |
+}], |
+["dart.isolate", "dart:isolate", , P, { |
+ "^": "", |
+ Capability: { |
+ "^": "Object;" |
+ } |
+}], |
+["dart.math", "dart:math", , P, { |
+ "^": "", |
+ _JenkinsSmiHash_combine0: function(hash, value) { |
+ hash = 536870911 & hash + value; |
+ hash = 536870911 & hash + ((524287 & hash) << 10 >>> 0); |
+ return hash ^ hash >>> 6; |
+ }, |
+ _JenkinsSmiHash_finish0: function(hash) { |
+ hash = 536870911 & hash + ((67108863 & hash) << 3 >>> 0); |
+ hash ^= hash >>> 11; |
+ return 536870911 & hash + ((16383 & hash) << 15 >>> 0); |
+ }, |
+ max: [function(a, b) { |
+ var t1; |
+ if (typeof a !== "number") |
+ throw H.wrapException(P.ArgumentError$(a)); |
+ if (typeof b !== "number") |
+ throw H.wrapException(P.ArgumentError$(b)); |
+ if (a > b) |
+ return a; |
+ if (a < b) |
+ return b; |
+ if (typeof b === "number") { |
+ if (typeof a === "number") |
+ if (a === 0) |
+ return a + b; |
+ if (C.JSDouble_methods.get$isNaN(b)) |
+ return b; |
+ return a; |
+ } |
+ if (b === 0) |
+ t1 = a === 0 ? 1 / a < 0 : a < 0; |
+ else |
+ t1 = false; |
+ if (t1) |
+ return b; |
+ return a; |
+ }, "call$2", "max$closure", 4, 0, 49] |
+}], |
+["dart.typed_data.implementation", "dart:_native_typed_data", , H, { |
+ "^": "", |
+ NativeByteBuffer: { |
+ "^": "Interceptor;", |
+ $isNativeByteBuffer: 1, |
+ "%": "ArrayBuffer" |
+ }, |
+ NativeTypedData: { |
+ "^": "Interceptor;", |
+ _invalidIndex$2: function(receiver, index, $length) { |
+ var t1 = J.getInterceptor$n(index); |
+ if (t1.$lt(index, 0) || t1.$ge(index, $length)) { |
+ if (!!this.$isList) |
+ if ($length === receiver.length) |
+ throw H.wrapException(P.IndexError$(index, receiver, null, null, null)); |
+ throw H.wrapException(P.RangeError$range(index, 0, $length - 1, null, null)); |
+ } else |
+ throw H.wrapException(P.ArgumentError$("Invalid list index " + H.S(index))); |
+ }, |
+ _checkIndex$2: function(receiver, index, $length) { |
+ if (index >>> 0 !== index || index >= $length) |
+ this._invalidIndex$2(receiver, index, $length); |
+ }, |
+ _checkSublistArguments$3: function(receiver, start, end, $length) { |
+ var t1 = $length + 1; |
+ this._checkIndex$2(receiver, start, t1); |
+ this._checkIndex$2(receiver, end, t1); |
+ if (start > end) |
+ throw H.wrapException(P.RangeError$range(start, 0, end, null, null)); |
+ return end; |
+ }, |
+ $isNativeTypedData: 1, |
+ "%": "DataView;ArrayBufferView;NativeTypedArray|NativeTypedArray_ListMixin|NativeTypedArray_ListMixin_FixedLengthListMixin|NativeTypedArrayOfDouble|NativeTypedArray_ListMixin0|NativeTypedArray_ListMixin_FixedLengthListMixin0|NativeTypedArrayOfInt" |
+ }, |
+ NativeTypedArray: { |
+ "^": "NativeTypedData;", |
+ get$length: function(receiver) { |
+ return receiver.length; |
+ }, |
+ $isJavaScriptIndexingBehavior: 1, |
+ $isJSIndexable: 1 |
+ }, |
+ NativeTypedArrayOfDouble: { |
+ "^": "NativeTypedArray_ListMixin_FixedLengthListMixin;", |
+ $index: function(receiver, index) { |
+ var t1 = receiver.length; |
+ if (index >>> 0 !== index || index >= t1) |
+ this._invalidIndex$2(receiver, index, t1); |
+ return receiver[index]; |
+ }, |
+ $indexSet: function(receiver, index, value) { |
+ var t1 = receiver.length; |
+ if (index >>> 0 !== index || index >= t1) |
+ this._invalidIndex$2(receiver, index, t1); |
+ receiver[index] = value; |
+ } |
+ }, |
+ NativeTypedArray_ListMixin: { |
+ "^": "NativeTypedArray+ListMixin;", |
+ $isList: 1, |
+ $asList: function() { |
+ return [P.$double]; |
+ }, |
+ $isEfficientLength: 1 |
+ }, |
+ NativeTypedArray_ListMixin_FixedLengthListMixin: { |
+ "^": "NativeTypedArray_ListMixin+FixedLengthListMixin;" |
+ }, |
+ NativeTypedArrayOfInt: { |
+ "^": "NativeTypedArray_ListMixin_FixedLengthListMixin0;", |
+ $indexSet: function(receiver, index, value) { |
+ var t1 = receiver.length; |
+ if (index >>> 0 !== index || index >= t1) |
+ this._invalidIndex$2(receiver, index, t1); |
+ receiver[index] = value; |
+ }, |
+ $isList: 1, |
+ $asList: function() { |
+ return [P.$int]; |
+ }, |
+ $isEfficientLength: 1 |
+ }, |
+ NativeTypedArray_ListMixin0: { |
+ "^": "NativeTypedArray+ListMixin;", |
+ $isList: 1, |
+ $asList: function() { |
+ return [P.$int]; |
+ }, |
+ $isEfficientLength: 1 |
+ }, |
+ NativeTypedArray_ListMixin_FixedLengthListMixin0: { |
+ "^": "NativeTypedArray_ListMixin0+FixedLengthListMixin;" |
+ }, |
+ NativeFloat32List: { |
+ "^": "NativeTypedArrayOfDouble;", |
+ $isList: 1, |
+ $asList: function() { |
+ return [P.$double]; |
+ }, |
+ $isEfficientLength: 1, |
+ "%": "Float32Array" |
+ }, |
+ NativeFloat64List: { |
+ "^": "NativeTypedArrayOfDouble;", |
+ $isList: 1, |
+ $asList: function() { |
+ return [P.$double]; |
+ }, |
+ $isEfficientLength: 1, |
+ "%": "Float64Array" |
+ }, |
+ NativeInt16List: { |
+ "^": "NativeTypedArrayOfInt;", |
+ $index: function(receiver, index) { |
+ var t1 = receiver.length; |
+ if (index >>> 0 !== index || index >= t1) |
+ this._invalidIndex$2(receiver, index, t1); |
+ return receiver[index]; |
+ }, |
+ $isList: 1, |
+ $asList: function() { |
+ return [P.$int]; |
+ }, |
+ $isEfficientLength: 1, |
+ "%": "Int16Array" |
+ }, |
+ NativeInt32List: { |
+ "^": "NativeTypedArrayOfInt;", |
+ $index: function(receiver, index) { |
+ var t1 = receiver.length; |
+ if (index >>> 0 !== index || index >= t1) |
+ this._invalidIndex$2(receiver, index, t1); |
+ return receiver[index]; |
+ }, |
+ $isList: 1, |
+ $asList: function() { |
+ return [P.$int]; |
+ }, |
+ $isEfficientLength: 1, |
+ "%": "Int32Array" |
+ }, |
+ NativeInt8List: { |
+ "^": "NativeTypedArrayOfInt;", |
+ $index: function(receiver, index) { |
+ var t1 = receiver.length; |
+ if (index >>> 0 !== index || index >= t1) |
+ this._invalidIndex$2(receiver, index, t1); |
+ return receiver[index]; |
+ }, |
+ $isList: 1, |
+ $asList: function() { |
+ return [P.$int]; |
+ }, |
+ $isEfficientLength: 1, |
+ "%": "Int8Array" |
+ }, |
+ NativeUint16List: { |
+ "^": "NativeTypedArrayOfInt;", |
+ $index: function(receiver, index) { |
+ var t1 = receiver.length; |
+ if (index >>> 0 !== index || index >= t1) |
+ this._invalidIndex$2(receiver, index, t1); |
+ return receiver[index]; |
+ }, |
+ $isList: 1, |
+ $asList: function() { |
+ return [P.$int]; |
+ }, |
+ $isEfficientLength: 1, |
+ "%": "Uint16Array" |
+ }, |
+ NativeUint32List: { |
+ "^": "NativeTypedArrayOfInt;", |
+ $index: function(receiver, index) { |
+ var t1 = receiver.length; |
+ if (index >>> 0 !== index || index >= t1) |
+ this._invalidIndex$2(receiver, index, t1); |
+ return receiver[index]; |
+ }, |
+ $isList: 1, |
+ $asList: function() { |
+ return [P.$int]; |
+ }, |
+ $isEfficientLength: 1, |
+ "%": "Uint32Array" |
+ }, |
+ NativeUint8ClampedList: { |
+ "^": "NativeTypedArrayOfInt;", |
+ get$length: function(receiver) { |
+ return receiver.length; |
+ }, |
+ $index: function(receiver, index) { |
+ var t1 = receiver.length; |
+ if (index >>> 0 !== index || index >= t1) |
+ this._invalidIndex$2(receiver, index, t1); |
+ return receiver[index]; |
+ }, |
+ $isList: 1, |
+ $asList: function() { |
+ return [P.$int]; |
+ }, |
+ $isEfficientLength: 1, |
+ "%": "CanvasPixelArray|Uint8ClampedArray" |
+ }, |
+ NativeUint8List: { |
+ "^": "NativeTypedArrayOfInt;", |
+ get$length: function(receiver) { |
+ return receiver.length; |
+ }, |
+ $index: function(receiver, index) { |
+ var t1 = receiver.length; |
+ if (index >>> 0 !== index || index >= t1) |
+ this._invalidIndex$2(receiver, index, t1); |
+ return receiver[index]; |
+ }, |
+ $isList: 1, |
+ $asList: function() { |
+ return [P.$int]; |
+ }, |
+ $isEfficientLength: 1, |
+ "%": ";Uint8Array" |
+ } |
+}], |
+["dart2js._js_primitives", "dart:_js_primitives", , H, { |
+ "^": "", |
+ printString: function(string) { |
+ if (typeof dartPrint == "function") { |
+ dartPrint(string); |
+ return; |
+ } |
+ if (typeof console == "object" && typeof console.log != "undefined") { |
+ console.log(string); |
+ return; |
+ } |
+ if (typeof window == "object") |
+ return; |
+ if (typeof print == "function") { |
+ print(string); |
+ return; |
+ } |
+ throw "Unable to print message: " + String(string); |
+ } |
+}], |
+["frame", "package:stack_trace/src/frame.dart", , S, { |
+ "^": "", |
+ Frame: { |
+ "^": "Object;uri<,line,column,member<", |
+ get$isCore: function() { |
+ return this.uri.scheme === "dart"; |
+ }, |
+ get$$package: function() { |
+ var t1 = this.uri; |
+ if (t1.scheme !== "package") |
+ return; |
+ return C.JSArray_methods.get$first(t1._path.split("/")); |
+ }, |
+ get$location: function(_) { |
+ var t1, t2; |
+ t1 = this.line; |
+ if (t1 == null) |
+ return $.get$context().prettyUri$1(this.uri); |
+ t2 = this.column; |
+ if (t2 == null) |
+ return $.get$context().prettyUri$1(this.uri) + " " + H.S(t1); |
+ return $.get$context().prettyUri$1(this.uri) + " " + H.S(t1) + ":" + H.S(t2); |
+ }, |
+ toString$0: function(_) { |
+ return this.get$location(this) + " in " + H.S(this.member); |
+ }, |
+ static: {Frame_Frame$parseVM: function(frame) { |
+ var match, t1, t2, member, uri, lineAndColumn, line, column; |
+ if (J.$eq(frame, "...")) |
+ return new S.Frame(P.Uri_Uri(null, null, null, null, null, null, null, "", ""), null, null, "..."); |
+ match = $.get$_vmFrame().firstMatch$1(frame); |
+ if (match == null) |
+ throw H.wrapException(P.FormatException$("Couldn't parse VM stack trace line '" + H.S(frame) + "'.", null, null)); |
+ t1 = match._match; |
+ if (1 >= t1.length) |
+ return H.ioore(t1, 1); |
+ t2 = J.replaceAll$2$s(t1[1], $.get$_asyncBody(), "<async>"); |
+ H.checkString("<fn>"); |
+ member = H.stringReplaceAllUnchecked(t2, "<anonymous closure>", "<fn>"); |
+ if (2 >= t1.length) |
+ return H.ioore(t1, 2); |
+ uri = P.Uri_parse(t1[2]); |
+ if (3 >= t1.length) |
+ return H.ioore(t1, 3); |
+ lineAndColumn = J.split$1$s(t1[3], ":"); |
+ line = lineAndColumn.length > 1 ? H.Primitives_parseInt(lineAndColumn[1], null, null) : null; |
+ column = lineAndColumn.length > 2 ? H.Primitives_parseInt(lineAndColumn[2], null, null) : null; |
+ return new S.Frame(uri, line, column, member); |
+ }, Frame_Frame$parseV8: function(frame) { |
+ var match, t1, t2, t3, t4; |
+ match = $.get$_v8Frame().firstMatch$1(frame); |
+ if (match == null) |
+ throw H.wrapException(P.FormatException$("Couldn't parse V8 stack trace line '" + H.S(frame) + "'.", null, null)); |
+ t1 = new S.Frame_Frame$parseV8_parseLocation(frame); |
+ t2 = match._match; |
+ t3 = t2.length; |
+ if (2 >= t3) |
+ return H.ioore(t2, 2); |
+ t4 = t2[2]; |
+ if (t4 != null) { |
+ t2 = J.replaceAll$2$s(t2[1], "<anonymous>", "<fn>"); |
+ H.checkString("<fn>"); |
+ return t1.call$2(t4, H.stringReplaceAllUnchecked(t2, "Anonymous function", "<fn>")); |
+ } else { |
+ if (3 >= t3) |
+ return H.ioore(t2, 3); |
+ return t1.call$2(t2[3], "<fn>"); |
+ } |
+ }, Frame__uriOrPathToUri: function(uriOrPath) { |
+ var t1 = J.getInterceptor$asx(uriOrPath); |
+ if (t1.contains$1(uriOrPath, $.get$Frame__uriRegExp()) === true) |
+ return P.Uri_parse(uriOrPath); |
+ else if (t1.contains$1(uriOrPath, $.get$Frame__windowsRegExp()) === true) |
+ return P.Uri_Uri$file(uriOrPath, true); |
+ else if (t1.startsWith$1(uriOrPath, "/")) |
+ return P.Uri_Uri$file(uriOrPath, false); |
+ if (C.JSString_methods.contains$1(uriOrPath, "\\")) |
+ return $.get$windows().toUri$1(uriOrPath); |
+ return P.Uri_parse(uriOrPath); |
+ }} |
+ }, |
+ Frame_Frame$parseV8_parseLocation: { |
+ "^": "Closure:15;frame_0", |
+ call$2: function($location, member) { |
+ var t1, evalMatch, t2, urlMatch, t3; |
+ t1 = $.get$_v8EvalLocation(); |
+ evalMatch = t1.firstMatch$1($location); |
+ for (; evalMatch != null;) { |
+ t2 = evalMatch._match; |
+ if (1 >= t2.length) |
+ return H.ioore(t2, 1); |
+ $location = t2[1]; |
+ evalMatch = t1.firstMatch$1($location); |
+ } |
+ urlMatch = $.get$_v8UrlLocation().firstMatch$1($location); |
+ if (urlMatch == null) |
+ throw H.wrapException(P.FormatException$("Couldn't parse V8 stack trace line '" + H.S(this.frame_0) + "'.", null, null)); |
+ t1 = urlMatch._match; |
+ if (1 >= t1.length) |
+ return H.ioore(t1, 1); |
+ t2 = S.Frame__uriOrPathToUri(t1[1]); |
+ if (2 >= t1.length) |
+ return H.ioore(t1, 2); |
+ t3 = H.Primitives_parseInt(t1[2], null, null); |
+ if (3 >= t1.length) |
+ return H.ioore(t1, 3); |
+ return new S.Frame(t2, t3, H.Primitives_parseInt(t1[3], null, null), member); |
+ } |
+ } |
+}], |
+["html_common", "dart:html_common", , P, { |
+ "^": "", |
+ _convertDartToNative_PrepareForStructuredClone: function(value) { |
+ var copies, copy; |
+ copies = []; |
+ copy = new P._convertDartToNative_PrepareForStructuredClone_walk(new P._convertDartToNative_PrepareForStructuredClone_findSlot([], copies), new P._convertDartToNative_PrepareForStructuredClone_readSlot(copies), new P._convertDartToNative_PrepareForStructuredClone_writeSlot(copies)).call$1(value); |
+ new P._convertDartToNative_PrepareForStructuredClone_cleanupSlots().call$0(); |
+ return copy; |
+ }, |
+ convertNativeToDart_AcceptStructuredClone: function(object, mustCopy) { |
+ var copies = []; |
+ return new P.convertNativeToDart_AcceptStructuredClone_walk(mustCopy, new P.convertNativeToDart_AcceptStructuredClone_findSlot([], copies), new P.convertNativeToDart_AcceptStructuredClone_readSlot(copies), new P.convertNativeToDart_AcceptStructuredClone_writeSlot(copies)).call$1(object); |
+ }, |
+ _convertDartToNative_PrepareForStructuredClone_findSlot: { |
+ "^": "Closure:26;values_1,copies_2", |
+ call$1: function(value) { |
+ var t1, $length, i; |
+ t1 = this.values_1; |
+ $length = t1.length; |
+ for (i = 0; i < $length; ++i) |
+ if (t1[i] === value) |
+ return i; |
+ t1.push(value); |
+ this.copies_2.push(null); |
+ return $length; |
+ } |
+ }, |
+ _convertDartToNative_PrepareForStructuredClone_readSlot: { |
+ "^": "Closure:27;copies_3", |
+ call$1: function(i) { |
+ var t1 = this.copies_3; |
+ if (i >= t1.length) |
+ return H.ioore(t1, i); |
+ return t1[i]; |
+ } |
+ }, |
+ _convertDartToNative_PrepareForStructuredClone_writeSlot: { |
+ "^": "Closure:28;copies_4", |
+ call$2: function(i, x) { |
+ var t1 = this.copies_4; |
+ if (i >= t1.length) |
+ return H.ioore(t1, i); |
+ t1[i] = x; |
+ } |
+ }, |
+ _convertDartToNative_PrepareForStructuredClone_cleanupSlots: { |
+ "^": "Closure:0;", |
+ call$0: function() { |
+ } |
+ }, |
+ _convertDartToNative_PrepareForStructuredClone_walk: { |
+ "^": "Closure:2;findSlot_5,readSlot_6,writeSlot_7", |
+ call$1: function(e) { |
+ var t1, t2, slot, copy, $length, i; |
+ t1 = {}; |
+ if (e == null) |
+ return e; |
+ if (typeof e === "boolean") |
+ return e; |
+ if (typeof e === "number") |
+ return e; |
+ if (typeof e === "string") |
+ return e; |
+ t2 = J.getInterceptor(e); |
+ if (!!t2.$isDateTime) |
+ return new Date(e.millisecondsSinceEpoch); |
+ if (!!t2.$isRegExp) |
+ throw H.wrapException(P.UnimplementedError$("structured clone of RegExp")); |
+ if (!!t2.$isFile) |
+ return e; |
+ if (!!t2.$isBlob) |
+ return e; |
+ if (!!t2.$isNativeByteBuffer) |
+ return e; |
+ if (!!t2.$isNativeTypedData) |
+ return e; |
+ if (!!t2.$isMap) { |
+ slot = this.findSlot_5.call$1(e); |
+ copy = this.readSlot_6.call$1(slot); |
+ t1.copy_0 = copy; |
+ if (copy != null) |
+ return copy; |
+ copy = {}; |
+ t1.copy_0 = copy; |
+ this.writeSlot_7.call$2(slot, copy); |
+ t2.forEach$1(e, new P._convertDartToNative_PrepareForStructuredClone_walk_closure(t1, this)); |
+ return t1.copy_0; |
+ } |
+ if (!!t2.$isList) { |
+ $length = t2.get$length(e); |
+ slot = this.findSlot_5.call$1(e); |
+ copy = this.readSlot_6.call$1(slot); |
+ if (copy != null) { |
+ if (true === copy) { |
+ copy = new Array($length); |
+ this.writeSlot_7.call$2(slot, copy); |
+ } |
+ return copy; |
+ } |
+ copy = new Array($length); |
+ this.writeSlot_7.call$2(slot, copy); |
+ for (i = 0; i < $length; ++i) { |
+ t1 = this.call$1(t2.$index(e, i)); |
+ if (i >= copy.length) |
+ return H.ioore(copy, i); |
+ copy[i] = t1; |
+ } |
+ return copy; |
+ } |
+ throw H.wrapException(P.UnimplementedError$("structured clone of other type")); |
+ } |
+ }, |
+ _convertDartToNative_PrepareForStructuredClone_walk_closure: { |
+ "^": "Closure:15;box_0,walk_8", |
+ call$2: function(key, value) { |
+ this.box_0.copy_0[key] = this.walk_8.call$1(value); |
+ } |
+ }, |
+ convertNativeToDart_AcceptStructuredClone_findSlot: { |
+ "^": "Closure:26;values_0,copies_1", |
+ call$1: function(value) { |
+ var t1, $length, i, t2; |
+ t1 = this.values_0; |
+ $length = t1.length; |
+ for (i = 0; i < $length; ++i) { |
+ t2 = t1[i]; |
+ if (t2 == null ? value == null : t2 === value) |
+ return i; |
+ } |
+ t1.push(value); |
+ this.copies_1.push(null); |
+ return $length; |
+ } |
+ }, |
+ convertNativeToDart_AcceptStructuredClone_readSlot: { |
+ "^": "Closure:27;copies_2", |
+ call$1: function(i) { |
+ var t1 = this.copies_2; |
+ if (i >= t1.length) |
+ return H.ioore(t1, i); |
+ return t1[i]; |
+ } |
+ }, |
+ convertNativeToDart_AcceptStructuredClone_writeSlot: { |
+ "^": "Closure:28;copies_3", |
+ call$2: function(i, x) { |
+ var t1 = this.copies_3; |
+ if (i >= t1.length) |
+ return H.ioore(t1, i); |
+ t1[i] = x; |
+ } |
+ }, |
+ convertNativeToDart_AcceptStructuredClone_walk: { |
+ "^": "Closure:2;mustCopy_4,findSlot_5,readSlot_6,writeSlot_7", |
+ call$1: function(e) { |
+ var proto, slot, copy, t1, key, $length, t2, i; |
+ if (e == null) |
+ return e; |
+ if (typeof e === "boolean") |
+ return e; |
+ if (typeof e === "number") |
+ return e; |
+ if (typeof e === "string") |
+ return e; |
+ if (e instanceof Date) |
+ return P.DateTime$fromMillisecondsSinceEpoch(e.getTime(), true); |
+ if (e instanceof RegExp) |
+ throw H.wrapException(P.UnimplementedError$("structured clone of RegExp")); |
+ proto = Object.getPrototypeOf(e); |
+ if (proto === Object.prototype || proto === null) { |
+ slot = this.findSlot_5.call$1(e); |
+ copy = this.readSlot_6.call$1(slot); |
+ if (copy != null) |
+ return copy; |
+ copy = P.LinkedHashMap_LinkedHashMap$_empty(null, null); |
+ this.writeSlot_7.call$2(slot, copy); |
+ for (t1 = Object.keys(e), t1 = new H.ListIterator(t1, t1.length, 0, null); t1.moveNext$0();) { |
+ key = t1._current; |
+ copy.$indexSet(0, key, this.call$1(e[key])); |
+ } |
+ return copy; |
+ } |
+ if (e instanceof Array) { |
+ slot = this.findSlot_5.call$1(e); |
+ copy = this.readSlot_6.call$1(slot); |
+ if (copy != null) |
+ return copy; |
+ t1 = J.getInterceptor$asx(e); |
+ $length = t1.get$length(e); |
+ copy = this.mustCopy_4 ? new Array($length) : e; |
+ this.writeSlot_7.call$2(slot, copy); |
+ if (typeof $length !== "number") |
+ return H.iae($length); |
+ t2 = J.getInterceptor$ax(copy); |
+ i = 0; |
+ for (; i < $length; ++i) |
+ t2.$indexSet(copy, i, this.call$1(t1.$index(e, i))); |
+ return copy; |
+ } |
+ return e; |
+ } |
+ } |
+}], |
+["lazy_trace", "package:stack_trace/src/lazy_trace.dart", , S, { |
+ "^": "", |
+ LazyTrace: { |
+ "^": "Object;_thunk,_inner", |
+ get$_trace: function() { |
+ var t1 = this._inner; |
+ if (t1 == null) { |
+ t1 = this._thunk$0(); |
+ this._inner = t1; |
+ } |
+ return t1; |
+ }, |
+ get$terse: function() { |
+ return new S.LazyTrace(new S.LazyTrace_terse_closure(this), null); |
+ }, |
+ toString$0: function(_) { |
+ return J.toString$0(this.get$_trace()); |
+ }, |
+ _thunk$0: function() { |
+ return this._thunk.call$0(); |
+ }, |
+ $isTrace: 1 |
+ }, |
+ LazyTrace_terse_closure: { |
+ "^": "Closure:0;this_0", |
+ call$0: function() { |
+ return this.this_0.get$_trace().get$terse(); |
+ } |
+ } |
+}], |
+["path", "package:path/path.dart", , B, { |
+ "^": "", |
+ current: function() { |
+ var uri, t1, t2, path; |
+ uri = P.Uri_base(); |
+ t1 = $.get$Style_platform(); |
+ t2 = $.get$Style_url(); |
+ if (t1 == null ? t2 == null : t1 === t2) |
+ return uri.resolveUri$1(P.Uri_parse(".")).toString$0(0); |
+ else { |
+ path = uri.toFilePath$0(); |
+ return C.JSString_methods.substring$2(path, 0, path.length - 1); |
+ } |
+ } |
+}], |
+["path.context", "package:path/src/context.dart", , F, { |
+ "^": "", |
+ _validateArgList: function(method, args) { |
+ var i, numArgs, numArgs0, message, t1, t2; |
+ for (i = 1; i < 8; ++i) { |
+ if (args[i] == null || args[i - 1] != null) |
+ continue; |
+ for (numArgs = 8; numArgs >= 1; numArgs = numArgs0) { |
+ numArgs0 = numArgs - 1; |
+ if (args[numArgs0] != null) |
+ break; |
+ } |
+ message = new P.StringBuffer(""); |
+ t1 = method + "("; |
+ message._contents = t1; |
+ t2 = new H.SubListIterable(args, 0, numArgs); |
+ t2.$builtinTypeInfo = [H.getTypeArgumentByIndex(args, 0)]; |
+ if (numArgs < 0) |
+ H.throwExpression(P.RangeError$range(numArgs, 0, null, "end", null)); |
+ if (0 > numArgs) |
+ H.throwExpression(P.RangeError$range(0, 0, numArgs, "start", null)); |
+ t2 = new H.MappedListIterable(t2, new F._validateArgList_closure()); |
+ t2.$builtinTypeInfo = [null, null]; |
+ t1 += t2.join$1(0, ", "); |
+ message._contents = t1; |
+ message._contents = t1 + ("): part " + (i - 1) + " was null, but part " + i + " was not."); |
+ throw H.wrapException(P.ArgumentError$(message.toString$0(0))); |
+ } |
+ }, |
+ Context: { |
+ "^": "Object;style,_context0$_current", |
+ join$8: function(_, part1, part2, part3, part4, part5, part6, part7, part8) { |
+ var parts = [part1, part2, part3, part4, part5, part6, part7, part8]; |
+ F._validateArgList("join", parts); |
+ return this.joinAll$1(H.setRuntimeTypeInfo(new H.WhereIterable(parts, new F.Context_join_closure()), [H.getTypeArgumentByIndex(parts, 0)])); |
+ }, |
+ join$2: function($receiver, part1, part2) { |
+ return this.join$8($receiver, part1, part2, null, null, null, null, null, null); |
+ }, |
+ joinAll$1: function(parts) { |
+ var buffer, t1, t2, t3, needsSeparator, isAbsoluteAndNotRootRelative, part, parsed, t4, root, t5; |
+ buffer = new P.StringBuffer(""); |
+ for (t1 = H.setRuntimeTypeInfo(new H.WhereIterable(parts, new F.Context_joinAll_closure()), [H.getRuntimeTypeArgument(parts, "IterableBase", 0)]), t1 = H.setRuntimeTypeInfo(new H.WhereIterator(J.get$iterator$ax(t1._iterable), t1._f), [H.getTypeArgumentByIndex(t1, 0)]), t2 = this.style, t3 = t1._iterator, needsSeparator = false, isAbsoluteAndNotRootRelative = false; t1.moveNext$0();) { |
+ part = t3.get$current(); |
+ if (Q.ParsedPath_ParsedPath$parse(part, t2).isRootRelative && isAbsoluteAndNotRootRelative) { |
+ parsed = Q.ParsedPath_ParsedPath$parse(part, t2); |
+ t4 = buffer._contents; |
+ root = Q.ParsedPath_ParsedPath$parse(t4.charCodeAt(0) == 0 ? t4 : t4, t2).root; |
+ t4 = root == null ? "" : root; |
+ parsed.root = t4; |
+ if (t2.needsSeparator$1(t4)) { |
+ t4 = parsed.separators; |
+ t5 = t2.get$separator(); |
+ if (0 >= t4.length) |
+ return H.ioore(t4, 0); |
+ t4[0] = t5; |
+ } |
+ buffer._contents = ""; |
+ buffer._contents += parsed.toString$0(0); |
+ } else if (Q.ParsedPath_ParsedPath$parse(part, t2).root != null) { |
+ isAbsoluteAndNotRootRelative = !Q.ParsedPath_ParsedPath$parse(part, t2).isRootRelative; |
+ buffer._contents = ""; |
+ buffer._contents += H.S(part); |
+ } else { |
+ t4 = J.getInterceptor$asx(part); |
+ if (J.$gt$n(t4.get$length(part), 0) && t2.containsSeparator$1(t4.$index(part, 0)) === true) |
+ ; |
+ else if (needsSeparator) |
+ buffer._contents += t2.get$separator(); |
+ buffer._contents += H.S(part); |
+ } |
+ needsSeparator = t2.needsSeparator$1(part); |
+ } |
+ t1 = buffer._contents; |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ }, |
+ split$1: function(_, path) { |
+ var parsed, t1, t2; |
+ parsed = Q.ParsedPath_ParsedPath$parse(path, this.style); |
+ t1 = parsed.parts; |
+ t1 = H.setRuntimeTypeInfo(new H.WhereIterable(t1, new F.Context_split_closure()), [H.getTypeArgumentByIndex(t1, 0)]); |
+ t1 = P.List_List$from(t1, true, H.getRuntimeTypeArgument(t1, "IterableBase", 0)); |
+ parsed.parts = t1; |
+ t2 = parsed.root; |
+ if (t2 != null) |
+ C.JSArray_methods.insert$2(t1, 0, t2); |
+ return parsed.parts; |
+ }, |
+ normalize$1: function(path) { |
+ var parsed = Q.ParsedPath_ParsedPath$parse(path, this.style); |
+ parsed.normalize$0(); |
+ return parsed.toString$0(0); |
+ }, |
+ relative$2$from: function(path, from) { |
+ var t1, t2, fromParsed, pathParsed, t3; |
+ t1 = this._context0$_current; |
+ from = t1 != null ? t1 : B.current(); |
+ t1 = this.style; |
+ if (Q.ParsedPath_ParsedPath$parse(from, t1).root == null && Q.ParsedPath_ParsedPath$parse(path, t1).root != null) |
+ return this.normalize$1(path); |
+ if (Q.ParsedPath_ParsedPath$parse(path, t1).root == null || Q.ParsedPath_ParsedPath$parse(path, t1).isRootRelative) { |
+ t2 = this._context0$_current; |
+ path = this.join$8(0, t2 != null ? t2 : B.current(), path, null, null, null, null, null, null); |
+ } |
+ if (Q.ParsedPath_ParsedPath$parse(path, t1).root == null && Q.ParsedPath_ParsedPath$parse(from, t1).root != null) |
+ throw H.wrapException(E.PathException$("Unable to find a path to \"" + path + "\" from \"" + H.S(from) + "\".")); |
+ fromParsed = Q.ParsedPath_ParsedPath$parse(from, t1); |
+ fromParsed.normalize$0(); |
+ pathParsed = Q.ParsedPath_ParsedPath$parse(path, t1); |
+ pathParsed.normalize$0(); |
+ t2 = fromParsed.parts; |
+ if (t2.length > 0 && J.$eq(t2[0], ".")) |
+ return pathParsed.toString$0(0); |
+ t2 = fromParsed.root; |
+ t3 = pathParsed.root; |
+ if (t2 == null ? t3 != null : t2 !== t3) |
+ if (!(t2 == null || t3 == null)) { |
+ t2.toString; |
+ t2 = t2.toLowerCase(); |
+ H.checkString("\\"); |
+ t2 = H.stringReplaceAllUnchecked(t2, "/", "\\"); |
+ t3 = pathParsed.root; |
+ t3.toString; |
+ t3 = t3.toLowerCase(); |
+ H.checkString("\\"); |
+ t3 = t2 !== H.stringReplaceAllUnchecked(t3, "/", "\\"); |
+ t2 = t3; |
+ } else |
+ t2 = true; |
+ else |
+ t2 = false; |
+ if (t2) |
+ return pathParsed.toString$0(0); |
+ while (true) { |
+ t2 = fromParsed.parts; |
+ if (t2.length > 0) { |
+ t3 = pathParsed.parts; |
+ t2 = t3.length > 0 && J.$eq(t2[0], t3[0]); |
+ } else |
+ t2 = false; |
+ if (!t2) |
+ break; |
+ C.JSArray_methods.removeAt$1(fromParsed.parts, 0); |
+ C.JSArray_methods.removeAt$1(fromParsed.separators, 1); |
+ C.JSArray_methods.removeAt$1(pathParsed.parts, 0); |
+ C.JSArray_methods.removeAt$1(pathParsed.separators, 1); |
+ } |
+ t2 = fromParsed.parts; |
+ if (t2.length > 0 && J.$eq(t2[0], "..")) |
+ throw H.wrapException(E.PathException$("Unable to find a path to \"" + path + "\" from \"" + H.S(from) + "\".")); |
+ C.JSArray_methods.insertAll$2(pathParsed.parts, 0, P.List_List$filled(fromParsed.parts.length, "..", null)); |
+ t2 = pathParsed.separators; |
+ if (0 >= t2.length) |
+ return H.ioore(t2, 0); |
+ t2[0] = ""; |
+ C.JSArray_methods.insertAll$2(t2, 1, P.List_List$filled(fromParsed.parts.length, t1.get$separator(), null)); |
+ t1 = pathParsed.parts; |
+ t2 = t1.length; |
+ if (t2 === 0) |
+ return "."; |
+ if (t2 > 1 && J.$eq(C.JSArray_methods.get$last(t1), ".")) { |
+ t1 = pathParsed.parts; |
+ if (0 >= t1.length) |
+ return H.ioore(t1, 0); |
+ t1.pop(); |
+ t1 = pathParsed.separators; |
+ C.JSArray_methods.removeLast$0(t1); |
+ C.JSArray_methods.removeLast$0(t1); |
+ C.JSArray_methods.add$1(t1, ""); |
+ } |
+ pathParsed.root = ""; |
+ pathParsed.removeTrailingSeparators$0(); |
+ return pathParsed.toString$0(0); |
+ }, |
+ relative$1: function(path) { |
+ return this.relative$2$from(path, null); |
+ }, |
+ fromUri$1: function(uri) { |
+ return this.style.pathFromUri$1(uri); |
+ }, |
+ toUri$1: function(path) { |
+ var t1, t2; |
+ t1 = this.style; |
+ if (Q.ParsedPath_ParsedPath$parse(path, t1).root == null) |
+ return t1.relativePathToUri$1(path); |
+ else { |
+ t2 = this._context0$_current; |
+ return t1.absolutePathToUri$1(this.join$2(0, t2 != null ? t2 : B.current(), path)); |
+ } |
+ }, |
+ prettyUri$1: function(uri) { |
+ var t1, t2, t3, t4, path, rel; |
+ t1 = uri.scheme; |
+ t2 = t1 === "file"; |
+ if (t2) { |
+ t3 = this.style; |
+ t4 = $.get$Style_url(); |
+ t4 = t3 == null ? t4 == null : t3 === t4; |
+ t3 = t4; |
+ } else |
+ t3 = false; |
+ if (t3) |
+ return uri.toString$0(0); |
+ if (!t2) |
+ if (t1 !== "") { |
+ t1 = this.style; |
+ t2 = $.get$Style_url(); |
+ t2 = t1 == null ? t2 != null : t1 !== t2; |
+ t1 = t2; |
+ } else |
+ t1 = false; |
+ else |
+ t1 = false; |
+ if (t1) |
+ return uri.toString$0(0); |
+ path = this.normalize$1(this.fromUri$1(uri)); |
+ rel = this.relative$1(path); |
+ this.split$1(0, rel); |
+ return this.split$1(0, rel).length > this.split$1(0, path).length ? path : rel; |
+ }, |
+ static: {Context_Context: function(current, style) { |
+ current = style == null ? B.current() : "."; |
+ if (style == null) |
+ style = $.get$Style_platform(); |
+ else if (!style.$isInternalStyle) |
+ throw H.wrapException(P.ArgumentError$("Only styles defined by the path package are allowed.")); |
+ return new F.Context(style, current); |
+ }} |
+ }, |
+ Context_join_closure: { |
+ "^": "Closure:2;", |
+ call$1: function(part) { |
+ return part != null; |
+ } |
+ }, |
+ Context_joinAll_closure: { |
+ "^": "Closure:2;", |
+ call$1: function(part) { |
+ return !J.$eq(part, ""); |
+ } |
+ }, |
+ Context_split_closure: { |
+ "^": "Closure:2;", |
+ call$1: function(part) { |
+ return J.get$isEmpty$asx(part) !== true; |
+ } |
+ }, |
+ _validateArgList_closure: { |
+ "^": "Closure:2;", |
+ call$1: function(arg) { |
+ return arg == null ? "null" : "\"" + H.S(arg) + "\""; |
+ } |
+ } |
+}], |
+["path.internal_style", "package:path/src/internal_style.dart", , E, { |
+ "^": "", |
+ InternalStyle: { |
+ "^": "Style;", |
+ relativePathToUri$1: function(path) { |
+ return P.Uri_Uri(null, null, null, F.Context_Context(null, this).split$1(0, path), null, null, null, "", ""); |
+ } |
+ } |
+}], |
+["path.parsed_path", "package:path/src/parsed_path.dart", , Q, { |
+ "^": "", |
+ ParsedPath: { |
+ "^": "Object;style,root,isRootRelative,parts,separators", |
+ get$hasTrailingSeparator: function() { |
+ var t1 = this.parts; |
+ if (t1.length !== 0) |
+ t1 = J.$eq(C.JSArray_methods.get$last(t1), "") || !J.$eq(C.JSArray_methods.get$last(this.separators), ""); |
+ else |
+ t1 = false; |
+ return t1; |
+ }, |
+ removeTrailingSeparators$0: function() { |
+ var t1, t2; |
+ while (true) { |
+ t1 = this.parts; |
+ if (!(t1.length !== 0 && J.$eq(C.JSArray_methods.get$last(t1), ""))) |
+ break; |
+ t1 = this.parts; |
+ if (0 >= t1.length) |
+ return H.ioore(t1, 0); |
+ t1.pop(); |
+ C.JSArray_methods.removeLast$0(this.separators); |
+ } |
+ t1 = this.separators; |
+ t2 = t1.length; |
+ if (t2 > 0) |
+ t1[t2 - 1] = ""; |
+ }, |
+ normalize$0: function() { |
+ var newParts, t1, leadingDoubles, part, t2, newSeparators; |
+ newParts = []; |
+ for (t1 = this.parts, t1 = new H.ListIterator(t1, t1.length, 0, null), leadingDoubles = 0; t1.moveNext$0();) { |
+ part = t1._current; |
+ t2 = J.getInterceptor(part); |
+ if (t2.$eq(part, ".") || t2.$eq(part, "")) |
+ ; |
+ else if (t2.$eq(part, "..")) |
+ if (newParts.length > 0) |
+ newParts.pop(); |
+ else |
+ ++leadingDoubles; |
+ else |
+ newParts.push(part); |
+ } |
+ if (this.root == null) |
+ C.JSArray_methods.insertAll$2(newParts, 0, P.List_List$filled(leadingDoubles, "..", null)); |
+ if (newParts.length === 0 && this.root == null) |
+ newParts.push("."); |
+ newSeparators = P.List_List$generate(newParts.length, new Q.ParsedPath_normalize_closure(this), true, null); |
+ t1 = this.root; |
+ C.JSArray_methods.insert$2(newSeparators, 0, t1 != null && newParts.length > 0 && this.style.needsSeparator$1(t1) ? this.style.get$separator() : ""); |
+ this.parts = newParts; |
+ this.separators = newSeparators; |
+ t1 = this.root; |
+ if (t1 != null && this.style === $.get$Style_windows()) { |
+ t1.toString; |
+ H.checkString("\\"); |
+ this.root = H.stringReplaceAllUnchecked(t1, "/", "\\"); |
+ } |
+ this.removeTrailingSeparators$0(); |
+ }, |
+ toString$0: function(_) { |
+ var builder, t1, i; |
+ builder = new P.StringBuffer(""); |
+ t1 = this.root; |
+ if (t1 != null) |
+ builder._contents = H.S(t1); |
+ for (i = 0; i < this.parts.length; ++i) { |
+ t1 = this.separators; |
+ if (i >= t1.length) |
+ return H.ioore(t1, i); |
+ builder._contents += H.S(t1[i]); |
+ t1 = this.parts; |
+ if (i >= t1.length) |
+ return H.ioore(t1, i); |
+ builder._contents += H.S(t1[i]); |
+ } |
+ t1 = builder._contents += H.S(C.JSArray_methods.get$last(this.separators)); |
+ return t1.charCodeAt(0) == 0 ? t1 : t1; |
+ }, |
+ static: {ParsedPath_ParsedPath$parse: function(path, style) { |
+ var root, t1, parts, separators, t2, start, i, t3; |
+ root = style.getRoot$1(path); |
+ t1 = style.getRelativeRoot$1(path); |
+ if (root != null) |
+ path = J.substring$1$s(path, root.length); |
+ parts = []; |
+ separators = []; |
+ t2 = J.getInterceptor$asx(path); |
+ if (t2.get$isNotEmpty(path) && style.isSeparator$1(t2.codeUnitAt$1(path, 0))) { |
+ separators.push(t2.$index(path, 0)); |
+ start = 1; |
+ } else { |
+ separators.push(""); |
+ start = 0; |
+ } |
+ i = start; |
+ while (true) { |
+ t3 = t2.get$length(path); |
+ if (typeof t3 !== "number") |
+ return H.iae(t3); |
+ if (!(i < t3)) |
+ break; |
+ if (style.isSeparator$1(t2.codeUnitAt$1(path, i))) { |
+ parts.push(C.JSString_methods.substring$2(path, start, i)); |
+ if (i >= path.length) |
+ return H.ioore(path, i); |
+ separators.push(path[i]); |
+ start = i + 1; |
+ } |
+ ++i; |
+ } |
+ t3 = t2.get$length(path); |
+ if (typeof t3 !== "number") |
+ return H.iae(t3); |
+ if (start < t3) { |
+ parts.push(t2.substring$1(path, start)); |
+ separators.push(""); |
+ } |
+ return new Q.ParsedPath(style, root, t1 != null, parts, separators); |
+ }} |
+ }, |
+ ParsedPath_normalize_closure: { |
+ "^": "Closure:2;this_0", |
+ call$1: function(_) { |
+ return this.this_0.style.get$separator(); |
+ } |
+ } |
+}], |
+["path.path_exception", "package:path/src/path_exception.dart", , E, { |
+ "^": "", |
+ PathException: { |
+ "^": "Object;message>", |
+ toString$0: function(_) { |
+ return "PathException: " + this.message; |
+ }, |
+ static: {PathException$: function(message) { |
+ return new E.PathException(message); |
+ }} |
+ } |
+}], |
+["path.style", "package:path/src/style.dart", , S, { |
+ "^": "", |
+ Style__getPlatformStyle: function() { |
+ if (P.Uri_base().scheme !== "file") |
+ return $.get$Style_url(); |
+ if (!C.JSString_methods.endsWith$1(P.Uri_base()._path, "/")) |
+ return $.get$Style_url(); |
+ if (P.Uri_Uri(null, null, "a/b", null, null, null, null, "", "").toFilePath$0() === "a\\b") |
+ return $.get$Style_windows(); |
+ return $.get$Style_posix(); |
+ }, |
+ Style: { |
+ "^": "Object;", |
+ toString$0: function(_) { |
+ return this.get$name(this); |
+ } |
+ } |
+}], |
+["path.style.posix", "package:path/src/style/posix.dart", , Z, { |
+ "^": "", |
+ PosixStyle: { |
+ "^": "InternalStyle;name>,separator<,separators,separatorPattern,needsSeparatorPattern,rootPattern,relativeRootPattern", |
+ containsSeparator$1: function(path) { |
+ return J.contains$1$asx(path, "/"); |
+ }, |
+ isSeparator$1: function(codeUnit) { |
+ return codeUnit === 47; |
+ }, |
+ needsSeparator$1: function(path) { |
+ var t1 = J.getInterceptor$asx(path); |
+ return t1.get$isNotEmpty(path) && t1.codeUnitAt$1(path, J.$sub$n(t1.get$length(path), 1)) !== 47; |
+ }, |
+ getRoot$1: function(path) { |
+ var t1 = J.getInterceptor$asx(path); |
+ if (t1.get$isNotEmpty(path) && t1.codeUnitAt$1(path, 0) === 47) |
+ return "/"; |
+ return; |
+ }, |
+ getRelativeRoot$1: function(path) { |
+ return; |
+ }, |
+ pathFromUri$1: function(uri) { |
+ var t1 = uri.scheme; |
+ if (t1 === "" || t1 === "file") |
+ return P.Uri__uriDecode(uri._path, C.Utf8Codec_false, false); |
+ throw H.wrapException(P.ArgumentError$("Uri " + uri.toString$0(0) + " must have scheme 'file:'.")); |
+ }, |
+ absolutePathToUri$1: function(path) { |
+ var parsed, t1; |
+ parsed = Q.ParsedPath_ParsedPath$parse(path, this); |
+ t1 = parsed.parts; |
+ if (t1.length === 0) |
+ C.JSArray_methods.addAll$1(t1, ["", ""]); |
+ else if (parsed.get$hasTrailingSeparator()) |
+ parsed.parts.push(""); |
+ return P.Uri_Uri(null, null, null, parsed.parts, null, null, null, "file", ""); |
+ } |
+ } |
+}], |
+["path.style.url", "package:path/src/style/url.dart", , E, { |
+ "^": "", |
+ UrlStyle: { |
+ "^": "InternalStyle;name>,separator<,separators,separatorPattern,needsSeparatorPattern,rootPattern,relativeRootPattern", |
+ containsSeparator$1: function(path) { |
+ return J.contains$1$asx(path, "/"); |
+ }, |
+ isSeparator$1: function(codeUnit) { |
+ return codeUnit === 47; |
+ }, |
+ needsSeparator$1: function(path) { |
+ var t1, root; |
+ t1 = J.getInterceptor$asx(path); |
+ if (t1.get$isEmpty(path) === true) |
+ return false; |
+ if (t1.codeUnitAt$1(path, J.$sub$n(t1.get$length(path), 1)) !== 47) |
+ return true; |
+ root = this._url$_getRoot$1(path); |
+ return root != null && C.JSString_methods.endsWith$1(root, "://"); |
+ }, |
+ getRoot$1: function(path) { |
+ var root = this._url$_getRoot$1(path); |
+ return root == null ? this.getRelativeRoot$1(path) : root; |
+ }, |
+ getRelativeRoot$1: function(path) { |
+ var t1 = J.getInterceptor$asx(path); |
+ if (t1.get$isEmpty(path) === true) |
+ return; |
+ return t1.codeUnitAt$1(path, 0) === 47 ? "/" : null; |
+ }, |
+ pathFromUri$1: function(uri) { |
+ return uri.toString$0(0); |
+ }, |
+ relativePathToUri$1: function(path) { |
+ return P.Uri_parse(path); |
+ }, |
+ absolutePathToUri$1: function(path) { |
+ return P.Uri_parse(path); |
+ }, |
+ _url$_getRoot$1: function(path) { |
+ var t1, start, $char, start0; |
+ t1 = J.getInterceptor$asx(path); |
+ if (t1.get$isEmpty(path) === true) |
+ return; |
+ if (!N.isAlphabetic(t1.codeUnitAt$1(path, 0))) |
+ return; |
+ for (t1 = path.length, start = 1; start < t1; ++start) { |
+ $char = C.JSString_methods.codeUnitAt$1(path, start); |
+ if (N.isAlphabetic($char)) |
+ continue; |
+ if ($char >= 48 && $char <= 57) |
+ continue; |
+ if ($char === 45 || $char === 43 || $char === 46) |
+ continue; |
+ break; |
+ } |
+ start0 = start + 3; |
+ if (start0 > t1) |
+ return; |
+ if (C.JSString_methods.substring$2(path, start, start0) !== "://") |
+ return; |
+ start = start0; |
+ while (true) { |
+ if (!(start < t1 && C.JSString_methods.codeUnitAt$1(path, start) !== 47)) |
+ break; |
+ ++start; |
+ } |
+ return C.JSString_methods.substring$2(path, 0, start); |
+ } |
+ } |
+}], |
+["path.style.windows", "package:path/src/style/windows.dart", , T, { |
+ "^": "", |
+ WindowsStyle: { |
+ "^": "InternalStyle;name>,separator<,separators,separatorPattern,needsSeparatorPattern,rootPattern,relativeRootPattern", |
+ containsSeparator$1: function(path) { |
+ return J.contains$1$asx(path, "/"); |
+ }, |
+ isSeparator$1: function(codeUnit) { |
+ return codeUnit === 47 || codeUnit === 92; |
+ }, |
+ needsSeparator$1: function(path) { |
+ var t1 = J.getInterceptor$asx(path); |
+ if (t1.get$isEmpty(path) === true) |
+ return false; |
+ t1 = t1.codeUnitAt$1(path, J.$sub$n(t1.get$length(path), 1)); |
+ return !(t1 === 47 || t1 === 92); |
+ }, |
+ getRoot$1: function(path) { |
+ var root = this._getRoot$1(path); |
+ return root == null ? this.getRelativeRoot$1(path) : root; |
+ }, |
+ getRelativeRoot$1: function(path) { |
+ var t1, t2; |
+ t1 = J.getInterceptor$asx(path); |
+ if (t1.get$isEmpty(path) === true) |
+ return; |
+ t1 = t1.codeUnitAt$1(path, 0); |
+ if (!(t1 === 47 || t1 === 92)) |
+ return; |
+ t1 = path.length; |
+ if (t1 > 1) { |
+ t2 = C.JSString_methods.codeUnitAt$1(path, 1); |
+ t2 = t2 === 47 || t2 === 92; |
+ } else |
+ t2 = false; |
+ if (t2) |
+ return; |
+ if (0 >= t1) |
+ return H.ioore(path, 0); |
+ return path[0]; |
+ }, |
+ pathFromUri$1: function(uri) { |
+ var t1, path; |
+ t1 = uri.scheme; |
+ if (t1 !== "" && t1 !== "file") |
+ throw H.wrapException(P.ArgumentError$("Uri " + uri.toString$0(0) + " must have scheme 'file:'.")); |
+ path = uri._path; |
+ if (uri.get$host(uri) === "") { |
+ if (C.JSString_methods.startsWith$1(path, "/")) |
+ path = C.JSString_methods.replaceFirst$2(path, "/", ""); |
+ } else |
+ path = "\\\\" + H.S(uri.get$host(uri)) + path; |
+ H.checkString("\\"); |
+ return P.Uri__uriDecode(H.stringReplaceAllUnchecked(path, "/", "\\"), C.Utf8Codec_false, false); |
+ }, |
+ absolutePathToUri$1: function(path) { |
+ var parsed, t1, rootParts, t2; |
+ parsed = Q.ParsedPath_ParsedPath$parse(path, this); |
+ if (J.startsWith$1$s(parsed.root, "\\\\")) { |
+ t1 = parsed.root.split("\\"); |
+ rootParts = H.setRuntimeTypeInfo(new H.WhereIterable(t1, new T.WindowsStyle_absolutePathToUri_closure()), [H.getTypeArgumentByIndex(t1, 0)]); |
+ C.JSArray_methods.insert$2(parsed.parts, 0, rootParts.get$last(rootParts)); |
+ if (parsed.get$hasTrailingSeparator()) |
+ parsed.parts.push(""); |
+ return P.Uri_Uri(null, rootParts.get$first(rootParts), null, parsed.parts, null, null, null, "file", ""); |
+ } else { |
+ if (parsed.parts.length === 0 || parsed.get$hasTrailingSeparator()) |
+ parsed.parts.push(""); |
+ t1 = parsed.parts; |
+ t2 = parsed.root; |
+ t2.toString; |
+ H.checkString(""); |
+ t2 = H.stringReplaceAllUnchecked(t2, "/", ""); |
+ H.checkString(""); |
+ C.JSArray_methods.insert$2(t1, 0, H.stringReplaceAllUnchecked(t2, "\\", "")); |
+ return P.Uri_Uri(null, null, null, parsed.parts, null, null, null, "file", ""); |
+ } |
+ }, |
+ _getRoot$1: function(path) { |
+ var t1, start; |
+ t1 = J.getInterceptor$asx(path); |
+ if (J.$lt$n(t1.get$length(path), 3)) |
+ return; |
+ if (N.isAlphabetic(t1.codeUnitAt$1(path, 0))) { |
+ if (C.JSString_methods.codeUnitAt$1(path, 1) !== 58) |
+ return; |
+ t1 = C.JSString_methods.codeUnitAt$1(path, 2); |
+ if (!(t1 === 47 || t1 === 92)) |
+ return; |
+ return C.JSString_methods.substring$2(path, 0, 3); |
+ } |
+ if (!C.JSString_methods.startsWith$1(path, "\\\\")) |
+ return; |
+ t1 = path.length; |
+ start = 2; |
+ while (true) { |
+ if (!(start < t1 && C.JSString_methods.codeUnitAt$1(path, start) !== 92)) |
+ break; |
+ ++start; |
+ } |
+ if (start === 2 || start === t1) |
+ return; |
+ ++start; |
+ if (C.JSString_methods.codeUnitAt$1(path, start) === 92) |
+ return; |
+ ++start; |
+ while (true) { |
+ if (!(start < t1 && C.JSString_methods.codeUnitAt$1(path, start) !== 92)) |
+ break; |
+ ++start; |
+ } |
+ return C.JSString_methods.substring$2(path, 0, start); |
+ } |
+ }, |
+ WindowsStyle_absolutePathToUri_closure: { |
+ "^": "Closure:2;", |
+ call$1: function(part) { |
+ return !J.$eq(part, ""); |
+ } |
+ } |
+}], |
+["path.utils", "package:path/src/utils.dart", , N, { |
+ "^": "", |
+ isAlphabetic: function($char) { |
+ var t1; |
+ if (!($char >= 65 && $char <= 90)) |
+ t1 = $char >= 97 && $char <= 122; |
+ else |
+ t1 = true; |
+ return t1; |
+ } |
+}], |
+["stack_trace.src.utils", "package:stack_trace/src/utils.dart", , N, { |
+ "^": "", |
+ padRight: function(string, $length) { |
+ var t1, t2, i; |
+ t1 = J.get$length$asx(string); |
+ if (typeof $length !== "number") |
+ return H.iae($length); |
+ if (t1 >= $length) |
+ return string; |
+ for (t1 = $length - string.length, t2 = string, i = 0; i < t1; ++i) |
+ t2 += " "; |
+ return t2.charCodeAt(0) == 0 ? t2 : t2; |
+ } |
+}], |
+["trace", "package:stack_trace/src/trace.dart", , R, { |
+ "^": "", |
+ Trace: { |
+ "^": "Object;frames", |
+ get$terse: function() { |
+ return this.foldFrames$2$terse(new R.Trace_terse_closure(), true); |
+ }, |
+ foldFrames$2$terse: function(predicate, terse) { |
+ var newFrames, t1, frame; |
+ if (terse) |
+ predicate = new R.Trace_foldFrames_closure(predicate); |
+ newFrames = []; |
+ for (t1 = this.frames, t1 = t1.get$reversed(t1), t1 = new H.ListIterator(t1, t1.get$length(t1), 0, null); t1.moveNext$0();) { |
+ frame = t1._current; |
+ if (predicate.call$1(frame) !== true) |
+ newFrames.push(frame); |
+ else if (newFrames.length === 0 || predicate.call$1(C.JSArray_methods.get$last(newFrames)) !== true) |
+ newFrames.push(new S.Frame(frame.get$uri(), frame.line, frame.column, frame.member)); |
+ } |
+ if (terse) |
+ newFrames = H.setRuntimeTypeInfo(new H.MappedListIterable(newFrames, new R.Trace_foldFrames_closure0()), [null, null]).toList$0(0); |
+ return new R.Trace(H.setRuntimeTypeInfo(new P.UnmodifiableListView(H.setRuntimeTypeInfo(new H.ReversedListIterable(newFrames), [H.getTypeArgumentByIndex(newFrames, 0)]).toList$0(0)), [S.Frame])); |
+ }, |
+ toString$0: function(_) { |
+ var t1 = this.frames; |
+ return t1.map$1(t1, new R.Trace_toString_closure(t1.map$1(t1, new R.Trace_toString_closure0()).fold$2(0, 0, P.max$closure()))).join$0(0); |
+ }, |
+ static: {Trace_Trace$from: function(trace) { |
+ if (trace == null) |
+ throw H.wrapException(P.ArgumentError$("Cannot create a Trace from null.")); |
+ if (!!J.getInterceptor(trace).$isTrace) |
+ return trace; |
+ return new S.LazyTrace(new R.Trace_Trace$from_closure(trace), null); |
+ }, Trace_Trace$parse: function(trace) { |
+ var error, t1, exception; |
+ try { |
+ if (J.get$isEmpty$asx(trace) === true) { |
+ t1 = H.setRuntimeTypeInfo(new P.UnmodifiableListView(C.JSArray_methods.toList$0(H.setRuntimeTypeInfo([], [S.Frame]))), [S.Frame]); |
+ return new R.Trace(t1); |
+ } |
+ if (J.contains$1$asx(trace, $.get$_v8Trace()) === true) { |
+ t1 = R.Trace$parseV8(trace); |
+ return t1; |
+ } |
+ if (J.contains$1$asx(trace, $.get$_firefoxSafariTrace()) === true) { |
+ t1 = R.Trace$parseFirefox(trace); |
+ return t1; |
+ } |
+ if (J.contains$1$asx(trace, $.get$_friendlyTrace()) === true) { |
+ t1 = R.Trace$parseFriendly(trace); |
+ return t1; |
+ } |
+ t1 = R.Trace$parseVM(trace); |
+ return t1; |
+ } catch (exception) { |
+ t1 = H.unwrapException(exception); |
+ if (t1 instanceof P.FormatException) { |
+ error = t1; |
+ throw H.wrapException(P.FormatException$(H.S(J.get$message$x(error)) + "\nStack trace:\n" + H.S(trace), null, null)); |
+ } else |
+ throw exception; |
+ } |
+ }, Trace$parseVM: function(trace) { |
+ var t1 = J.trim$0$s(trace).split("\n"); |
+ t1 = H.setRuntimeTypeInfo(new H.WhereIterable(t1, new R.Trace$parseVM_closure()), [H.getTypeArgumentByIndex(t1, 0)]); |
+ return new R.Trace(H.setRuntimeTypeInfo(new P.UnmodifiableListView(H.MappedIterable_MappedIterable(t1, new R.Trace$parseVM_closure0(), H.getRuntimeTypeArgument(t1, "IterableBase", 0), null).toList$0(0)), [S.Frame])); |
+ }, Trace$parseV8: function(trace) { |
+ var t1 = J.split$1$s(trace, "\n"); |
+ t1 = H.SubListIterable$(t1, 1, null, H.getTypeArgumentByIndex(t1, 0)); |
+ t1 = t1.super$IterableBase$skipWhile$1(t1, new R.Trace$parseV8_closure()); |
+ return new R.Trace(H.setRuntimeTypeInfo(new P.UnmodifiableListView(H.MappedIterable_MappedIterable(t1, new R.Trace$parseV8_closure0(), H.getRuntimeTypeArgument(t1, "IterableBase", 0), null).toList$0(0)), [S.Frame])); |
+ }, Trace$parseFirefox: function(trace) { |
+ var t1 = J.trim$0$s(trace).split("\n"); |
+ t1 = H.setRuntimeTypeInfo(new H.WhereIterable(t1, new R.Trace$parseFirefox_closure()), [H.getTypeArgumentByIndex(t1, 0)]); |
+ return new R.Trace(H.setRuntimeTypeInfo(new P.UnmodifiableListView(H.MappedIterable_MappedIterable(t1, new R.Trace$parseFirefox_closure0(), H.getRuntimeTypeArgument(t1, "IterableBase", 0), null).toList$0(0)), [S.Frame])); |
+ }, Trace$parseFriendly: function(trace) { |
+ var t1 = J.trim$0$s(trace).split("\n"); |
+ t1 = H.setRuntimeTypeInfo(new H.WhereIterable(t1, new R.Trace$parseFriendly_closure()), [H.getTypeArgumentByIndex(t1, 0)]); |
+ return new R.Trace(H.setRuntimeTypeInfo(new P.UnmodifiableListView(H.MappedIterable_MappedIterable(t1, new R.Trace$parseFriendly_closure0(), H.getRuntimeTypeArgument(t1, "IterableBase", 0), null).toList$0(0)), [S.Frame])); |
+ }} |
+ }, |
+ Trace_Trace$from_closure: { |
+ "^": "Closure:0;trace_0", |
+ call$0: function() { |
+ return R.Trace_Trace$parse(J.toString$0(this.trace_0)); |
+ } |
+ }, |
+ Trace$parseVM_closure: { |
+ "^": "Closure:2;", |
+ call$1: function(line) { |
+ return J.get$isNotEmpty$asx(line); |
+ } |
+ }, |
+ Trace$parseVM_closure0: { |
+ "^": "Closure:2;", |
+ call$1: function(line) { |
+ return S.Frame_Frame$parseVM(line); |
+ } |
+ }, |
+ Trace$parseV8_closure: { |
+ "^": "Closure:2;", |
+ call$1: function(line) { |
+ return !J.startsWith$1$s(line, $.get$_v8TraceLine()); |
+ } |
+ }, |
+ Trace$parseV8_closure0: { |
+ "^": "Closure:2;", |
+ call$1: function(line) { |
+ return S.Frame_Frame$parseV8(line); |
+ } |
+ }, |
+ Trace$parseFirefox_closure: { |
+ "^": "Closure:2;", |
+ call$1: function(line) { |
+ var t1 = J.getInterceptor$asx(line); |
+ return t1.get$isNotEmpty(line) && !t1.$eq(line, "[native code]"); |
+ } |
+ }, |
+ Trace$parseFirefox_closure0: { |
+ "^": "Closure:2;", |
+ call$1: function(line) { |
+ var match, t1, uri, t2, t3, member, column; |
+ match = $.get$_firefoxSafariFrame().firstMatch$1(line); |
+ if (match == null) |
+ H.throwExpression(P.FormatException$("Couldn't parse Firefox/Safari stack trace line '" + H.S(line) + "'.", null, null)); |
+ t1 = match._match; |
+ if (3 >= t1.length) |
+ return H.ioore(t1, 3); |
+ uri = S.Frame__uriOrPathToUri(t1[3]); |
+ t2 = t1.length; |
+ if (1 >= t2) |
+ return H.ioore(t1, 1); |
+ t3 = t1[1]; |
+ if (t3 != null) { |
+ if (2 >= t2) |
+ return H.ioore(t1, 2); |
+ member = J.$add$ns(t3, C.JSArray_methods.join$0(P.List_List$filled(C.JSString_methods.allMatches$1("/", t1[2]).length, ".<fn>", null))); |
+ if (J.$eq(member, "")) |
+ member = "<fn>"; |
+ member = J.replaceFirst$2$s(member, $.get$_initialDot(), ""); |
+ } else |
+ member = "<fn>"; |
+ if (4 >= t1.length) |
+ return H.ioore(t1, 4); |
+ if (J.$eq(t1[4], "")) |
+ line = null; |
+ else { |
+ if (4 >= t1.length) |
+ return H.ioore(t1, 4); |
+ line = H.Primitives_parseInt(t1[4], null, null); |
+ } |
+ if (5 >= t1.length) |
+ return H.ioore(t1, 5); |
+ t2 = t1[5]; |
+ if (t2 == null || J.$eq(t2, "")) |
+ column = null; |
+ else { |
+ if (5 >= t1.length) |
+ return H.ioore(t1, 5); |
+ column = H.Primitives_parseInt(t1[5], null, null); |
+ } |
+ return new S.Frame(uri, line, column, member); |
+ } |
+ }, |
+ Trace$parseFriendly_closure: { |
+ "^": "Closure:2;", |
+ call$1: function(line) { |
+ return !J.startsWith$1$s(line, "====="); |
+ } |
+ }, |
+ Trace$parseFriendly_closure0: { |
+ "^": "Closure:2;", |
+ call$1: function(line) { |
+ var match, t1, uri, t2, t3, t4, column; |
+ match = $.get$_friendlyFrame().firstMatch$1(line); |
+ if (match == null) |
+ H.throwExpression(P.FormatException$("Couldn't parse package:stack_trace stack trace line '" + H.S(line) + "'.", null, null)); |
+ t1 = match._match; |
+ if (1 >= t1.length) |
+ return H.ioore(t1, 1); |
+ uri = P.Uri_parse(t1[1]); |
+ if (uri.scheme === "") { |
+ t2 = $.get$context(); |
+ t3 = t2.fromUri$1(uri); |
+ t4 = t2._context0$_current; |
+ uri = t2.toUri$1(t2.join$8(0, t4 != null ? t4 : B.current(), t3, null, null, null, null, null, null)); |
+ } |
+ if (2 >= t1.length) |
+ return H.ioore(t1, 2); |
+ t2 = t1[2]; |
+ line = t2 == null ? null : H.Primitives_parseInt(t2, null, null); |
+ if (3 >= t1.length) |
+ return H.ioore(t1, 3); |
+ t2 = t1[3]; |
+ column = t2 == null ? null : H.Primitives_parseInt(t2, null, null); |
+ if (4 >= t1.length) |
+ return H.ioore(t1, 4); |
+ return new S.Frame(uri, line, column, t1[4]); |
+ } |
+ }, |
+ Trace_terse_closure: { |
+ "^": "Closure:2;", |
+ call$1: function(_) { |
+ return false; |
+ } |
+ }, |
+ Trace_foldFrames_closure: { |
+ "^": "Closure:2;oldPredicate_0", |
+ call$1: function(frame) { |
+ if (this.oldPredicate_0.call$1(frame) === true) |
+ return true; |
+ if (frame.get$isCore()) |
+ return true; |
+ if (J.$eq(frame.get$$package(), "stack_trace")) |
+ return true; |
+ if (J.contains$1$asx(frame.member, "<async>") !== true) |
+ return false; |
+ return frame.line == null; |
+ } |
+ }, |
+ Trace_foldFrames_closure0: { |
+ "^": "Closure:2;", |
+ call$1: function(frame) { |
+ var t1, t2; |
+ if (!frame.get$isCore()) |
+ return frame; |
+ t1 = frame.uri; |
+ t1 = $.get$context().prettyUri$1(t1); |
+ t2 = $.get$_terseRegExp(); |
+ H.checkString(""); |
+ return new S.Frame(P.Uri_parse(H.stringReplaceAllUnchecked(t1, t2, "")), null, null, frame.member); |
+ } |
+ }, |
+ Trace_toString_closure0: { |
+ "^": "Closure:2;", |
+ call$1: function(frame) { |
+ return J.get$length$asx(J.get$location$x(frame)); |
+ } |
+ }, |
+ Trace_toString_closure: { |
+ "^": "Closure:2;longest_0", |
+ call$1: function(frame) { |
+ return H.S(N.padRight(J.get$location$x(frame), this.longest_0)) + " " + H.S(frame.get$member()) + "\n"; |
+ } |
+ } |
+}], |
+["unittest.multi_channel", "package:unittest/src/util/multi_channel.dart", , K, { |
+ "^": "", |
+ _MultiChannel: { |
+ "^": "Object;_innerStream,_innerSink,_innerStreamSubscription,_streamController,_sinkController,_streamControllers,_sinkControllers,_nextId", |
+ virtualChannel$1: function(id) { |
+ var t1, t2, inputId, t3, streamController, sinkController; |
+ t1 = {}; |
+ if (this._innerStream == null) |
+ throw H.wrapException(P.StateError$("The underlying channel is closed.")); |
+ t1.inputId_0 = null; |
+ t1.outputId_1 = null; |
+ if (id != null) { |
+ t1.inputId_0 = id; |
+ t1.outputId_1 = H.intTypeCast(id) + 1; |
+ t2 = id; |
+ } else { |
+ t2 = this._nextId; |
+ inputId = t2 + 1; |
+ t1.inputId_0 = inputId; |
+ t1.outputId_1 = t2; |
+ this._nextId = t2 + 2; |
+ t2 = inputId; |
+ } |
+ t3 = this._streamControllers; |
+ if (t3.containsKey$1(t2)) |
+ throw H.wrapException(P.ArgumentError$("A virtual channel with id " + H.S(id) + " already exists.")); |
+ streamController = P.StreamController_StreamController(null, null, null, null, true, null); |
+ sinkController = P.StreamController_StreamController(null, null, null, null, true, null); |
+ t3.$indexSet(0, t1.inputId_0, streamController); |
+ this._sinkControllers.$indexSet(0, t1.inputId_0, sinkController); |
+ H.setRuntimeTypeInfo(new P._ControllerStream(sinkController), [null]).listen$2$onDone(new K._MultiChannel_virtualChannel_closure(t1, this), new K._MultiChannel_virtualChannel_closure0(t1, this)); |
+ return new K.VirtualChannel(this, t1.outputId_1, H.setRuntimeTypeInfo(new P._ControllerStream(streamController), [null]), H.setRuntimeTypeInfo(new P._StreamSinkWrapper(sinkController), [H.getRuntimeTypeArgument(sinkController, "_StreamController", 0)])); |
+ }, |
+ _closeChannel$2: function(inputId, outputId) { |
+ var t1, t2; |
+ t1 = this._streamControllers; |
+ J.close$0$x(t1.remove$1(0, inputId)); |
+ J.close$0$x(this._sinkControllers.remove$1(0, inputId)); |
+ t2 = this._innerSink; |
+ if (t2 == null) |
+ return; |
+ t2 = t2._async$_target; |
+ if (t2._state >= 4) |
+ H.throwExpression(t2._badEventState$0()); |
+ t2._async$_add$1([outputId]); |
+ if (t1.__js_helper$_length === 0) |
+ this._closeInnerChannel$0(); |
+ }, |
+ _closeInnerChannel$0: [function() { |
+ this._innerSink._async$_target.close$0(0); |
+ this._innerStreamSubscription.cancel$0(); |
+ this._innerStream = null; |
+ this._innerSink = null; |
+ for (var t1 = this._sinkControllers, t1 = t1.get$values(t1), t1 = P.List_List$from(t1, true, H.getRuntimeTypeArgument(t1, "IterableBase", 0)), t1 = new H.ListIterator(t1, t1.length, 0, null); t1.moveNext$0();) |
+ J.close$0$x(t1._current); |
+ }, "call$0", "get$_closeInnerChannel", 0, 0, 1], |
+ _MultiChannel$2: function(_innerStream, _innerSink) { |
+ var t1, t2; |
+ t1 = this._streamController; |
+ this._streamControllers.$indexSet(0, 0, t1); |
+ t2 = this._sinkController; |
+ this._sinkControllers.$indexSet(0, 0, t2); |
+ H.setRuntimeTypeInfo(new P._ControllerStream(t2), [null]).listen$2$onDone(new K._MultiChannel_closure(this), new K._MultiChannel_closure0(this)); |
+ this._innerStreamSubscription = this._innerStream.listen$3$onDone$onError(new K._MultiChannel_closure1(this), this.get$_closeInnerChannel(), t1.get$addError()); |
+ }, |
+ static: {_MultiChannel$: function(_innerStream, _innerSink) { |
+ var t1 = new K._MultiChannel(_innerStream, _innerSink, null, P.StreamController_StreamController(null, null, null, null, true, null), P.StreamController_StreamController(null, null, null, null, true, null), P.LinkedHashMap_LinkedHashMap(null, null, null, P.$int, P.StreamController), P.LinkedHashMap_LinkedHashMap(null, null, null, P.$int, P.StreamController), 1); |
+ t1._MultiChannel$2(_innerStream, _innerSink); |
+ return t1; |
+ }} |
+ }, |
+ _MultiChannel_closure: { |
+ "^": "Closure:2;this_0", |
+ call$1: function(message) { |
+ var t1 = this.this_0._innerSink._async$_target; |
+ if (t1._state >= 4) |
+ H.throwExpression(t1._badEventState$0()); |
+ t1._async$_add$1([0, message]); |
+ return; |
+ } |
+ }, |
+ _MultiChannel_closure0: { |
+ "^": "Closure:0;this_1", |
+ call$0: function() { |
+ return this.this_1._closeChannel$2(0, 0); |
+ } |
+ }, |
+ _MultiChannel_closure1: { |
+ "^": "Closure:2;this_2", |
+ call$1: function(message) { |
+ var t1, id, t2, sink; |
+ t1 = J.getInterceptor$asx(message); |
+ id = t1.$index(message, 0); |
+ t2 = this.this_2; |
+ sink = t2._streamControllers.$index(0, id); |
+ if (sink == null) |
+ return; |
+ if (J.$gt$n(t1.get$length(message), 1)) { |
+ J.add$1$ax(sink, t1.$index(message, 1)); |
+ return; |
+ } |
+ J.close$0$x(t2._sinkControllers.$index(0, id)); |
+ } |
+ }, |
+ _MultiChannel_virtualChannel_closure: { |
+ "^": "Closure:2;box_0,this_1", |
+ call$1: function(message) { |
+ var t1, t2; |
+ t1 = this.this_1._innerSink; |
+ t2 = this.box_0.outputId_1; |
+ t1 = t1._async$_target; |
+ if (t1._state >= 4) |
+ H.throwExpression(t1._badEventState$0()); |
+ t1._async$_add$1([t2, message]); |
+ return; |
+ } |
+ }, |
+ _MultiChannel_virtualChannel_closure0: { |
+ "^": "Closure:0;box_0,this_2", |
+ call$0: function() { |
+ var t1 = this.box_0; |
+ return this.this_2._closeChannel$2(t1.inputId_0, t1.outputId_1); |
+ } |
+ }, |
+ VirtualChannel: { |
+ "^": "Object;_parent,id,stream,sink" |
+ } |
+}], |
+["unittest.runner.browser.host", "host.dart", , O, { |
+ "^": "", |
+ main: [function() { |
+ P.runZoned(new O.main_closure(), new O.main_closure0(), null, null); |
+ }, "call$0", "main$closure", 0, 0, 1], |
+ _connectToServer: function() { |
+ var currentUrl, t1, scheme, isFile, userInfo, port, host, path, t2, query, fragment, webSocket, inputController, outputController; |
+ currentUrl = P.Uri_parse(window.location.href); |
+ t1 = currentUrl._queryParameters; |
+ if (t1 == null) { |
+ t1 = currentUrl._query; |
+ t1 = H.setRuntimeTypeInfo(new P.UnmodifiableMapView(P.Uri_splitQueryString(t1 == null ? "" : t1, C.Utf8Codec_false)), [null, null]); |
+ currentUrl._queryParameters = t1; |
+ } |
+ t1 = currentUrl.resolveUri$1(P.Uri_parse(J.$index$asx(t1._collection$_map, "managerUrl"))); |
+ scheme = P.Uri__makeScheme("ws", 2); |
+ isFile = scheme === "file"; |
+ userInfo = t1._userInfo; |
+ port = P.Uri__makePort(t1._port, scheme); |
+ if (t1._host != null) |
+ host = t1.get$host(t1); |
+ else |
+ host = userInfo.length !== 0 || port != null || isFile ? "" : null; |
+ path = t1._path; |
+ if (!isFile) |
+ t2 = host != null && path.length !== 0; |
+ else |
+ t2 = true; |
+ if (t2 && !C.JSString_methods.startsWith$1(path, "/")) |
+ path = "/" + path; |
+ query = t1._query; |
+ if (query != null) |
+ ; |
+ else |
+ query = null; |
+ fragment = t1._fragment; |
+ if (fragment != null) |
+ ; |
+ else |
+ fragment = null; |
+ webSocket = W.WebSocket_WebSocket(new P.Uri(host, port, path, scheme, userInfo, query, fragment, null, null).toString$0(0), null); |
+ inputController = P.StreamController_StreamController(null, null, null, null, true, null); |
+ t1 = H.setRuntimeTypeInfo(new W._EventStream(webSocket, "message", false), [null]); |
+ H.setRuntimeTypeInfo(new W._EventStreamSubscription(0, t1._html$_target, t1._eventType, W._wrapZone(new O._connectToServer_closure(inputController)), t1._useCapture), [H.getTypeArgumentByIndex(t1, 0)])._tryResume$0(); |
+ outputController = P.StreamController_StreamController(null, null, null, null, true, null); |
+ H.setRuntimeTypeInfo(new P._ControllerStream(outputController), [null]).listen$1(new O._connectToServer_closure0(webSocket)); |
+ return K._MultiChannel$(H.setRuntimeTypeInfo(new P._ControllerStream(inputController), [null]), H.setRuntimeTypeInfo(new P._StreamSinkWrapper(outputController), [H.getRuntimeTypeArgument(outputController, "_StreamController", 0)])); |
+ }, |
+ _connectToIframe: function(url) { |
+ var iframe, t1, inputController, outputController; |
+ iframe = document.createElement("iframe", null); |
+ t1 = J.getInterceptor$x(iframe); |
+ t1.set$src(iframe, url); |
+ document.body.appendChild(iframe); |
+ inputController = P.StreamController_StreamController(null, null, null, null, true, null); |
+ outputController = P.StreamController_StreamController(null, null, null, null, true, null); |
+ t1 = t1.get$onLoad(iframe); |
+ t1.get$first(t1).then$1(new O._connectToIframe_closure(iframe, inputController, outputController)); |
+ return new X.StreamChannel(H.setRuntimeTypeInfo(new P._ControllerStream(inputController), [null]), H.setRuntimeTypeInfo(new P._StreamSinkWrapper(outputController), [H.getRuntimeTypeArgument(outputController, "_StreamController", 0)])); |
+ }, |
+ main_closure: { |
+ "^": "Closure:0;", |
+ call$0: function() { |
+ var serverChannel = O._connectToServer(); |
+ H.setRuntimeTypeInfo(new P._ControllerStream(serverChannel._streamController), [null]).listen$1(new O.main__closure(serverChannel)); |
+ } |
+ }, |
+ main__closure: { |
+ "^": "Closure:2;serverChannel_0", |
+ call$1: function(message) { |
+ var t1, suiteChannel, iframeChannel; |
+ t1 = J.getInterceptor$asx(message); |
+ suiteChannel = this.serverChannel_0.virtualChannel$1(t1.$index(message, "channel")); |
+ iframeChannel = O._connectToIframe(t1.$index(message, "url")); |
+ iframeChannel.stream.pipe$1(suiteChannel.sink); |
+ suiteChannel.stream.pipe$1(iframeChannel.sink); |
+ } |
+ }, |
+ main_closure0: { |
+ "^": "Closure:15;", |
+ call$2: function(error, stackTrace) { |
+ P.print(H.S(error) + "\n" + H.S(R.Trace_Trace$from(stackTrace).get$terse())); |
+ } |
+ }, |
+ _connectToServer_closure: { |
+ "^": "Closure:2;inputController_0", |
+ call$1: function(message) { |
+ var t1, t2; |
+ t1 = this.inputController_0; |
+ t2 = C.JsonCodec_null_null.decode$1(J.get$data$x(message)); |
+ if (t1._state >= 4) |
+ H.throwExpression(t1._badEventState$0()); |
+ t1._async$_add$1(t2); |
+ return; |
+ } |
+ }, |
+ _connectToServer_closure0: { |
+ "^": "Closure:2;webSocket_1", |
+ call$1: function(message) { |
+ return this.webSocket_1.send(C.JsonCodec_null_null.encode$1(message)); |
+ } |
+ }, |
+ _connectToIframe_closure: { |
+ "^": "Closure:2;iframe_0,inputController_1,outputController_2", |
+ call$1: function(_) { |
+ var t1, t2; |
+ t1 = this.iframe_0; |
+ J.postMessage$2$x(J.get$contentWindow$x(t1), P.LinkedHashMap_LinkedHashMap$_literal(["command", "connect"], null, null), J.get$origin$x(window.location)); |
+ t2 = H.setRuntimeTypeInfo(new W._EventStream(window, "message", false), [null]); |
+ H.setRuntimeTypeInfo(new W._EventStreamSubscription(0, t2._html$_target, t2._eventType, W._wrapZone(new O._connectToIframe__closure(t1, this.inputController_1)), t2._useCapture), [H.getTypeArgumentByIndex(t2, 0)])._tryResume$0(); |
+ H.setRuntimeTypeInfo(new P._ControllerStream(this.outputController_2), [null]).listen$1(new O._connectToIframe__closure0(t1)); |
+ } |
+ }, |
+ _connectToIframe__closure: { |
+ "^": "Closure:2;iframe_3,inputController_4", |
+ call$1: function(message) { |
+ var t1, t2; |
+ t1 = J.getInterceptor$x(message); |
+ if (t1.get$origin(message) !== J.get$origin$x(window.location)) |
+ return; |
+ if (!J.$eq(J.$index$asx(t1.get$data(message), "href"), this.iframe_3.src)) |
+ return; |
+ message.stopPropagation(); |
+ t1 = this.inputController_4; |
+ t2 = J.$index$asx(P.convertNativeToDart_AcceptStructuredClone(message.data, true), "data"); |
+ if (t1._state >= 4) |
+ H.throwExpression(t1._badEventState$0()); |
+ t1._async$_add$1(t2); |
+ } |
+ }, |
+ _connectToIframe__closure0: { |
+ "^": "Closure:2;iframe_5", |
+ call$1: function(message) { |
+ return J.postMessage$2$x(W._convertNativeToDart_Window(this.iframe_5.contentWindow), message, J.get$origin$x(window.location)); |
+ } |
+ } |
+}, |
+1], |
+["unittest.stream_channel", "package:unittest/src/util/stream_channel.dart", , X, { |
+ "^": "", |
+ StreamChannel: { |
+ "^": "Object;stream,sink" |
+ } |
+}], |
+]; |
+parseReflectionData(dart); |
+// getInterceptor methods |
+J.getInterceptor = function(receiver) { |
+ if (typeof receiver == "number") { |
+ if (Math.floor(receiver) == receiver) |
+ return J.JSInt.prototype; |
+ return J.JSDouble.prototype; |
+ } |
+ if (typeof receiver == "string") |
+ return J.JSString.prototype; |
+ if (receiver == null) |
+ return J.JSNull.prototype; |
+ if (typeof receiver == "boolean") |
+ return J.JSBool.prototype; |
+ if (receiver.constructor == Array) |
+ return J.JSArray.prototype; |
+ if (typeof receiver != "object") |
+ return receiver; |
+ if (receiver instanceof P.Object) |
+ return receiver; |
+ return J.getNativeInterceptor(receiver); |
+}; |
+J.getInterceptor$asx = function(receiver) { |
+ if (typeof receiver == "string") |
+ return J.JSString.prototype; |
+ if (receiver == null) |
+ return receiver; |
+ if (receiver.constructor == Array) |
+ return J.JSArray.prototype; |
+ if (typeof receiver != "object") |
+ return receiver; |
+ if (receiver instanceof P.Object) |
+ return receiver; |
+ return J.getNativeInterceptor(receiver); |
+}; |
+J.getInterceptor$ax = function(receiver) { |
+ if (receiver == null) |
+ return receiver; |
+ if (receiver.constructor == Array) |
+ return J.JSArray.prototype; |
+ if (typeof receiver != "object") |
+ return receiver; |
+ if (receiver instanceof P.Object) |
+ return receiver; |
+ return J.getNativeInterceptor(receiver); |
+}; |
+J.getInterceptor$n = function(receiver) { |
+ if (typeof receiver == "number") |
+ return J.JSNumber.prototype; |
+ if (receiver == null) |
+ return receiver; |
+ if (!(receiver instanceof P.Object)) |
+ return J.UnknownJavaScriptObject.prototype; |
+ return receiver; |
+}; |
+J.getInterceptor$ns = function(receiver) { |
+ if (typeof receiver == "number") |
+ return J.JSNumber.prototype; |
+ if (typeof receiver == "string") |
+ return J.JSString.prototype; |
+ if (receiver == null) |
+ return receiver; |
+ if (!(receiver instanceof P.Object)) |
+ return J.UnknownJavaScriptObject.prototype; |
+ return receiver; |
+}; |
+J.getInterceptor$s = function(receiver) { |
+ if (typeof receiver == "string") |
+ return J.JSString.prototype; |
+ if (receiver == null) |
+ return receiver; |
+ if (!(receiver instanceof P.Object)) |
+ return J.UnknownJavaScriptObject.prototype; |
+ return receiver; |
+}; |
+J.getInterceptor$x = function(receiver) { |
+ if (receiver == null) |
+ return receiver; |
+ if (typeof receiver != "object") |
+ return receiver; |
+ if (receiver instanceof P.Object) |
+ return receiver; |
+ return J.getNativeInterceptor(receiver); |
+}; |
+J.$add$ns = function(receiver, a0) { |
+ if (typeof receiver == "number" && typeof a0 == "number") |
+ return receiver + a0; |
+ return J.getInterceptor$ns(receiver).$add(receiver, a0); |
+}; |
+J.$eq = function(receiver, a0) { |
+ if (receiver == null) |
+ return a0 == null; |
+ if (typeof receiver != "object") |
+ return a0 != null && receiver === a0; |
+ return J.getInterceptor(receiver).$eq(receiver, a0); |
+}; |
+J.$gt$n = function(receiver, a0) { |
+ if (typeof receiver == "number" && typeof a0 == "number") |
+ return receiver > a0; |
+ return J.getInterceptor$n(receiver).$gt(receiver, a0); |
+}; |
+J.$index$asx = function(receiver, a0) { |
+ if (receiver.constructor == Array || typeof receiver == "string" || H.isJsIndexable(receiver, receiver[init.dispatchPropertyName])) |
+ if (a0 >>> 0 === a0 && a0 < receiver.length) |
+ return receiver[a0]; |
+ return J.getInterceptor$asx(receiver).$index(receiver, a0); |
+}; |
+J.$indexSet$ax = function(receiver, a0, a1) { |
+ if ((receiver.constructor == Array || H.isJsIndexable(receiver, receiver[init.dispatchPropertyName])) && !receiver.immutable$list && a0 >>> 0 === a0 && a0 < receiver.length) |
+ return receiver[a0] = a1; |
+ return J.getInterceptor$ax(receiver).$indexSet(receiver, a0, a1); |
+}; |
+J.$lt$n = function(receiver, a0) { |
+ if (typeof receiver == "number" && typeof a0 == "number") |
+ return receiver < a0; |
+ return J.getInterceptor$n(receiver).$lt(receiver, a0); |
+}; |
+J.$sub$n = function(receiver, a0) { |
+ if (typeof receiver == "number" && typeof a0 == "number") |
+ return receiver - a0; |
+ return J.getInterceptor$n(receiver).$sub(receiver, a0); |
+}; |
+J._addEventListener$3$x = function(receiver, a0, a1, a2) { |
+ return J.getInterceptor$x(receiver)._addEventListener$3(receiver, a0, a1, a2); |
+}; |
+J._removeEventListener$3$x = function(receiver, a0, a1, a2) { |
+ return J.getInterceptor$x(receiver)._removeEventListener$3(receiver, a0, a1, a2); |
+}; |
+J.add$1$ax = function(receiver, a0) { |
+ return J.getInterceptor$ax(receiver).add$1(receiver, a0); |
+}; |
+J.close$0$x = function(receiver) { |
+ return J.getInterceptor$x(receiver).close$0(receiver); |
+}; |
+J.codeUnitAt$1$s = function(receiver, a0) { |
+ return J.getInterceptor$s(receiver).codeUnitAt$1(receiver, a0); |
+}; |
+J.contains$1$asx = function(receiver, a0) { |
+ return J.getInterceptor$asx(receiver).contains$1(receiver, a0); |
+}; |
+J.elementAt$1$ax = function(receiver, a0) { |
+ return J.getInterceptor$ax(receiver).elementAt$1(receiver, a0); |
+}; |
+J.forEach$1$ax = function(receiver, a0) { |
+ return J.getInterceptor$ax(receiver).forEach$1(receiver, a0); |
+}; |
+J.get$contentWindow$x = function(receiver) { |
+ return J.getInterceptor$x(receiver).get$contentWindow(receiver); |
+}; |
+J.get$data$x = function(receiver) { |
+ return J.getInterceptor$x(receiver).get$data(receiver); |
+}; |
+J.get$error$x = function(receiver) { |
+ return J.getInterceptor$x(receiver).get$error(receiver); |
+}; |
+J.get$hashCode$ = function(receiver) { |
+ return J.getInterceptor(receiver).get$hashCode(receiver); |
+}; |
+J.get$isEmpty$asx = function(receiver) { |
+ return J.getInterceptor$asx(receiver).get$isEmpty(receiver); |
+}; |
+J.get$isNotEmpty$asx = function(receiver) { |
+ return J.getInterceptor$asx(receiver).get$isNotEmpty(receiver); |
+}; |
+J.get$iterator$ax = function(receiver) { |
+ return J.getInterceptor$ax(receiver).get$iterator(receiver); |
+}; |
+J.get$last$ax = function(receiver) { |
+ return J.getInterceptor$ax(receiver).get$last(receiver); |
+}; |
+J.get$length$asx = function(receiver) { |
+ return J.getInterceptor$asx(receiver).get$length(receiver); |
+}; |
+J.get$location$x = function(receiver) { |
+ return J.getInterceptor$x(receiver).get$location(receiver); |
+}; |
+J.get$message$x = function(receiver) { |
+ return J.getInterceptor$x(receiver).get$message(receiver); |
+}; |
+J.get$origin$x = function(receiver) { |
+ return J.getInterceptor$x(receiver).get$origin(receiver); |
+}; |
+J.get$parent$x = function(receiver) { |
+ return J.getInterceptor$x(receiver).get$parent(receiver); |
+}; |
+J.get$start$x = function(receiver) { |
+ return J.getInterceptor$x(receiver).get$start(receiver); |
+}; |
+J.map$1$ax = function(receiver, a0) { |
+ return J.getInterceptor$ax(receiver).map$1(receiver, a0); |
+}; |
+J.matchAsPrefix$2$s = function(receiver, a0, a1) { |
+ return J.getInterceptor$s(receiver).matchAsPrefix$2(receiver, a0, a1); |
+}; |
+J.postMessage$2$x = function(receiver, a0, a1) { |
+ return J.getInterceptor$x(receiver).postMessage$2(receiver, a0, a1); |
+}; |
+J.print$1$x = function(receiver, a0) { |
+ return J.getInterceptor$x(receiver).print$1(receiver, a0); |
+}; |
+J.remove$1$ax = function(receiver, a0) { |
+ return J.getInterceptor$ax(receiver).remove$1(receiver, a0); |
+}; |
+J.replaceAll$2$s = function(receiver, a0, a1) { |
+ return J.getInterceptor$s(receiver).replaceAll$2(receiver, a0, a1); |
+}; |
+J.replaceFirst$2$s = function(receiver, a0, a1) { |
+ return J.getInterceptor$s(receiver).replaceFirst$2(receiver, a0, a1); |
+}; |
+J.send$1$x = function(receiver, a0) { |
+ return J.getInterceptor$x(receiver).send$1(receiver, a0); |
+}; |
+J.skip$1$ax = function(receiver, a0) { |
+ return J.getInterceptor$ax(receiver).skip$1(receiver, a0); |
+}; |
+J.split$1$s = function(receiver, a0) { |
+ return J.getInterceptor$s(receiver).split$1(receiver, a0); |
+}; |
+J.startsWith$1$s = function(receiver, a0) { |
+ return J.getInterceptor$s(receiver).startsWith$1(receiver, a0); |
+}; |
+J.substring$1$s = function(receiver, a0) { |
+ return J.getInterceptor$s(receiver).substring$1(receiver, a0); |
+}; |
+J.substring$2$s = function(receiver, a0, a1) { |
+ return J.getInterceptor$s(receiver).substring$2(receiver, a0, a1); |
+}; |
+J.toRadixString$1$n = function(receiver, a0) { |
+ return J.getInterceptor$n(receiver).toRadixString$1(receiver, a0); |
+}; |
+J.toString$0 = function(receiver) { |
+ return J.getInterceptor(receiver).toString$0(receiver); |
+}; |
+J.trim$0$s = function(receiver) { |
+ return J.getInterceptor$s(receiver).trim$0(receiver); |
+}; |
+Isolate.makeConstantList = function(list) { |
+ list.immutable$list = Array; |
+ list.fixed$length = Array; |
+ return list; |
+}; |
+; |
+C.JSArray_methods = J.JSArray.prototype; |
+C.JSDouble_methods = J.JSDouble.prototype; |
+C.JSInt_methods = J.JSInt.prototype; |
+C.JSNull_methods = J.JSNull.prototype; |
+C.JSNumber_methods = J.JSNumber.prototype; |
+C.JSString_methods = J.JSString.prototype; |
+C.NativeUint8List_methods = H.NativeUint8List.prototype; |
+C.PlainJavaScriptObject_methods = J.PlainJavaScriptObject.prototype; |
+C.UnknownJavaScriptObject_methods = J.UnknownJavaScriptObject.prototype; |
+C.C_DynamicRuntimeType = new H.DynamicRuntimeType(); |
+C.C_OutOfMemoryError = new P.OutOfMemoryError(); |
+C.C__DelayedDone = new P._DelayedDone(); |
+C.C__RootZone = new P._RootZone(); |
+C.Duration_0 = new P.Duration(0); |
+C.JS_CONST_0 = function(hooks) { |
+ if (typeof dartExperimentalFixupGetTag != "function") return hooks; |
+ hooks.getTag = dartExperimentalFixupGetTag(hooks.getTag); |
+}; |
+C.JS_CONST_4hp = function(hooks) { |
+ var userAgent = typeof navigator == "object" ? navigator.userAgent : ""; |
+ if (userAgent.indexOf("Firefox") == -1) return hooks; |
+ var getTag = hooks.getTag; |
+ var quickMap = { |
+ "BeforeUnloadEvent": "Event", |
+ "DataTransfer": "Clipboard", |
+ "GeoGeolocation": "Geolocation", |
+ "Location": "!Location", |
+ "WorkerMessageEvent": "MessageEvent", |
+ "XMLDocument": "!Document"}; |
+ function getTagFirefox(o) { |
+ var tag = getTag(o); |
+ return quickMap[tag] || tag; |
+ } |
+ hooks.getTag = getTagFirefox; |
+}; |
+C.JS_CONST_8ZY = function getTagFallback(o) { |
+ var constructor = o.constructor; |
+ if (typeof constructor == "function") { |
+ var name = constructor.name; |
+ if (typeof name == "string" && |
+ name.length > 2 && |
+ name !== "Object" && |
+ name !== "Function.prototype") { |
+ return name; |
+ } |
+ } |
+ var s = Object.prototype.toString.call(o); |
+ return s.substring(8, s.length - 1); |
+}; |
+C.JS_CONST_Fs4 = function(hooks) { return hooks; } |
+; |
+C.JS_CONST_QJm = function(getTagFallback) { |
+ return function(hooks) { |
+ if (typeof navigator != "object") return hooks; |
+ var ua = navigator.userAgent; |
+ if (ua.indexOf("DumpRenderTree") >= 0) return hooks; |
+ if (ua.indexOf("Chrome") >= 0) { |
+ function confirm(p) { |
+ return typeof window == "object" && window[p] && window[p].name == p; |
+ } |
+ if (confirm("Window") && confirm("HTMLElement")) return hooks; |
+ } |
+ hooks.getTag = getTagFallback; |
+ }; |
+}; |
+C.JS_CONST_gkc = function() { |
+ function typeNameInChrome(o) { |
+ var constructor = o.constructor; |
+ if (constructor) { |
+ var name = constructor.name; |
+ if (name) return name; |
+ } |
+ var s = Object.prototype.toString.call(o); |
+ return s.substring(8, s.length - 1); |
+ } |
+ function getUnknownTag(object, tag) { |
+ if (/^HTML[A-Z].*Element$/.test(tag)) { |
+ var name = Object.prototype.toString.call(object); |
+ if (name == "[object Object]") return null; |
+ return "HTMLElement"; |
+ } |
+ } |
+ function getUnknownTagGenericBrowser(object, tag) { |
+ if (self.HTMLElement && object instanceof HTMLElement) return "HTMLElement"; |
+ return getUnknownTag(object, tag); |
+ } |
+ function prototypeForTag(tag) { |
+ if (typeof window == "undefined") return null; |
+ if (typeof window[tag] == "undefined") return null; |
+ var constructor = window[tag]; |
+ if (typeof constructor != "function") return null; |
+ return constructor.prototype; |
+ } |
+ function discriminator(tag) { return null; } |
+ var isBrowser = typeof navigator == "object"; |
+ return { |
+ getTag: typeNameInChrome, |
+ getUnknownTag: isBrowser ? getUnknownTagGenericBrowser : getUnknownTag, |
+ prototypeForTag: prototypeForTag, |
+ discriminator: discriminator }; |
+}; |
+C.JS_CONST_gkc0 = function(hooks) { |
+ var userAgent = typeof navigator == "object" ? navigator.userAgent : ""; |
+ if (userAgent.indexOf("Trident/") == -1) return hooks; |
+ var getTag = hooks.getTag; |
+ var quickMap = { |
+ "BeforeUnloadEvent": "Event", |
+ "DataTransfer": "Clipboard", |
+ "HTMLDDElement": "HTMLElement", |
+ "HTMLDTElement": "HTMLElement", |
+ "HTMLPhraseElement": "HTMLElement", |
+ "Position": "Geoposition" |
+ }; |
+ function getTagIE(o) { |
+ var tag = getTag(o); |
+ var newTag = quickMap[tag]; |
+ if (newTag) return newTag; |
+ if (tag == "Object") { |
+ if (window.DataView && (o instanceof window.DataView)) return "DataView"; |
+ } |
+ return tag; |
+ } |
+ function prototypeForTagIE(tag) { |
+ var constructor = window[tag]; |
+ if (constructor == null) return null; |
+ return constructor.prototype; |
+ } |
+ hooks.getTag = getTagIE; |
+ hooks.prototypeForTag = prototypeForTagIE; |
+}; |
+C.JS_CONST_rr7 = function(hooks) { |
+ var getTag = hooks.getTag; |
+ var prototypeForTag = hooks.prototypeForTag; |
+ function getTagFixed(o) { |
+ var tag = getTag(o); |
+ if (tag == "Document") { |
+ if (!!o.xmlVersion) return "!Document"; |
+ return "!HTMLDocument"; |
+ } |
+ return tag; |
+ } |
+ function prototypeForTagFixed(tag) { |
+ if (tag == "Document") return null; |
+ return prototypeForTag(tag); |
+ } |
+ hooks.getTag = getTagFixed; |
+ hooks.prototypeForTag = prototypeForTagFixed; |
+}; |
+C.JsonCodec_null_null = new P.JsonCodec(null, null); |
+C.JsonDecoder_null = new P.JsonDecoder(null); |
+C.JsonEncoder_null_null = new P.JsonEncoder(null, null); |
+C.List_127_2047_65535_1114111 = H.setRuntimeTypeInfo(Isolate.makeConstantList([127, 2047, 65535, 1114111]), [P.$int]); |
+C.List_2Vk = Isolate.makeConstantList([0, 0, 32776, 33792, 1, 10240, 0, 0]); |
+C.List_CVk = Isolate.makeConstantList([0, 0, 65490, 45055, 65535, 34815, 65534, 18431]); |
+C.List_JYB = Isolate.makeConstantList([0, 0, 26624, 1023, 65534, 2047, 65534, 2047]); |
+C.List_WnV = Isolate.makeConstantList(["/", "\\"]); |
+C.List_cSk = Isolate.makeConstantList(["/"]); |
+C.List_empty = H.setRuntimeTypeInfo(Isolate.makeConstantList([]), [P.String]); |
+C.List_gRj = Isolate.makeConstantList([0, 0, 32722, 12287, 65534, 34815, 65534, 18431]); |
+C.List_nxB = Isolate.makeConstantList([0, 0, 24576, 1023, 65534, 34815, 65534, 18431]); |
+C.List_qNA = Isolate.makeConstantList([0, 0, 32754, 11263, 65534, 34815, 65534, 18431]); |
+C.List_qg4 = Isolate.makeConstantList([0, 0, 65490, 12287, 65535, 34815, 65534, 18431]); |
+C.List_qg40 = Isolate.makeConstantList([0, 0, 32722, 12287, 65535, 34815, 65534, 18431]); |
+C.Utf8Codec_false = new P.Utf8Codec(false); |
+C._ZoneFunction_3bB = new P._ZoneFunction(C.C__RootZone, P._rootCreatePeriodicTimer$closure()); |
+C._ZoneFunction_7G2 = new P._ZoneFunction(C.C__RootZone, P._rootRegisterBinaryCallback$closure()); |
+C._ZoneFunction_Eeh = new P._ZoneFunction(C.C__RootZone, P._rootRegisterUnaryCallback$closure()); |
+C._ZoneFunction_NMc = new P._ZoneFunction(C.C__RootZone, P._rootHandleUncaughtError$closure()); |
+C._ZoneFunction__RootZone__rootCreateTimer = new P._ZoneFunction(C.C__RootZone, P._rootCreateTimer$closure()); |
+C._ZoneFunction__RootZone__rootErrorCallback = new P._ZoneFunction(C.C__RootZone, P._rootErrorCallback$closure()); |
+C._ZoneFunction__RootZone__rootFork = new P._ZoneFunction(C.C__RootZone, P._rootFork$closure()); |
+C._ZoneFunction__RootZone__rootPrint = new P._ZoneFunction(C.C__RootZone, P._rootPrint$closure()); |
+C._ZoneFunction__RootZone__rootRegisterCallback = new P._ZoneFunction(C.C__RootZone, P._rootRegisterCallback$closure()); |
+C._ZoneFunction__RootZone__rootRun = new P._ZoneFunction(C.C__RootZone, P._rootRun$closure()); |
+C._ZoneFunction__RootZone__rootRunBinary = new P._ZoneFunction(C.C__RootZone, P._rootRunBinary$closure()); |
+C._ZoneFunction__RootZone__rootRunUnary = new P._ZoneFunction(C.C__RootZone, P._rootRunUnary$closure()); |
+C._ZoneFunction__RootZone__rootScheduleMicrotask = new P._ZoneFunction(C.C__RootZone, P._rootScheduleMicrotask$closure()); |
+C._ZoneSpecification_ALf = new P._ZoneSpecification(null, null, null, null, null, null, null, null, null, null, null, null, null); |
+{ |
+ init.isHunkLoaded = function(hunkHash) { |
+ return !!$dart_deferred_initializers[hunkHash]; |
+ }; |
+ init.deferredInitialized = new Object(null); |
+ init.isHunkInitialized = function(hunkHash) { |
+ return init.deferredInitialized[hunkHash]; |
+ }; |
+ init.initializeLoadedHunk = function(hunkHash) { |
+ $dart_deferred_initializers[hunkHash](globalsHolder, $); |
+ init.deferredInitialized[hunkHash] = true; |
+ }; |
+} |
+init.deferredLibraryUris = {}; |
+init.deferredLibraryHashes = {}; |
+$.IsolateNatives_enableSpawnWorker = null; |
+$.RawReceivePortImpl__nextFreeId = 1; |
+$.Primitives_mirrorFunctionCacheName = "$cachedFunction"; |
+$.Primitives_mirrorInvokeCacheName = "$cachedInvocation"; |
+$.Closure_functionCounter = 0; |
+$.BoundClosure_selfFieldNameCache = null; |
+$.BoundClosure_receiverFieldNameCache = null; |
+$.RuntimeFunctionType_inAssert = false; |
+$.getTagFunction = null; |
+$.alternateTagFunction = null; |
+$.prototypeForTagFunction = null; |
+$.dispatchRecordsForInstanceTags = null; |
+$.interceptorsForUncacheableTags = null; |
+$.initNativeDispatchFlag = null; |
+$.printToZone = null; |
+$._nextCallback = null; |
+$._lastCallback = null; |
+$._lastPriorityCallback = null; |
+$._isInCallbackLoop = false; |
+$.Zone__current = C.C__RootZone; |
+$._RootZone__rootDelegate = null; |
+$.Expando__keyCount = 0; |
+$.Device__isOpera = null; |
+$.Device__isIE = null; |
+$.Device__isFirefox = null; |
+$.Device__isWebKit = null; |
+$.Device__cachedCssPrefix = null; |
+Isolate.$lazy($, "thisScript", "IsolateNatives_thisScript", "get$IsolateNatives_thisScript", function() { |
+ return H.IsolateNatives_computeThisScript(); |
+}); |
+Isolate.$lazy($, "workerIds", "IsolateNatives_workerIds", "get$IsolateNatives_workerIds", function() { |
+ return new P.Expando(null); |
+}); |
+Isolate.$lazy($, "noSuchMethodPattern", "TypeErrorDecoder_noSuchMethodPattern", "get$TypeErrorDecoder_noSuchMethodPattern", function() { |
+ return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn({toString: function() { |
+ return "$receiver$"; |
+ }})); |
+}); |
+Isolate.$lazy($, "notClosurePattern", "TypeErrorDecoder_notClosurePattern", "get$TypeErrorDecoder_notClosurePattern", function() { |
+ return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn({$method$: null, toString: function() { |
+ return "$receiver$"; |
+ }})); |
+}); |
+Isolate.$lazy($, "nullCallPattern", "TypeErrorDecoder_nullCallPattern", "get$TypeErrorDecoder_nullCallPattern", function() { |
+ return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn(null)); |
+}); |
+Isolate.$lazy($, "nullLiteralCallPattern", "TypeErrorDecoder_nullLiteralCallPattern", "get$TypeErrorDecoder_nullLiteralCallPattern", function() { |
+ return H.TypeErrorDecoder_extractPattern(function() { |
+ var $argumentsExpr$ = '$arguments$'; |
+ try { |
+ null.$method$($argumentsExpr$); |
+ } catch (e) { |
+ return e.message; |
+ } |
+ }()); |
+}); |
+Isolate.$lazy($, "undefinedCallPattern", "TypeErrorDecoder_undefinedCallPattern", "get$TypeErrorDecoder_undefinedCallPattern", function() { |
+ return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn(void 0)); |
+}); |
+Isolate.$lazy($, "undefinedLiteralCallPattern", "TypeErrorDecoder_undefinedLiteralCallPattern", "get$TypeErrorDecoder_undefinedLiteralCallPattern", function() { |
+ return H.TypeErrorDecoder_extractPattern(function() { |
+ var $argumentsExpr$ = '$arguments$'; |
+ try { |
+ (void 0).$method$($argumentsExpr$); |
+ } catch (e) { |
+ return e.message; |
+ } |
+ }()); |
+}); |
+Isolate.$lazy($, "nullPropertyPattern", "TypeErrorDecoder_nullPropertyPattern", "get$TypeErrorDecoder_nullPropertyPattern", function() { |
+ return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokePropertyErrorOn(null)); |
+}); |
+Isolate.$lazy($, "nullLiteralPropertyPattern", "TypeErrorDecoder_nullLiteralPropertyPattern", "get$TypeErrorDecoder_nullLiteralPropertyPattern", function() { |
+ return H.TypeErrorDecoder_extractPattern(function() { |
+ try { |
+ null.$method$; |
+ } catch (e) { |
+ return e.message; |
+ } |
+ }()); |
+}); |
+Isolate.$lazy($, "undefinedPropertyPattern", "TypeErrorDecoder_undefinedPropertyPattern", "get$TypeErrorDecoder_undefinedPropertyPattern", function() { |
+ return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokePropertyErrorOn(void 0)); |
+}); |
+Isolate.$lazy($, "undefinedLiteralPropertyPattern", "TypeErrorDecoder_undefinedLiteralPropertyPattern", "get$TypeErrorDecoder_undefinedLiteralPropertyPattern", function() { |
+ return H.TypeErrorDecoder_extractPattern(function() { |
+ try { |
+ (void 0).$method$; |
+ } catch (e) { |
+ return e.message; |
+ } |
+ }()); |
+}); |
+Isolate.$lazy($, "scheduleImmediateClosure", "_AsyncRun_scheduleImmediateClosure", "get$_AsyncRun_scheduleImmediateClosure", function() { |
+ return P._AsyncRun__initializeScheduleImmediate(); |
+}); |
+Isolate.$lazy($, "_nullFuture", "Future__nullFuture", "get$Future__nullFuture", function() { |
+ return P._Future$immediate(null, null); |
+}); |
+Isolate.$lazy($, "_rootMap", "_RootZone__rootMap", "get$_RootZone__rootMap", function() { |
+ return P.HashMap_HashMap(null, null, null, null, null); |
+}); |
+Isolate.$lazy($, "_toStringVisiting", "IterableBase__toStringVisiting", "get$IterableBase__toStringVisiting", function() { |
+ return []; |
+}); |
+Isolate.$lazy($, "_vmFrame", "_vmFrame", "get$_vmFrame", function() { |
+ return P.RegExp_RegExp("^#\\d+\\s+(\\S.*) \\((.+?)((?::\\d+){0,2})\\)$", true, false); |
+}); |
+Isolate.$lazy($, "_v8Frame", "_v8Frame", "get$_v8Frame", function() { |
+ return P.RegExp_RegExp("^\\s*at (?:(\\S.*?)(?: \\[as [^\\]]+\\])? \\((.*)\\)|(.*))$", true, false); |
+}); |
+Isolate.$lazy($, "_v8UrlLocation", "_v8UrlLocation", "get$_v8UrlLocation", function() { |
+ return P.RegExp_RegExp("^(.*):(\\d+):(\\d+)$", true, false); |
+}); |
+Isolate.$lazy($, "_v8EvalLocation", "_v8EvalLocation", "get$_v8EvalLocation", function() { |
+ return P.RegExp_RegExp("^eval at (?:\\S.*?) \\((.*)\\)(?:, .*?:\\d+:\\d+)?$", true, false); |
+}); |
+Isolate.$lazy($, "_firefoxSafariFrame", "_firefoxSafariFrame", "get$_firefoxSafariFrame", function() { |
+ return P.RegExp_RegExp("^(?:([^@(/]*)(?:\\(.*\\))?((?:/[^/]*)*)(?:\\(.*\\))?@)?(.*?):(\\d*)(?::(\\d*))?$", true, false); |
+}); |
+Isolate.$lazy($, "_friendlyFrame", "_friendlyFrame", "get$_friendlyFrame", function() { |
+ return P.RegExp_RegExp("^(\\S+)(?: (\\d+)(?::(\\d+))?)?\\s+([^\\d]\\S*)$", true, false); |
+}); |
+Isolate.$lazy($, "_asyncBody", "_asyncBody", "get$_asyncBody", function() { |
+ return P.RegExp_RegExp("<(<anonymous closure>|[^>]+)_async_body>", true, false); |
+}); |
+Isolate.$lazy($, "_initialDot", "_initialDot", "get$_initialDot", function() { |
+ return P.RegExp_RegExp("^\\.", true, false); |
+}); |
+Isolate.$lazy($, "_uriRegExp", "Frame__uriRegExp", "get$Frame__uriRegExp", function() { |
+ return P.RegExp_RegExp("^[a-zA-Z][-+.a-zA-Z\\d]*://", true, false); |
+}); |
+Isolate.$lazy($, "_windowsRegExp", "Frame__windowsRegExp", "get$Frame__windowsRegExp", function() { |
+ return P.RegExp_RegExp("^([a-zA-Z]:[\\\\/]|\\\\\\\\)", true, false); |
+}); |
+Isolate.$lazy($, "windows", "windows", "get$windows", function() { |
+ return F.Context_Context(null, $.get$Style_windows()); |
+}); |
+Isolate.$lazy($, "context", "context", "get$context", function() { |
+ return new F.Context($.get$Style_platform(), null); |
+}); |
+Isolate.$lazy($, "posix", "Style_posix", "get$Style_posix", function() { |
+ return new Z.PosixStyle("posix", "/", C.List_cSk, P.RegExp_RegExp("/", true, false), P.RegExp_RegExp("[^/]$", true, false), P.RegExp_RegExp("^/", true, false), null); |
+}); |
+Isolate.$lazy($, "windows", "Style_windows", "get$Style_windows", function() { |
+ 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_RegExp("^[/\\\\](?![/\\\\])", true, false)); |
+}); |
+Isolate.$lazy($, "url", "Style_url", "get$Style_url", function() { |
+ return new E.UrlStyle("url", "/", C.List_cSk, P.RegExp_RegExp("/", true, false), P.RegExp_RegExp("(^[a-zA-Z][-+.a-zA-Z\\d]*://|[^/])$", true, false), P.RegExp_RegExp("[a-zA-Z][-+.a-zA-Z\\d]*://[^/]*", true, false), P.RegExp_RegExp("^/", true, false)); |
+}); |
+Isolate.$lazy($, "platform", "Style_platform", "get$Style_platform", function() { |
+ return S.Style__getPlatformStyle(); |
+}); |
+Isolate.$lazy($, "_terseRegExp", "_terseRegExp", "get$_terseRegExp", function() { |
+ return P.RegExp_RegExp("(-patch)?(/.*)?$", true, false); |
+}); |
+Isolate.$lazy($, "_v8Trace", "_v8Trace", "get$_v8Trace", function() { |
+ return P.RegExp_RegExp("\\n ?at ", true, false); |
+}); |
+Isolate.$lazy($, "_v8TraceLine", "_v8TraceLine", "get$_v8TraceLine", function() { |
+ return P.RegExp_RegExp(" ?at ", true, false); |
+}); |
+Isolate.$lazy($, "_firefoxSafariTrace", "_firefoxSafariTrace", "get$_firefoxSafariTrace", function() { |
+ return P.RegExp_RegExp("^(([.0-9A-Za-z_$/<]|\\(.*\\))*@)?[^\\s]*:\\d*$", true, true); |
+}); |
+Isolate.$lazy($, "_friendlyTrace", "_friendlyTrace", "get$_friendlyTrace", function() { |
+ return P.RegExp_RegExp("^[^\\s]+( \\d+(:\\d+)?)?[ \\t]+[^\\s]+$", true, true); |
+}); |
+ |
+init.metadata = [{func: "args0"}, |
+{func: "void_", void: true}, |
+{func: "args1", args: [null]}, |
+{func: "dynamic__dynamic_String", args: [null, P.String]}, |
+{func: "dynamic__String", args: [P.String]}, |
+{func: "dynamic__void_", args: [{func: "void_", void: true}]}, |
+{func: "void__dynamic__StackTrace", void: true, args: [null], opt: [P.StackTrace]}, |
+{func: "dynamic__dynamic__dynamic", args: [null], opt: [null]}, |
+{func: "bool_", ret: P.bool}, |
+{func: "dynamic__bool", args: [P.bool]}, |
+{func: "void__Object__StackTrace", void: true, args: [P.Object], opt: [P.StackTrace]}, |
+{func: "void__Object_StackTrace", void: true, args: [P.Object, P.StackTrace]}, |
+{func: "dynamic__dynamic_StackTrace", args: [null, P.StackTrace]}, |
+{func: "void__dynamic_StackTrace", void: true, args: [null, P.StackTrace]}, |
+{func: "dynamic__Zone_ZoneDelegate_Zone_dynamic_StackTrace", args: [P.Zone, P.ZoneDelegate, P.Zone, null, P.StackTrace]}, |
+{func: "args2", args: [null, null]}, |
+{func: "dynamic__String_dynamic", args: [P.String, null]}, |
+{func: "int__dynamic_int", ret: P.$int, args: [null, P.$int]}, |
+{func: "void__int_int", void: true, args: [P.$int, P.$int]}, |
+{func: "dynamic__Symbol_dynamic", args: [P.Symbol, null]}, |
+{func: "String__int", ret: P.String, args: [P.$int]}, |
+{func: "bool__int", ret: P.bool, args: [P.$int]}, |
+{func: "int__dynamic_dynamic", ret: P.$int, args: [null, null]}, |
+{func: "void__String", void: true, args: [P.String]}, |
+{func: "void__String__dynamic", void: true, args: [P.String], opt: [null]}, |
+{func: "int__int_int", ret: P.$int, args: [P.$int, P.$int]}, |
+{func: "int__dynamic", ret: P.$int, args: [null]}, |
+{func: "dynamic__int", args: [P.$int]}, |
+{func: "dynamic__int_dynamic", args: [P.$int, null]}, |
+{func: "void__void_", void: true, args: [{func: "void_", void: true}]}, |
+{func: "void__dynamic", void: true, args: [null]}, |
+{func: "void__Zone_ZoneDelegate_Zone_dynamic_StackTrace", void: true, args: [P.Zone, P.ZoneDelegate, P.Zone, null, P.StackTrace]}, |
+{func: "dynamic__Zone_ZoneDelegate_Zone_args0", args: [P.Zone, P.ZoneDelegate, P.Zone, {func: "args0"}]}, |
+{func: "dynamic__Zone_ZoneDelegate_Zone_args1_dynamic", args: [P.Zone, P.ZoneDelegate, P.Zone, {func: "args1", args: [null]}, null]}, |
+{func: "dynamic__Zone_ZoneDelegate_Zone_args2_dynamic_dynamic", args: [P.Zone, P.ZoneDelegate, P.Zone, {func: "args2", args: [null, null]}, null, null]}, |
+{func: "ZoneCallback__Zone_ZoneDelegate_Zone_args0", ret: {func: "args0"}, args: [P.Zone, P.ZoneDelegate, P.Zone, {func: "args0"}]}, |
+{func: "ZoneUnaryCallback__Zone_ZoneDelegate_Zone_args1", ret: {func: "args1", args: [null]}, args: [P.Zone, P.ZoneDelegate, P.Zone, {func: "args1", args: [null]}]}, |
+{func: "ZoneBinaryCallback__Zone_ZoneDelegate_Zone_args2", ret: {func: "args2", args: [null, null]}, args: [P.Zone, P.ZoneDelegate, P.Zone, {func: "args2", args: [null, null]}]}, |
+{func: "AsyncError__Zone_ZoneDelegate_Zone_Object_StackTrace", ret: P.AsyncError, args: [P.Zone, P.ZoneDelegate, P.Zone, P.Object, P.StackTrace]}, |
+{func: "void__Zone_ZoneDelegate_Zone_args0", void: true, args: [P.Zone, P.ZoneDelegate, P.Zone, {func: "args0"}]}, |
+{func: "Timer__Zone_ZoneDelegate_Zone_Duration_void_", ret: P.Timer, args: [P.Zone, P.ZoneDelegate, P.Zone, P.Duration, {func: "void_", void: true}]}, |
+{func: "Timer__Zone_ZoneDelegate_Zone_Duration_void__Timer", ret: P.Timer, args: [P.Zone, P.ZoneDelegate, P.Zone, P.Duration, {func: "void__Timer", void: true, args: [P.Timer]}]}, |
+{func: "void__Zone_ZoneDelegate_Zone_String", void: true, args: [P.Zone, P.ZoneDelegate, P.Zone, P.String]}, |
+{func: "Zone__Zone_ZoneDelegate_Zone_ZoneSpecification_Map", ret: P.Zone, args: [P.Zone, P.ZoneDelegate, P.Zone, P.ZoneSpecification, P.Map]}, |
+{func: "bool__dynamic_dynamic", ret: P.bool, args: [null, null]}, |
+{func: "Object__dynamic", ret: P.Object, args: [null]}, |
+{func: "bool__Object_Object", ret: P.bool, args: [P.Object, P.Object]}, |
+{func: "int__Object", ret: P.$int, args: [P.Object]}, |
+{func: "String__String", ret: P.String, args: [P.String]}, |
+{func: "num__num_num", ret: P.num, args: [P.num, P.num]}, |
+, |
+]; |
+$ = null; |
+Isolate = Isolate.$finishIsolateConstructor(Isolate); |
+$ = new Isolate(); |
+function convertToFastObject(properties) { |
+ function MyClass() { |
+ } |
+ MyClass.prototype = properties; |
+ new MyClass(); |
+ return properties; |
+} |
+; |
+A = convertToFastObject(A); |
+B = convertToFastObject(B); |
+C = convertToFastObject(C); |
+D = convertToFastObject(D); |
+E = convertToFastObject(E); |
+F = convertToFastObject(F); |
+G = convertToFastObject(G); |
+H = convertToFastObject(H); |
+J = convertToFastObject(J); |
+K = convertToFastObject(K); |
+L = convertToFastObject(L); |
+M = convertToFastObject(M); |
+N = convertToFastObject(N); |
+O = convertToFastObject(O); |
+P = convertToFastObject(P); |
+Q = convertToFastObject(Q); |
+R = convertToFastObject(R); |
+S = convertToFastObject(S); |
+T = convertToFastObject(T); |
+U = convertToFastObject(U); |
+V = convertToFastObject(V); |
+W = convertToFastObject(W); |
+X = convertToFastObject(X); |
+Y = convertToFastObject(Y); |
+Z = convertToFastObject(Z); |
+function init() { |
+ Isolate.$isolateProperties = Object.create(null); |
+ init.allClasses = Object.create(null); |
+ init.getTypeFromName = function(name) { |
+ return init.allClasses[name]; |
+ }; |
+ init.interceptorsByTag = Object.create(null); |
+ init.leafTags = Object.create(null); |
+ init.finishedClasses = Object.create(null); |
+ Isolate.$lazy = function(prototype, staticName, fieldName, getterName, lazyValue) { |
+ if (!init.lazies) |
+ init.lazies = Object.create(null); |
+ init.lazies[fieldName] = getterName; |
+ var sentinelUndefined = {}; |
+ var sentinelInProgress = {}; |
+ prototype[fieldName] = sentinelUndefined; |
+ prototype[getterName] = function() { |
+ var result = $[fieldName]; |
+ try { |
+ if (result === sentinelUndefined) { |
+ $[fieldName] = sentinelInProgress; |
+ try { |
+ result = $[fieldName] = lazyValue(); |
+ } finally { |
+ if (result === sentinelUndefined) |
+ $[fieldName] = null; |
+ } |
+ } else |
+ if (result === sentinelInProgress) |
+ H.throwCyclicInit(staticName); |
+ return result; |
+ } finally { |
+ $[getterName] = function() { |
+ return this[fieldName]; |
+ }; |
+ } |
+ }; |
+ }; |
+ Isolate.$finishIsolateConstructor = function(oldIsolate) { |
+ var isolateProperties = oldIsolate.$isolateProperties; |
+ function Isolate() { |
+ var staticNames = Object.keys(isolateProperties); |
+ for (var i = 0; i < staticNames.length; i++) { |
+ var staticName = staticNames[i]; |
+ this[staticName] = isolateProperties[staticName]; |
+ } |
+ var lazies = init.lazies; |
+ var lazyInitializers = lazies ? Object.keys(lazies) : []; |
+ for (var i = 0; i < lazyInitializers.length; i++) |
+ this[lazies[lazyInitializers[i]]] = null; |
+ function ForceEfficientMap() { |
+ } |
+ ForceEfficientMap.prototype = this; |
+ new ForceEfficientMap(); |
+ for (var i = 0; i < lazyInitializers.length; i++) { |
+ var lazyInitName = lazies[lazyInitializers[i]]; |
+ this[lazyInitName] = isolateProperties[lazyInitName]; |
+ } |
+ } |
+ Isolate.prototype = oldIsolate.prototype; |
+ Isolate.prototype.constructor = Isolate; |
+ Isolate.$isolateProperties = isolateProperties; |
+ Isolate.makeConstantList = oldIsolate.makeConstantList; |
+ return Isolate; |
+ }; |
+} |
+!function() { |
+ function intern(s) { |
+ var o = {}; |
+ o[s] = 1; |
+ return Object.keys(convertToFastObject(o))[0]; |
+ } |
+ init.getIsolateTag = function(name) { |
+ return intern("___dart_" + name + init.isolateTag); |
+ }; |
+ var tableProperty = "___dart_isolate_tags_"; |
+ var usedProperties = Object[tableProperty] || (Object[tableProperty] = Object.create(null)); |
+ var rootProperty = "_ZxYxX"; |
+ for (var i = 0;; i++) { |
+ var property = intern(rootProperty + "_" + i + "_"); |
+ if (!(property in usedProperties)) { |
+ usedProperties[property] = 1; |
+ init.isolateTag = property; |
+ break; |
+ } |
+ } |
+ init.dispatchPropertyName = init.getIsolateTag("dispatch_record"); |
+}(); |
+;// BEGIN invoke [main]. |
+(function(callback) { |
+ if (typeof document === "undefined") { |
+ callback(null); |
+ return; |
+ } |
+ if (document.currentScript) { |
+ callback(document.currentScript); |
+ return; |
+ } |
+ var scripts = document.scripts; |
+ function onLoad(event) { |
+ for (var i = 0; i < scripts.length; ++i) |
+ scripts[i].removeEventListener("load", onLoad, false); |
+ callback(event.target); |
+ } |
+ for (var i = 0; i < scripts.length; ++i) |
+ scripts[i].addEventListener("load", onLoad, false); |
+})(function(currentScript) { |
+ init.currentScript = currentScript; |
+ if (typeof dartMainRunner === "function") |
+ dartMainRunner(function(a) { |
+ H.startRootIsolate(O.main$closure(), a); |
+ }, []); |
+ else |
+ (function(a) { |
+ H.startRootIsolate(O.main$closure(), a); |
+ })([]); |
+}); |
+; |
+// END invoke [main]. |
+})() |
+ |
+//# sourceMappingURL=host.dart.js.map |