| Index: mojo/public/dart/third_party/unittest/out.js
|
| diff --git a/mojo/public/dart/third_party/unittest/out.js b/mojo/public/dart/third_party/unittest/out.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..925e952924aab0d1327a2c82292154427d6fb42c
|
| --- /dev/null
|
| +++ b/mojo/public/dart/third_party/unittest/out.js
|
| @@ -0,0 +1,5440 @@
|
| +// Generated by dart2js, the Dart to JavaScript compiler version: 1.11.0-edge.131474.
|
| +// 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].
|
| +//
|
| +// dartDeferredLibraryLoader(uri, successCallback, errorCallback):
|
| +// if this function is defined, it will be called when a deferered library
|
| +// is loaded. It should load and eval the javascript of `uri`, and call
|
| +// successCallback. If it fails to do so, it should call errorCallback with
|
| +// an error.
|
| +(function($) {
|
| +var supportsDirectProtoAccess = function() {
|
| + var cls = function() {
|
| + };
|
| + cls.prototype = {p: {}};
|
| + var object = new cls();
|
| + return object.__proto__ && object.__proto__.p === cls.prototype.p;
|
| +}();
|
| +;
|
| +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 setupProgram(programData, typesOffset) {
|
| + "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 = "p_" + field;
|
| + str += parameter;
|
| + body += "this." + field + " = " + parameter + ";\n";
|
| + }
|
| + if (supportsDirectProtoAccess)
|
| + body += "this." + "$deferredAction" + "();";
|
| + str += ") {\n" + body + "}\n";
|
| + str += name + ".builtin$cls=\"" + name + "\";\n";
|
| + str += "$desc=$collectedClasses." + name + "[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 = supportsDirectProtoAccess ? function(constructor, superConstructor) {
|
| + var prototype = constructor.prototype;
|
| + prototype.__proto__ = superConstructor.prototype;
|
| + prototype.constructor = constructor;
|
| + prototype["$is" + constructor.name] = constructor;
|
| + return convertToFastObject(prototype);
|
| + } : function() {
|
| + function tmp() {
|
| + }
|
| + return function(constructor, superConstructor) {
|
| + tmp.prototype = superConstructor.prototype;
|
| + var object = new tmp();
|
| + convertToSlowObject(object);
|
| + 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 = 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 || typeof superclass != "string") {
|
| + var constructor = allClasses[cls];
|
| + var prototype = constructor.prototype;
|
| + prototype.constructor = constructor;
|
| + prototype.$isObject = constructor;
|
| + prototype.$deferredAction = function() {
|
| + };
|
| + return;
|
| + }
|
| + finishClass(superclass);
|
| + var superConstructor = allClasses[superclass];
|
| + if (!superConstructor)
|
| + superConstructor = existingIsolateProperties[superclass];
|
| + var constructor = allClasses[cls];
|
| + var prototype = inheritFrom(constructor, superConstructor);
|
| + if (prototype.$isInterceptor)
|
| + prototype.$deferredAction();
|
| + }
|
| + var properties = Object.keys(processedClasses.pending);
|
| + for (var i = 0; i < properties.length; i++)
|
| + finishClass(properties[i]);
|
| + }
|
| + function finishAddStubsHelper() {
|
| + var prototype = this;
|
| + while (!prototype.hasOwnProperty("$deferredAction"))
|
| + prototype = prototype.__proto__;
|
| + delete prototype.$deferredAction;
|
| + var properties = Object.keys(prototype);
|
| + for (var index = 0; index < properties.length; index++) {
|
| + var property = properties[index];
|
| + var firstChar = property.charCodeAt(0);
|
| + var elem;
|
| + if (property !== "^" && property !== "$reflectable" && firstChar !== 43 && firstChar !== 42 && (elem = prototype[property]) != null && elem.constructor === Array && property !== "<>")
|
| + addStubs(prototype, elem, property, false, []);
|
| + }
|
| + convertToFastObject(prototype);
|
| + prototype = prototype.__proto__;
|
| + prototype.$deferredAction();
|
| + }
|
| + function processClassData(cls, descriptor, processedClasses) {
|
| + descriptor = convertToSlowObject(descriptor);
|
| + var previousProperty;
|
| + var properties = Object.keys(descriptor);
|
| + var hasDeferredWork = false;
|
| + var shouldDeferWork = supportsDirectProtoAccess && cls != "Object";
|
| + for (var i = 0; i < properties.length; i++) {
|
| + var property = properties[i];
|
| + var firstChar = property.charCodeAt(0);
|
| + if (property === "static") {
|
| + processStatics(init.statics[cls] = descriptor.static, processedClasses);
|
| + delete descriptor.static;
|
| + } else if (firstChar === 43) {
|
| + mangledNames[previousProperty] = property.substring(1);
|
| + var flag = descriptor[property];
|
| + if (flag > 0)
|
| + descriptor[previousProperty].$reflectable = flag;
|
| + } else if (firstChar === 42) {
|
| + descriptor[previousProperty].$defaultValues = descriptor[property];
|
| + var optionalMethods = descriptor.$methodsWithOptionalArguments;
|
| + if (!optionalMethods)
|
| + descriptor.$methodsWithOptionalArguments = optionalMethods = {};
|
| + optionalMethods[property] = previousProperty;
|
| + } else {
|
| + var elem = descriptor[property];
|
| + if (property !== "^" && elem != null && elem.constructor === Array && property !== "<>")
|
| + if (shouldDeferWork)
|
| + hasDeferredWork = true;
|
| + else
|
| + addStubs(descriptor, elem, property, false, []);
|
| + else
|
| + previousProperty = property;
|
| + }
|
| + }
|
| + if (hasDeferredWork)
|
| + descriptor.$deferredAction = finishAddStubsHelper;
|
| + var classData = descriptor["^"], 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)
|
| + descriptor.$signature = function(s) {
|
| + return function() {
|
| + return init.types[s];
|
| + };
|
| + }(functionSignature);
|
| + }
|
| + if (supr)
|
| + processedClasses.pending[cls] = supr;
|
| + processedClasses.combinedConstructorFunction += defineClass(cls, fields);
|
| + processedClasses.constructorsList.push(cls);
|
| + processedClasses.collected[cls] = [globalObject, descriptor];
|
| + 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.charCodeAt(0);
|
| + var previousProperty;
|
| + if (firstChar === 43) {
|
| + 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 === 42) {
|
| + 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, functions);
|
| + else {
|
| + previousProperty = property;
|
| + processClassData(property, element, processedClasses);
|
| + }
|
| + }
|
| + }
|
| + function addStubs(prototype, array, name, isStatic, functions) {
|
| + var index = 0, alias = array[index], f;
|
| + if (typeof alias == "string")
|
| + f = array[++index];
|
| + else {
|
| + f = alias;
|
| + alias = name;
|
| + }
|
| + var funcs = [prototype[name] = prototype[alias] = f];
|
| + f.$stubName = name;
|
| + functions.push(name);
|
| + for (index++; index < array.length; index++) {
|
| + f = array[index];
|
| + if (typeof f != "function")
|
| + break;
|
| + if (!isStatic)
|
| + f.$stubName = array[++index];
|
| + funcs.push(f);
|
| + if (f.$stubName) {
|
| + prototype[f.$stubName] = f;
|
| + functions.push(f.$stubName);
|
| + }
|
| + }
|
| + for (var i = 0; i < funcs.length; index++, i++)
|
| + funcs[i].$callName = array[index];
|
| + 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];
|
| + if (typeof functionTypeIndex == "number")
|
| + array[2] = functionTypeIndex + typesOffset;
|
| + var unmangledNameIndex = 2 * optionalParameterCount + requiredParameterCount + 3;
|
| + if (getterStubName) {
|
| + f = tearOff(funcs, array, isStatic, name, isIntercepted);
|
| + prototype[name].$getter = f;
|
| + f.$getterStub = true;
|
| + if (isStatic) {
|
| + init.globalFunctions[name] = f;
|
| + functions.push(getterStubName);
|
| + }
|
| + prototype[getterStubName] = f;
|
| + funcs.push(f);
|
| + 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 = programData.length;
|
| + var processedClasses = map();
|
| + processedClasses.collected = map();
|
| + processedClasses.pending = map();
|
| + 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 = programData[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;
|
| + },
|
| + Interceptor: {
|
| + "^": "Object;",
|
| + $eq: function(receiver, other) {
|
| + return receiver === other;
|
| + },
|
| + get$hashCode: function(receiver) {
|
| + return H.Primitives_objectHashCode(receiver);
|
| + },
|
| + toString$0: function(receiver) {
|
| + return H.Primitives_objectToString(receiver);
|
| + }
|
| + },
|
| + 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(new P.UnsupportedError(reason));
|
| + },
|
| + checkGrowable$1: function(receiver, reason) {
|
| + if (!!receiver.fixed$length)
|
| + throw H.wrapException(new P.UnsupportedError(reason));
|
| + },
|
| + 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(new P.ConcurrentModificationError(receiver));
|
| + }
|
| + },
|
| + map$1: function(receiver, f) {
|
| + return H.setRuntimeTypeInfo(new H.MappedListIterable(receiver, f), [null, null]);
|
| + },
|
| + elementAt$1: function(receiver, index) {
|
| + if (index < 0 || index >= receiver.length)
|
| + return H.ioore(receiver, index);
|
| + return receiver[index];
|
| + },
|
| + get$first: function(receiver) {
|
| + if (receiver.length > 0)
|
| + return receiver[0];
|
| + 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 + $length > iterable.length)
|
| + throw H.wrapException(new P.StateError("Too few elements"));
|
| + if (skipCount < start)
|
| + for (i = $length - 1; i >= 0; --i) {
|
| + t1 = skipCount + i;
|
| + if (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 >= iterable.length)
|
| + return H.ioore(iterable, t1);
|
| + receiver[start + i] = iterable[t1];
|
| + }
|
| + },
|
| + toString$0: function(receiver) {
|
| + return P.IterableBase_iterableToFullString(receiver, "[", "]");
|
| + },
|
| + get$iterator: function(receiver) {
|
| + return new J.ArrayIterator(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) {
|
| + this.checkGrowable$1(receiver, "set length");
|
| + if (newLength < 0)
|
| + throw H.wrapException(P.RangeError$value(newLength, null, null));
|
| + 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) {
|
| + this.checkMutable$1(receiver, "indexed set");
|
| + if (index >= receiver.length || false)
|
| + throw H.wrapException(P.RangeError$value(index, null, null));
|
| + receiver[index] = value;
|
| + },
|
| + $isJSIndexable: 1,
|
| + $isList: 1,
|
| + $isEfficientLengthIterable: 1
|
| + },
|
| + JSUnmodifiableArray: {
|
| + "^": "JSArray;"
|
| + },
|
| + ArrayIterator: {
|
| + "^": "Object;_iterable,_length,_index,__interceptors$_current",
|
| + get$current: function() {
|
| + return this.__interceptors$_current;
|
| + },
|
| + moveNext$0: function() {
|
| + var t1, $length, t2;
|
| + t1 = this._iterable;
|
| + $length = t1.length;
|
| + if (this._length !== $length)
|
| + throw H.wrapException(new P.ConcurrentModificationError(t1));
|
| + t2 = this._index;
|
| + if (t2 >= $length) {
|
| + this.__interceptors$_current = null;
|
| + return false;
|
| + }
|
| + this.__interceptors$_current = t1[t2];
|
| + this._index = t2 + 1;
|
| + return true;
|
| + }
|
| + },
|
| + JSNumber: {
|
| + "^": "Interceptor;",
|
| + 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(new P.UnsupportedError("" + receiver));
|
| + },
|
| + toString$0: function(receiver) {
|
| + if (receiver === 0 && 1 / receiver < 0)
|
| + return "-0.0";
|
| + else
|
| + return "" + receiver;
|
| + },
|
| + get$hashCode: function(receiver) {
|
| + return receiver & 0x1FFFFFFF;
|
| + },
|
| + $add: function(receiver, other) {
|
| + if (typeof other !== "number")
|
| + throw H.wrapException(P.ArgumentError$(other));
|
| + return receiver + other;
|
| + },
|
| + _tdivFast$1: function(receiver, other) {
|
| + return (receiver | 0) === receiver ? receiver / other | 0 : this.toInt$0(receiver / other);
|
| + },
|
| + _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;
|
| + },
|
| + $lt: function(receiver, other) {
|
| + if (typeof other !== "number")
|
| + throw H.wrapException(P.ArgumentError$(other));
|
| + return receiver < other;
|
| + },
|
| + $isnum: 1
|
| + },
|
| + JSInt: {
|
| + "^": "JSNumber;",
|
| + $isnum: 1,
|
| + $is$int: 1
|
| + },
|
| + JSDouble: {
|
| + "^": "JSNumber;",
|
| + $isnum: 1
|
| + },
|
| + JSString: {
|
| + "^": "Interceptor;",
|
| + codeUnitAt$1: function(receiver, index) {
|
| + if (index >= receiver.length)
|
| + throw H.wrapException(P.RangeError$value(index, null, null));
|
| + return receiver.charCodeAt(index);
|
| + },
|
| + $add: function(receiver, other) {
|
| + if (typeof other !== "string")
|
| + throw H.wrapException(P.ArgumentError$(other));
|
| + return receiver + other;
|
| + },
|
| + substring$2: function(receiver, startIndex, endIndex) {
|
| + H.checkInt(startIndex);
|
| + if (endIndex == null)
|
| + endIndex = receiver.length;
|
| + H.checkInt(endIndex);
|
| + if (startIndex < 0)
|
| + throw H.wrapException(P.RangeError$value(startIndex, null, null));
|
| + if (typeof endIndex !== "number")
|
| + return H.iae(endIndex);
|
| + if (startIndex > endIndex)
|
| + throw H.wrapException(P.RangeError$value(startIndex, null, null));
|
| + if (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);
|
| + },
|
| + get$isEmpty: 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
|
| + }
|
| +}], ["_isolate_helper", "dart:_isolate_helper",, H, {
|
| + "^": "",
|
| + _callInIsolate: function(isolate, $function) {
|
| + var result = isolate.eval$1($function);
|
| + if (!init.globalState.currentContext._isExecutingEvent)
|
| + 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._captured_args_0 = args;
|
| + args = args;
|
| + t1._captured_args_0 = args;
|
| + if (args == null) {
|
| + args = [];
|
| + t1._captured_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._nativeDetectEnvironment$0();
|
| + t2.topEventLoop = new H._EventLoop(P.ListQueue$(null, H._IsolateEvent), 0);
|
| + t2.isolates = P.LinkedHashMap_LinkedHashMap(null, null, null, P.$int, H._IsolateContext);
|
| + t2.managers = P.LinkedHashMap_LinkedHashMap(null, null, null, P.$int, null);
|
| + if (t2.isWorker === true) {
|
| + t2.mainManager = new H._MainManagerStub();
|
| + t2._nativeInitWorkerMessageHandler$0();
|
| + }
|
| + 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 (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(new 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(new 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$as(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)
|
| + t1.$index(msg, "port").send$1(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__makeLiteral(["command", "print", "msg", msg]);
|
| + 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__makeLiteral(["command", "log", "msg", msg]);
|
| + 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;
|
| + replyTo.send$1(["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;__isolate_helper$_box_0,_captured_entry_1",
|
| + call$0: function() {
|
| + this._captured_entry_1.call$1(this.__isolate_helper$_box_0._captured_args_0);
|
| + }
|
| + },
|
| + startRootIsolate_closure0: {
|
| + "^": "Closure:0;__isolate_helper$_box_0,_captured_entry_2",
|
| + call$0: function() {
|
| + this._captured_entry_2.call$2(this.__isolate_helper$_box_0._captured_args_0, null);
|
| + }
|
| + },
|
| + _Manager: {
|
| + "^": "Object;nextIsolateId,currentManagerId,nextManagerId,currentContext,rootContext,topEventLoop,fromCommandLine,isWorker,supportsWorkers,isolates,mainManager,managers,entry",
|
| + _nativeDetectEnvironment$0: function() {
|
| + 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;
|
| + },
|
| + _nativeInitWorkerMessageHandler$0: function() {
|
| + self.onmessage = function(f, a) {
|
| + return function(e) {
|
| + f(a, e);
|
| + };
|
| + }(H.IsolateNatives__processWorkerMessage, this.mainManager);
|
| + 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__makeLiteral(["command", "print", "msg", object]);
|
| + 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$2: function(responsePort, response) {
|
| + var t1, i, t2;
|
| + if (this.doneHandlers == null)
|
| + this.doneHandlers = [];
|
| + for (t1 = J.getInterceptor(responsePort), i = 0; t2 = this.doneHandlers, i < t2.length; i += 2)
|
| + if (t1.$eq(responsePort, t2[i])) {
|
| + t1 = this.doneHandlers;
|
| + t2 = i + 1;
|
| + if (t2 >= t1.length)
|
| + return H.ioore(t1, t2);
|
| + t1[t2] = response;
|
| + return;
|
| + }
|
| + t2.push(responsePort);
|
| + this.doneHandlers.push(response);
|
| + },
|
| + removeDoneListener$1: function(responsePort) {
|
| + var t1, i, t2;
|
| + if (this.doneHandlers == null)
|
| + return;
|
| + for (t1 = J.getInterceptor(responsePort), i = 0; t2 = this.doneHandlers, i < t2.length; i += 2)
|
| + if (t1.$eq(responsePort, t2[i])) {
|
| + t1 = this.doneHandlers;
|
| + t2 = i + 2;
|
| + t1.toString;
|
| + if (typeof t1 !== "object" || t1 === null || !!t1.fixed$length)
|
| + H.throwExpression(new P.UnsupportedError("removeRange"));
|
| + P.RangeError_checkValidRange(i, t2, t1.length, null, null, null);
|
| + t1.splice(i, t2 - i);
|
| + return;
|
| + }
|
| + },
|
| + setErrorsFatal$2: function(authentification, errorsAreFatal) {
|
| + if (!this.terminateCapability.$eq(0, authentification))
|
| + return;
|
| + this.errorsAreFatal = errorsAreFatal;
|
| + },
|
| + handlePing$3: function(responsePort, pingType, response) {
|
| + var t1 = J.getInterceptor(pingType);
|
| + if (!t1.$eq(pingType, 0))
|
| + t1 = t1.$eq(pingType, 1) && !this._isExecutingEvent;
|
| + else
|
| + t1 = true;
|
| + if (t1) {
|
| + responsePort.send$1(response);
|
| + return;
|
| + }
|
| + t1 = this._scheduledControlEvents;
|
| + if (t1 == null) {
|
| + t1 = P.ListQueue$(null, null);
|
| + this._scheduledControlEvents = t1;
|
| + }
|
| + t1._add$1(new H._IsolateContext_handlePing_respond(responsePort, response));
|
| + },
|
| + handleKill$2: function(authentification, priority) {
|
| + var t1;
|
| + if (!this.terminateCapability.$eq(0, authentification))
|
| + return;
|
| + t1 = J.getInterceptor(priority);
|
| + if (!t1.$eq(priority, 0))
|
| + t1 = t1.$eq(priority, 1) && !this._isExecutingEvent;
|
| + else
|
| + t1 = true;
|
| + if (t1) {
|
| + this.kill$0();
|
| + 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._cell = t1._collection$_first; t2.moveNext$0();)
|
| + t2._collection$_current.send$1(message);
|
| + },
|
| + eval$1: function(code) {
|
| + var old, result, oldIsExecutingEvent, e, s, exception, t1;
|
| + old = init.globalState.currentContext;
|
| + init.globalState.currentContext = this;
|
| + $ = this.isolateStatics;
|
| + result = null;
|
| + oldIsExecutingEvent = this._isExecutingEvent;
|
| + 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 = oldIsExecutingEvent;
|
| + 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, i, responsePort, t3;
|
| + t1 = this._scheduledControlEvents;
|
| + if (t1 != null)
|
| + t1.clear$0(0);
|
| + for (t1 = this.ports, t2 = t1.get$values(), t2 = H.setRuntimeTypeInfo(new H.MappedIterator(null, J.get$iterator$a(t2.__internal$_iterable), t2._f), [H.getTypeArgumentByIndex(t2, 0), H.getTypeArgumentByIndex(t2, 1)]); t2.moveNext$0();)
|
| + t2.__internal$_current._close$0();
|
| + if (t1.__js_helper$_length > 0) {
|
| + t1._last = null;
|
| + t1._first = null;
|
| + t1._rest = null;
|
| + t1._nums = null;
|
| + t1._strings = null;
|
| + t1.__js_helper$_length = 0;
|
| + t1._modifications = t1._modifications + 1 & 67108863;
|
| + }
|
| + this.weakPorts.clear$0(0);
|
| + init.globalState.isolates.remove$1(0, this.id);
|
| + this.errorPorts.clear$0(0);
|
| + if (this.doneHandlers != null) {
|
| + for (i = 0; t1 = this.doneHandlers, t2 = t1.length, i < t2; i += 2) {
|
| + responsePort = t1[i];
|
| + t3 = i + 1;
|
| + if (t3 >= t2)
|
| + return H.ioore(t1, t3);
|
| + responsePort.send$1(t1[t3]);
|
| + }
|
| + this.doneHandlers = null;
|
| + }
|
| + }, "call$0", "get$kill", 0, 0, 1]
|
| + },
|
| + _IsolateContext_handlePing_respond: {
|
| + "^": "Closure:1;_captured_responsePort_0,_captured_response_1",
|
| + call$0: function() {
|
| + this._captured_responsePort_0.send$1(this._captured_response_1);
|
| + }
|
| + },
|
| + _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__makeLiteral(["command", "close"]);
|
| + 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__makeLiteral(["command", "error", "msg", H.S(e) + "\n" + H.S(trace)]);
|
| + 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;_captured_this_0",
|
| + call$0: function() {
|
| + if (!this._captured_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;_captured_entryPoint_0,_captured_args_1,_captured_message_2,_captured_isSpawnUri_3,_captured_startPaused_4,_captured_replyTo_5",
|
| + call$0: function() {
|
| + H.IsolateNatives__startIsolate(this._captured_entryPoint_0, this._captured_args_1, this._captured_message_2, this._captured_isSpawnUri_3, this._captured_startPaused_4, this._captured_replyTo_5);
|
| + }
|
| + },
|
| + IsolateNatives__startIsolate_runStartFunction: {
|
| + "^": "Closure:1;_captured_topLevel_0,_captured_args_1,_captured_message_2,_captured_isSpawnUri_3,_captured_context_4",
|
| + call$0: function() {
|
| + var t1, t2, t3;
|
| + this._captured_context_4.initialized = true;
|
| + if (this._captured_isSpawnUri_3 !== true)
|
| + this._captured_topLevel_0.call$1(this._captured_message_2);
|
| + else {
|
| + t1 = this._captured_topLevel_0;
|
| + t2 = H.getDynamicRuntimeType();
|
| + t3 = H.buildFunctionType(t2, [t2, t2])._isTest$1(t1);
|
| + if (t3)
|
| + t1.call$2(this._captured_args_1, this._captured_message_2);
|
| + else {
|
| + t2 = H.buildFunctionType(t2, [t2])._isTest$1(t1);
|
| + if (t2)
|
| + t1.call$1(this._captured_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$as(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$2(t1.$index(msg, 1), t1.$index(msg, 2));
|
| + 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$3(t1.$index(msg, 1), t1.$index(msg, 2), t1.$index(msg, 3));
|
| + 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;_captured_this_0,_captured_msg_1",
|
| + call$0: function() {
|
| + var t1 = this._captured_this_0._receivePort;
|
| + if (!t1.get$_isClosed())
|
| + t1.__isolate_helper$_add$1(this._captured_msg_1);
|
| + }
|
| + },
|
| + _WorkerSendPort: {
|
| + "^": "_BaseSendPort;_workerId,_receivePortId,_isolateId",
|
| + send$1: function(message) {
|
| + var t1, workerMessage, manager;
|
| + t1 = P.LinkedHashMap__makeLiteral(["command", "message", "port", this, "msg", message]);
|
| + 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<",
|
| + _close$0: function() {
|
| + this._isClosed = true;
|
| + this._handler = null;
|
| + },
|
| + __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$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(new 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_internalCallback: {
|
| + "^": "Closure:1;_captured_this_0,_captured_callback_1",
|
| + call$0: function() {
|
| + this._captured_this_0._handle = null;
|
| + this._captured_callback_1.call$0();
|
| + }
|
| + },
|
| + TimerImpl_internalCallback0: {
|
| + "^": "Closure:1;_captured_this_2,_captured_callback_3",
|
| + call$0: function() {
|
| + this._captured_this_2._handle = null;
|
| + H.leaveJsAsync();
|
| + this._captured_callback_3.call$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.$isJSIndexable)
|
| + return this.serializeJSIndexable$1(x);
|
| + if (!!t1.$isInternalMap) {
|
| + serializeTearOff = this.get$serialize();
|
| + t1 = x.get$keys();
|
| + t1 = H.MappedIterable_MappedIterable(t1, serializeTearOff, H.getRuntimeTypeArgument(t1, "Iterable", 0), null);
|
| + t1 = P.List_List$from(t1, true, H.getRuntimeTypeArgument(t1, "Iterable", 0));
|
| + t2 = x.get$values();
|
| + t2 = H.MappedIterable_MappedIterable(t2, serializeTearOff, H.getRuntimeTypeArgument(t2, "Iterable", 0), null);
|
| + return ["map", t1, P.List_List$from(t2, true, H.getRuntimeTypeArgument(t2, "Iterable", 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(new 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$as(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__makeEmpty();
|
| + this.deserializedObjects.push(result);
|
| + keys = J.map$1$a(keys, this.get$deserialize()).toList$0(0);
|
| + for (t1 = J.getInterceptor$as(keys), t2 = J.getInterceptor$as(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$as(keys);
|
| + t2 = J.getInterceptor$as(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, {
|
| + "^": "",
|
| + getType: function(index) {
|
| + return init.types[index];
|
| + },
|
| + 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(H._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_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*([\w$]*)\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_getProperty: function(object, key) {
|
| + if (object == null || typeof object === "boolean" || typeof object === "number" || typeof object === "string")
|
| + throw H.wrapException(H._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(H._argumentError(object));
|
| + object[key] = value;
|
| + },
|
| + iae: function(argument) {
|
| + throw H.wrapException(H._argumentError(argument));
|
| + },
|
| + ioore: function(receiver, index) {
|
| + if (receiver == null)
|
| + J.get$length$as(receiver);
|
| + if (typeof index !== "number" || Math.floor(index) !== index)
|
| + H.iae(index);
|
| + throw H.wrapException(P.RangeError$value(index, null, null));
|
| + },
|
| + _argumentError: function(object) {
|
| + return new P.ArgumentError(true, object, null, null);
|
| + },
|
| + checkInt: function(value) {
|
| + if (typeof value !== "number" || Math.floor(value) !== value)
|
| + throw H.wrapException(H._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 (ex instanceof H.ExceptionAndStackTrace)
|
| + return t1.call$1(ex.dartException);
|
| + 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)
|
| + return t1.call$1(new H.NullError(message, match == null ? null : match.method));
|
| + }
|
| + }
|
| + return t1.call$1(new H.UnknownJsTypeError(typeof message === "string" ? message : ""));
|
| + }
|
| + 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) {
|
| + if (exception instanceof H.ExceptionAndStackTrace)
|
| + return exception.stackTrace;
|
| + 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 = 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];
|
| + 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.StaticClosure().constructor.prototype) : Object.create(new H.BoundClosure(null, null, null, null).constructor.prototype);
|
| + $prototype.$initialize = $prototype.constructor;
|
| + if (isStatic)
|
| + $constructor = function() {
|
| + this.$initialize();
|
| + };
|
| + 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(t) {
|
| + return function() {
|
| + return H.getType(t);
|
| + };
|
| + }(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;
|
| + t2 = !t1 || arity >= 27;
|
| + if (t2)
|
| + 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(new 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, lookedUpFunction, t2, t3, $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;
|
| + lookedUpFunction = receiver[stubName];
|
| + t2 = $function == null ? lookedUpFunction == null : $function === lookedUpFunction;
|
| + t3 = !t2 || arity >= 28;
|
| + if (t3)
|
| + 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);
|
| + },
|
| + 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;
|
| + },
|
| + asyncHelper: function(object, bodyFunctionOrErrorCode, completer) {
|
| + var future;
|
| + if (bodyFunctionOrErrorCode === 0) {
|
| + completer.complete$1(object);
|
| + return;
|
| + } else if (bodyFunctionOrErrorCode === 1) {
|
| + completer.completeError$2(H.unwrapException(object), H.getTraceFromException(object));
|
| + return;
|
| + }
|
| + if (!!J.getInterceptor(object).$isFuture)
|
| + future = object;
|
| + else {
|
| + future = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [null]);
|
| + future._asyncComplete$1(object);
|
| + }
|
| + future.then$2$onError(H._wrapJsFunctionForAsync(bodyFunctionOrErrorCode, 0), new H.asyncHelper_closure(bodyFunctionOrErrorCode));
|
| + return completer.get$future();
|
| + },
|
| + _wrapJsFunctionForAsync: function($function, errorCode) {
|
| + return new H._wrapJsFunctionForAsync_closure(errorCode, function(errorCode, result) {
|
| + while (true)
|
| + try {
|
| + $function(errorCode, result);
|
| + break;
|
| + } catch (error) {
|
| + result = error;
|
| + errorCode = 1;
|
| + }
|
| + });
|
| + },
|
| + 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, 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;
|
| + if (typeOfT !== typeOfS) {
|
| + if (!('$is' + H.runtimeTypeToString(typeOfT, null) in typeOfS.prototype))
|
| + return false;
|
| + substitution = typeOfS.prototype["$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);
|
| + },
|
| + 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: method not found: '" + 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: method not found: '" + H.S(t1) + "' (" + H.S(this._message) + ")";
|
| + return "NoSuchMethodError: method not found: '" + 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;
|
| + return new H.JsNoSuchMethodError(_message, t2, t1 ? null : match.receiver);
|
| + }}
|
| + },
|
| + UnknownJsTypeError: {
|
| + "^": "Error;_message",
|
| + toString$0: function(_) {
|
| + var t1 = this._message;
|
| + return C.JSString_methods.get$isEmpty(t1) ? "Error" : "Error: " + t1;
|
| + }
|
| + },
|
| + unwrapException_saveStackTrace: {
|
| + "^": "Closure:2;_captured_ex_0",
|
| + call$1: function(error) {
|
| + if (!!J.getInterceptor(error).$isError)
|
| + if (error.$thrownJsError == null)
|
| + error.$thrownJsError = this._captured_ex_0;
|
| + return error;
|
| + }
|
| + },
|
| + _StackTrace: {
|
| + "^": "Object;_exception,_trace",
|
| + toString$0: function(_) {
|
| + var t1, trace;
|
| + t1 = this._trace;
|
| + if (t1 != null)
|
| + return t1;
|
| + t1 = this._exception;
|
| + trace = t1 !== null && typeof t1 === "object" ? t1.stack : null;
|
| + t1 = trace == null ? "" : trace;
|
| + this._trace = t1;
|
| + return t1;
|
| + }
|
| + },
|
| + invokeClosure_closure: {
|
| + "^": "Closure:0;_captured_closure_0",
|
| + call$0: function() {
|
| + return this._captured_closure_0.call$0();
|
| + }
|
| + },
|
| + invokeClosure_closure0: {
|
| + "^": "Closure:0;_captured_closure_1,_captured_arg1_2",
|
| + call$0: function() {
|
| + return this._captured_closure_1.call$1(this._captured_arg1_2);
|
| + }
|
| + },
|
| + invokeClosure_closure1: {
|
| + "^": "Closure:0;_captured_closure_3,_captured_arg1_4,_captured_arg2_5",
|
| + call$0: function() {
|
| + return this._captured_closure_3.call$2(this._captured_arg1_4, this._captured_arg2_5);
|
| + }
|
| + },
|
| + invokeClosure_closure2: {
|
| + "^": "Closure:0;_captured_closure_6,_captured_arg1_7,_captured_arg2_8,_captured_arg3_9",
|
| + call$0: function() {
|
| + return this._captured_closure_6.call$3(this._captured_arg1_7, this._captured_arg2_8, this._captured_arg3_9);
|
| + }
|
| + },
|
| + invokeClosure_closure3: {
|
| + "^": "Closure:0;_captured_closure_10,_captured_arg1_11,_captured_arg2_12,_captured_arg3_13,_captured_arg4_14",
|
| + call$0: function() {
|
| + return this._captured_closure_10.call$4(this._captured_arg1_11, this._captured_arg2_12, this._captured_arg3_13, this._captured_arg4_14);
|
| + }
|
| + },
|
| + Closure: {
|
| + "^": "Object;",
|
| + toString$0: function(_) {
|
| + return "Closure '" + H.Primitives_objectTypeName(this) + "'";
|
| + },
|
| + get$$call: function() {
|
| + return this;
|
| + },
|
| + get$$call: function() {
|
| + return this;
|
| + }
|
| + },
|
| + TearOffClosure: {
|
| + "^": "Closure;"
|
| + },
|
| + StaticClosure: {
|
| + "^": "TearOffClosure;",
|
| + toString$0: function(_) {
|
| + var $name = this.$name;
|
| + if ($name == null)
|
| + return "Closure of unknown static method";
|
| + return "Closure '" + $name + "'";
|
| + }
|
| + },
|
| + BoundClosure: {
|
| + "^": "TearOffClosure;_self,_target,_receiver,_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;
|
| + },
|
| + toString$0: function(_) {
|
| + var receiver = this._receiver;
|
| + if (receiver == null)
|
| + receiver = this._self;
|
| + return "Closure '" + H.S(this._name) + "' of " + H.Primitives_objectToString(receiver);
|
| + },
|
| + 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;
|
| + }
|
| + }}
|
| + },
|
| + RuntimeError: {
|
| + "^": "Error;message",
|
| + toString$0: function(_) {
|
| + return "RuntimeError: " + this.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;
|
| + }
|
| + },
|
| + ExceptionAndStackTrace: {
|
| + "^": "Object;dartException,stackTrace<"
|
| + },
|
| + asyncHelper_closure: {
|
| + "^": "Closure:3;_captured_bodyFunctionOrErrorCode_0",
|
| + call$2: function(error, stackTrace) {
|
| + H._wrapJsFunctionForAsync(this._captured_bodyFunctionOrErrorCode_0, 1).call$1(new H.ExceptionAndStackTrace(error, stackTrace));
|
| + }
|
| + },
|
| + _wrapJsFunctionForAsync_closure: {
|
| + "^": "Closure:2;_captured_errorCode_0,_captured_protected_1",
|
| + call$1: function(result) {
|
| + this._captured_protected_1(this._captured_errorCode_0, result);
|
| + }
|
| + },
|
| + JsLinkedHashMap: {
|
| + "^": "Object;__js_helper$_length,_strings,_nums,_rest,_first,_last,_modifications",
|
| + get$length: function(_) {
|
| + return this.__js_helper$_length;
|
| + },
|
| + 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 nums;
|
| + if ((key & 0x3ffffff) === key) {
|
| + nums = this._nums;
|
| + if (nums == null)
|
| + return false;
|
| + return this._containsTableEntry$2(nums, key);
|
| + } else
|
| + return this.internalContainsKey$1(key);
|
| + },
|
| + internalContainsKey$1: function(key) {
|
| + var rest = this._rest;
|
| + if (rest == null)
|
| + return false;
|
| + return this.internalFindBucketIndex$2(this._getTableEntry$2(rest, this.internalComputeHashCode$1(key)), key) >= 0;
|
| + },
|
| + $index: function(_, key) {
|
| + var strings, cell, nums;
|
| + if (typeof key === "string") {
|
| + strings = this._strings;
|
| + if (strings == null)
|
| + return;
|
| + cell = this._getTableEntry$2(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 = this._getTableEntry$2(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 = this._getTableEntry$2(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") {
|
| + strings = this._strings;
|
| + if (strings == null) {
|
| + strings = this._newHashTable$0();
|
| + this._strings = strings;
|
| + }
|
| + this.__js_helper$_addHashTableEntry$3(strings, key, value);
|
| + } else if (typeof key === "number" && (key & 0x3ffffff) === key) {
|
| + nums = this._nums;
|
| + if (nums == null) {
|
| + nums = this._newHashTable$0();
|
| + this._nums = nums;
|
| + }
|
| + this.__js_helper$_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 = this._newHashTable$0();
|
| + this._rest = rest;
|
| + }
|
| + hash = this.internalComputeHashCode$1(key);
|
| + bucket = this._getTableEntry$2(rest, hash);
|
| + if (bucket == null)
|
| + this._setTableEntry$3(rest, hash, [this.__js_helper$_newLinkedCell$2(key, value)]);
|
| + else {
|
| + index = this.internalFindBucketIndex$2(bucket, key);
|
| + if (index >= 0)
|
| + bucket[index].set$hashMapCellValue(value);
|
| + else
|
| + bucket.push(this.__js_helper$_newLinkedCell$2(key, value));
|
| + }
|
| + },
|
| + remove$1: function(_, key) {
|
| + if (typeof key === "string")
|
| + 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 = this._getTableEntry$2(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();
|
| + },
|
| + 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(new P.ConcurrentModificationError(this));
|
| + cell = cell.__js_helper$_next;
|
| + }
|
| + },
|
| + __js_helper$_addHashTableEntry$3: function(table, key, value) {
|
| + var cell = this._getTableEntry$2(table, key);
|
| + if (cell == null)
|
| + this._setTableEntry$3(table, key, this.__js_helper$_newLinkedCell$2(key, value));
|
| + else
|
| + cell.set$hashMapCellValue(value);
|
| + },
|
| + _removeHashTableEntry$2: function(table, key) {
|
| + var cell;
|
| + if (table == null)
|
| + return;
|
| + cell = this._getTableEntry$2(table, key);
|
| + if (cell == null)
|
| + return;
|
| + this._unlinkCell$1(cell);
|
| + this._deleteTableEntry$2(table, key);
|
| + return cell.get$hashMapCellValue();
|
| + },
|
| + __js_helper$_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.__js_helper$_previous = last;
|
| + last.__js_helper$_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$__js_helper$_previous();
|
| + next = cell.__js_helper$_next;
|
| + if (previous == null)
|
| + this._first = next;
|
| + else
|
| + previous.__js_helper$_next = next;
|
| + if (next == null)
|
| + this._last = previous;
|
| + else
|
| + next.__js_helper$_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);
|
| + },
|
| + _getTableEntry$2: function(table, key) {
|
| + return table[key];
|
| + },
|
| + _setTableEntry$3: function(table, key, value) {
|
| + table[key] = value;
|
| + },
|
| + _deleteTableEntry$2: function(table, key) {
|
| + delete table[key];
|
| + },
|
| + _containsTableEntry$2: function(table, key) {
|
| + return this._getTableEntry$2(table, key) != null;
|
| + },
|
| + _newHashTable$0: function() {
|
| + var table = Object.create(null);
|
| + this._setTableEntry$3(table, "<non-identifier-key>", table);
|
| + this._deleteTableEntry$2(table, "<non-identifier-key>");
|
| + return table;
|
| + },
|
| + $isInternalMap: 1
|
| + },
|
| + JsLinkedHashMap_values_closure: {
|
| + "^": "Closure:2;__js_helper$_captured_this_0",
|
| + call$1: function(each) {
|
| + return this.__js_helper$_captured_this_0.$index(0, each);
|
| + }
|
| + },
|
| + LinkedHashMapCell: {
|
| + "^": "Object;hashMapCellKey<,hashMapCellValue@,__js_helper$_next,__js_helper$_previous<"
|
| + },
|
| + LinkedHashMapKeyIterable: {
|
| + "^": "Iterable;_map",
|
| + get$length: function(_) {
|
| + return this._map.__js_helper$_length;
|
| + },
|
| + get$iterator: function(_) {
|
| + var t1, t2;
|
| + t1 = this._map;
|
| + t2 = new H.LinkedHashMapKeyIterator(t1, t1._modifications, null, null);
|
| + t2.__js_helper$_cell = t1._first;
|
| + return t2;
|
| + },
|
| + forEach$1: function(_, f) {
|
| + var t1, cell, modifications;
|
| + t1 = this._map;
|
| + cell = t1._first;
|
| + modifications = t1._modifications;
|
| + for (; cell != null;) {
|
| + f.call$1(cell.hashMapCellKey);
|
| + if (modifications !== t1._modifications)
|
| + throw H.wrapException(new P.ConcurrentModificationError(t1));
|
| + cell = cell.__js_helper$_next;
|
| + }
|
| + },
|
| + $isEfficientLengthIterable: 1
|
| + },
|
| + LinkedHashMapKeyIterator: {
|
| + "^": "Object;_map,_modifications,__js_helper$_cell,__js_helper$_current",
|
| + get$current: function() {
|
| + return this.__js_helper$_current;
|
| + },
|
| + moveNext$0: function() {
|
| + var t1 = this._map;
|
| + if (this._modifications !== t1._modifications)
|
| + throw H.wrapException(new P.ConcurrentModificationError(t1));
|
| + else {
|
| + t1 = this.__js_helper$_cell;
|
| + if (t1 == null) {
|
| + this.__js_helper$_current = null;
|
| + return false;
|
| + } else {
|
| + this.__js_helper$_current = t1.hashMapCellKey;
|
| + this.__js_helper$_cell = t1.__js_helper$_next;
|
| + return true;
|
| + }
|
| + }
|
| + }
|
| + }
|
| +}], ["dart._internal", "dart:_internal",, H, {
|
| + "^": "",
|
| + IterableElementError_noElement: function() {
|
| + return new P.StateError("No element");
|
| + },
|
| + Symbol_getName: function(symbol) {
|
| + return symbol.get$__internal$_name();
|
| + },
|
| + ListIterable: {
|
| + "^": "Iterable;",
|
| + 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(new P.ConcurrentModificationError(this));
|
| + }
|
| + },
|
| + map$1: function(_, f) {
|
| + return H.setRuntimeTypeInfo(new H.MappedListIterable(this, f), [null, null]);
|
| + },
|
| + 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);
|
| + },
|
| + $isEfficientLengthIterable: 1
|
| + },
|
| + ListIterator: {
|
| + "^": "Object;__internal$_iterable,__internal$_length,__internal$_index,__internal$_current",
|
| + get$current: function() {
|
| + return this.__internal$_current;
|
| + },
|
| + moveNext$0: function() {
|
| + var t1, $length, t2;
|
| + t1 = this.__internal$_iterable;
|
| + $length = t1.get$length(t1);
|
| + if (this.__internal$_length !== $length)
|
| + throw H.wrapException(new P.ConcurrentModificationError(t1));
|
| + t2 = this.__internal$_index;
|
| + if (t2 >= $length) {
|
| + this.__internal$_current = null;
|
| + return false;
|
| + }
|
| + this.__internal$_current = t1.elementAt$1(0, t2);
|
| + ++this.__internal$_index;
|
| + return true;
|
| + }
|
| + },
|
| + MappedIterable: {
|
| + "^": "Iterable;__internal$_iterable,_f",
|
| + get$iterator: function(_) {
|
| + var t1 = new H.MappedIterator(null, J.get$iterator$a(this.__internal$_iterable), this._f);
|
| + t1.$builtinTypeInfo = this.$builtinTypeInfo;
|
| + return t1;
|
| + },
|
| + get$length: function(_) {
|
| + return J.get$length$as(this.__internal$_iterable);
|
| + },
|
| + $asIterable: function($S, $T) {
|
| + return [$T];
|
| + },
|
| + static: {MappedIterable_MappedIterable: function(iterable, $function, $S, $T) {
|
| + if (!!J.getInterceptor(iterable).$isEfficientLengthIterable)
|
| + return H.setRuntimeTypeInfo(new H.EfficientLengthMappedIterable(iterable, $function), [$S, $T]);
|
| + return H.setRuntimeTypeInfo(new H.MappedIterable(iterable, $function), [$S, $T]);
|
| + }}
|
| + },
|
| + EfficientLengthMappedIterable: {
|
| + "^": "MappedIterable;__internal$_iterable,_f",
|
| + $isEfficientLengthIterable: 1,
|
| + $asEfficientLengthIterable: function($S, $T) {
|
| + return [$T];
|
| + }
|
| + },
|
| + MappedIterator: {
|
| + "^": "Iterator;__internal$_current,_iterator,_f",
|
| + moveNext$0: function() {
|
| + var t1 = this._iterator;
|
| + if (t1.moveNext$0()) {
|
| + this.__internal$_current = this._f$1(t1.get$current());
|
| + return true;
|
| + }
|
| + this.__internal$_current = null;
|
| + return false;
|
| + },
|
| + get$current: function() {
|
| + return this.__internal$_current;
|
| + },
|
| + _f$1: function(arg0) {
|
| + return this._f.call$1(arg0);
|
| + }
|
| + },
|
| + MappedListIterable: {
|
| + "^": "ListIterable;_source,_f",
|
| + get$length: function(_) {
|
| + return J.get$length$as(this._source);
|
| + },
|
| + elementAt$1: function(_, index) {
|
| + return this._f$1(J.elementAt$1$a(this._source, index));
|
| + },
|
| + _f$1: function(arg0) {
|
| + return this._f.call$1(arg0);
|
| + },
|
| + $asListIterable: function($S, $T) {
|
| + return [$T];
|
| + },
|
| + $asIterable: function($S, $T) {
|
| + return [$T];
|
| + },
|
| + $asEfficientLengthIterable: function($S, $T) {
|
| + return [$T];
|
| + }
|
| + }
|
| +}], ["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._captured_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, 11],
|
| + _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, 11],
|
| + _AsyncRun__scheduleImmediateWithTimer: [function(callback) {
|
| + P.Timer__createTimer(C.Duration_0, callback);
|
| + }, "call$1", "_AsyncRun__scheduleImmediateWithTimer$closure", 2, 0, 11],
|
| + _registerErrorHandler: function(errorHandler, zone) {
|
| + var t1 = H.getDynamicRuntimeType();
|
| + t1 = H.buildFunctionType(t1, [t1, t1])._isTest$1(errorHandler);
|
| + if (t1) {
|
| + zone.toString;
|
| + return errorHandler;
|
| + } else {
|
| + zone.toString;
|
| + return errorHandler;
|
| + }
|
| + },
|
| + Completer_Completer: function($T) {
|
| + return H.setRuntimeTypeInfo(new P._AsyncCompleter(H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [$T])), [$T]);
|
| + },
|
| + _microtaskLoop: function() {
|
| + var t1, t2;
|
| + for (; t1 = $._nextCallback, t1 != null;) {
|
| + $._lastPriorityCallback = null;
|
| + t2 = t1.next;
|
| + $._nextCallback = t2;
|
| + if (t2 == null)
|
| + $._lastCallback = null;
|
| + $.Zone__current = t1.zone;
|
| + t1.callback$0();
|
| + }
|
| + },
|
| + _microtaskLoopEntry: [function() {
|
| + $._isInCallbackLoop = true;
|
| + try {
|
| + P._microtaskLoop();
|
| + } finally {
|
| + $.Zone__current = C.C__RootZone;
|
| + $._lastPriorityCallback = null;
|
| + $._isInCallbackLoop = false;
|
| + if ($._nextCallback != null)
|
| + $.get$_AsyncRun_scheduleImmediateClosure().call$1(P._microtaskLoopEntry$closure());
|
| + }
|
| + }, "call$0", "_microtaskLoopEntry$closure", 0, 0, 1],
|
| + _scheduleAsyncCallback: function(newEntry) {
|
| + if ($._nextCallback == null) {
|
| + $._lastCallback = newEntry;
|
| + $._nextCallback = newEntry;
|
| + if (!$._isInCallbackLoop)
|
| + $.get$_AsyncRun_scheduleImmediateClosure().call$1(P._microtaskLoopEntry$closure());
|
| + } else {
|
| + $._lastCallback.next = newEntry;
|
| + $._lastCallback = newEntry;
|
| + }
|
| + },
|
| + scheduleMicrotask: function(callback) {
|
| + var currentZone, t1;
|
| + currentZone = $.Zone__current;
|
| + if (C.C__RootZone === currentZone) {
|
| + P._rootScheduleMicrotask(null, null, C.C__RootZone, callback);
|
| + return;
|
| + }
|
| + currentZone.toString;
|
| + if (C.C__RootZone.get$errorZone() === currentZone) {
|
| + P._rootScheduleMicrotask(null, null, currentZone, callback);
|
| + return;
|
| + }
|
| + t1 = $.Zone__current;
|
| + P._rootScheduleMicrotask(null, null, t1, t1.bindCallback$2$runGuarded(callback, true));
|
| + },
|
| + StreamIterator_StreamIterator: function(stream, $T) {
|
| + var t1, t2, t3;
|
| + t1 = H.setRuntimeTypeInfo(new P._StreamIteratorImpl(null, null, null, 0), [$T]);
|
| + t2 = t1.get$_onData();
|
| + t3 = t1.get$_onError();
|
| + t1._subscription = stream.listen$4$cancelOnError$onDone$onError(t2, true, t1.get$_onDone(), t3);
|
| + return t1;
|
| + },
|
| + Timer_Timer: function(duration, callback) {
|
| + var t1 = $.Zone__current;
|
| + if (t1 === C.C__RootZone) {
|
| + t1.toString;
|
| + return P.Timer__createTimer(duration, callback);
|
| + }
|
| + return P.Timer__createTimer(duration, t1.bindCallback$2$runGuarded(callback, true));
|
| + },
|
| + Timer__createTimer: function(duration, callback) {
|
| + var milliseconds = C.JSInt_methods._tdivFast$1(duration._duration, 1000);
|
| + return H.TimerImpl$(milliseconds < 0 ? 0 : milliseconds, callback);
|
| + },
|
| + Zone__enter: function(zone) {
|
| + var previous = $.Zone__current;
|
| + $.Zone__current = zone;
|
| + return previous;
|
| + },
|
| + _rootHandleUncaughtError: function($self, $parent, zone, error, stackTrace) {
|
| + var entry, t1, t2;
|
| + entry = new P._AsyncCallbackEntry(new P._rootHandleUncaughtError_closure(error, stackTrace), C.C__RootZone, null);
|
| + t1 = $._nextCallback;
|
| + if (t1 == null) {
|
| + P._scheduleAsyncCallback(entry);
|
| + $._lastPriorityCallback = $._lastCallback;
|
| + } else {
|
| + t2 = $._lastPriorityCallback;
|
| + if (t2 == null) {
|
| + entry.next = t1;
|
| + $._lastPriorityCallback = entry;
|
| + $._nextCallback = entry;
|
| + } else {
|
| + entry.next = t2.next;
|
| + t2.next = entry;
|
| + $._lastPriorityCallback = entry;
|
| + if (entry.next == null)
|
| + $._lastCallback = entry;
|
| + }
|
| + }
|
| + },
|
| + _rootRun: function($self, $parent, zone, f) {
|
| + var old, t1;
|
| + if ($.Zone__current === zone)
|
| + return f.call$0();
|
| + old = P.Zone__enter(zone);
|
| + try {
|
| + t1 = f.call$0();
|
| + return t1;
|
| + } finally {
|
| + $.Zone__current = old;
|
| + }
|
| + },
|
| + _rootRunUnary: function($self, $parent, zone, f, arg) {
|
| + var old, t1;
|
| + if ($.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;
|
| + }
|
| + },
|
| + _rootRunBinary: function($self, $parent, zone, f, arg1, arg2) {
|
| + var old, t1;
|
| + if ($.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;
|
| + }
|
| + },
|
| + _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));
|
| + zone = C.C__RootZone;
|
| + }
|
| + P._scheduleAsyncCallback(new P._AsyncCallbackEntry(f, zone, null));
|
| + },
|
| + _AsyncRun__initializeScheduleImmediate_internalCallback: {
|
| + "^": "Closure:2;_box_0",
|
| + call$1: function(_) {
|
| + var t1, f;
|
| + H.leaveJsAsync();
|
| + t1 = this._box_0;
|
| + f = t1._captured_storedCallback_0;
|
| + t1._captured_storedCallback_0 = null;
|
| + f.call$0();
|
| + }
|
| + },
|
| + _AsyncRun__initializeScheduleImmediate_closure: {
|
| + "^": "Closure:4;_box_0,_captured_div_1,_captured_span_2",
|
| + call$1: function(callback) {
|
| + var t1, t2;
|
| + ++init.globalState.topEventLoop._activeJsAsyncCount;
|
| + this._box_0._captured_storedCallback_0 = callback;
|
| + t1 = this._captured_div_1;
|
| + t2 = this._captured_span_2;
|
| + t1.firstChild ? t1.removeChild(t2) : t1.appendChild(t2);
|
| + }
|
| + },
|
| + _AsyncRun__scheduleImmediateJsOverride_internalCallback: {
|
| + "^": "Closure:0;_captured_callback_0",
|
| + call$0: function() {
|
| + H.leaveJsAsync();
|
| + this._captured_callback_0.call$0();
|
| + }
|
| + },
|
| + _AsyncRun__scheduleImmediateWithSetImmediate_internalCallback: {
|
| + "^": "Closure:0;_captured_callback_0",
|
| + call$0: function() {
|
| + H.leaveJsAsync();
|
| + this._captured_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;"
|
| + },
|
| + _Completer: {
|
| + "^": "Object;future<",
|
| + completeError$2: function(error, stackTrace) {
|
| + error = error != null ? error : new P.NullThrownError();
|
| + if (this.future._state !== 0)
|
| + throw H.wrapException(new P.StateError("Future already completed"));
|
| + $.Zone__current.toString;
|
| + this._completeError$2(error, stackTrace);
|
| + }
|
| + },
|
| + _AsyncCompleter: {
|
| + "^": "_Completer;future",
|
| + complete$1: function(value) {
|
| + var t1 = this.future;
|
| + if (t1._state !== 0)
|
| + throw H.wrapException(new P.StateError("Future already completed"));
|
| + t1._asyncComplete$1(value);
|
| + },
|
| + _completeError$2: function(error, stackTrace) {
|
| + this.future._asyncCompleteError$2(error, stackTrace);
|
| + }
|
| + },
|
| + _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;
|
| + }
|
| + },
|
| + _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) {
|
| + t1.toString;
|
| + if (onError != null)
|
| + onError = P._registerErrorHandler(onError, t1);
|
| + }
|
| + this._addListener$1(new P._FutureListener(null, result, onError == null ? 1 : 3, f, onError));
|
| + return result;
|
| + },
|
| + _markPendingCompletion$0: function() {
|
| + if (this._state !== 0)
|
| + throw H.wrapException(new P.StateError("Future already completed"));
|
| + this._state = 1;
|
| + },
|
| + get$_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) {
|
| + var t1;
|
| + if (this._state >= 4) {
|
| + t1 = this._zone;
|
| + t1.toString;
|
| + P._rootScheduleMicrotask(null, null, t1, 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);
|
| + },
|
| + _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();
|
| + t1 = this._zone;
|
| + t1.toString;
|
| + P._rootScheduleMicrotask(null, null, t1, new P._Future__asyncComplete_closure(this, value));
|
| + } else
|
| + P._Future__chainCoreFuture(value, this);
|
| + } else
|
| + P._Future__chainForeignFuture(value, this);
|
| + return;
|
| + }
|
| + }
|
| + this._markPendingCompletion$0();
|
| + t1 = this._zone;
|
| + t1.toString;
|
| + P._rootScheduleMicrotask(null, null, t1, new P._Future__asyncComplete_closure0(this, value));
|
| + },
|
| + _asyncCompleteError$2: function(error, stackTrace) {
|
| + var t1;
|
| + this._markPendingCompletion$0();
|
| + t1 = this._zone;
|
| + t1.toString;
|
| + P._rootScheduleMicrotask(null, null, t1, new P._Future__asyncCompleteError_closure(this, error, stackTrace));
|
| + },
|
| + $isFuture: 1,
|
| + static: {_Future__chainForeignFuture: function(source, target) {
|
| + var e, s, exception, t1;
|
| + target.set$_state(2);
|
| + try {
|
| + source.then$2$onError(new P._Future__chainForeignFuture_closure(target), new P._Future__chainForeignFuture_closure0(target));
|
| + } catch (exception) {
|
| + t1 = H.unwrapException(exception);
|
| + e = t1;
|
| + s = H.getTraceFromException(exception);
|
| + P.scheduleMicrotask(new P._Future__chainForeignFuture_closure1(target, e, s));
|
| + }
|
| + }, _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, t4, listeners0, sourceValue, zone, oldZone, chainSource, result;
|
| + t1 = {};
|
| + t1._captured_source_4 = source;
|
| + for (t2 = source; true;) {
|
| + t3 = {};
|
| + hasError = t2.get$_hasError();
|
| + if (listeners == null) {
|
| + if (hasError) {
|
| + asyncError = t1._captured_source_4.get$_error();
|
| + t2 = t1._captured_source_4.get$_zone();
|
| + t3 = asyncError.get$error();
|
| + t4 = asyncError.get$stackTrace();
|
| + t2.toString;
|
| + P._rootHandleUncaughtError(null, null, t2, t3, t4);
|
| + }
|
| + return;
|
| + }
|
| + for (; listeners.get$_nextListener() != null; listeners = listeners0) {
|
| + listeners0 = listeners._nextListener;
|
| + listeners._nextListener = null;
|
| + P._Future__propagateToListeners(t1._captured_source_4, listeners);
|
| + }
|
| + t3._captured_listenerHasValue_1 = true;
|
| + sourceValue = hasError ? null : t1._captured_source_4.get$_value();
|
| + t3._captured_listenerValueOrError_2 = sourceValue;
|
| + t3._captured_isPropagationAborted_3 = false;
|
| + t2 = !hasError;
|
| + if (!t2 || listeners.get$handlesValue() || listeners.state === 8) {
|
| + zone = listeners.get$_zone();
|
| + if (hasError) {
|
| + t4 = t1._captured_source_4.get$_zone();
|
| + t4.toString;
|
| + if (t4 == null ? zone != null : t4 !== zone) {
|
| + t4 = t4.get$errorZone();
|
| + zone.toString;
|
| + t4 = t4 === zone;
|
| + } else
|
| + t4 = true;
|
| + t4 = !t4;
|
| + } else
|
| + t4 = false;
|
| + if (t4) {
|
| + asyncError = t1._captured_source_4.get$_error();
|
| + t2 = t1._captured_source_4.get$_zone();
|
| + t3 = asyncError.get$error();
|
| + t4 = asyncError.get$stackTrace();
|
| + t2.toString;
|
| + P._rootHandleUncaughtError(null, null, t2, t3, t4);
|
| + return;
|
| + }
|
| + oldZone = $.Zone__current;
|
| + if (oldZone == null ? zone != null : oldZone !== zone)
|
| + $.Zone__current = zone;
|
| + else
|
| + oldZone = null;
|
| + if (t2) {
|
| + if (listeners.get$handlesValue())
|
| + t3._captured_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._captured_isPropagationAborted_3)
|
| + return;
|
| + if (t3._captured_listenerHasValue_1 === true) {
|
| + t2 = t3._captured_listenerValueOrError_2;
|
| + t2 = (sourceValue == null ? t2 != null : sourceValue !== t2) && !!J.getInterceptor(t2).$isFuture;
|
| + } else
|
| + t2 = false;
|
| + if (t2) {
|
| + chainSource = t3._captured_listenerValueOrError_2;
|
| + result = listeners.result;
|
| + if (chainSource instanceof P._Future)
|
| + if (chainSource._state >= 4) {
|
| + result._state = 2;
|
| + t1._captured_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._captured_listenerHasValue_1;
|
| + t3 = t3._captured_listenerValueOrError_2;
|
| + if (t2 === true) {
|
| + result._state = 4;
|
| + result._resultOrListeners = t3;
|
| + } else {
|
| + result._state = 8;
|
| + result._resultOrListeners = t3;
|
| + }
|
| + t1._captured_source_4 = result;
|
| + t2 = result;
|
| + }
|
| + }}
|
| + },
|
| + _Future__addListener_closure: {
|
| + "^": "Closure:0;_async$_captured_this_0,_captured_listener_1",
|
| + call$0: function() {
|
| + P._Future__propagateToListeners(this._async$_captured_this_0, this._captured_listener_1);
|
| + }
|
| + },
|
| + _Future__chainForeignFuture_closure: {
|
| + "^": "Closure:2;_captured_target_0",
|
| + call$1: function(value) {
|
| + this._captured_target_0._completeWithValue$1(value);
|
| + }
|
| + },
|
| + _Future__chainForeignFuture_closure0: {
|
| + "^": "Closure:5;_captured_target_1",
|
| + call$2: function(error, stackTrace) {
|
| + this._captured_target_1._completeError$2(error, stackTrace);
|
| + },
|
| + call$1: function(error) {
|
| + return this.call$2(error, null);
|
| + }
|
| + },
|
| + _Future__chainForeignFuture_closure1: {
|
| + "^": "Closure:0;_captured_target_2,_captured_e_3,_captured_s_4",
|
| + call$0: function() {
|
| + this._captured_target_2._completeError$2(this._captured_e_3, this._captured_s_4);
|
| + }
|
| + },
|
| + _Future__asyncComplete_closure: {
|
| + "^": "Closure:0;_async$_captured_this_0,_captured_coreFuture_1",
|
| + call$0: function() {
|
| + P._Future__chainCoreFuture(this._captured_coreFuture_1, this._async$_captured_this_0);
|
| + }
|
| + },
|
| + _Future__asyncComplete_closure0: {
|
| + "^": "Closure:0;_async$_captured_this_2,_captured_value_3",
|
| + call$0: function() {
|
| + this._async$_captured_this_2._completeWithValue$1(this._captured_value_3);
|
| + }
|
| + },
|
| + _Future__asyncCompleteError_closure: {
|
| + "^": "Closure:0;_async$_captured_this_0,_captured_error_1,_captured_stackTrace_2",
|
| + call$0: function() {
|
| + this._async$_captured_this_0._completeError$2(this._captured_error_1, this._captured_stackTrace_2);
|
| + }
|
| + },
|
| + _Future__propagateToListeners_handleValueCallback: {
|
| + "^": "Closure:6;_box_1,_captured_listener_3,_captured_sourceValue_4,_captured_zone_5",
|
| + call$0: function() {
|
| + var e, s, exception, t1;
|
| + try {
|
| + this._box_1._captured_listenerValueOrError_2 = this._captured_zone_5.runUnary$2(this._captured_listener_3.get$_onValue(), this._captured_sourceValue_4);
|
| + return true;
|
| + } catch (exception) {
|
| + t1 = H.unwrapException(exception);
|
| + e = t1;
|
| + s = H.getTraceFromException(exception);
|
| + this._box_1._captured_listenerValueOrError_2 = new P.AsyncError(e, s);
|
| + return false;
|
| + }
|
| + }
|
| + },
|
| + _Future__propagateToListeners_handleError: {
|
| + "^": "Closure:1;_box_2,_box_1,_captured_listener_6,_captured_zone_7",
|
| + call$0: function() {
|
| + var asyncError, matchesTest, test, e, s, errorCallback, e0, s0, t1, exception, t2, listenerValueOrError, t3, t4;
|
| + asyncError = this._box_2._captured_source_4.get$_error();
|
| + matchesTest = true;
|
| + t1 = this._captured_listener_6;
|
| + if (t1.get$hasErrorTest()) {
|
| + test = t1.callback;
|
| + try {
|
| + matchesTest = this._captured_zone_7.runUnary$2(test, asyncError.get$error());
|
| + } catch (exception) {
|
| + t1 = H.unwrapException(exception);
|
| + e = t1;
|
| + s = H.getTraceFromException(exception);
|
| + t1 = asyncError.get$error();
|
| + t2 = e;
|
| + listenerValueOrError = (t1 == null ? t2 == null : t1 === t2) ? asyncError : new P.AsyncError(e, s);
|
| + t1 = this._box_1;
|
| + t1._captured_listenerValueOrError_2 = listenerValueOrError;
|
| + t1._captured_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._captured_zone_7;
|
| + t4 = this._box_1;
|
| + if (t2)
|
| + t4._captured_listenerValueOrError_2 = t3.runBinary$3(errorCallback, asyncError.get$error(), asyncError.get$stackTrace());
|
| + else
|
| + t4._captured_listenerValueOrError_2 = t3.runUnary$2(errorCallback, asyncError.get$error());
|
| + } catch (exception) {
|
| + t1 = H.unwrapException(exception);
|
| + e0 = t1;
|
| + s0 = H.getTraceFromException(exception);
|
| + t1 = asyncError.get$error();
|
| + t2 = e0;
|
| + listenerValueOrError = (t1 == null ? t2 == null : t1 === t2) ? asyncError : new P.AsyncError(e0, s0);
|
| + t1 = this._box_1;
|
| + t1._captured_listenerValueOrError_2 = listenerValueOrError;
|
| + t1._captured_listenerHasValue_1 = false;
|
| + return;
|
| + }
|
| + this._box_1._captured_listenerHasValue_1 = true;
|
| + } else {
|
| + t1 = this._box_1;
|
| + t1._captured_listenerValueOrError_2 = asyncError;
|
| + t1._captured_listenerHasValue_1 = false;
|
| + }
|
| + }
|
| + },
|
| + _Future__propagateToListeners_handleWhenCompleteCallback: {
|
| + "^": "Closure:1;_box_2,_box_1,_captured_hasError_8,_captured_listener_9,_captured_zone_10",
|
| + call$0: function() {
|
| + var t1, e, s, completeResult, t2, exception, result;
|
| + t1 = {};
|
| + t1._captured_completeResult_0 = null;
|
| + try {
|
| + completeResult = this._captured_zone_10.run$1(this._captured_listener_9.get$_whenCompleteAction());
|
| + t1._captured_completeResult_0 = completeResult;
|
| + t2 = completeResult;
|
| + } catch (exception) {
|
| + t1 = H.unwrapException(exception);
|
| + e = t1;
|
| + s = H.getTraceFromException(exception);
|
| + if (this._captured_hasError_8) {
|
| + t1 = this._box_2._captured_source_4.get$_error().get$error();
|
| + t2 = e;
|
| + t2 = t1 == null ? t2 == null : t1 === t2;
|
| + t1 = t2;
|
| + } else
|
| + t1 = false;
|
| + t2 = this._box_1;
|
| + if (t1)
|
| + t2._captured_listenerValueOrError_2 = this._box_2._captured_source_4.get$_error();
|
| + else
|
| + t2._captured_listenerValueOrError_2 = new P.AsyncError(e, s);
|
| + t2._captured_listenerHasValue_1 = false;
|
| + return;
|
| + }
|
| + if (!!J.getInterceptor(t2).$isFuture) {
|
| + result = this._captured_listener_9.get$result();
|
| + result.set$_isChained(true);
|
| + this._box_1._captured_isPropagationAborted_3 = true;
|
| + t2.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,_captured_result_11",
|
| + call$1: function(ignored) {
|
| + P._Future__propagateToListeners(this._box_2._captured_source_4, new P._FutureListener(null, this._captured_result_11, 0, null, null));
|
| + }
|
| + },
|
| + _Future__propagateToListeners_handleWhenCompleteCallback_closure0: {
|
| + "^": "Closure:5;_box_0,_captured_result_12",
|
| + call$2: function(error, stackTrace) {
|
| + var t1, completeResult;
|
| + t1 = this._box_0;
|
| + if (!(t1._captured_completeResult_0 instanceof P._Future)) {
|
| + completeResult = H.setRuntimeTypeInfo(new P._Future(0, $.Zone__current, null), [null]);
|
| + t1._captured_completeResult_0 = completeResult;
|
| + completeResult._setError$2(error, stackTrace);
|
| + }
|
| + P._Future__propagateToListeners(t1._captured_completeResult_0, new P._FutureListener(null, this._captured_result_12, 0, null, null));
|
| + },
|
| + call$1: function(error) {
|
| + return this.call$2(error, null);
|
| + }
|
| + },
|
| + _AsyncCallbackEntry: {
|
| + "^": "Object;callback,zone,next",
|
| + callback$0: function() {
|
| + return this.callback.call$0();
|
| + }
|
| + },
|
| + StreamSubscription: {
|
| + "^": "Object;"
|
| + },
|
| + _EventSink: {
|
| + "^": "Object;"
|
| + },
|
| + _DelayedEvent: {
|
| + "^": "Object;"
|
| + },
|
| + _StreamIteratorImpl: {
|
| + "^": "Object;_subscription,_current,_futureOrPrefetch,_state?",
|
| + _clear$0: function() {
|
| + this._subscription = null;
|
| + this._futureOrPrefetch = null;
|
| + this._current = null;
|
| + this._state = 1;
|
| + },
|
| + _onData$1: [function(data) {
|
| + var hasNext;
|
| + if (this._state === 2) {
|
| + this._current = data;
|
| + hasNext = this._futureOrPrefetch;
|
| + this._futureOrPrefetch = null;
|
| + this._state = 0;
|
| + hasNext._complete$1(true);
|
| + return;
|
| + }
|
| + this._subscription.pause$0();
|
| + this._futureOrPrefetch = data;
|
| + this._state = 3;
|
| + }, "call$1", "get$_onData", 2, 0, function() {
|
| + return H.computeSignature(function(T) {
|
| + return {func: 1, void: true, args: [T]};
|
| + }, this.$receiver, "_StreamIteratorImpl");
|
| + }],
|
| + _onError$2: [function(error, stackTrace) {
|
| + var hasNext;
|
| + if (this._state === 2) {
|
| + hasNext = this._futureOrPrefetch;
|
| + this._clear$0();
|
| + hasNext._completeError$2(error, stackTrace);
|
| + return;
|
| + }
|
| + this._subscription.pause$0();
|
| + this._futureOrPrefetch = new P.AsyncError(error, stackTrace);
|
| + this._state = 4;
|
| + }, function(error) {
|
| + return this._onError$2(error, null);
|
| + }, "_onError$1", "call$2", "call$1", "get$_onError", 2, 2, 7, 0],
|
| + _onDone$0: [function() {
|
| + if (this._state === 2) {
|
| + var hasNext = this._futureOrPrefetch;
|
| + this._clear$0();
|
| + hasNext._complete$1(false);
|
| + return;
|
| + }
|
| + this._subscription.pause$0();
|
| + this._futureOrPrefetch = null;
|
| + this._state = 5;
|
| + }, "call$0", "get$_onDone", 0, 0, 1]
|
| + },
|
| + AsyncError: {
|
| + "^": "Object;error<,stackTrace<",
|
| + toString$0: function(_) {
|
| + return H.S(this.error);
|
| + },
|
| + $isError: 1
|
| + },
|
| + _Zone: {
|
| + "^": "Object;"
|
| + },
|
| + _rootHandleUncaughtError_closure: {
|
| + "^": "Closure:0;_captured_error_0,_captured_stackTrace_1",
|
| + call$0: function() {
|
| + var t1 = this._captured_error_0;
|
| + throw H.wrapException(new P._UncaughtAsyncError(t1, P._UncaughtAsyncError__getBestStackTrace(t1, this._captured_stackTrace_1)));
|
| + }
|
| + },
|
| + _RootZone: {
|
| + "^": "_Zone;",
|
| + 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);
|
| + }
|
| + },
|
| + 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);
|
| + },
|
| + $index: function(_, key) {
|
| + return;
|
| + },
|
| + 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);
|
| + }
|
| + },
|
| + _RootZone_bindCallback_closure: {
|
| + "^": "Closure:0;_async$_captured_this_0,_captured_f_1",
|
| + call$0: function() {
|
| + return this._async$_captured_this_0.runGuarded$1(this._captured_f_1);
|
| + }
|
| + },
|
| + _RootZone_bindCallback_closure0: {
|
| + "^": "Closure:0;_async$_captured_this_2,_captured_f_3",
|
| + call$0: function() {
|
| + return this._async$_captured_this_2.run$1(this._captured_f_3);
|
| + }
|
| + }
|
| +}], ["dart.collection", "dart:collection",, P, {
|
| + "^": "",
|
| + LinkedHashMap__makeEmpty: function() {
|
| + return H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, null, null, null, 0), [null, null]);
|
| + },
|
| + LinkedHashMap__makeLiteral: function(keyValuePairs) {
|
| + return H.fillLiteralMap(keyValuePairs, H.setRuntimeTypeInfo(new H.JsLinkedHashMap(0, null, null, null, null, null, 0), [null, null]));
|
| + },
|
| + _defaultEquals: [function(a, b) {
|
| + return J.$eq(a, b);
|
| + }, "call$2", "_defaultEquals$closure", 4, 0, 12],
|
| + _defaultHashCode: [function(a) {
|
| + return J.get$hashCode$(a);
|
| + }, "call$1", "_defaultHashCode$closure", 2, 0, 13],
|
| + IterableBase_iterableToShortString: function(iterable, leftDelimiter, rightDelimiter) {
|
| + var parts, t1;
|
| + if (P._isToStringVisiting(iterable)) {
|
| + if (leftDelimiter === "(" && rightDelimiter === ")")
|
| + return "(...)";
|
| + return leftDelimiter + "..." + rightDelimiter;
|
| + }
|
| + parts = [];
|
| + t1 = $.get$_toStringVisiting();
|
| + t1.push(iterable);
|
| + try {
|
| + P._iterablePartsToStrings(iterable, parts);
|
| + } finally {
|
| + if (0 >= t1.length)
|
| + return H.ioore(t1, 0);
|
| + t1.pop();
|
| + }
|
| + t1 = P.StringBuffer__writeAll(leftDelimiter, parts, ", ") + rightDelimiter;
|
| + return t1.charCodeAt(0) == 0 ? t1 : t1;
|
| + },
|
| + IterableBase_iterableToFullString: function(iterable, leftDelimiter, rightDelimiter) {
|
| + var buffer, t1, t2;
|
| + if (P._isToStringVisiting(iterable))
|
| + return leftDelimiter + "..." + rightDelimiter;
|
| + buffer = new P.StringBuffer(leftDelimiter);
|
| + t1 = $.get$_toStringVisiting();
|
| + t1.push(iterable);
|
| + try {
|
| + t2 = buffer;
|
| + t2._contents = P.StringBuffer__writeAll(t2.get$_contents(), 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;
|
| + },
|
| + _isToStringVisiting: function(o) {
|
| + var i, t1;
|
| + for (i = 0; t1 = $.get$_toStringVisiting(), i < t1.length; ++i)
|
| + if (o === t1[i])
|
| + return true;
|
| + return false;
|
| + },
|
| + _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._isToStringVisiting(m))
|
| + return "{...}";
|
| + result = new P.StringBuffer("");
|
| + try {
|
| + $.get$_toStringVisiting().push(m);
|
| + t2 = result;
|
| + t2._contents = t2.get$_contents() + "{";
|
| + t1._captured_first_0 = true;
|
| + J.forEach$1$a(m, new P.Maps_mapToString_closure(t1, result));
|
| + t1 = result;
|
| + t1._contents = t1.get$_contents() + "}";
|
| + } finally {
|
| + t1 = $.get$_toStringVisiting();
|
| + if (0 >= t1.length)
|
| + return H.ioore(t1, 0);
|
| + t1.pop();
|
| + }
|
| + t1 = result.get$_contents();
|
| + return t1.charCodeAt(0) == 0 ? t1 : t1;
|
| + },
|
| + _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._cell = this._collection$_first;
|
| + return t1;
|
| + },
|
| + get$length: function(_) {
|
| + return this._collection$_length;
|
| + },
|
| + 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$as(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(new P.ConcurrentModificationError(this));
|
| + cell = cell._next;
|
| + }
|
| + },
|
| + add$1: function(_, element) {
|
| + var strings, nums;
|
| + if (typeof element === "string" && element !== "__proto__") {
|
| + strings = this._collection$_strings;
|
| + if (strings == null) {
|
| + strings = P._LinkedHashSet__newHashTable();
|
| + this._collection$_strings = strings;
|
| + }
|
| + return this._addHashTableEntry$2(strings, element);
|
| + } else if (typeof element === "number" && (element & 0x3ffffff) === element) {
|
| + nums = this._collection$_nums;
|
| + if (nums == null) {
|
| + nums = P._LinkedHashSet__newHashTable();
|
| + this._collection$_nums = nums;
|
| + }
|
| + return this._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._newLinkedCell$1(element)];
|
| + else {
|
| + if (this._findBucketIndex$2(bucket, element) >= 0)
|
| + return false;
|
| + bucket.push(this._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;
|
| + }
|
| + },
|
| + _addHashTableEntry$2: function(table, element) {
|
| + if (table[element] != null)
|
| + return false;
|
| + table[element] = this._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;
|
| + },
|
| + _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._previous = last;
|
| + last._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$_previous();
|
| + next = cell._next;
|
| + if (previous == null)
|
| + this._collection$_first = next;
|
| + else
|
| + previous._next = next;
|
| + if (next == null)
|
| + this._collection$_last = previous;
|
| + else
|
| + next._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;
|
| + },
|
| + $isEfficientLengthIterable: 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<,_next,_previous<"
|
| + },
|
| + LinkedHashSetIterator: {
|
| + "^": "Object;_set,_collection$_modifications,_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(new P.ConcurrentModificationError(t1));
|
| + else {
|
| + t1 = this._cell;
|
| + if (t1 == null) {
|
| + this._collection$_current = null;
|
| + return false;
|
| + } else {
|
| + this._collection$_current = t1._element;
|
| + this._cell = t1._next;
|
| + return true;
|
| + }
|
| + }
|
| + }
|
| + },
|
| + _HashSetBase: {
|
| + "^": "SetBase;"
|
| + },
|
| + Maps_mapToString_closure: {
|
| + "^": "Closure:8;_collection$_box_0,_captured_result_1",
|
| + call$2: function(k, v) {
|
| + var t1, t2;
|
| + t1 = this._collection$_box_0;
|
| + if (!t1._captured_first_0)
|
| + this._captured_result_1._contents += ", ";
|
| + t1._captured_first_0 = false;
|
| + t1 = this._captured_result_1;
|
| + t2 = t1._contents += H.S(k);
|
| + t1._contents = t2 + ": ";
|
| + t1._contents += H.S(v);
|
| + }
|
| + },
|
| + ListQueue: {
|
| + "^": "Iterable;_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(new P.ConcurrentModificationError(this));
|
| + }
|
| + },
|
| + get$isEmpty: function(_) {
|
| + return this._head === this._tail;
|
| + },
|
| + get$length: function(_) {
|
| + return (this._tail - this._head & this._table.length - 1) >>> 0;
|
| + },
|
| + 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 >= 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]);
|
| + },
|
| + $isEfficientLengthIterable: 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,_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(new P.ConcurrentModificationError(t1));
|
| + t2 = this._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._position = (t2 + 1 & t3 - 1) >>> 0;
|
| + return true;
|
| + }
|
| + },
|
| + SetMixin: {
|
| + "^": "Object;",
|
| + 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);
|
| + },
|
| + $isEfficientLengthIterable: 1
|
| + },
|
| + SetBase: {
|
| + "^": "SetMixin;"
|
| + }
|
| +}], ["dart.core", "dart:core",, P, {
|
| + "^": "",
|
| + _symbolToString: function(symbol) {
|
| + return H.Symbol_getName(symbol);
|
| + },
|
| + 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 P.Error__objectToString(object);
|
| + },
|
| + Error__objectToString: function(object) {
|
| + var t1 = J.getInterceptor(object);
|
| + if (!!t1.$isClosure)
|
| + return t1.toString$0(object);
|
| + return H.Primitives_objectToString(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, 14],
|
| + identityHashCode: [function(object) {
|
| + return H.objectHashCode(object);
|
| + }, "call$1", "identityHashCode$closure", 2, 0, 15],
|
| + List_List$from: function(elements, growable, $E) {
|
| + var list, t1;
|
| + list = H.setRuntimeTypeInfo([], [$E]);
|
| + for (t1 = J.get$iterator$a(elements); t1.moveNext$0();)
|
| + list.push(t1.get$current());
|
| + if (growable)
|
| + return list;
|
| + list.fixed$length = Array;
|
| + return list;
|
| + },
|
| + print: function(object) {
|
| + var line = H.S(object);
|
| + H.printString(line);
|
| + },
|
| + NoSuchMethodError_toString_closure: {
|
| + "^": "Closure:9;_core$_box_0,_captured_sb_1",
|
| + call$2: function(key, value) {
|
| + this._captured_sb_1._contents += this._core$_box_0._captured_comma_0;
|
| + P._symbolToString(key);
|
| + }
|
| + },
|
| + bool: {
|
| + "^": "Object;"
|
| + },
|
| + "+bool": 0,
|
| + $double: {
|
| + "^": "num;"
|
| + },
|
| + "+double": 0,
|
| + Duration: {
|
| + "^": "Object;_duration",
|
| + $add: function(_, other) {
|
| + return new P.Duration(C.JSInt_methods.$add(this._duration, other.get$_duration()));
|
| + },
|
| + $lt: function(_, other) {
|
| + return C.JSInt_methods.$lt(this._duration, other.get$_duration());
|
| + },
|
| + $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);
|
| + }
|
| + },
|
| + Duration_toString_sixDigits: {
|
| + "^": "Closure:10;",
|
| + 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:10;",
|
| + 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;
|
| + 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 {
|
| + if (typeof t2 !== "number")
|
| + return t2.$gt();
|
| + if (typeof t1 !== "number")
|
| + return H.iae(t1);
|
| + if (t2 > t1)
|
| + explanation = ": Not in range " + t1 + ".." + t2 + ", inclusive";
|
| + else
|
| + explanation = t2 < t1 ? ": Valid value range is empty" : ": Only valid value is " + t1;
|
| + }
|
| + }
|
| + return explanation;
|
| + },
|
| + static: {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_checkValidRange: function(start, end, $length, startName, endName, message) {
|
| + if (0 > start || start > $length)
|
| + throw H.wrapException(P.RangeError$range(start, 0, $length, "start", message));
|
| + if (start > end || end > $length)
|
| + throw H.wrapException(P.RangeError$range(end, start, $length, "end", message));
|
| + return end;
|
| + }}
|
| + },
|
| + IndexError: {
|
| + "^": "ArgumentError;indexable,length>,_hasValue,invalidValue,name,message",
|
| + 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$as(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;
|
| + }
|
| + },
|
| + StateError: {
|
| + "^": "Error;message",
|
| + toString$0: function(_) {
|
| + return "Bad state: " + this.message;
|
| + }
|
| + },
|
| + ConcurrentModificationError: {
|
| + "^": "Error;modifiedObject",
|
| + toString$0: function(_) {
|
| + var t1 = this.modifiedObject;
|
| + if (t1 == null)
|
| + return "Concurrent modification during iteration.";
|
| + return "Concurrent modification during iteration: " + H.S(P.Error_safeToString(t1)) + ".";
|
| + }
|
| + },
|
| + 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);
|
| + }
|
| + },
|
| + 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,
|
| + Iterable: {
|
| + "^": "Object;",
|
| + map$1: function(_, f) {
|
| + return H.MappedIterable_MappedIterable(this, f, H.getRuntimeTypeArgument(this, "Iterable", 0), null);
|
| + },
|
| + 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, "Iterable", 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;
|
| + },
|
| + 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, "(", ")");
|
| + }
|
| + },
|
| + Iterator: {
|
| + "^": "Object;"
|
| + },
|
| + List: {
|
| + "^": "Object;",
|
| + $isEfficientLengthIterable: 1
|
| + },
|
| + "+List": 0,
|
| + 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);
|
| + }
|
| + },
|
| + StackTrace: {
|
| + "^": "Object;"
|
| + },
|
| + String: {
|
| + "^": "Object;"
|
| + },
|
| + "+String": 0,
|
| + StringBuffer: {
|
| + "^": "Object;_contents<",
|
| + get$length: function(_) {
|
| + return this._contents.length;
|
| + },
|
| + toString$0: function(_) {
|
| + var t1 = this._contents;
|
| + return t1.charCodeAt(0) == 0 ? t1 : t1;
|
| + },
|
| + static: {StringBuffer__writeAll: function(string, objects, separator) {
|
| + var iterator = J.get$iterator$a(objects);
|
| + if (!iterator.moveNext$0())
|
| + return string;
|
| + if (separator.length === 0) {
|
| + do
|
| + string += H.S(iterator.get$current());
|
| + while (iterator.moveNext$0());
|
| + } else {
|
| + string += H.S(iterator.get$current());
|
| + for (; iterator.moveNext$0();)
|
| + string = string + separator + H.S(iterator.get$current());
|
| + }
|
| + return string;
|
| + }}
|
| + },
|
| + Symbol: {
|
| + "^": "Object;"
|
| + }
|
| +}], ["dart.isolate", "dart:isolate",, P, {
|
| + "^": "",
|
| + Capability: {
|
| + "^": "Object;"
|
| + }
|
| +}], ["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);
|
| + }
|
| +}], ["", "test.dart",, V, {
|
| + "^": "",
|
| + main: [function() {
|
| + var $goto = 0, completer = new P.Completer_Completer(), $returnValue, handler = 2, currentError;
|
| + function main(errorCode, result) {
|
| + if (errorCode === 1) {
|
| + currentError = result;
|
| + $goto = handler;
|
| + }
|
| + while (true)
|
| + switch ($goto) {
|
| + case 0:
|
| + // Function start
|
| + // goto return
|
| + $goto = 1;
|
| + break;
|
| + case 1:
|
| + // return
|
| + return H.asyncHelper($returnValue, 0, completer, null);
|
| + case 2:
|
| + // rethrow
|
| + return H.asyncHelper(currentError, 1, completer);
|
| + }
|
| + }
|
| + return H.asyncHelper(null, main, completer, null);
|
| + }, "call$0", "main$closure", 0, 0, 16]
|
| +}, 1]];
|
| +setupProgram(dart, 0);
|
| +// 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 (!(receiver instanceof P.Object))
|
| + return J.UnknownJavaScriptObject.prototype;
|
| + return receiver;
|
| +};
|
| +J.getInterceptor$a = function(receiver) {
|
| + if (receiver == null)
|
| + return receiver;
|
| + if (receiver.constructor == Array)
|
| + return J.JSArray.prototype;
|
| + if (!(receiver instanceof P.Object))
|
| + return J.UnknownJavaScriptObject.prototype;
|
| + return receiver;
|
| +};
|
| +J.getInterceptor$as = function(receiver) {
|
| + if (typeof receiver == "string")
|
| + return J.JSString.prototype;
|
| + if (receiver == null)
|
| + return receiver;
|
| + if (receiver.constructor == Array)
|
| + return J.JSArray.prototype;
|
| + if (!(receiver instanceof P.Object))
|
| + return J.UnknownJavaScriptObject.prototype;
|
| + return 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.$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.$index$as = function(receiver, a0) {
|
| + if (receiver.constructor == Array || typeof receiver == "string")
|
| + if (a0 >>> 0 === a0 && a0 < receiver.length)
|
| + return receiver[a0];
|
| + return J.getInterceptor$as(receiver).$index(receiver, a0);
|
| +};
|
| +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.elementAt$1$a = function(receiver, a0) {
|
| + return J.getInterceptor$a(receiver).elementAt$1(receiver, a0);
|
| +};
|
| +J.forEach$1$a = function(receiver, a0) {
|
| + return J.getInterceptor$a(receiver).forEach$1(receiver, a0);
|
| +};
|
| +J.get$hashCode$ = function(receiver) {
|
| + return J.getInterceptor(receiver).get$hashCode(receiver);
|
| +};
|
| +J.get$iterator$a = function(receiver) {
|
| + return J.getInterceptor$a(receiver).get$iterator(receiver);
|
| +};
|
| +J.get$length$as = function(receiver) {
|
| + return J.getInterceptor$as(receiver).get$length(receiver);
|
| +};
|
| +J.map$1$a = function(receiver, a0) {
|
| + return J.getInterceptor$a(receiver).map$1(receiver, a0);
|
| +};
|
| +J.toString$0 = function(receiver) {
|
| + return J.getInterceptor(receiver).toString$0(receiver);
|
| +};
|
| +C.JSArray_methods = J.JSArray.prototype;
|
| +C.JSInt_methods = J.JSInt.prototype;
|
| +C.JSString_methods = J.JSString.prototype;
|
| +C.C_DynamicRuntimeType = new H.DynamicRuntimeType();
|
| +C.C__RootZone = new P._RootZone();
|
| +C.Duration_0 = new P.Duration(0);
|
| +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);
|
| +};
|
| +{
|
| + 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 = {};
|
| +$.Primitives_mirrorFunctionCacheName = "$cachedFunction";
|
| +$.Primitives_mirrorInvokeCacheName = "$cachedInvocation";
|
| +$.Closure_functionCounter = 0;
|
| +$.BoundClosure_selfFieldNameCache = null;
|
| +$.BoundClosure_receiverFieldNameCache = null;
|
| +$._nextCallback = null;
|
| +$._lastCallback = null;
|
| +$._lastPriorityCallback = null;
|
| +$._isInCallbackLoop = false;
|
| +$.Zone__current = C.C__RootZone;
|
| +$.Expando__keyCount = 0;
|
| +(function(lazies) {
|
| + var descriptorLength = 4;
|
| + for (var i = 0; i < lazies.length; i += descriptorLength) {
|
| + var fieldName = lazies[i];
|
| + var getterName = lazies[i + 1];
|
| + var lazyValue = lazies[i + 2];
|
| + var staticName = lazies[i + 3];
|
| + Isolate.$lazy(fieldName, getterName, lazyValue, staticName);
|
| + }
|
| +})(["IsolateNatives_thisScript", "get$IsolateNatives_thisScript", function() {
|
| + return H.IsolateNatives_computeThisScript();
|
| +}, "thisScript", "IsolateNatives_workerIds", "get$IsolateNatives_workerIds", function() {
|
| + return new P.Expando(null);
|
| +}, "workerIds", "TypeErrorDecoder_noSuchMethodPattern", "get$TypeErrorDecoder_noSuchMethodPattern", function() {
|
| + return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn({toString: function() {
|
| + return "$receiver$";
|
| + }}));
|
| +}, "noSuchMethodPattern", "TypeErrorDecoder_notClosurePattern", "get$TypeErrorDecoder_notClosurePattern", function() {
|
| + return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn({$method$: null, toString: function() {
|
| + return "$receiver$";
|
| + }}));
|
| +}, "notClosurePattern", "TypeErrorDecoder_nullCallPattern", "get$TypeErrorDecoder_nullCallPattern", function() {
|
| + return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn(null));
|
| +}, "nullCallPattern", "TypeErrorDecoder_nullLiteralCallPattern", "get$TypeErrorDecoder_nullLiteralCallPattern", function() {
|
| + return H.TypeErrorDecoder_extractPattern(function() {
|
| + var $argumentsExpr$ = '$arguments$';
|
| + try {
|
| + null.$method$($argumentsExpr$);
|
| + } catch (e) {
|
| + return e.message;
|
| + }
|
| + }());
|
| +}, "nullLiteralCallPattern", "TypeErrorDecoder_undefinedCallPattern", "get$TypeErrorDecoder_undefinedCallPattern", function() {
|
| + return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn(void 0));
|
| +}, "undefinedCallPattern", "TypeErrorDecoder_undefinedLiteralCallPattern", "get$TypeErrorDecoder_undefinedLiteralCallPattern", function() {
|
| + return H.TypeErrorDecoder_extractPattern(function() {
|
| + var $argumentsExpr$ = '$arguments$';
|
| + try {
|
| + (void 0).$method$($argumentsExpr$);
|
| + } catch (e) {
|
| + return e.message;
|
| + }
|
| + }());
|
| +}, "undefinedLiteralCallPattern", "TypeErrorDecoder_nullPropertyPattern", "get$TypeErrorDecoder_nullPropertyPattern", function() {
|
| + return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokePropertyErrorOn(null));
|
| +}, "nullPropertyPattern", "TypeErrorDecoder_nullLiteralPropertyPattern", "get$TypeErrorDecoder_nullLiteralPropertyPattern", function() {
|
| + return H.TypeErrorDecoder_extractPattern(function() {
|
| + try {
|
| + null.$method$;
|
| + } catch (e) {
|
| + return e.message;
|
| + }
|
| + }());
|
| +}, "nullLiteralPropertyPattern", "TypeErrorDecoder_undefinedPropertyPattern", "get$TypeErrorDecoder_undefinedPropertyPattern", function() {
|
| + return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokePropertyErrorOn(void 0));
|
| +}, "undefinedPropertyPattern", "TypeErrorDecoder_undefinedLiteralPropertyPattern", "get$TypeErrorDecoder_undefinedLiteralPropertyPattern", function() {
|
| + return H.TypeErrorDecoder_extractPattern(function() {
|
| + try {
|
| + (void 0).$method$;
|
| + } catch (e) {
|
| + return e.message;
|
| + }
|
| + }());
|
| +}, "undefinedLiteralPropertyPattern", "_AsyncRun_scheduleImmediateClosure", "get$_AsyncRun_scheduleImmediateClosure", function() {
|
| + return P._AsyncRun__initializeScheduleImmediate();
|
| +}, "scheduleImmediateClosure", "_toStringVisiting", "get$_toStringVisiting", function() {
|
| + return [];
|
| +}, "_toStringVisiting"]);
|
| +;
|
| +
|
| +{
|
| + init.metadata = [null];
|
| + init.types = [{func: 1}, {func: 1, void: true}, {func: 1, args: [,]}, {func: 1, args: [, P.StackTrace]}, {func: 1, args: [{func: 1, void: true}]}, {func: 1, args: [,], opt: [,]}, {func: 1, ret: P.bool}, {func: 1, void: true, args: [P.Object], opt: [P.StackTrace]}, {func: 1, args: [,,]}, {func: 1, args: [P.Symbol,,]}, {func: 1, ret: P.String, args: [P.$int]}, {func: 1, void: true, args: [{func: 1, void: true}]}, {func: 1, ret: P.bool, args: [,,]}, {func: 1, ret: P.$int, args: [,]}, {func: 1, ret: P.bool, args: [P.Object, P.Object]}, {func: 1, ret: P.$int, args: [P.Object]}, {func: 1, ret: P.Future}];
|
| +}
|
| +
|
| +$ = null;
|
| +Isolate = Isolate.$finishIsolateConstructor(Isolate);
|
| +$ = new Isolate();
|
| +function convertToFastObject(properties) {
|
| + function MyClass() {
|
| + }
|
| + MyClass.prototype = properties;
|
| + new MyClass();
|
| + return properties;
|
| +}
|
| +;
|
| +function convertToSlowObject(properties) {
|
| + properties.__MAGIC_SLOW_PROPERTY = 1;
|
| + delete properties.__MAGIC_SLOW_PROPERTY;
|
| + 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(fieldName, getterName, lazyValue, staticName, prototype) {
|
| + if (!init.lazies)
|
| + init.lazies = Object.create(null);
|
| + init.lazies[fieldName] = getterName;
|
| + prototype = prototype || Isolate.$isolateProperties;
|
| + var sentinelUndefined = {};
|
| + var sentinelInProgress = {};
|
| + prototype[fieldName] = sentinelUndefined;
|
| + prototype[getterName] = function() {
|
| + var result = this[fieldName];
|
| + try {
|
| + if (result === sentinelUndefined) {
|
| + this[fieldName] = sentinelInProgress;
|
| + try {
|
| + result = this[fieldName] = lazyValue();
|
| + } finally {
|
| + if (result === sentinelUndefined)
|
| + this[fieldName] = null;
|
| + }
|
| + } else
|
| + if (result === sentinelInProgress)
|
| + H.throwCyclicInit(staticName || fieldName);
|
| + return result;
|
| + } finally {
|
| + this[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;
|
| + return Isolate;
|
| + };
|
| +}
|
| +;// 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(V.main$closure(), a);
|
| + }, []);
|
| + else
|
| + (function(a) {
|
| + H.startRootIsolate(V.main$closure(), a);
|
| + })([]);
|
| +});
|
| +;
|
| +// END invoke [main].
|
| +})()
|
| +
|
| +//# sourceMappingURL=out.js.map
|
|
|