5851 lines
262 KiB
JavaScript
5851 lines
262 KiB
JavaScript
// Generated by dart2js (fast startup emitter, strong), the Dart to JavaScript compiler version: 2.12.3.
|
|
// 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 deferred 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.
|
|
//
|
|
// dartCallInstrumentation(id, qualifiedName):
|
|
// if this function is defined, it will be called at each entry of a
|
|
// method or constructor. Used only when compiling programs with
|
|
// --experiment-call-instrumentation.
|
|
(function dartProgram() {
|
|
function copyProperties(from, to) {
|
|
var keys = Object.keys(from);
|
|
for (var i = 0; i < keys.length; i++) {
|
|
var key = keys[i];
|
|
to[key] = from[key];
|
|
}
|
|
}
|
|
|
|
function mixinProperties(from, to) {
|
|
var keys = Object.keys(from);
|
|
for (var i = 0; i < keys.length; i++) {
|
|
var key = keys[i];
|
|
if (!to.hasOwnProperty(key))
|
|
to[key] = from[key];
|
|
}
|
|
}
|
|
var supportsDirectProtoAccess = function () {
|
|
var cls = function () {};
|
|
cls.prototype = {
|
|
p: {}
|
|
};
|
|
var object = new cls();
|
|
if (!(object.__proto__ && object.__proto__.p === cls.prototype.p))
|
|
return false;
|
|
try {
|
|
if (typeof navigator != "undefined" && typeof navigator.userAgent == "string" && navigator.userAgent.indexOf("Chrome/") >= 0)
|
|
return true;
|
|
if (typeof version == "function" && version.length == 0) {
|
|
var v = version();
|
|
if (/^\d+\.\d+\.\d+\.\d+$/.test(v))
|
|
return true;
|
|
}
|
|
} catch (_) {}
|
|
return false;
|
|
}();
|
|
|
|
function setFunctionNamesIfNecessary(holders) {
|
|
function t() {};
|
|
if (typeof t.name == "string")
|
|
return;
|
|
for (var i = 0; i < holders.length; i++) {
|
|
var holder = holders[i];
|
|
var keys = Object.keys(holder);
|
|
for (var j = 0; j < keys.length; j++) {
|
|
var key = keys[j];
|
|
var f = holder[key];
|
|
if (typeof f == "function")
|
|
f.name = key;
|
|
}
|
|
}
|
|
}
|
|
|
|
function inherit(cls, sup) {
|
|
cls.prototype.constructor = cls;
|
|
cls.prototype["$is" + cls.name] = cls;
|
|
if (sup != null) {
|
|
if (supportsDirectProtoAccess) {
|
|
cls.prototype.__proto__ = sup.prototype;
|
|
return;
|
|
}
|
|
var clsPrototype = Object.create(sup.prototype);
|
|
copyProperties(cls.prototype, clsPrototype);
|
|
cls.prototype = clsPrototype;
|
|
}
|
|
}
|
|
|
|
function inheritMany(sup, classes) {
|
|
for (var i = 0; i < classes.length; i++)
|
|
inherit(classes[i], sup);
|
|
}
|
|
|
|
function mixin(cls, mixin) {
|
|
mixinProperties(mixin.prototype, cls.prototype);
|
|
cls.prototype.constructor = cls;
|
|
}
|
|
|
|
function lazyOld(holder, name, getterName, initializer) {
|
|
var uninitializedSentinel = holder;
|
|
holder[name] = uninitializedSentinel;
|
|
holder[getterName] = function () {
|
|
holder[getterName] = function () {
|
|
H.throwCyclicInit(name);
|
|
};
|
|
var result;
|
|
var sentinelInProgress = initializer;
|
|
try {
|
|
if (holder[name] === uninitializedSentinel) {
|
|
result = holder[name] = sentinelInProgress;
|
|
result = holder[name] = initializer();
|
|
} else
|
|
result = holder[name];
|
|
} finally {
|
|
if (result === sentinelInProgress)
|
|
holder[name] = null;
|
|
holder[getterName] = function () {
|
|
return this[name];
|
|
};
|
|
}
|
|
return result;
|
|
};
|
|
}
|
|
|
|
function lazy(holder, name, getterName, initializer) {
|
|
var uninitializedSentinel = holder;
|
|
holder[name] = uninitializedSentinel;
|
|
holder[getterName] = function () {
|
|
if (holder[name] === uninitializedSentinel)
|
|
holder[name] = initializer();
|
|
holder[getterName] = function () {
|
|
return this[name];
|
|
};
|
|
return holder[name];
|
|
};
|
|
}
|
|
|
|
function lazyFinal(holder, name, getterName, initializer) {
|
|
var uninitializedSentinel = holder;
|
|
holder[name] = uninitializedSentinel;
|
|
holder[getterName] = function () {
|
|
if (holder[name] === uninitializedSentinel) {
|
|
var value = initializer();
|
|
if (holder[name] !== uninitializedSentinel)
|
|
H.throwLateInitializationError(name);
|
|
holder[name] = value;
|
|
}
|
|
holder[getterName] = function () {
|
|
return this[name];
|
|
};
|
|
return holder[name];
|
|
};
|
|
}
|
|
|
|
function makeConstList(list) {
|
|
list.immutable$list = Array;
|
|
list.fixed$length = Array;
|
|
return list;
|
|
}
|
|
|
|
function convertToFastObject(properties) {
|
|
function t() {}
|
|
t.prototype = properties;
|
|
new t();
|
|
return properties;
|
|
}
|
|
|
|
function convertAllToFastObject(arrayOfObjects) {
|
|
for (var i = 0; i < arrayOfObjects.length; ++i)
|
|
convertToFastObject(arrayOfObjects[i]);
|
|
}
|
|
var functionCounter = 0;
|
|
|
|
function tearOffGetter(funcs, applyTrampolineIndex, reflectionInfo, name, isIntercepted) {
|
|
return isIntercepted ? new Function("funcs", "applyTrampolineIndex", "reflectionInfo", "name", "H", "c", "return function tearOff_" + name + functionCounter++ + "(receiver) {" + "if (c === null) c = " + "H.closureFromTearOff" + "(" + "this, funcs, applyTrampolineIndex, reflectionInfo, false, true, name);" + "return new c(this, funcs[0], receiver, name);" + "}")(funcs, applyTrampolineIndex, reflectionInfo, name, H, null) : new Function("funcs", "applyTrampolineIndex", "reflectionInfo", "name", "H", "c", "return function tearOff_" + name + functionCounter++ + "() {" + "if (c === null) c = " + "H.closureFromTearOff" + "(" + "this, funcs, applyTrampolineIndex, reflectionInfo, false, false, name);" + "return new c(this, funcs[0], null, name);" + "}")(funcs, applyTrampolineIndex, reflectionInfo, name, H, null);
|
|
}
|
|
|
|
function tearOff(funcs, applyTrampolineIndex, reflectionInfo, isStatic, name, isIntercepted) {
|
|
var cache = null;
|
|
return isStatic ? function () {
|
|
if (cache === null)
|
|
cache = H.closureFromTearOff(this, funcs, applyTrampolineIndex, reflectionInfo, true, false, name).prototype;
|
|
return cache;
|
|
} : tearOffGetter(funcs, applyTrampolineIndex, reflectionInfo, name, isIntercepted);
|
|
}
|
|
var typesOffset = 0;
|
|
|
|
function installTearOff(container, getterName, isStatic, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex) {
|
|
var funs = [];
|
|
for (var i = 0; i < funsOrNames.length; i++) {
|
|
var fun = funsOrNames[i];
|
|
if (typeof fun == "string")
|
|
fun = container[fun];
|
|
fun.$callName = callNames[i];
|
|
funs.push(fun);
|
|
}
|
|
var fun = funs[0];
|
|
fun.$requiredArgCount = requiredParameterCount;
|
|
fun.$defaultValues = optionalParameterDefaultValues;
|
|
var reflectionInfo = funType;
|
|
if (typeof reflectionInfo == "number")
|
|
reflectionInfo += typesOffset;
|
|
var name = funsOrNames[0];
|
|
fun.$stubName = name;
|
|
var getterFunction = tearOff(funs, applyIndex || 0, reflectionInfo, isStatic, name, isIntercepted);
|
|
container[getterName] = getterFunction;
|
|
if (isStatic)
|
|
fun.$tearOff = getterFunction;
|
|
}
|
|
|
|
function installStaticTearOff(container, getterName, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex) {
|
|
return installTearOff(container, getterName, true, false, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex);
|
|
}
|
|
|
|
function installInstanceTearOff(container, getterName, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex) {
|
|
return installTearOff(container, getterName, false, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex);
|
|
}
|
|
|
|
function setOrUpdateInterceptorsByTag(newTags) {
|
|
var tags = init.interceptorsByTag;
|
|
if (!tags) {
|
|
init.interceptorsByTag = newTags;
|
|
return;
|
|
}
|
|
copyProperties(newTags, tags);
|
|
}
|
|
|
|
function setOrUpdateLeafTags(newTags) {
|
|
var tags = init.leafTags;
|
|
if (!tags) {
|
|
init.leafTags = newTags;
|
|
return;
|
|
}
|
|
copyProperties(newTags, tags);
|
|
}
|
|
|
|
function updateTypes(newTypes) {
|
|
var types = init.types;
|
|
var length = types.length;
|
|
types.push.apply(types, newTypes);
|
|
return length;
|
|
}
|
|
|
|
function updateHolder(holder, newHolder) {
|
|
copyProperties(newHolder, holder);
|
|
return holder;
|
|
}
|
|
var hunkHelpers = function () {
|
|
var mkInstance = function (isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, applyIndex) {
|
|
return function (container, getterName, name, funType) {
|
|
return installInstanceTearOff(container, getterName, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, [name], funType, applyIndex);
|
|
};
|
|
},
|
|
mkStatic = function (requiredParameterCount, optionalParameterDefaultValues, callNames, applyIndex) {
|
|
return function (container, getterName, name, funType) {
|
|
return installStaticTearOff(container, getterName, requiredParameterCount, optionalParameterDefaultValues, callNames, [name], funType, applyIndex);
|
|
};
|
|
};
|
|
return {
|
|
inherit: inherit,
|
|
inheritMany: inheritMany,
|
|
mixin: mixin,
|
|
installStaticTearOff: installStaticTearOff,
|
|
installInstanceTearOff: installInstanceTearOff,
|
|
_instance_0u: mkInstance(0, 0, null, ["call$0"], 0),
|
|
_instance_1u: mkInstance(0, 1, null, ["call$1"], 0),
|
|
_instance_2u: mkInstance(0, 2, null, ["call$2"], 0),
|
|
_instance_0i: mkInstance(1, 0, null, ["call$0"], 0),
|
|
_instance_1i: mkInstance(1, 1, null, ["call$1"], 0),
|
|
_instance_2i: mkInstance(1, 2, null, ["call$2"], 0),
|
|
_static_0: mkStatic(0, null, ["call$0"], 0),
|
|
_static_1: mkStatic(1, null, ["call$1"], 0),
|
|
_static_2: mkStatic(2, null, ["call$2"], 0),
|
|
makeConstList: makeConstList,
|
|
lazy: lazy,
|
|
lazyFinal: lazyFinal,
|
|
lazyOld: lazyOld,
|
|
updateHolder: updateHolder,
|
|
convertToFastObject: convertToFastObject,
|
|
setFunctionNamesIfNecessary: setFunctionNamesIfNecessary,
|
|
updateTypes: updateTypes,
|
|
setOrUpdateInterceptorsByTag: setOrUpdateInterceptorsByTag,
|
|
setOrUpdateLeafTags: setOrUpdateLeafTags
|
|
};
|
|
}();
|
|
|
|
function initializeDeferredHunk(hunk) {
|
|
typesOffset = init.types.length;
|
|
hunk(hunkHelpers, init, holders, $);
|
|
}
|
|
|
|
function getGlobalFromName(name) {
|
|
for (var i = 0; i < holders.length; i++) {
|
|
if (holders[i] == C)
|
|
continue;
|
|
if (holders[i][name])
|
|
return holders[i][name];
|
|
}
|
|
}
|
|
var C = {},
|
|
H = {
|
|
JS_CONST: function JS_CONST() {},
|
|
checkNotNullable: function (value, $name, $T) {
|
|
return value;
|
|
},
|
|
MappedIterable_MappedIterable: function (iterable, $function, $S, $T) {
|
|
return new H.EfficientLengthMappedIterable(iterable, $function, $S._eval$1("@<0>")._bind$1($T)._eval$1("EfficientLengthMappedIterable<1,2>"));
|
|
},
|
|
LateError: function LateError(t0) {
|
|
this._message = t0;
|
|
},
|
|
EfficientLengthIterable: function EfficientLengthIterable() {},
|
|
ListIterator: function ListIterator(t0, t1, t2) {
|
|
var _ = this;
|
|
_.__internal$_iterable = t0;
|
|
_.__internal$_length = t1;
|
|
_.__internal$_index = 0;
|
|
_.__internal$_current = null;
|
|
_.$ti = t2;
|
|
},
|
|
MappedIterable: function MappedIterable(t0, t1, t2) {
|
|
this.__internal$_iterable = t0;
|
|
this._f = t1;
|
|
this.$ti = t2;
|
|
},
|
|
EfficientLengthMappedIterable: function EfficientLengthMappedIterable(t0, t1, t2) {
|
|
this.__internal$_iterable = t0;
|
|
this._f = t1;
|
|
this.$ti = t2;
|
|
},
|
|
MappedIterator: function MappedIterator(t0, t1, t2) {
|
|
var _ = this;
|
|
_.__internal$_current = null;
|
|
_._iterator = t0;
|
|
_._f = t1;
|
|
_.$ti = t2;
|
|
},
|
|
unminifyOrTag: function (rawClassName) {
|
|
var preserved = H.unmangleGlobalNameIfPreservedAnyways(rawClassName);
|
|
if (preserved != null)
|
|
return preserved;
|
|
return rawClassName;
|
|
},
|
|
isJsIndexable: function (object, record) {
|
|
var result;
|
|
if (record != null) {
|
|
result = record.x;
|
|
if (result != null)
|
|
return result;
|
|
}
|
|
return type$.JavaScriptIndexingBehavior_dynamic._is(object);
|
|
},
|
|
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);
|
|
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) {
|
|
return H.Primitives__objectTypeNameNewRti(object);
|
|
},
|
|
Primitives__objectTypeNameNewRti: function (object) {
|
|
var dispatchName, $constructor, constructorName;
|
|
if (object instanceof P.Object)
|
|
return H._rtiToString(H.instanceType(object), null);
|
|
if (J.getInterceptor$(object) === C.Interceptor_methods || type$.UnknownJavaScriptObject._is(object)) {
|
|
dispatchName = C.C_JS_CONST(object);
|
|
if (H.Primitives__saneNativeClassName(dispatchName))
|
|
return dispatchName;
|
|
$constructor = object.constructor;
|
|
if (typeof $constructor == "function") {
|
|
constructorName = $constructor.name;
|
|
if (typeof constructorName == "string" && H.Primitives__saneNativeClassName(constructorName))
|
|
return constructorName;
|
|
}
|
|
}
|
|
return H._rtiToString(H.instanceType(object), null);
|
|
},
|
|
Primitives__saneNativeClassName: function ($name) {
|
|
var t1 = $name !== "Object" && $name !== "";
|
|
return t1;
|
|
},
|
|
ioore: function (receiver, index) {
|
|
if (receiver == null)
|
|
J.get$length$asx(receiver);
|
|
throw H.wrapException(H.diagnoseIndexError(receiver, index));
|
|
},
|
|
diagnoseIndexError: function (indexable, index) {
|
|
var $length, _s5_ = "index";
|
|
if (!H._isInt(index))
|
|
return new P.ArgumentError(true, index, _s5_, null);
|
|
$length = H._asInt(J.get$length$asx(indexable));
|
|
if (index < 0 || index >= $length)
|
|
return P.IndexError$(index, indexable, _s5_, null, $length);
|
|
return P.RangeError$value(index, _s5_);
|
|
},
|
|
wrapException: function (ex) {
|
|
var wrapper, t1;
|
|
if (ex == null)
|
|
ex = new P.NullThrownError();
|
|
wrapper = new Error();
|
|
wrapper.dartException = ex;
|
|
t1 = H.toStringWrapper;
|
|
if ("defineProperty" in Object) {
|
|
Object.defineProperty(wrapper, "message", {
|
|
get: t1
|
|
});
|
|
wrapper.name = "";
|
|
} else
|
|
wrapper.toString = t1;
|
|
return wrapper;
|
|
},
|
|
toStringWrapper: function () {
|
|
return J.toString$0$(this.dartException);
|
|
},
|
|
throwExpression: function (ex) {
|
|
throw H.wrapException(ex);
|
|
},
|
|
throwConcurrentModificationError: function (collection) {
|
|
throw H.wrapException(P.ConcurrentModificationError$(collection));
|
|
},
|
|
TypeErrorDecoder_extractPattern: function (message) {
|
|
var match, $arguments, argumentsExpr, expr, method, receiver;
|
|
message = H.quoteStringForRegExp(message.replace(String({}), "$receiver$"));
|
|
match = message.match(/\\\$[a-zA-Z]+\\\$/g);
|
|
if (match == null)
|
|
match = H.setRuntimeTypeInfo([], type$.JSArray_String);
|
|
$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(new RegExp("\\\\\\$arguments\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$argumentsExpr\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$expr\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$method\\\\\\$", "g"), "((?:x|[^x])*)").replace(new RegExp("\\\\\\$receiver\\\\\\$", "g"), "((?: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$: function (_message, match) {
|
|
return new H.NullError(_message, match == null ? null : match.method);
|
|
},
|
|
JsNoSuchMethodError$: function (_message, match) {
|
|
var t1 = match == null,
|
|
t2 = t1 ? null : match.method;
|
|
return new H.JsNoSuchMethodError(_message, t2, t1 ? null : match.receiver);
|
|
},
|
|
unwrapException: function (ex) {
|
|
if (ex == null)
|
|
return new H.NullThrownFromJavaScriptException(ex);
|
|
if (typeof ex !== "object")
|
|
return ex;
|
|
if ("dartException" in ex)
|
|
return H.saveStackTrace(ex, ex.dartException);
|
|
return H._unwrapNonDartException(ex);
|
|
},
|
|
saveStackTrace: function (ex, error) {
|
|
if (type$.Error._is(error))
|
|
if (error.$thrownJsError == null)
|
|
error.$thrownJsError = ex;
|
|
return error;
|
|
},
|
|
_unwrapNonDartException: function (ex) {
|
|
var message, number, ieErrorCode, nsme, notClosure, nullCall, nullLiteralCall, undefCall, undefLiteralCall, nullProperty, undefProperty, undefLiteralProperty, match, t1, _null = null;
|
|
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 H.saveStackTrace(ex, H.JsNoSuchMethodError$(H.S(message) + " (Error " + ieErrorCode + ")", _null));
|
|
case 445:
|
|
case 5007:
|
|
return H.saveStackTrace(ex, H.NullError$(H.S(message) + " (Error " + ieErrorCode + ")", _null));
|
|
}
|
|
}
|
|
if (ex instanceof TypeError) {
|
|
nsme = $.$get$TypeErrorDecoder_noSuchMethodPattern();
|
|
notClosure = $.$get$TypeErrorDecoder_notClosurePattern();
|
|
nullCall = $.$get$TypeErrorDecoder_nullCallPattern();
|
|
nullLiteralCall = $.$get$TypeErrorDecoder_nullLiteralCallPattern();
|
|
undefCall = $.$get$TypeErrorDecoder_undefinedCallPattern();
|
|
undefLiteralCall = $.$get$TypeErrorDecoder_undefinedLiteralCallPattern();
|
|
nullProperty = $.$get$TypeErrorDecoder_nullPropertyPattern();
|
|
$.$get$TypeErrorDecoder_nullLiteralPropertyPattern();
|
|
undefProperty = $.$get$TypeErrorDecoder_undefinedPropertyPattern();
|
|
undefLiteralProperty = $.$get$TypeErrorDecoder_undefinedLiteralPropertyPattern();
|
|
match = nsme.matchTypeError$1(message);
|
|
if (match != null)
|
|
return H.saveStackTrace(ex, H.JsNoSuchMethodError$(H._asString(message), match));
|
|
else {
|
|
match = notClosure.matchTypeError$1(message);
|
|
if (match != null) {
|
|
match.method = "call";
|
|
return H.saveStackTrace(ex, H.JsNoSuchMethodError$(H._asString(message), match));
|
|
} else {
|
|
match = nullCall.matchTypeError$1(message);
|
|
if (match == null) {
|
|
match = nullLiteralCall.matchTypeError$1(message);
|
|
if (match == null) {
|
|
match = undefCall.matchTypeError$1(message);
|
|
if (match == null) {
|
|
match = undefLiteralCall.matchTypeError$1(message);
|
|
if (match == null) {
|
|
match = nullProperty.matchTypeError$1(message);
|
|
if (match == null) {
|
|
match = nullLiteralCall.matchTypeError$1(message);
|
|
if (match == null) {
|
|
match = undefProperty.matchTypeError$1(message);
|
|
if (match == null) {
|
|
match = undefLiteralProperty.matchTypeError$1(message);
|
|
t1 = match != null;
|
|
} else
|
|
t1 = true;
|
|
} else
|
|
t1 = true;
|
|
} else
|
|
t1 = true;
|
|
} else
|
|
t1 = true;
|
|
} else
|
|
t1 = true;
|
|
} else
|
|
t1 = true;
|
|
} else
|
|
t1 = true;
|
|
if (t1)
|
|
return H.saveStackTrace(ex, H.NullError$(H._asString(message), match));
|
|
}
|
|
}
|
|
return H.saveStackTrace(ex, new H.UnknownJsTypeError(typeof message == "string" ? message : ""));
|
|
}
|
|
if (ex instanceof RangeError) {
|
|
if (typeof message == "string" && message.indexOf("call stack") !== -1)
|
|
return new P.StackOverflowError();
|
|
message = function (ex) {
|
|
try {
|
|
return String(ex);
|
|
} catch (e) {}
|
|
return null;
|
|
}(ex);
|
|
return H.saveStackTrace(ex, new P.ArgumentError(false, _null, _null, typeof message == "string" ? message.replace(/^RangeError:\s*/, "") : message));
|
|
}
|
|
if (typeof InternalError == "function" && ex instanceof InternalError)
|
|
if (typeof message == "string" && message === "too much recursion")
|
|
return new P.StackOverflowError();
|
|
return ex;
|
|
},
|
|
getTraceFromException: function (exception) {
|
|
var trace;
|
|
if (exception == null)
|
|
return new H._StackTrace(exception);
|
|
trace = exception.$cachedTrace;
|
|
if (trace != null)
|
|
return trace;
|
|
return exception.$cachedTrace = new H._StackTrace(exception);
|
|
},
|
|
fillLiteralMap: function (keyValuePairs, result) {
|
|
var 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, numberOfArguments, arg1, arg2, arg3, arg4) {
|
|
type$.Function._as(closure);
|
|
switch (H._asInt(numberOfArguments)) {
|
|
case 0:
|
|
return closure.call$0();
|
|
case 1:
|
|
return closure.call$1(arg1);
|
|
case 2:
|
|
return closure.call$2(arg1, arg2);
|
|
case 3:
|
|
return closure.call$3(arg1, arg2, arg3);
|
|
case 4:
|
|
return closure.call$4(arg1, arg2, arg3, arg4);
|
|
}
|
|
throw H.wrapException(new P._Exception("Unsupported number of arguments for wrapped closure"));
|
|
},
|
|
convertDartClosureToJS: function (closure, arity) {
|
|
var $function = closure.$identity;
|
|
if (!!$function)
|
|
return $function;
|
|
$function = function (closure, arity, invoke) {
|
|
return function (a1, a2, a3, a4) {
|
|
return invoke(closure, arity, a1, a2, a3, a4);
|
|
};
|
|
}(closure, arity, H.invokeClosure);
|
|
closure.$identity = $function;
|
|
return $function;
|
|
},
|
|
Closure_fromTearOff: function (receiver, functions, applyTrampolineIndex, reflectionInfo, isStatic, isIntercepted, propertyName) {
|
|
var $constructor, t1, trampoline, applyTrampoline, i, stub, stubCallName,
|
|
$function = functions[0],
|
|
callName = $function.$callName,
|
|
$prototype = isStatic ? Object.create(new H.StaticClosure().constructor.prototype) : Object.create(new H.BoundClosure(null, null, null, "").constructor.prototype);
|
|
$prototype.$initialize = $prototype.constructor;
|
|
if (isStatic)
|
|
$constructor = function static_tear_off() {
|
|
this.$initialize();
|
|
};
|
|
else {
|
|
t1 = $.Closure_functionCounter;
|
|
if (typeof t1 !== "number")
|
|
return t1.$add();
|
|
$.Closure_functionCounter = t1 + 1;
|
|
t1 = new Function("a,b,c,d" + t1, "this.$initialize(a,b,c,d" + t1 + ")");
|
|
$constructor = t1;
|
|
}
|
|
$prototype.constructor = $constructor;
|
|
$constructor.prototype = $prototype;
|
|
if (!isStatic) {
|
|
trampoline = H.Closure_forwardCallTo(receiver, $function, isIntercepted);
|
|
trampoline.$reflectionInfo = reflectionInfo;
|
|
} else {
|
|
$prototype.$static_name = propertyName;
|
|
trampoline = $function;
|
|
}
|
|
type$.Object._as(reflectionInfo);
|
|
$prototype.$signature = H.Closure__computeSignatureFunctionNewRti(reflectionInfo, isStatic, isIntercepted);
|
|
$prototype[callName] = trampoline;
|
|
for (applyTrampoline = trampoline, i = 1; i < functions.length; ++i) {
|
|
stub = functions[i];
|
|
stubCallName = stub.$callName;
|
|
if (stubCallName != null) {
|
|
stub = isStatic ? stub : H.Closure_forwardCallTo(receiver, stub, isIntercepted);
|
|
$prototype[stubCallName] = stub;
|
|
}
|
|
if (i === applyTrampolineIndex) {
|
|
stub.$reflectionInfo = reflectionInfo;
|
|
applyTrampoline = stub;
|
|
}
|
|
}
|
|
$prototype["call*"] = applyTrampoline;
|
|
$prototype.$requiredArgCount = $function.$requiredArgCount;
|
|
$prototype.$defaultValues = $function.$defaultValues;
|
|
return $constructor;
|
|
},
|
|
Closure__computeSignatureFunctionNewRti: function (functionType, isStatic, isIntercepted) {
|
|
var typeEvalMethod;
|
|
if (typeof functionType == "number")
|
|
return function (getType, t) {
|
|
return function () {
|
|
return getType(t);
|
|
};
|
|
}(H.getTypeFromTypesTable, functionType);
|
|
if (typeof functionType == "string") {
|
|
if (isStatic)
|
|
throw H.wrapException("Cannot compute signature for static tearoff.");
|
|
typeEvalMethod = isIntercepted ? H.BoundClosure_evalRecipeIntercepted : H.BoundClosure_evalRecipe;
|
|
return function (recipe, evalOnReceiver) {
|
|
return function () {
|
|
return evalOnReceiver(this, recipe);
|
|
};
|
|
}(functionType, typeEvalMethod);
|
|
}
|
|
throw H.wrapException("Error in functionType of tearoff");
|
|
},
|
|
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, selfName, $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 = $.Closure_functionCounter;
|
|
if (typeof t1 !== "number")
|
|
return t1.$add();
|
|
$.Closure_functionCounter = t1 + 1;
|
|
selfName = "self" + t1;
|
|
return new Function("return function(){var " + selfName + " = this." + H.BoundClosure_selfFieldName() + ";return " + selfName + "." + H.S(stubName) + "();}")();
|
|
}
|
|
$arguments = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity).join(",");
|
|
t1 = $.Closure_functionCounter;
|
|
if (typeof t1 !== "number")
|
|
return t1.$add();
|
|
$.Closure_functionCounter = t1 + 1;
|
|
$arguments += t1;
|
|
return new Function("return function(" + $arguments + "){return this." + H.BoundClosure_selfFieldName() + "." + H.S(stubName) + "(" + $arguments + ");}")();
|
|
},
|
|
Closure_cspForwardInterceptedCall: function (arity, isSuperCall, $name, $function) {
|
|
var 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 stubName, arity, lookedUpFunction, t1, t2, $arguments,
|
|
selfField = H.BoundClosure_selfFieldName(),
|
|
receiverField = $.BoundClosure_receiverFieldNameCache;
|
|
if (receiverField == null)
|
|
receiverField = $.BoundClosure_receiverFieldNameCache = H.BoundClosure_computeFieldNamed("receiver");
|
|
stubName = $function.$stubName;
|
|
arity = $function.length;
|
|
lookedUpFunction = receiver[stubName];
|
|
t1 = $function == null ? lookedUpFunction == null : $function === lookedUpFunction;
|
|
t2 = !t1 || arity >= 28;
|
|
if (t2)
|
|
return H.Closure_cspForwardInterceptedCall(arity, !t1, stubName, $function);
|
|
if (arity === 1) {
|
|
t1 = "return function(){return this." + selfField + "." + H.S(stubName) + "(this." + receiverField + ");";
|
|
t2 = $.Closure_functionCounter;
|
|
if (typeof t2 !== "number")
|
|
return t2.$add();
|
|
$.Closure_functionCounter = t2 + 1;
|
|
return new Function(t1 + t2 + "}")();
|
|
}
|
|
$arguments = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity - 1).join(",");
|
|
t1 = "return function(" + $arguments + "){return this." + selfField + "." + H.S(stubName) + "(this." + receiverField + ", " + $arguments + ");";
|
|
t2 = $.Closure_functionCounter;
|
|
if (typeof t2 !== "number")
|
|
return t2.$add();
|
|
$.Closure_functionCounter = t2 + 1;
|
|
return new Function(t1 + t2 + "}")();
|
|
},
|
|
closureFromTearOff: function (receiver, functions, applyTrampolineIndex, reflectionInfo, isStatic, isIntercepted, $name) {
|
|
return H.Closure_fromTearOff(receiver, functions, applyTrampolineIndex, reflectionInfo, !!isStatic, !!isIntercepted, $name);
|
|
},
|
|
BoundClosure_evalRecipe: function (closure, recipe) {
|
|
return H._Universe_evalInEnvironment(init.typeUniverse, H.instanceType(closure._self), recipe);
|
|
},
|
|
BoundClosure_evalRecipeIntercepted: function (closure, recipe) {
|
|
return H._Universe_evalInEnvironment(init.typeUniverse, H.instanceType(closure._receiver), recipe);
|
|
},
|
|
BoundClosure_selfOf: function (closure) {
|
|
return closure._self;
|
|
},
|
|
BoundClosure_receiverOf: function (closure) {
|
|
return closure._receiver;
|
|
},
|
|
BoundClosure_selfFieldName: function () {
|
|
var t1 = $.BoundClosure_selfFieldNameCache;
|
|
return t1 == null ? $.BoundClosure_selfFieldNameCache = H.BoundClosure_computeFieldNamed("self") : t1;
|
|
},
|
|
BoundClosure_computeFieldNamed: function (fieldName) {
|
|
var t1, i, $name,
|
|
template = new H.BoundClosure("self", "target", "receiver", "name"),
|
|
names = J.JSArray_markFixedList(Object.getOwnPropertyNames(template), type$.nullable_Object);
|
|
for (t1 = names.length, i = 0; i < t1; ++i) {
|
|
$name = names[i];
|
|
if (template[$name] === fieldName)
|
|
return $name;
|
|
}
|
|
throw H.wrapException(P.ArgumentError$("Field name " + fieldName + " not found."));
|
|
},
|
|
boolConversionCheck: function (value) {
|
|
if (value == null)
|
|
H.assertThrow("boolean expression must not be null");
|
|
return value;
|
|
},
|
|
assertThrow: function (message) {
|
|
throw H.wrapException(new H._AssertionError(message));
|
|
},
|
|
throwCyclicInit: function (staticName) {
|
|
throw H.wrapException(new P.CyclicInitializationError(staticName));
|
|
},
|
|
getIsolateAffinityTag: function ($name) {
|
|
return init.getIsolateTag($name);
|
|
},
|
|
throwLateInitializationError: function ($name) {
|
|
return H.throwExpression(new H.LateError($name));
|
|
},
|
|
defineProperty: function (obj, property, value) {
|
|
Object.defineProperty(obj, property, {
|
|
value: value,
|
|
enumerable: false,
|
|
writable: true,
|
|
configurable: true
|
|
});
|
|
},
|
|
lookupAndCacheInterceptor: function (obj) {
|
|
var interceptor, interceptorClass, altTag, mark, t1,
|
|
tag = H._asString($.getTagFunction.call$1(obj)),
|
|
record = $.dispatchRecordsForInstanceTags[tag];
|
|
if (record != null) {
|
|
Object.defineProperty(obj, init.dispatchPropertyName, {
|
|
value: record,
|
|
enumerable: false,
|
|
writable: true,
|
|
configurable: true
|
|
});
|
|
return record.i;
|
|
}
|
|
interceptor = $.interceptorsForUncacheableTags[tag];
|
|
if (interceptor != null)
|
|
return interceptor;
|
|
interceptorClass = init.interceptorsByTag[tag];
|
|
if (interceptorClass == null) {
|
|
altTag = H._asStringQ($.alternateTagFunction.call$2(obj, tag));
|
|
if (altTag != null) {
|
|
record = $.dispatchRecordsForInstanceTags[altTag];
|
|
if (record != null) {
|
|
Object.defineProperty(obj, init.dispatchPropertyName, {
|
|
value: record,
|
|
enumerable: false,
|
|
writable: true,
|
|
configurable: true
|
|
});
|
|
return record.i;
|
|
}
|
|
interceptor = $.interceptorsForUncacheableTags[altTag];
|
|
if (interceptor != null)
|
|
return interceptor;
|
|
interceptorClass = init.interceptorsByTag[altTag];
|
|
tag = altTag;
|
|
}
|
|
}
|
|
if (interceptorClass == null)
|
|
return null;
|
|
interceptor = interceptorClass.prototype;
|
|
mark = tag[0];
|
|
if (mark === "!") {
|
|
record = H.makeLeafDispatchRecord(interceptor);
|
|
$.dispatchRecordsForInstanceTags[tag] = record;
|
|
Object.defineProperty(obj, init.dispatchPropertyName, {
|
|
value: record,
|
|
enumerable: false,
|
|
writable: true,
|
|
configurable: true
|
|
});
|
|
return record.i;
|
|
}
|
|
if (mark === "~") {
|
|
$.interceptorsForUncacheableTags[tag] = interceptor;
|
|
return interceptor;
|
|
}
|
|
if (mark === "-") {
|
|
t1 = H.makeLeafDispatchRecord(interceptor);
|
|
Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {
|
|
value: t1,
|
|
enumerable: false,
|
|
writable: true,
|
|
configurable: true
|
|
});
|
|
return t1.i;
|
|
}
|
|
if (mark === "+")
|
|
return H.patchInteriorProto(obj, interceptor);
|
|
if (mark === "*")
|
|
throw H.wrapException(P.UnimplementedError$(tag));
|
|
if (init.leafTags[tag] === true) {
|
|
t1 = H.makeLeafDispatchRecord(interceptor);
|
|
Object.defineProperty(Object.getPrototypeOf(obj), init.dispatchPropertyName, {
|
|
value: t1,
|
|
enumerable: false,
|
|
writable: true,
|
|
configurable: true
|
|
});
|
|
return t1.i;
|
|
} else
|
|
return H.patchInteriorProto(obj, interceptor);
|
|
},
|
|
patchInteriorProto: function (obj, interceptor) {
|
|
var proto = Object.getPrototypeOf(obj);
|
|
Object.defineProperty(proto, init.dispatchPropertyName, {
|
|
value: J.makeDispatchRecord(interceptor, proto, null, null),
|
|
enumerable: false,
|
|
writable: true,
|
|
configurable: true
|
|
});
|
|
return interceptor;
|
|
},
|
|
makeLeafDispatchRecord: function (interceptor) {
|
|
return J.makeDispatchRecord(interceptor, false, null, !!interceptor.$isJavaScriptIndexingBehavior);
|
|
},
|
|
makeDefaultDispatchRecord: function (tag, interceptorClass, proto) {
|
|
var interceptor = interceptorClass.prototype;
|
|
if (init.leafTags[tag] === true)
|
|
return H.makeLeafDispatchRecord(interceptor);
|
|
else
|
|
return J.makeDispatchRecord(interceptor, proto, null, null);
|
|
},
|
|
initNativeDispatch: function () {
|
|
if (true === $.initNativeDispatchFlag)
|
|
return;
|
|
$.initNativeDispatchFlag = true;
|
|
H.initNativeDispatchContinue();
|
|
},
|
|
initNativeDispatchContinue: function () {
|
|
var map, tags, fun, i, tag, proto, record, interceptorClass;
|
|
$.dispatchRecordsForInstanceTags = Object.create(null);
|
|
$.interceptorsForUncacheableTags = Object.create(null);
|
|
H.initHooks();
|
|
map = init.interceptorsByTag;
|
|
tags = Object.getOwnPropertyNames(map);
|
|
if (typeof window != "undefined") {
|
|
window;
|
|
fun = function () {};
|
|
for (i = 0; i < tags.length; ++i) {
|
|
tag = tags[i];
|
|
proto = $.prototypeForTagFunction.call$1(tag);
|
|
if (proto != null) {
|
|
record = H.makeDefaultDispatchRecord(tag, map[tag], proto);
|
|
if (record != null) {
|
|
Object.defineProperty(proto, init.dispatchPropertyName, {
|
|
value: record,
|
|
enumerable: false,
|
|
writable: true,
|
|
configurable: true
|
|
});
|
|
fun.prototype = proto;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for (i = 0; i < tags.length; ++i) {
|
|
tag = tags[i];
|
|
if (/^[A-Za-z_]/.test(tag)) {
|
|
interceptorClass = map[tag];
|
|
map["!" + tag] = interceptorClass;
|
|
map["~" + tag] = interceptorClass;
|
|
map["-" + tag] = interceptorClass;
|
|
map["+" + tag] = interceptorClass;
|
|
map["*" + tag] = interceptorClass;
|
|
}
|
|
}
|
|
},
|
|
initHooks: function () {
|
|
var transformers, i, transformer, getTag, getUnknownTag, prototypeForTag,
|
|
hooks = C.C_JS_CONST0();
|
|
hooks = H.applyHooksTransformer(C.C_JS_CONST1, H.applyHooksTransformer(C.C_JS_CONST2, H.applyHooksTransformer(C.C_JS_CONST3, H.applyHooksTransformer(C.C_JS_CONST3, H.applyHooksTransformer(C.C_JS_CONST4, H.applyHooksTransformer(C.C_JS_CONST5, H.applyHooksTransformer(C.C_JS_CONST6(C.C_JS_CONST), hooks)))))));
|
|
if (typeof dartNativeDispatchHooksTransformer != "undefined") {
|
|
transformers = dartNativeDispatchHooksTransformer;
|
|
if (typeof transformers == "function")
|
|
transformers = [transformers];
|
|
if (transformers.constructor == Array)
|
|
for (i = 0; i < transformers.length; ++i) {
|
|
transformer = transformers[i];
|
|
if (typeof transformer == "function")
|
|
hooks = transformer(hooks) || hooks;
|
|
}
|
|
}
|
|
getTag = hooks.getTag;
|
|
getUnknownTag = hooks.getUnknownTag;
|
|
prototypeForTag = hooks.prototypeForTag;
|
|
$.getTagFunction = new H.initHooks_closure(getTag);
|
|
$.alternateTagFunction = new H.initHooks_closure0(getUnknownTag);
|
|
$.prototypeForTagFunction = new H.initHooks_closure1(prototypeForTag);
|
|
},
|
|
applyHooksTransformer: function (transformer, hooks) {
|
|
return transformer(hooks) || hooks;
|
|
},
|
|
quoteStringForRegExp: function (string) {
|
|
if (/[[\]{}()*+?.\\^$|]/.test(string))
|
|
return string.replace(/[[\]{}()*+?.\\^$|]/g, "\\$&");
|
|
return string;
|
|
},
|
|
TypeErrorDecoder: function TypeErrorDecoder(t0, t1, t2, t3, t4, t5) {
|
|
var _ = this;
|
|
_._pattern = t0;
|
|
_._arguments = t1;
|
|
_._argumentsExpr = t2;
|
|
_._expr = t3;
|
|
_._method = t4;
|
|
_._receiver = t5;
|
|
},
|
|
NullError: function NullError(t0, t1) {
|
|
this.__js_helper$_message = t0;
|
|
this._method = t1;
|
|
},
|
|
JsNoSuchMethodError: function JsNoSuchMethodError(t0, t1, t2) {
|
|
this.__js_helper$_message = t0;
|
|
this._method = t1;
|
|
this._receiver = t2;
|
|
},
|
|
UnknownJsTypeError: function UnknownJsTypeError(t0) {
|
|
this.__js_helper$_message = t0;
|
|
},
|
|
NullThrownFromJavaScriptException: function NullThrownFromJavaScriptException(t0) {
|
|
this._irritant = t0;
|
|
},
|
|
_StackTrace: function _StackTrace(t0) {
|
|
this._exception = t0;
|
|
this._trace = null;
|
|
},
|
|
Closure: function Closure() {},
|
|
TearOffClosure: function TearOffClosure() {},
|
|
StaticClosure: function StaticClosure() {},
|
|
BoundClosure: function BoundClosure(t0, t1, t2, t3) {
|
|
var _ = this;
|
|
_._self = t0;
|
|
_._target = t1;
|
|
_._receiver = t2;
|
|
_._name = t3;
|
|
},
|
|
RuntimeError: function RuntimeError(t0) {
|
|
this.message = t0;
|
|
},
|
|
_AssertionError: function _AssertionError(t0) {
|
|
this.message = t0;
|
|
},
|
|
JsLinkedHashMap: function JsLinkedHashMap(t0) {
|
|
var _ = this;
|
|
_._length = 0;
|
|
_._last = _._first = _._rest = _._nums = _._strings = null;
|
|
_._modifications = 0;
|
|
_.$ti = t0;
|
|
},
|
|
JsLinkedHashMap_values_closure: function JsLinkedHashMap_values_closure(t0) {
|
|
this.$this = t0;
|
|
},
|
|
JsLinkedHashMap_containsValue_closure: function JsLinkedHashMap_containsValue_closure(t0, t1) {
|
|
this.$this = t0;
|
|
this.value = t1;
|
|
},
|
|
LinkedHashMapCell: function LinkedHashMapCell(t0, t1) {
|
|
var _ = this;
|
|
_.hashMapCellKey = t0;
|
|
_.hashMapCellValue = t1;
|
|
_._previous = _._next = null;
|
|
},
|
|
LinkedHashMapKeyIterable: function LinkedHashMapKeyIterable(t0, t1) {
|
|
this._map = t0;
|
|
this.$ti = t1;
|
|
},
|
|
LinkedHashMapKeyIterator: function LinkedHashMapKeyIterator(t0, t1, t2) {
|
|
var _ = this;
|
|
_._map = t0;
|
|
_._modifications = t1;
|
|
_.__js_helper$_current = _._cell = null;
|
|
_.$ti = t2;
|
|
},
|
|
initHooks_closure: function initHooks_closure(t0) {
|
|
this.getTag = t0;
|
|
},
|
|
initHooks_closure0: function initHooks_closure0(t0) {
|
|
this.getUnknownTag = t0;
|
|
},
|
|
initHooks_closure1: function initHooks_closure1(t0) {
|
|
this.prototypeForTag = t0;
|
|
},
|
|
Rti__getQuestionFromStar: function (universe, rti) {
|
|
var question = rti._precomputed1;
|
|
return question == null ? rti._precomputed1 = H._Universe__lookupQuestionRti(universe, rti._primary, true) : question;
|
|
},
|
|
Rti__getFutureFromFutureOr: function (universe, rti) {
|
|
var future = rti._precomputed1;
|
|
return future == null ? rti._precomputed1 = H._Universe__lookupInterfaceRti(universe, "Future", [rti._primary]) : future;
|
|
},
|
|
Rti__isUnionOfFunctionType: function (rti) {
|
|
var kind = rti._kind;
|
|
if (kind === 6 || kind === 7 || kind === 8)
|
|
return H.Rti__isUnionOfFunctionType(rti._primary);
|
|
return kind === 11 || kind === 12;
|
|
},
|
|
Rti__getCanonicalRecipe: function (rti) {
|
|
return rti._canonicalRecipe;
|
|
},
|
|
findType: function (recipe) {
|
|
return H._Universe_eval(init.typeUniverse, recipe, false);
|
|
},
|
|
_substitute: function (universe, rti, typeArguments, depth) {
|
|
var baseType, substitutedBaseType, interfaceTypeArguments, substitutedInterfaceTypeArguments, base, substitutedBase, $arguments, substitutedArguments, returnType, substitutedReturnType, functionParameters, substitutedFunctionParameters, bounds, substitutedBounds, index, argument,
|
|
kind = rti._kind;
|
|
switch (kind) {
|
|
case 5:
|
|
case 1:
|
|
case 2:
|
|
case 3:
|
|
case 4:
|
|
return rti;
|
|
case 6:
|
|
baseType = rti._primary;
|
|
substitutedBaseType = H._substitute(universe, baseType, typeArguments, depth);
|
|
if (substitutedBaseType === baseType)
|
|
return rti;
|
|
return H._Universe__lookupStarRti(universe, substitutedBaseType, true);
|
|
case 7:
|
|
baseType = rti._primary;
|
|
substitutedBaseType = H._substitute(universe, baseType, typeArguments, depth);
|
|
if (substitutedBaseType === baseType)
|
|
return rti;
|
|
return H._Universe__lookupQuestionRti(universe, substitutedBaseType, true);
|
|
case 8:
|
|
baseType = rti._primary;
|
|
substitutedBaseType = H._substitute(universe, baseType, typeArguments, depth);
|
|
if (substitutedBaseType === baseType)
|
|
return rti;
|
|
return H._Universe__lookupFutureOrRti(universe, substitutedBaseType, true);
|
|
case 9:
|
|
interfaceTypeArguments = rti.__rti$_rest;
|
|
substitutedInterfaceTypeArguments = H._substituteArray(universe, interfaceTypeArguments, typeArguments, depth);
|
|
if (substitutedInterfaceTypeArguments === interfaceTypeArguments)
|
|
return rti;
|
|
return H._Universe__lookupInterfaceRti(universe, rti._primary, substitutedInterfaceTypeArguments);
|
|
case 10:
|
|
base = rti._primary;
|
|
substitutedBase = H._substitute(universe, base, typeArguments, depth);
|
|
$arguments = rti.__rti$_rest;
|
|
substitutedArguments = H._substituteArray(universe, $arguments, typeArguments, depth);
|
|
if (substitutedBase === base && substitutedArguments === $arguments)
|
|
return rti;
|
|
return H._Universe__lookupBindingRti(universe, substitutedBase, substitutedArguments);
|
|
case 11:
|
|
returnType = rti._primary;
|
|
substitutedReturnType = H._substitute(universe, returnType, typeArguments, depth);
|
|
functionParameters = rti.__rti$_rest;
|
|
substitutedFunctionParameters = H._substituteFunctionParameters(universe, functionParameters, typeArguments, depth);
|
|
if (substitutedReturnType === returnType && substitutedFunctionParameters === functionParameters)
|
|
return rti;
|
|
return H._Universe__lookupFunctionRti(universe, substitutedReturnType, substitutedFunctionParameters);
|
|
case 12:
|
|
bounds = rti.__rti$_rest;
|
|
depth += bounds.length;
|
|
substitutedBounds = H._substituteArray(universe, bounds, typeArguments, depth);
|
|
base = rti._primary;
|
|
substitutedBase = H._substitute(universe, base, typeArguments, depth);
|
|
if (substitutedBounds === bounds && substitutedBase === base)
|
|
return rti;
|
|
return H._Universe__lookupGenericFunctionRti(universe, substitutedBase, substitutedBounds, true);
|
|
case 13:
|
|
index = rti._primary;
|
|
if (index < depth)
|
|
return rti;
|
|
argument = typeArguments[index - depth];
|
|
if (argument == null)
|
|
return rti;
|
|
return argument;
|
|
default:
|
|
throw H.wrapException(P.AssertionError$("Attempted to substitute unexpected RTI kind " + kind));
|
|
}
|
|
},
|
|
_substituteArray: function (universe, rtiArray, typeArguments, depth) {
|
|
var changed, i, rti, substitutedRti,
|
|
$length = rtiArray.length,
|
|
result = [];
|
|
for (changed = false, i = 0; i < $length; ++i) {
|
|
rti = rtiArray[i];
|
|
substitutedRti = H._substitute(universe, rti, typeArguments, depth);
|
|
if (substitutedRti !== rti)
|
|
changed = true;
|
|
result.push(substitutedRti);
|
|
}
|
|
return changed ? result : rtiArray;
|
|
},
|
|
_substituteNamed: function (universe, namedArray, typeArguments, depth) {
|
|
var changed, i, t1, t2, rti, substitutedRti,
|
|
$length = namedArray.length,
|
|
result = [];
|
|
for (changed = false, i = 0; i < $length; i += 3) {
|
|
t1 = namedArray[i];
|
|
t2 = namedArray[i + 1];
|
|
rti = namedArray[i + 2];
|
|
substitutedRti = H._substitute(universe, rti, typeArguments, depth);
|
|
if (substitutedRti !== rti)
|
|
changed = true;
|
|
result.push(t1);
|
|
result.push(t2);
|
|
result.push(substitutedRti);
|
|
}
|
|
return changed ? result : namedArray;
|
|
},
|
|
_substituteFunctionParameters: function (universe, functionParameters, typeArguments, depth) {
|
|
var result,
|
|
requiredPositional = functionParameters._requiredPositional,
|
|
substitutedRequiredPositional = H._substituteArray(universe, requiredPositional, typeArguments, depth),
|
|
optionalPositional = functionParameters._optionalPositional,
|
|
substitutedOptionalPositional = H._substituteArray(universe, optionalPositional, typeArguments, depth),
|
|
named = functionParameters._named,
|
|
substitutedNamed = H._substituteNamed(universe, named, typeArguments, depth);
|
|
if (substitutedRequiredPositional === requiredPositional && substitutedOptionalPositional === optionalPositional && substitutedNamed === named)
|
|
return functionParameters;
|
|
result = new H._FunctionParameters();
|
|
result._requiredPositional = substitutedRequiredPositional;
|
|
result._optionalPositional = substitutedOptionalPositional;
|
|
result._named = substitutedNamed;
|
|
return result;
|
|
},
|
|
setRuntimeTypeInfo: function (target, rti) {
|
|
target[init.arrayRti] = rti;
|
|
return target;
|
|
},
|
|
closureFunctionType: function (closure) {
|
|
var signature = closure.$signature;
|
|
if (signature != null) {
|
|
if (typeof signature == "number")
|
|
return H.getTypeFromTypesTable(signature);
|
|
return closure.$signature();
|
|
}
|
|
return null;
|
|
},
|
|
instanceOrFunctionType: function (object, testRti) {
|
|
var rti;
|
|
if (H.Rti__isUnionOfFunctionType(testRti))
|
|
if (object instanceof H.Closure) {
|
|
rti = H.closureFunctionType(object);
|
|
if (rti != null)
|
|
return rti;
|
|
}
|
|
return H.instanceType(object);
|
|
},
|
|
instanceType: function (object) {
|
|
var rti;
|
|
if (object instanceof P.Object) {
|
|
rti = object.$ti;
|
|
return rti != null ? rti : H._instanceTypeFromConstructor(object);
|
|
}
|
|
if (Array.isArray(object))
|
|
return H._arrayInstanceType(object);
|
|
return H._instanceTypeFromConstructor(J.getInterceptor$(object));
|
|
},
|
|
_arrayInstanceType: function (object) {
|
|
var rti = object[init.arrayRti],
|
|
defaultRti = type$.JSArray_dynamic;
|
|
if (rti == null)
|
|
return defaultRti;
|
|
if (rti.constructor !== defaultRti.constructor)
|
|
return defaultRti;
|
|
return rti;
|
|
},
|
|
_instanceType: function (object) {
|
|
var rti = object.$ti;
|
|
return rti != null ? rti : H._instanceTypeFromConstructor(object);
|
|
},
|
|
_instanceTypeFromConstructor: function (instance) {
|
|
var $constructor = instance.constructor,
|
|
probe = $constructor.$ccache;
|
|
if (probe != null)
|
|
return probe;
|
|
return H._instanceTypeFromConstructorMiss(instance, $constructor);
|
|
},
|
|
_instanceTypeFromConstructorMiss: function (instance, $constructor) {
|
|
var effectiveConstructor = instance instanceof H.Closure ? instance.__proto__.__proto__.constructor : $constructor,
|
|
rti = H._Universe_findErasedType(init.typeUniverse, effectiveConstructor.name);
|
|
$constructor.$ccache = rti;
|
|
return rti;
|
|
},
|
|
getTypeFromTypesTable: function (index) {
|
|
var table, type, rti;
|
|
H._asInt(index);
|
|
table = init.types;
|
|
type = table[index];
|
|
if (typeof type == "string") {
|
|
rti = H._Universe_eval(init.typeUniverse, type, false);
|
|
table[index] = rti;
|
|
return rti;
|
|
}
|
|
return type;
|
|
},
|
|
_installSpecializedIsTest: function (object) {
|
|
var t1, unstarred, isFn, testRti = this;
|
|
if (testRti === type$.Object)
|
|
return H._finishIsFn(testRti, object, H._isObject);
|
|
if (!H.isStrongTopType(testRti))
|
|
if (!(testRti === type$.legacy_Object))
|
|
t1 = false;
|
|
else
|
|
t1 = true;
|
|
else
|
|
t1 = true;
|
|
if (t1)
|
|
return H._finishIsFn(testRti, object, H._isTop);
|
|
t1 = testRti._kind;
|
|
unstarred = t1 === 6 ? testRti._primary : testRti;
|
|
if (unstarred === type$.int)
|
|
isFn = H._isInt;
|
|
else if (unstarred === type$.double || unstarred === type$.num)
|
|
isFn = H._isNum;
|
|
else if (unstarred === type$.String)
|
|
isFn = H._isString;
|
|
else
|
|
isFn = unstarred === type$.bool ? H._isBool : null;
|
|
if (isFn != null)
|
|
return H._finishIsFn(testRti, object, isFn);
|
|
if (unstarred._kind === 9) {
|
|
t1 = unstarred._primary;
|
|
if (unstarred.__rti$_rest.every(H.isTopType)) {
|
|
testRti._specializedTestResource = "$is" + t1;
|
|
return H._finishIsFn(testRti, object, H._isTestViaProperty);
|
|
}
|
|
} else if (t1 === 7)
|
|
return H._finishIsFn(testRti, object, H._generalNullableIsTestImplementation);
|
|
return H._finishIsFn(testRti, object, H._generalIsTestImplementation);
|
|
},
|
|
_finishIsFn: function (testRti, object, isFn) {
|
|
testRti._is = isFn;
|
|
return testRti._is(object);
|
|
},
|
|
_installSpecializedAsCheck: function (object) {
|
|
var t1, testRti = this,
|
|
asFn = H._generalAsCheckImplementation;
|
|
if (!H.isStrongTopType(testRti))
|
|
if (!(testRti === type$.legacy_Object))
|
|
t1 = false;
|
|
else
|
|
t1 = true;
|
|
else
|
|
t1 = true;
|
|
if (t1)
|
|
asFn = H._asTop;
|
|
else if (testRti === type$.Object)
|
|
asFn = H._asObject;
|
|
else {
|
|
t1 = H.isNullable(testRti);
|
|
if (t1)
|
|
asFn = H._generalNullableAsCheckImplementation;
|
|
}
|
|
testRti._as = asFn;
|
|
return testRti._as(object);
|
|
},
|
|
_nullIs: function (testRti) {
|
|
var t1,
|
|
kind = testRti._kind;
|
|
if (!H.isStrongTopType(testRti))
|
|
if (!(testRti === type$.legacy_Object))
|
|
if (!(testRti === type$.legacy_Never))
|
|
if (kind !== 7)
|
|
t1 = kind === 8 && H._nullIs(testRti._primary) || testRti === type$.Null || testRti === type$.JSNull;
|
|
else
|
|
t1 = true;
|
|
else
|
|
t1 = true;
|
|
else
|
|
t1 = true;
|
|
else
|
|
t1 = true;
|
|
return t1;
|
|
},
|
|
_generalIsTestImplementation: function (object) {
|
|
var testRti = this;
|
|
if (object == null)
|
|
return H._nullIs(testRti);
|
|
return H._isSubtype(init.typeUniverse, H.instanceOrFunctionType(object, testRti), null, testRti, null);
|
|
},
|
|
_generalNullableIsTestImplementation: function (object) {
|
|
if (object == null)
|
|
return true;
|
|
return this._primary._is(object);
|
|
},
|
|
_isTestViaProperty: function (object) {
|
|
var tag, testRti = this;
|
|
if (object == null)
|
|
return H._nullIs(testRti);
|
|
tag = testRti._specializedTestResource;
|
|
if (object instanceof P.Object)
|
|
return !!object[tag];
|
|
return !!J.getInterceptor$(object)[tag];
|
|
},
|
|
_generalAsCheckImplementation: function (object) {
|
|
var t1, testRti = this;
|
|
if (object == null) {
|
|
t1 = H.isNullable(testRti);
|
|
if (t1)
|
|
return object;
|
|
} else if (testRti._is(object))
|
|
return object;
|
|
H._failedAsCheck(object, testRti);
|
|
},
|
|
_generalNullableAsCheckImplementation: function (object) {
|
|
var testRti = this;
|
|
if (object == null)
|
|
return object;
|
|
else if (testRti._is(object))
|
|
return object;
|
|
H._failedAsCheck(object, testRti);
|
|
},
|
|
_failedAsCheck: function (object, testRti) {
|
|
throw H.wrapException(H._TypeError$fromMessage(H._Error_compose(object, H.instanceOrFunctionType(object, testRti), H._rtiToString(testRti, null))));
|
|
},
|
|
checkTypeBound: function (type, bound, variable, methodName) {
|
|
var _null = null;
|
|
if (H._isSubtype(init.typeUniverse, type, _null, bound, _null))
|
|
return type;
|
|
throw H.wrapException(H._TypeError$fromMessage("The type argument '" + H._rtiToString(type, _null) + "' is not a subtype of the type variable bound '" + H._rtiToString(bound, _null) + "' of type variable '" + variable + "' in '" + methodName + "'."));
|
|
},
|
|
_Error_compose: function (object, objectRti, checkedTypeDescription) {
|
|
var objectDescription = P.Error_safeToString(object),
|
|
objectTypeDescription = H._rtiToString(objectRti == null ? H.instanceType(object) : objectRti, null);
|
|
return objectDescription + ": type '" + objectTypeDescription + "' is not a subtype of type '" + checkedTypeDescription + "'";
|
|
},
|
|
_TypeError$fromMessage: function (message) {
|
|
return new H._TypeError("TypeError: " + message);
|
|
},
|
|
_TypeError__TypeError$forType: function (object, type) {
|
|
return new H._TypeError("TypeError: " + H._Error_compose(object, null, type));
|
|
},
|
|
_isObject: function (object) {
|
|
return object != null;
|
|
},
|
|
_asObject: function (object) {
|
|
if (object != null)
|
|
return object;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "Object"));
|
|
},
|
|
_isTop: function (object) {
|
|
return true;
|
|
},
|
|
_asTop: function (object) {
|
|
return object;
|
|
},
|
|
_isBool: function (object) {
|
|
return true === object || false === object;
|
|
},
|
|
_asBool: function (object) {
|
|
if (true === object)
|
|
return true;
|
|
if (false === object)
|
|
return false;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "bool"));
|
|
},
|
|
_asBoolS: function (object) {
|
|
if (true === object)
|
|
return true;
|
|
if (false === object)
|
|
return false;
|
|
if (object == null)
|
|
return object;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "bool"));
|
|
},
|
|
_asBoolQ: function (object) {
|
|
if (true === object)
|
|
return true;
|
|
if (false === object)
|
|
return false;
|
|
if (object == null)
|
|
return object;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "bool?"));
|
|
},
|
|
_asDouble: function (object) {
|
|
if (typeof object == "number")
|
|
return object;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "double"));
|
|
},
|
|
_asDoubleS: function (object) {
|
|
if (typeof object == "number")
|
|
return object;
|
|
if (object == null)
|
|
return object;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "double"));
|
|
},
|
|
_asDoubleQ: function (object) {
|
|
if (typeof object == "number")
|
|
return object;
|
|
if (object == null)
|
|
return object;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "double?"));
|
|
},
|
|
_isInt: function (object) {
|
|
return typeof object == "number" && Math.floor(object) === object;
|
|
},
|
|
_asInt: function (object) {
|
|
if (typeof object == "number" && Math.floor(object) === object)
|
|
return object;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "int"));
|
|
},
|
|
_asIntS: function (object) {
|
|
if (typeof object == "number" && Math.floor(object) === object)
|
|
return object;
|
|
if (object == null)
|
|
return object;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "int"));
|
|
},
|
|
_asIntQ: function (object) {
|
|
if (typeof object == "number" && Math.floor(object) === object)
|
|
return object;
|
|
if (object == null)
|
|
return object;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "int?"));
|
|
},
|
|
_isNum: function (object) {
|
|
return typeof object == "number";
|
|
},
|
|
_asNum: function (object) {
|
|
if (typeof object == "number")
|
|
return object;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "num"));
|
|
},
|
|
_asNumS: function (object) {
|
|
if (typeof object == "number")
|
|
return object;
|
|
if (object == null)
|
|
return object;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "num"));
|
|
},
|
|
_asNumQ: function (object) {
|
|
if (typeof object == "number")
|
|
return object;
|
|
if (object == null)
|
|
return object;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "num?"));
|
|
},
|
|
_isString: function (object) {
|
|
return typeof object == "string";
|
|
},
|
|
_asString: function (object) {
|
|
if (typeof object == "string")
|
|
return object;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "String"));
|
|
},
|
|
_asStringS: function (object) {
|
|
if (typeof object == "string")
|
|
return object;
|
|
if (object == null)
|
|
return object;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "String"));
|
|
},
|
|
_asStringQ: function (object) {
|
|
if (typeof object == "string")
|
|
return object;
|
|
if (object == null)
|
|
return object;
|
|
throw H.wrapException(H._TypeError__TypeError$forType(object, "String?"));
|
|
},
|
|
_rtiArrayToString: function (array, genericContext) {
|
|
var s, sep, i;
|
|
for (s = "", sep = "", i = 0; i < array.length; ++i, sep = ", ")
|
|
s += sep + H._rtiToString(array[i], genericContext);
|
|
return s;
|
|
},
|
|
_functionRtiToString: function (functionType, genericContext, bounds) {
|
|
var boundsLength, outerContextLength, offset, i, t1, t2, typeParametersText, typeSep, t3, t4, boundRti, kind, parameters, requiredPositional, requiredPositionalLength, optionalPositional, optionalPositionalLength, named, namedLength, returnTypeText, argumentsText, sep, _s2_ = ", ";
|
|
if (bounds != null) {
|
|
boundsLength = bounds.length;
|
|
if (genericContext == null) {
|
|
genericContext = H.setRuntimeTypeInfo([], type$.JSArray_String);
|
|
outerContextLength = null;
|
|
} else
|
|
outerContextLength = genericContext.length;
|
|
offset = genericContext.length;
|
|
for (i = boundsLength; i > 0; --i)
|
|
C.JSArray_methods.add$1(genericContext, "T" + (offset + i));
|
|
for (t1 = type$.nullable_Object, t2 = type$.legacy_Object, typeParametersText = "<", typeSep = "", i = 0; i < boundsLength; ++i, typeSep = _s2_) {
|
|
typeParametersText += typeSep;
|
|
t3 = genericContext.length;
|
|
t4 = t3 - 1 - i;
|
|
if (t4 < 0)
|
|
return H.ioore(genericContext, t4);
|
|
typeParametersText = C.JSString_methods.$add(typeParametersText, genericContext[t4]);
|
|
boundRti = bounds[i];
|
|
kind = boundRti._kind;
|
|
if (!(kind === 2 || kind === 3 || kind === 4 || kind === 5 || boundRti === t1))
|
|
if (!(boundRti === t2))
|
|
t3 = false;
|
|
else
|
|
t3 = true;
|
|
else
|
|
t3 = true;
|
|
if (!t3)
|
|
typeParametersText += " extends " + H._rtiToString(boundRti, genericContext);
|
|
}
|
|
typeParametersText += ">";
|
|
} else {
|
|
typeParametersText = "";
|
|
outerContextLength = null;
|
|
}
|
|
t1 = functionType._primary;
|
|
parameters = functionType.__rti$_rest;
|
|
requiredPositional = parameters._requiredPositional;
|
|
requiredPositionalLength = requiredPositional.length;
|
|
optionalPositional = parameters._optionalPositional;
|
|
optionalPositionalLength = optionalPositional.length;
|
|
named = parameters._named;
|
|
namedLength = named.length;
|
|
returnTypeText = H._rtiToString(t1, genericContext);
|
|
for (argumentsText = "", sep = "", i = 0; i < requiredPositionalLength; ++i, sep = _s2_)
|
|
argumentsText += sep + H._rtiToString(requiredPositional[i], genericContext);
|
|
if (optionalPositionalLength > 0) {
|
|
argumentsText += sep + "[";
|
|
for (sep = "", i = 0; i < optionalPositionalLength; ++i, sep = _s2_)
|
|
argumentsText += sep + H._rtiToString(optionalPositional[i], genericContext);
|
|
argumentsText += "]";
|
|
}
|
|
if (namedLength > 0) {
|
|
argumentsText += sep + "{";
|
|
for (sep = "", i = 0; i < namedLength; i += 3, sep = _s2_) {
|
|
argumentsText += sep;
|
|
if (named[i + 1])
|
|
argumentsText += "required ";
|
|
argumentsText += H._rtiToString(named[i + 2], genericContext) + " " + named[i];
|
|
}
|
|
argumentsText += "}";
|
|
}
|
|
if (outerContextLength != null) {
|
|
genericContext.toString;
|
|
genericContext.length = outerContextLength;
|
|
}
|
|
return typeParametersText + "(" + argumentsText + ") => " + returnTypeText;
|
|
},
|
|
_rtiToString: function (rti, genericContext) {
|
|
var s, questionArgument, argumentKind, $name, $arguments, t1, t2,
|
|
kind = rti._kind;
|
|
if (kind === 5)
|
|
return "erased";
|
|
if (kind === 2)
|
|
return "dynamic";
|
|
if (kind === 3)
|
|
return "void";
|
|
if (kind === 1)
|
|
return "Never";
|
|
if (kind === 4)
|
|
return "any";
|
|
if (kind === 6) {
|
|
s = H._rtiToString(rti._primary, genericContext);
|
|
return s;
|
|
}
|
|
if (kind === 7) {
|
|
questionArgument = rti._primary;
|
|
s = H._rtiToString(questionArgument, genericContext);
|
|
argumentKind = questionArgument._kind;
|
|
return (argumentKind === 11 || argumentKind === 12 ? "(" + s + ")" : s) + "?";
|
|
}
|
|
if (kind === 8)
|
|
return "FutureOr<" + H._rtiToString(rti._primary, genericContext) + ">";
|
|
if (kind === 9) {
|
|
$name = H._unminifyOrTag(rti._primary);
|
|
$arguments = rti.__rti$_rest;
|
|
return $arguments.length !== 0 ? $name + ("<" + H._rtiArrayToString($arguments, genericContext) + ">") : $name;
|
|
}
|
|
if (kind === 11)
|
|
return H._functionRtiToString(rti, genericContext, null);
|
|
if (kind === 12)
|
|
return H._functionRtiToString(rti._primary, genericContext, rti.__rti$_rest);
|
|
if (kind === 13) {
|
|
t1 = rti._primary;
|
|
t2 = genericContext.length;
|
|
t1 = t2 - 1 - t1;
|
|
if (t1 < 0 || t1 >= t2)
|
|
return H.ioore(genericContext, t1);
|
|
return genericContext[t1];
|
|
}
|
|
return "?";
|
|
},
|
|
_unminifyOrTag: function (rawClassName) {
|
|
var preserved = H.unmangleGlobalNameIfPreservedAnyways(rawClassName);
|
|
if (preserved != null)
|
|
return preserved;
|
|
return rawClassName;
|
|
},
|
|
_Universe_findRule: function (universe, targetType) {
|
|
var rule = universe.tR[targetType];
|
|
for (; typeof rule == "string";)
|
|
rule = universe.tR[rule];
|
|
return rule;
|
|
},
|
|
_Universe_findErasedType: function (universe, cls) {
|
|
var $length, erased, $arguments, i, $interface,
|
|
t1 = universe.eT,
|
|
probe = t1[cls];
|
|
if (probe == null)
|
|
return H._Universe_eval(universe, cls, false);
|
|
else if (typeof probe == "number") {
|
|
$length = probe;
|
|
erased = H._Universe__lookupTerminalRti(universe, 5, "#");
|
|
$arguments = [];
|
|
for (i = 0; i < $length; ++i)
|
|
$arguments.push(erased);
|
|
$interface = H._Universe__lookupInterfaceRti(universe, cls, $arguments);
|
|
t1[cls] = $interface;
|
|
return $interface;
|
|
} else
|
|
return probe;
|
|
},
|
|
_Universe_addRules: function (universe, rules) {
|
|
return H._Utils_objectAssign(universe.tR, rules);
|
|
},
|
|
_Universe_addErasedTypes: function (universe, types) {
|
|
return H._Utils_objectAssign(universe.eT, types);
|
|
},
|
|
_Universe_eval: function (universe, recipe, normalize) {
|
|
var rti,
|
|
t1 = universe.eC,
|
|
probe = t1.get(recipe);
|
|
if (probe != null)
|
|
return probe;
|
|
rti = H._Parser_parse(H._Parser_create(universe, null, recipe, normalize));
|
|
t1.set(recipe, rti);
|
|
return rti;
|
|
},
|
|
_Universe_evalInEnvironment: function (universe, environment, recipe) {
|
|
var probe, rti,
|
|
cache = environment._evalCache;
|
|
if (cache == null)
|
|
cache = environment._evalCache = new Map();
|
|
probe = cache.get(recipe);
|
|
if (probe != null)
|
|
return probe;
|
|
rti = H._Parser_parse(H._Parser_create(universe, environment, recipe, true));
|
|
cache.set(recipe, rti);
|
|
return rti;
|
|
},
|
|
_Universe_bind: function (universe, environment, argumentsRti) {
|
|
var argumentsRecipe, probe, rti,
|
|
cache = environment._bindCache;
|
|
if (cache == null)
|
|
cache = environment._bindCache = new Map();
|
|
argumentsRecipe = argumentsRti._canonicalRecipe;
|
|
probe = cache.get(argumentsRecipe);
|
|
if (probe != null)
|
|
return probe;
|
|
rti = H._Universe__lookupBindingRti(universe, environment, argumentsRti._kind === 10 ? argumentsRti.__rti$_rest : [argumentsRti]);
|
|
cache.set(argumentsRecipe, rti);
|
|
return rti;
|
|
},
|
|
_Universe__installTypeTests: function (universe, rti) {
|
|
rti._as = H._installSpecializedAsCheck;
|
|
rti._is = H._installSpecializedIsTest;
|
|
return rti;
|
|
},
|
|
_Universe__lookupTerminalRti: function (universe, kind, key) {
|
|
var rti, t1,
|
|
probe = universe.eC.get(key);
|
|
if (probe != null)
|
|
return probe;
|
|
rti = new H.Rti(null, null);
|
|
rti._kind = kind;
|
|
rti._canonicalRecipe = key;
|
|
t1 = H._Universe__installTypeTests(universe, rti);
|
|
universe.eC.set(key, t1);
|
|
return t1;
|
|
},
|
|
_Universe__lookupStarRti: function (universe, baseType, normalize) {
|
|
var t1,
|
|
key = baseType._canonicalRecipe + "*",
|
|
probe = universe.eC.get(key);
|
|
if (probe != null)
|
|
return probe;
|
|
t1 = H._Universe__createStarRti(universe, baseType, key, normalize);
|
|
universe.eC.set(key, t1);
|
|
return t1;
|
|
},
|
|
_Universe__createStarRti: function (universe, baseType, key, normalize) {
|
|
var baseKind, t1, rti;
|
|
if (normalize) {
|
|
baseKind = baseType._kind;
|
|
if (!H.isStrongTopType(baseType))
|
|
t1 = baseType === type$.Null || baseType === type$.JSNull || baseKind === 7 || baseKind === 6;
|
|
else
|
|
t1 = true;
|
|
if (t1)
|
|
return baseType;
|
|
}
|
|
rti = new H.Rti(null, null);
|
|
rti._kind = 6;
|
|
rti._primary = baseType;
|
|
rti._canonicalRecipe = key;
|
|
return H._Universe__installTypeTests(universe, rti);
|
|
},
|
|
_Universe__lookupQuestionRti: function (universe, baseType, normalize) {
|
|
var t1,
|
|
key = baseType._canonicalRecipe + "?",
|
|
probe = universe.eC.get(key);
|
|
if (probe != null)
|
|
return probe;
|
|
t1 = H._Universe__createQuestionRti(universe, baseType, key, normalize);
|
|
universe.eC.set(key, t1);
|
|
return t1;
|
|
},
|
|
_Universe__createQuestionRti: function (universe, baseType, key, normalize) {
|
|
var baseKind, t1, starArgument, rti;
|
|
if (normalize) {
|
|
baseKind = baseType._kind;
|
|
if (!H.isStrongTopType(baseType))
|
|
if (!(baseType === type$.Null || baseType === type$.JSNull))
|
|
if (baseKind !== 7)
|
|
t1 = baseKind === 8 && H.isNullable(baseType._primary);
|
|
else
|
|
t1 = true;
|
|
else
|
|
t1 = true;
|
|
else
|
|
t1 = true;
|
|
if (t1)
|
|
return baseType;
|
|
else if (baseKind === 1 || baseType === type$.legacy_Never)
|
|
return type$.Null;
|
|
else if (baseKind === 6) {
|
|
starArgument = baseType._primary;
|
|
if (starArgument._kind === 8 && H.isNullable(starArgument._primary))
|
|
return starArgument;
|
|
else
|
|
return H.Rti__getQuestionFromStar(universe, baseType);
|
|
}
|
|
}
|
|
rti = new H.Rti(null, null);
|
|
rti._kind = 7;
|
|
rti._primary = baseType;
|
|
rti._canonicalRecipe = key;
|
|
return H._Universe__installTypeTests(universe, rti);
|
|
},
|
|
_Universe__lookupFutureOrRti: function (universe, baseType, normalize) {
|
|
var t1,
|
|
key = baseType._canonicalRecipe + "/",
|
|
probe = universe.eC.get(key);
|
|
if (probe != null)
|
|
return probe;
|
|
t1 = H._Universe__createFutureOrRti(universe, baseType, key, normalize);
|
|
universe.eC.set(key, t1);
|
|
return t1;
|
|
},
|
|
_Universe__createFutureOrRti: function (universe, baseType, key, normalize) {
|
|
var t1, t2, rti;
|
|
if (normalize) {
|
|
t1 = baseType._kind;
|
|
if (!H.isStrongTopType(baseType))
|
|
if (!(baseType === type$.legacy_Object))
|
|
t2 = false;
|
|
else
|
|
t2 = true;
|
|
else
|
|
t2 = true;
|
|
if (t2 || baseType === type$.Object)
|
|
return baseType;
|
|
else if (t1 === 1)
|
|
return H._Universe__lookupInterfaceRti(universe, "Future", [baseType]);
|
|
else if (baseType === type$.Null || baseType === type$.JSNull)
|
|
return type$.nullable_Future_Null;
|
|
}
|
|
rti = new H.Rti(null, null);
|
|
rti._kind = 8;
|
|
rti._primary = baseType;
|
|
rti._canonicalRecipe = key;
|
|
return H._Universe__installTypeTests(universe, rti);
|
|
},
|
|
_Universe__lookupGenericFunctionParameterRti: function (universe, index) {
|
|
var rti, t1,
|
|
key = "" + index + "^",
|
|
probe = universe.eC.get(key);
|
|
if (probe != null)
|
|
return probe;
|
|
rti = new H.Rti(null, null);
|
|
rti._kind = 13;
|
|
rti._primary = index;
|
|
rti._canonicalRecipe = key;
|
|
t1 = H._Universe__installTypeTests(universe, rti);
|
|
universe.eC.set(key, t1);
|
|
return t1;
|
|
},
|
|
_Universe__canonicalRecipeJoin: function ($arguments) {
|
|
var s, sep, i,
|
|
$length = $arguments.length;
|
|
for (s = "", sep = "", i = 0; i < $length; ++i, sep = ",")
|
|
s += sep + $arguments[i]._canonicalRecipe;
|
|
return s;
|
|
},
|
|
_Universe__canonicalRecipeJoinNamed: function ($arguments) {
|
|
var s, sep, i, t1, nameSep, s0,
|
|
$length = $arguments.length;
|
|
for (s = "", sep = "", i = 0; i < $length; i += 3, sep = ",") {
|
|
t1 = $arguments[i];
|
|
nameSep = $arguments[i + 1] ? "!" : ":";
|
|
s0 = $arguments[i + 2]._canonicalRecipe;
|
|
s += sep + t1 + nameSep + s0;
|
|
}
|
|
return s;
|
|
},
|
|
_Universe__lookupInterfaceRti: function (universe, $name, $arguments) {
|
|
var probe, rti, t1,
|
|
s = $name;
|
|
if ($arguments.length !== 0)
|
|
s += "<" + H._Universe__canonicalRecipeJoin($arguments) + ">";
|
|
probe = universe.eC.get(s);
|
|
if (probe != null)
|
|
return probe;
|
|
rti = new H.Rti(null, null);
|
|
rti._kind = 9;
|
|
rti._primary = $name;
|
|
rti.__rti$_rest = $arguments;
|
|
if ($arguments.length > 0)
|
|
rti._precomputed1 = $arguments[0];
|
|
rti._canonicalRecipe = s;
|
|
t1 = H._Universe__installTypeTests(universe, rti);
|
|
universe.eC.set(s, t1);
|
|
return t1;
|
|
},
|
|
_Universe__lookupBindingRti: function (universe, base, $arguments) {
|
|
var newBase, newArguments, key, probe, rti, t1;
|
|
if (base._kind === 10) {
|
|
newBase = base._primary;
|
|
newArguments = base.__rti$_rest.concat($arguments);
|
|
} else {
|
|
newArguments = $arguments;
|
|
newBase = base;
|
|
}
|
|
key = newBase._canonicalRecipe + (";<" + H._Universe__canonicalRecipeJoin(newArguments) + ">");
|
|
probe = universe.eC.get(key);
|
|
if (probe != null)
|
|
return probe;
|
|
rti = new H.Rti(null, null);
|
|
rti._kind = 10;
|
|
rti._primary = newBase;
|
|
rti.__rti$_rest = newArguments;
|
|
rti._canonicalRecipe = key;
|
|
t1 = H._Universe__installTypeTests(universe, rti);
|
|
universe.eC.set(key, t1);
|
|
return t1;
|
|
},
|
|
_Universe__lookupFunctionRti: function (universe, returnType, parameters) {
|
|
var sep, t1, key, probe, rti,
|
|
s = returnType._canonicalRecipe,
|
|
requiredPositional = parameters._requiredPositional,
|
|
requiredPositionalLength = requiredPositional.length,
|
|
optionalPositional = parameters._optionalPositional,
|
|
optionalPositionalLength = optionalPositional.length,
|
|
named = parameters._named,
|
|
namedLength = named.length,
|
|
recipe = "(" + H._Universe__canonicalRecipeJoin(requiredPositional);
|
|
if (optionalPositionalLength > 0) {
|
|
sep = requiredPositionalLength > 0 ? "," : "";
|
|
t1 = H._Universe__canonicalRecipeJoin(optionalPositional);
|
|
recipe += sep + "[" + t1 + "]";
|
|
}
|
|
if (namedLength > 0) {
|
|
sep = requiredPositionalLength > 0 ? "," : "";
|
|
t1 = H._Universe__canonicalRecipeJoinNamed(named);
|
|
recipe += sep + "{" + t1 + "}";
|
|
}
|
|
key = s + (recipe + ")");
|
|
probe = universe.eC.get(key);
|
|
if (probe != null)
|
|
return probe;
|
|
rti = new H.Rti(null, null);
|
|
rti._kind = 11;
|
|
rti._primary = returnType;
|
|
rti.__rti$_rest = parameters;
|
|
rti._canonicalRecipe = key;
|
|
t1 = H._Universe__installTypeTests(universe, rti);
|
|
universe.eC.set(key, t1);
|
|
return t1;
|
|
},
|
|
_Universe__lookupGenericFunctionRti: function (universe, baseFunctionType, bounds, normalize) {
|
|
var t1,
|
|
key = baseFunctionType._canonicalRecipe + ("<" + H._Universe__canonicalRecipeJoin(bounds) + ">"),
|
|
probe = universe.eC.get(key);
|
|
if (probe != null)
|
|
return probe;
|
|
t1 = H._Universe__createGenericFunctionRti(universe, baseFunctionType, bounds, key, normalize);
|
|
universe.eC.set(key, t1);
|
|
return t1;
|
|
},
|
|
_Universe__createGenericFunctionRti: function (universe, baseFunctionType, bounds, key, normalize) {
|
|
var $length, typeArguments, count, i, bound, substitutedBase, substitutedBounds, rti;
|
|
if (normalize) {
|
|
$length = bounds.length;
|
|
typeArguments = new Array($length);
|
|
for (count = 0, i = 0; i < $length; ++i) {
|
|
bound = bounds[i];
|
|
if (bound._kind === 1) {
|
|
typeArguments[i] = bound;
|
|
++count;
|
|
}
|
|
}
|
|
if (count > 0) {
|
|
substitutedBase = H._substitute(universe, baseFunctionType, typeArguments, 0);
|
|
substitutedBounds = H._substituteArray(universe, bounds, typeArguments, 0);
|
|
return H._Universe__lookupGenericFunctionRti(universe, substitutedBase, substitutedBounds, bounds !== substitutedBounds);
|
|
}
|
|
}
|
|
rti = new H.Rti(null, null);
|
|
rti._kind = 12;
|
|
rti._primary = baseFunctionType;
|
|
rti.__rti$_rest = bounds;
|
|
rti._canonicalRecipe = key;
|
|
return H._Universe__installTypeTests(universe, rti);
|
|
},
|
|
_Parser_create: function (universe, environment, recipe, normalize) {
|
|
return {
|
|
u: universe,
|
|
e: environment,
|
|
r: recipe,
|
|
s: [],
|
|
p: 0,
|
|
n: normalize
|
|
};
|
|
},
|
|
_Parser_parse: function (parser) {
|
|
var t2, i, ch, t3, array, head, base, parameters, optionalPositional, named, item,
|
|
source = parser.r,
|
|
t1 = parser.s;
|
|
for (t2 = source.length, i = 0; i < t2;) {
|
|
ch = source.charCodeAt(i);
|
|
if (ch >= 48 && ch <= 57)
|
|
i = H._Parser_handleDigit(i + 1, ch, source, t1);
|
|
else if ((((ch | 32) >>> 0) - 97 & 65535) < 26 || ch === 95 || ch === 36)
|
|
i = H._Parser_handleIdentifier(parser, i, source, t1, false);
|
|
else if (ch === 46)
|
|
i = H._Parser_handleIdentifier(parser, i, source, t1, true);
|
|
else {
|
|
++i;
|
|
switch (ch) {
|
|
case 44:
|
|
break;
|
|
case 58:
|
|
t1.push(false);
|
|
break;
|
|
case 33:
|
|
t1.push(true);
|
|
break;
|
|
case 59:
|
|
t1.push(H._Parser_toType(parser.u, parser.e, t1.pop()));
|
|
break;
|
|
case 94:
|
|
t1.push(H._Universe__lookupGenericFunctionParameterRti(parser.u, t1.pop()));
|
|
break;
|
|
case 35:
|
|
t1.push(H._Universe__lookupTerminalRti(parser.u, 5, "#"));
|
|
break;
|
|
case 64:
|
|
t1.push(H._Universe__lookupTerminalRti(parser.u, 2, "@"));
|
|
break;
|
|
case 126:
|
|
t1.push(H._Universe__lookupTerminalRti(parser.u, 3, "~"));
|
|
break;
|
|
case 60:
|
|
t1.push(parser.p);
|
|
parser.p = t1.length;
|
|
break;
|
|
case 62:
|
|
t3 = parser.u;
|
|
array = t1.splice(parser.p);
|
|
H._Parser_toTypes(parser.u, parser.e, array);
|
|
parser.p = t1.pop();
|
|
head = t1.pop();
|
|
if (typeof head == "string")
|
|
t1.push(H._Universe__lookupInterfaceRti(t3, head, array));
|
|
else {
|
|
base = H._Parser_toType(t3, parser.e, head);
|
|
switch (base._kind) {
|
|
case 11:
|
|
t1.push(H._Universe__lookupGenericFunctionRti(t3, base, array, parser.n));
|
|
break;
|
|
default:
|
|
t1.push(H._Universe__lookupBindingRti(t3, base, array));
|
|
break;
|
|
}
|
|
}
|
|
break;
|
|
case 38:
|
|
H._Parser_handleExtendedOperations(parser, t1);
|
|
break;
|
|
case 42:
|
|
t3 = parser.u;
|
|
t1.push(H._Universe__lookupStarRti(t3, H._Parser_toType(t3, parser.e, t1.pop()), parser.n));
|
|
break;
|
|
case 63:
|
|
t3 = parser.u;
|
|
t1.push(H._Universe__lookupQuestionRti(t3, H._Parser_toType(t3, parser.e, t1.pop()), parser.n));
|
|
break;
|
|
case 47:
|
|
t3 = parser.u;
|
|
t1.push(H._Universe__lookupFutureOrRti(t3, H._Parser_toType(t3, parser.e, t1.pop()), parser.n));
|
|
break;
|
|
case 40:
|
|
t1.push(parser.p);
|
|
parser.p = t1.length;
|
|
break;
|
|
case 41:
|
|
t3 = parser.u;
|
|
parameters = new H._FunctionParameters();
|
|
optionalPositional = t3.sEA;
|
|
named = t3.sEA;
|
|
head = t1.pop();
|
|
if (typeof head == "number")
|
|
switch (head) {
|
|
case -1:
|
|
optionalPositional = t1.pop();
|
|
break;
|
|
case -2:
|
|
named = t1.pop();
|
|
break;
|
|
default:
|
|
t1.push(head);
|
|
break;
|
|
}
|
|
else
|
|
t1.push(head);
|
|
array = t1.splice(parser.p);
|
|
H._Parser_toTypes(parser.u, parser.e, array);
|
|
parser.p = t1.pop();
|
|
parameters._requiredPositional = array;
|
|
parameters._optionalPositional = optionalPositional;
|
|
parameters._named = named;
|
|
t1.push(H._Universe__lookupFunctionRti(t3, H._Parser_toType(t3, parser.e, t1.pop()), parameters));
|
|
break;
|
|
case 91:
|
|
t1.push(parser.p);
|
|
parser.p = t1.length;
|
|
break;
|
|
case 93:
|
|
array = t1.splice(parser.p);
|
|
H._Parser_toTypes(parser.u, parser.e, array);
|
|
parser.p = t1.pop();
|
|
t1.push(array);
|
|
t1.push(-1);
|
|
break;
|
|
case 123:
|
|
t1.push(parser.p);
|
|
parser.p = t1.length;
|
|
break;
|
|
case 125:
|
|
array = t1.splice(parser.p);
|
|
H._Parser_toTypesNamed(parser.u, parser.e, array);
|
|
parser.p = t1.pop();
|
|
t1.push(array);
|
|
t1.push(-2);
|
|
break;
|
|
default:
|
|
throw "Bad character " + ch;
|
|
}
|
|
}
|
|
}
|
|
item = t1.pop();
|
|
return H._Parser_toType(parser.u, parser.e, item);
|
|
},
|
|
_Parser_handleDigit: function (i, digit, source, stack) {
|
|
var t1, ch,
|
|
value = digit - 48;
|
|
for (t1 = source.length; i < t1; ++i) {
|
|
ch = source.charCodeAt(i);
|
|
if (!(ch >= 48 && ch <= 57))
|
|
break;
|
|
value = value * 10 + (ch - 48);
|
|
}
|
|
stack.push(value);
|
|
return i;
|
|
},
|
|
_Parser_handleIdentifier: function (parser, start, source, stack, hasPeriod) {
|
|
var t1, ch, t2, string, environment, recipe,
|
|
i = start + 1;
|
|
for (t1 = source.length; i < t1; ++i) {
|
|
ch = source.charCodeAt(i);
|
|
if (ch === 46) {
|
|
if (hasPeriod)
|
|
break;
|
|
hasPeriod = true;
|
|
} else {
|
|
if (!((((ch | 32) >>> 0) - 97 & 65535) < 26 || ch === 95 || ch === 36))
|
|
t2 = ch >= 48 && ch <= 57;
|
|
else
|
|
t2 = true;
|
|
if (!t2)
|
|
break;
|
|
}
|
|
}
|
|
string = source.substring(start, i);
|
|
if (hasPeriod) {
|
|
t1 = parser.u;
|
|
environment = parser.e;
|
|
if (environment._kind === 10)
|
|
environment = environment._primary;
|
|
recipe = H._Universe_findRule(t1, environment._primary)[string];
|
|
if (recipe == null)
|
|
H.throwExpression('No "' + string + '" in "' + H.Rti__getCanonicalRecipe(environment) + '"');
|
|
stack.push(H._Universe_evalInEnvironment(t1, environment, recipe));
|
|
} else
|
|
stack.push(string);
|
|
return i;
|
|
},
|
|
_Parser_handleExtendedOperations: function (parser, stack) {
|
|
var $top = stack.pop();
|
|
if (0 === $top) {
|
|
stack.push(H._Universe__lookupTerminalRti(parser.u, 1, "0&"));
|
|
return;
|
|
}
|
|
if (1 === $top) {
|
|
stack.push(H._Universe__lookupTerminalRti(parser.u, 4, "1&"));
|
|
return;
|
|
}
|
|
throw H.wrapException(P.AssertionError$("Unexpected extended operation " + H.S($top)));
|
|
},
|
|
_Parser_toType: function (universe, environment, item) {
|
|
if (typeof item == "string")
|
|
return H._Universe__lookupInterfaceRti(universe, item, universe.sEA);
|
|
else if (typeof item == "number")
|
|
return H._Parser_indexToType(universe, environment, item);
|
|
else
|
|
return item;
|
|
},
|
|
_Parser_toTypes: function (universe, environment, items) {
|
|
var i,
|
|
$length = items.length;
|
|
for (i = 0; i < $length; ++i)
|
|
items[i] = H._Parser_toType(universe, environment, items[i]);
|
|
},
|
|
_Parser_toTypesNamed: function (universe, environment, items) {
|
|
var i,
|
|
$length = items.length;
|
|
for (i = 2; i < $length; i += 3)
|
|
items[i] = H._Parser_toType(universe, environment, items[i]);
|
|
},
|
|
_Parser_indexToType: function (universe, environment, index) {
|
|
var typeArguments, len,
|
|
kind = environment._kind;
|
|
if (kind === 10) {
|
|
if (index === 0)
|
|
return environment._primary;
|
|
typeArguments = environment.__rti$_rest;
|
|
len = typeArguments.length;
|
|
if (index <= len)
|
|
return typeArguments[index - 1];
|
|
index -= len;
|
|
environment = environment._primary;
|
|
kind = environment._kind;
|
|
} else if (index === 0)
|
|
return environment;
|
|
if (kind !== 9)
|
|
throw H.wrapException(P.AssertionError$("Indexed base must be an interface type"));
|
|
typeArguments = environment.__rti$_rest;
|
|
if (index <= typeArguments.length)
|
|
return typeArguments[index - 1];
|
|
throw H.wrapException(P.AssertionError$("Bad index " + index + " for " + environment.toString$0(0)));
|
|
},
|
|
_isSubtype: function (universe, s, sEnv, t, tEnv) {
|
|
var t1, sKind, leftTypeVariable, tKind, sBounds, tBounds, sLength, i, sBound, tBound;
|
|
if (s === t)
|
|
return true;
|
|
if (!H.isStrongTopType(t))
|
|
if (!(t === type$.legacy_Object))
|
|
t1 = false;
|
|
else
|
|
t1 = true;
|
|
else
|
|
t1 = true;
|
|
if (t1)
|
|
return true;
|
|
sKind = s._kind;
|
|
if (sKind === 4)
|
|
return true;
|
|
if (H.isStrongTopType(s))
|
|
return false;
|
|
if (s._kind !== 1)
|
|
t1 = false;
|
|
else
|
|
t1 = true;
|
|
if (t1)
|
|
return true;
|
|
leftTypeVariable = sKind === 13;
|
|
if (leftTypeVariable)
|
|
if (H._isSubtype(universe, sEnv[s._primary], sEnv, t, tEnv))
|
|
return true;
|
|
tKind = t._kind;
|
|
t1 = s === type$.Null || s === type$.JSNull;
|
|
if (t1) {
|
|
if (tKind === 8)
|
|
return H._isSubtype(universe, s, sEnv, t._primary, tEnv);
|
|
return t === type$.Null || t === type$.JSNull || tKind === 7 || tKind === 6;
|
|
}
|
|
if (t === type$.Object) {
|
|
if (sKind === 8)
|
|
return H._isSubtype(universe, s._primary, sEnv, t, tEnv);
|
|
if (sKind === 6)
|
|
return H._isSubtype(universe, s._primary, sEnv, t, tEnv);
|
|
return sKind !== 7;
|
|
}
|
|
if (sKind === 6)
|
|
return H._isSubtype(universe, s._primary, sEnv, t, tEnv);
|
|
if (tKind === 6) {
|
|
t1 = H.Rti__getQuestionFromStar(universe, t);
|
|
return H._isSubtype(universe, s, sEnv, t1, tEnv);
|
|
}
|
|
if (sKind === 8) {
|
|
if (!H._isSubtype(universe, s._primary, sEnv, t, tEnv))
|
|
return false;
|
|
return H._isSubtype(universe, H.Rti__getFutureFromFutureOr(universe, s), sEnv, t, tEnv);
|
|
}
|
|
if (sKind === 7) {
|
|
t1 = H._isSubtype(universe, type$.Null, sEnv, t, tEnv);
|
|
return t1 && H._isSubtype(universe, s._primary, sEnv, t, tEnv);
|
|
}
|
|
if (tKind === 8) {
|
|
if (H._isSubtype(universe, s, sEnv, t._primary, tEnv))
|
|
return true;
|
|
return H._isSubtype(universe, s, sEnv, H.Rti__getFutureFromFutureOr(universe, t), tEnv);
|
|
}
|
|
if (tKind === 7) {
|
|
t1 = H._isSubtype(universe, s, sEnv, type$.Null, tEnv);
|
|
return t1 || H._isSubtype(universe, s, sEnv, t._primary, tEnv);
|
|
}
|
|
if (leftTypeVariable)
|
|
return false;
|
|
t1 = sKind !== 11;
|
|
if ((!t1 || sKind === 12) && t === type$.Function)
|
|
return true;
|
|
if (tKind === 12) {
|
|
if (s === type$.JavaScriptFunction)
|
|
return true;
|
|
if (sKind !== 12)
|
|
return false;
|
|
sBounds = s.__rti$_rest;
|
|
tBounds = t.__rti$_rest;
|
|
sLength = sBounds.length;
|
|
if (sLength !== tBounds.length)
|
|
return false;
|
|
sEnv = sEnv == null ? sBounds : sBounds.concat(sEnv);
|
|
tEnv = tEnv == null ? tBounds : tBounds.concat(tEnv);
|
|
for (i = 0; i < sLength; ++i) {
|
|
sBound = sBounds[i];
|
|
tBound = tBounds[i];
|
|
if (!H._isSubtype(universe, sBound, sEnv, tBound, tEnv) || !H._isSubtype(universe, tBound, tEnv, sBound, sEnv))
|
|
return false;
|
|
}
|
|
return H._isFunctionSubtype(universe, s._primary, sEnv, t._primary, tEnv);
|
|
}
|
|
if (tKind === 11) {
|
|
if (s === type$.JavaScriptFunction)
|
|
return true;
|
|
if (t1)
|
|
return false;
|
|
return H._isFunctionSubtype(universe, s, sEnv, t, tEnv);
|
|
}
|
|
if (sKind === 9) {
|
|
if (tKind !== 9)
|
|
return false;
|
|
return H._isInterfaceSubtype(universe, s, sEnv, t, tEnv);
|
|
}
|
|
return false;
|
|
},
|
|
_isFunctionSubtype: function (universe, s, sEnv, t, tEnv) {
|
|
var sParameters, tParameters, sRequiredPositional, tRequiredPositional, sRequiredPositionalLength, tRequiredPositionalLength, requiredPositionalDelta, sOptionalPositional, tOptionalPositional, sOptionalPositionalLength, tOptionalPositionalLength, i, t1, sNamed, tNamed, sNamedLength, tNamedLength, sIndex, tIndex, tName, sName, sIsRequired;
|
|
if (!H._isSubtype(universe, s._primary, sEnv, t._primary, tEnv))
|
|
return false;
|
|
sParameters = s.__rti$_rest;
|
|
tParameters = t.__rti$_rest;
|
|
sRequiredPositional = sParameters._requiredPositional;
|
|
tRequiredPositional = tParameters._requiredPositional;
|
|
sRequiredPositionalLength = sRequiredPositional.length;
|
|
tRequiredPositionalLength = tRequiredPositional.length;
|
|
if (sRequiredPositionalLength > tRequiredPositionalLength)
|
|
return false;
|
|
requiredPositionalDelta = tRequiredPositionalLength - sRequiredPositionalLength;
|
|
sOptionalPositional = sParameters._optionalPositional;
|
|
tOptionalPositional = tParameters._optionalPositional;
|
|
sOptionalPositionalLength = sOptionalPositional.length;
|
|
tOptionalPositionalLength = tOptionalPositional.length;
|
|
if (sRequiredPositionalLength + sOptionalPositionalLength < tRequiredPositionalLength + tOptionalPositionalLength)
|
|
return false;
|
|
for (i = 0; i < sRequiredPositionalLength; ++i) {
|
|
t1 = sRequiredPositional[i];
|
|
if (!H._isSubtype(universe, tRequiredPositional[i], tEnv, t1, sEnv))
|
|
return false;
|
|
}
|
|
for (i = 0; i < requiredPositionalDelta; ++i) {
|
|
t1 = sOptionalPositional[i];
|
|
if (!H._isSubtype(universe, tRequiredPositional[sRequiredPositionalLength + i], tEnv, t1, sEnv))
|
|
return false;
|
|
}
|
|
for (i = 0; i < tOptionalPositionalLength; ++i) {
|
|
t1 = sOptionalPositional[requiredPositionalDelta + i];
|
|
if (!H._isSubtype(universe, tOptionalPositional[i], tEnv, t1, sEnv))
|
|
return false;
|
|
}
|
|
sNamed = sParameters._named;
|
|
tNamed = tParameters._named;
|
|
sNamedLength = sNamed.length;
|
|
tNamedLength = tNamed.length;
|
|
for (sIndex = 0, tIndex = 0; tIndex < tNamedLength; tIndex += 3) {
|
|
tName = tNamed[tIndex];
|
|
for (; true;) {
|
|
if (sIndex >= sNamedLength)
|
|
return false;
|
|
sName = sNamed[sIndex];
|
|
sIndex += 3;
|
|
if (tName < sName)
|
|
return false;
|
|
sIsRequired = sNamed[sIndex - 2];
|
|
if (sName < tName) {
|
|
if (sIsRequired)
|
|
return false;
|
|
continue;
|
|
}
|
|
t1 = tNamed[tIndex + 1];
|
|
if (sIsRequired && !t1)
|
|
return false;
|
|
t1 = sNamed[sIndex - 1];
|
|
if (!H._isSubtype(universe, tNamed[tIndex + 2], tEnv, t1, sEnv))
|
|
return false;
|
|
break;
|
|
}
|
|
}
|
|
for (; sIndex < sNamedLength;) {
|
|
if (sNamed[sIndex + 1])
|
|
return false;
|
|
sIndex += 3;
|
|
}
|
|
return true;
|
|
},
|
|
_isInterfaceSubtype: function (universe, s, sEnv, t, tEnv) {
|
|
var sArgs, tArgs, $length, i, t1, t2, rule, supertypeArgs,
|
|
sName = s._primary,
|
|
tName = t._primary;
|
|
if (sName === tName) {
|
|
sArgs = s.__rti$_rest;
|
|
tArgs = t.__rti$_rest;
|
|
$length = sArgs.length;
|
|
for (i = 0; i < $length; ++i) {
|
|
t1 = sArgs[i];
|
|
t2 = tArgs[i];
|
|
if (!H._isSubtype(universe, t1, sEnv, t2, tEnv))
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
if (t === type$.Object)
|
|
return true;
|
|
rule = H._Universe_findRule(universe, sName);
|
|
if (rule == null)
|
|
return false;
|
|
supertypeArgs = rule[tName];
|
|
if (supertypeArgs == null)
|
|
return false;
|
|
$length = supertypeArgs.length;
|
|
tArgs = t.__rti$_rest;
|
|
for (i = 0; i < $length; ++i)
|
|
if (!H._isSubtype(universe, H._Universe_evalInEnvironment(universe, s, supertypeArgs[i]), sEnv, tArgs[i], tEnv))
|
|
return false;
|
|
return true;
|
|
},
|
|
isNullable: function (t) {
|
|
var t1,
|
|
kind = t._kind;
|
|
if (!(t === type$.Null || t === type$.JSNull))
|
|
if (!H.isStrongTopType(t))
|
|
if (kind !== 7)
|
|
if (!(kind === 6 && H.isNullable(t._primary)))
|
|
t1 = kind === 8 && H.isNullable(t._primary);
|
|
else
|
|
t1 = true;
|
|
else
|
|
t1 = true;
|
|
else
|
|
t1 = true;
|
|
else
|
|
t1 = true;
|
|
return t1;
|
|
},
|
|
isTopType: function (t) {
|
|
var t1;
|
|
if (!H.isStrongTopType(t))
|
|
if (!(t === type$.legacy_Object))
|
|
t1 = false;
|
|
else
|
|
t1 = true;
|
|
else
|
|
t1 = true;
|
|
return t1;
|
|
},
|
|
isStrongTopType: function (t) {
|
|
var kind = t._kind;
|
|
return kind === 2 || kind === 3 || kind === 4 || kind === 5 || t === type$.nullable_Object;
|
|
},
|
|
_Utils_objectAssign: function (o, other) {
|
|
var i, key,
|
|
keys = Object.keys(other),
|
|
$length = keys.length;
|
|
for (i = 0; i < $length; ++i) {
|
|
key = keys[i];
|
|
o[key] = other[key];
|
|
}
|
|
},
|
|
Rti: function Rti(t0, t1) {
|
|
var _ = this;
|
|
_._as = t0;
|
|
_._is = t1;
|
|
_._cachedRuntimeType = _._specializedTestResource = _._precomputed1 = null;
|
|
_._kind = 0;
|
|
_._canonicalRecipe = _._bindCache = _._evalCache = _.__rti$_rest = _._primary = null;
|
|
},
|
|
_FunctionParameters: function _FunctionParameters() {
|
|
this._named = this._optionalPositional = this._requiredPositional = null;
|
|
},
|
|
_Error: function _Error() {},
|
|
_TypeError: function _TypeError(t0) {
|
|
this.__rti$_message = t0;
|
|
},
|
|
unmangleGlobalNameIfPreservedAnyways: function ($name) {
|
|
return init.mangledGlobalNames[$name];
|
|
},
|
|
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);
|
|
}
|
|
},
|
|
J = {
|
|
makeDispatchRecord: function (interceptor, proto, extension, indexability) {
|
|
return {
|
|
i: interceptor,
|
|
p: proto,
|
|
e: extension,
|
|
x: indexability
|
|
};
|
|
},
|
|
getNativeInterceptor: function (object) {
|
|
var proto, objectProto, $constructor, interceptor,
|
|
record = object[init.dispatchPropertyName];
|
|
if (record == null)
|
|
if ($.initNativeDispatchFlag == null) {
|
|
H.initNativeDispatch();
|
|
record = object[init.dispatchPropertyName];
|
|
}
|
|
if (record != null) {
|
|
proto = record.p;
|
|
if (false === proto)
|
|
return record.i;
|
|
if (true === proto)
|
|
return object;
|
|
objectProto = Object.getPrototypeOf(object);
|
|
if (proto === objectProto)
|
|
return record.i;
|
|
if (record.e === objectProto)
|
|
throw H.wrapException(P.UnimplementedError$("Return interceptor for " + H.S(proto(object, record))));
|
|
}
|
|
$constructor = object.constructor;
|
|
interceptor = $constructor == null ? null : $constructor[J.JS_INTEROP_INTERCEPTOR_TAG()];
|
|
if (interceptor != null)
|
|
return interceptor;
|
|
interceptor = H.lookupAndCacheInterceptor(object);
|
|
if (interceptor != null)
|
|
return interceptor;
|
|
if (typeof object == "function")
|
|
return C.JavaScriptFunction_methods;
|
|
proto = Object.getPrototypeOf(object);
|
|
if (proto == null)
|
|
return C.PlainJavaScriptObject_methods;
|
|
if (proto === Object.prototype)
|
|
return C.PlainJavaScriptObject_methods;
|
|
if (typeof $constructor == "function") {
|
|
Object.defineProperty($constructor, J.JS_INTEROP_INTERCEPTOR_TAG(), {
|
|
value: C.UnknownJavaScriptObject_methods,
|
|
enumerable: false,
|
|
writable: true,
|
|
configurable: true
|
|
});
|
|
return C.UnknownJavaScriptObject_methods;
|
|
}
|
|
return C.UnknownJavaScriptObject_methods;
|
|
},
|
|
JS_INTEROP_INTERCEPTOR_TAG: function () {
|
|
var t1 = $._JS_INTEROP_INTERCEPTOR_TAG;
|
|
return t1 == null ? $._JS_INTEROP_INTERCEPTOR_TAG = init.getIsolateTag("_$dart_js") : t1;
|
|
},
|
|
JSArray_JSArray$fixed: function ($length, $E) {
|
|
if ($length < 0 || $length > 4294967295)
|
|
throw H.wrapException(P.RangeError$range($length, 0, 4294967295, "length", null));
|
|
return J.JSArray_JSArray$markFixed(new Array($length), $E);
|
|
},
|
|
JSArray_JSArray$markFixed: function (allocation, $E) {
|
|
return J.JSArray_markFixedList(H.setRuntimeTypeInfo(allocation, $E._eval$1("JSArray<0>")), $E);
|
|
},
|
|
JSArray_markFixedList: function (list, $T) {
|
|
list.fixed$length = Array;
|
|
return list;
|
|
},
|
|
getInterceptor$: function (receiver) {
|
|
if (typeof receiver == "number") {
|
|
if (Math.floor(receiver) == receiver)
|
|
return J.JSInt.prototype;
|
|
return J.JSDouble.prototype;
|
|
}
|
|
if (typeof receiver == "string")
|
|
return J.JSString.prototype;
|
|
if (receiver == null)
|
|
return J.JSNull.prototype;
|
|
if (typeof receiver == "boolean")
|
|
return J.JSBool.prototype;
|
|
if (receiver.constructor == Array)
|
|
return J.JSArray.prototype;
|
|
if (typeof receiver != "object") {
|
|
if (typeof receiver == "function")
|
|
return J.JavaScriptFunction.prototype;
|
|
return receiver;
|
|
}
|
|
if (receiver instanceof P.Object)
|
|
return receiver;
|
|
return J.getNativeInterceptor(receiver);
|
|
},
|
|
getInterceptor$asx: function (receiver) {
|
|
if (typeof receiver == "string")
|
|
return J.JSString.prototype;
|
|
if (receiver == null)
|
|
return receiver;
|
|
if (receiver.constructor == Array)
|
|
return J.JSArray.prototype;
|
|
if (typeof receiver != "object") {
|
|
if (typeof receiver == "function")
|
|
return J.JavaScriptFunction.prototype;
|
|
return receiver;
|
|
}
|
|
if (receiver instanceof P.Object)
|
|
return receiver;
|
|
return J.getNativeInterceptor(receiver);
|
|
},
|
|
getInterceptor$ax: function (receiver) {
|
|
if (receiver == null)
|
|
return receiver;
|
|
if (receiver.constructor == Array)
|
|
return J.JSArray.prototype;
|
|
if (typeof receiver != "object") {
|
|
if (typeof receiver == "function")
|
|
return J.JavaScriptFunction.prototype;
|
|
return receiver;
|
|
}
|
|
if (receiver instanceof P.Object)
|
|
return receiver;
|
|
return J.getNativeInterceptor(receiver);
|
|
},
|
|
get$hashCode$: function (receiver) {
|
|
return J.getInterceptor$(receiver).get$hashCode(receiver);
|
|
},
|
|
get$iterator$ax: function (receiver) {
|
|
return J.getInterceptor$ax(receiver).get$iterator(receiver);
|
|
},
|
|
get$length$asx: function (receiver) {
|
|
return J.getInterceptor$asx(receiver).get$length(receiver);
|
|
},
|
|
$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);
|
|
},
|
|
toString$0$: function (receiver) {
|
|
return J.getInterceptor$(receiver).toString$0(receiver);
|
|
},
|
|
Interceptor: function Interceptor() {},
|
|
JSBool: function JSBool() {},
|
|
JSNull: function JSNull() {},
|
|
JavaScriptObject: function JavaScriptObject() {},
|
|
PlainJavaScriptObject: function PlainJavaScriptObject() {},
|
|
UnknownJavaScriptObject: function UnknownJavaScriptObject() {},
|
|
JavaScriptFunction: function JavaScriptFunction() {},
|
|
JSArray: function JSArray(t0) {
|
|
this.$ti = t0;
|
|
},
|
|
JSUnmodifiableArray: function JSUnmodifiableArray(t0) {
|
|
this.$ti = t0;
|
|
},
|
|
ArrayIterator: function ArrayIterator(t0, t1, t2) {
|
|
var _ = this;
|
|
_._iterable = t0;
|
|
_.__interceptors$_length = t1;
|
|
_._index = 0;
|
|
_._current = null;
|
|
_.$ti = t2;
|
|
},
|
|
JSNumber: function JSNumber() {},
|
|
JSInt: function JSInt() {},
|
|
JSDouble: function JSDouble() {},
|
|
JSString: function JSString() {}
|
|
},
|
|
P = {
|
|
_AsyncRun__initializeScheduleImmediate: function () {
|
|
var div, span, t1 = {};
|
|
if (self.scheduleImmediate != null)
|
|
return P.async__AsyncRun__scheduleImmediateJsOverride$closure();
|
|
if (self.MutationObserver != null && self.document != null) {
|
|
div = self.document.createElement("div");
|
|
span = self.document.createElement("span");
|
|
t1.storedCallback = 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.async__AsyncRun__scheduleImmediateWithSetImmediate$closure();
|
|
return P.async__AsyncRun__scheduleImmediateWithTimer$closure();
|
|
},
|
|
_AsyncRun__scheduleImmediateJsOverride: function (callback) {
|
|
self.scheduleImmediate(H.convertDartClosureToJS(new P._AsyncRun__scheduleImmediateJsOverride_internalCallback(type$.void_Function._as(callback)), 0));
|
|
},
|
|
_AsyncRun__scheduleImmediateWithSetImmediate: function (callback) {
|
|
self.setImmediate(H.convertDartClosureToJS(new P._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback(type$.void_Function._as(callback)), 0));
|
|
},
|
|
_AsyncRun__scheduleImmediateWithTimer: function (callback) {
|
|
P.Timer__createTimer(C.Duration_0, type$.void_Function._as(callback));
|
|
},
|
|
Timer__createTimer: function (duration, callback) {
|
|
var milliseconds = C.JSInt_methods._tdivFast$1(duration._duration, 1000);
|
|
return P._TimerImpl$(milliseconds < 0 ? 0 : milliseconds, callback);
|
|
},
|
|
_TimerImpl$: function (milliseconds, callback) {
|
|
var t1 = new P._TimerImpl();
|
|
t1._TimerImpl$2(milliseconds, callback);
|
|
return t1;
|
|
},
|
|
AsyncError$: function (error, stackTrace) {
|
|
var t1 = H.checkNotNullable(error, "error", type$.Object);
|
|
return new P.AsyncError(t1, stackTrace == null ? P.AsyncError_defaultStackTrace(error) : stackTrace);
|
|
},
|
|
AsyncError_defaultStackTrace: function (error) {
|
|
var stackTrace;
|
|
if (type$.Error._is(error)) {
|
|
stackTrace = error.get$stackTrace();
|
|
if (stackTrace != null)
|
|
return stackTrace;
|
|
}
|
|
return C.C__StringStackTrace;
|
|
},
|
|
Future_Future$delayed: function (duration, $T) {
|
|
var result,
|
|
t1 = !$T._is(null);
|
|
if (t1)
|
|
throw H.wrapException(P.ArgumentError$value(null, "computation", "The type parameter is not nullable"));
|
|
result = new P._Future($.Zone__current, $T._eval$1("_Future<0>"));
|
|
P.Timer_Timer(duration, new P.Future_Future$delayed_closure(null, result, $T));
|
|
return result;
|
|
},
|
|
_Future__chainCoreFuture: function (source, target) {
|
|
var t1, t2, listeners;
|
|
for (t1 = type$._Future_dynamic; t2 = source._state, t2 === 2;)
|
|
source = t1._as(source._resultOrListeners);
|
|
if (t2 >= 4) {
|
|
listeners = target._removeListeners$0();
|
|
target._state = source._state;
|
|
target._resultOrListeners = source._resultOrListeners;
|
|
P._Future__propagateToListeners(target, listeners);
|
|
} else {
|
|
listeners = type$.nullable__FutureListener_dynamic_dynamic._as(target._resultOrListeners);
|
|
target._state = 2;
|
|
target._resultOrListeners = source;
|
|
source._prependListeners$1(listeners);
|
|
}
|
|
},
|
|
_Future__propagateToListeners: function (source, listeners) {
|
|
var t2, t3, t4, _box_0, hasError, asyncError, nextListener, nextListener0, t5, sourceResult, t6, t7, zone, oldZone, result, current, _null = null,
|
|
_box_1 = {},
|
|
t1 = _box_1.source = source;
|
|
for (t2 = type$.AsyncError, t3 = type$.nullable__FutureListener_dynamic_dynamic, t4 = type$.Future_dynamic; true;) {
|
|
_box_0 = {};
|
|
hasError = t1._state === 8;
|
|
if (listeners == null) {
|
|
if (hasError) {
|
|
asyncError = t2._as(t1._resultOrListeners);
|
|
P._rootHandleUncaughtError(_null, _null, t1._zone, asyncError.error, asyncError.stackTrace);
|
|
}
|
|
return;
|
|
}
|
|
_box_0.listener = listeners;
|
|
nextListener = listeners._nextListener;
|
|
for (t1 = listeners; nextListener != null; t1 = nextListener, nextListener = nextListener0) {
|
|
t1._nextListener = null;
|
|
P._Future__propagateToListeners(_box_1.source, t1);
|
|
_box_0.listener = nextListener;
|
|
nextListener0 = nextListener._nextListener;
|
|
}
|
|
t5 = _box_1.source;
|
|
sourceResult = t5._resultOrListeners;
|
|
_box_0.listenerHasError = hasError;
|
|
_box_0.listenerValueOrError = sourceResult;
|
|
t6 = !hasError;
|
|
if (t6) {
|
|
t7 = t1.state;
|
|
t7 = (t7 & 1) !== 0 || (t7 & 15) === 8;
|
|
} else
|
|
t7 = true;
|
|
if (t7) {
|
|
zone = t1.result._zone;
|
|
if (hasError) {
|
|
t7 = t5._zone === zone;
|
|
t7 = !(t7 || t7);
|
|
} else
|
|
t7 = false;
|
|
if (t7) {
|
|
t2._as(sourceResult);
|
|
P._rootHandleUncaughtError(_null, _null, t5._zone, sourceResult.error, sourceResult.stackTrace);
|
|
return;
|
|
}
|
|
oldZone = $.Zone__current;
|
|
if (oldZone !== zone)
|
|
$.Zone__current = zone;
|
|
else
|
|
oldZone = _null;
|
|
t1 = t1.state;
|
|
if ((t1 & 15) === 8)
|
|
new P._Future__propagateToListeners_handleWhenCompleteCallback(_box_0, _box_1, hasError).call$0();
|
|
else if (t6) {
|
|
if ((t1 & 1) !== 0)
|
|
new P._Future__propagateToListeners_handleValueCallback(_box_0, sourceResult).call$0();
|
|
} else if ((t1 & 2) !== 0)
|
|
new P._Future__propagateToListeners_handleError(_box_1, _box_0).call$0();
|
|
if (oldZone != null)
|
|
$.Zone__current = oldZone;
|
|
t1 = _box_0.listenerValueOrError;
|
|
if (t4._is(t1)) {
|
|
t5 = _box_0.listener.$ti;
|
|
t5 = t5._eval$1("Future<2>")._is(t1) || !t5.__rti$_rest[1]._is(t1);
|
|
} else
|
|
t5 = false;
|
|
if (t5) {
|
|
t4._as(t1);
|
|
result = _box_0.listener.result;
|
|
if (t1._state >= 4) {
|
|
current = t3._as(result._resultOrListeners);
|
|
result._resultOrListeners = null;
|
|
listeners = result._reverseListeners$1(current);
|
|
result._state = t1._state;
|
|
result._resultOrListeners = t1._resultOrListeners;
|
|
_box_1.source = t1;
|
|
continue;
|
|
} else
|
|
P._Future__chainCoreFuture(t1, result);
|
|
return;
|
|
}
|
|
}
|
|
result = _box_0.listener.result;
|
|
current = t3._as(result._resultOrListeners);
|
|
result._resultOrListeners = null;
|
|
listeners = result._reverseListeners$1(current);
|
|
t1 = _box_0.listenerHasError;
|
|
t5 = _box_0.listenerValueOrError;
|
|
if (!t1) {
|
|
result.$ti._precomputed1._as(t5);
|
|
result._state = 4;
|
|
result._resultOrListeners = t5;
|
|
} else {
|
|
t2._as(t5);
|
|
result._state = 8;
|
|
result._resultOrListeners = t5;
|
|
}
|
|
_box_1.source = result;
|
|
t1 = result;
|
|
}
|
|
},
|
|
_registerErrorHandler: function (errorHandler, zone) {
|
|
var t1 = type$.dynamic_Function_Object_StackTrace;
|
|
if (t1._is(errorHandler))
|
|
return t1._as(errorHandler);
|
|
t1 = type$.dynamic_Function_Object;
|
|
if (t1._is(errorHandler))
|
|
return t1._as(errorHandler);
|
|
throw H.wrapException(P.ArgumentError$value(errorHandler, "onError", "Error handler must accept one Object or one Object and a StackTrace as arguments, and return a valid result"));
|
|
},
|
|
_microtaskLoop: function () {
|
|
var entry, next;
|
|
for (entry = $._nextCallback; entry != null; entry = $._nextCallback) {
|
|
$._lastPriorityCallback = null;
|
|
next = entry.next;
|
|
$._nextCallback = next;
|
|
if (next == null)
|
|
$._lastCallback = null;
|
|
entry.callback.call$0();
|
|
}
|
|
},
|
|
_startMicrotaskLoop: function () {
|
|
$._isInCallbackLoop = true;
|
|
try {
|
|
P._microtaskLoop();
|
|
} finally {
|
|
$._lastPriorityCallback = null;
|
|
$._isInCallbackLoop = false;
|
|
if ($._nextCallback != null)
|
|
$.$get$_AsyncRun__scheduleImmediateClosure().call$1(P.async___startMicrotaskLoop$closure());
|
|
}
|
|
},
|
|
_scheduleAsyncCallback: function (callback) {
|
|
var newEntry = new P._AsyncCallbackEntry(callback),
|
|
lastCallback = $._lastCallback;
|
|
if (lastCallback == null) {
|
|
$._nextCallback = $._lastCallback = newEntry;
|
|
if (!$._isInCallbackLoop)
|
|
$.$get$_AsyncRun__scheduleImmediateClosure().call$1(P.async___startMicrotaskLoop$closure());
|
|
} else
|
|
$._lastCallback = lastCallback.next = newEntry;
|
|
},
|
|
_schedulePriorityAsyncCallback: function (callback) {
|
|
var entry, lastPriorityCallback, next,
|
|
t1 = $._nextCallback;
|
|
if (t1 == null) {
|
|
P._scheduleAsyncCallback(callback);
|
|
$._lastPriorityCallback = $._lastCallback;
|
|
return;
|
|
}
|
|
entry = new P._AsyncCallbackEntry(callback);
|
|
lastPriorityCallback = $._lastPriorityCallback;
|
|
if (lastPriorityCallback == null) {
|
|
entry.next = t1;
|
|
$._nextCallback = $._lastPriorityCallback = entry;
|
|
} else {
|
|
next = lastPriorityCallback.next;
|
|
entry.next = next;
|
|
$._lastPriorityCallback = lastPriorityCallback.next = entry;
|
|
if (next == null)
|
|
$._lastCallback = entry;
|
|
}
|
|
},
|
|
scheduleMicrotask: function (callback) {
|
|
var _null = null,
|
|
currentZone = $.Zone__current;
|
|
if (C.C__RootZone === currentZone) {
|
|
P._rootScheduleMicrotask(_null, _null, C.C__RootZone, callback);
|
|
return;
|
|
}
|
|
P._rootScheduleMicrotask(_null, _null, currentZone, type$.void_Function._as(currentZone.bindCallbackGuarded$1(callback)));
|
|
},
|
|
Timer_Timer: function (duration, callback) {
|
|
var t1 = $.Zone__current;
|
|
if (t1 === C.C__RootZone)
|
|
return P.Timer__createTimer(duration, type$.void_Function._as(callback));
|
|
return P.Timer__createTimer(duration, type$.void_Function._as(t1.bindCallbackGuarded$1(callback)));
|
|
},
|
|
_rootHandleUncaughtError: function ($self, $parent, zone, error, stackTrace) {
|
|
P._schedulePriorityAsyncCallback(new P._rootHandleUncaughtError_closure(error, stackTrace));
|
|
},
|
|
_rootRun: function ($self, $parent, zone, f, $R) {
|
|
var old,
|
|
t1 = $.Zone__current;
|
|
if (t1 === zone)
|
|
return f.call$0();
|
|
$.Zone__current = zone;
|
|
old = t1;
|
|
try {
|
|
t1 = f.call$0();
|
|
return t1;
|
|
} finally {
|
|
$.Zone__current = old;
|
|
}
|
|
},
|
|
_rootRunUnary: function ($self, $parent, zone, f, arg, $R, $T) {
|
|
var old,
|
|
t1 = $.Zone__current;
|
|
if (t1 === zone)
|
|
return f.call$1(arg);
|
|
$.Zone__current = zone;
|
|
old = t1;
|
|
try {
|
|
t1 = f.call$1(arg);
|
|
return t1;
|
|
} finally {
|
|
$.Zone__current = old;
|
|
}
|
|
},
|
|
_rootRunBinary: function ($self, $parent, zone, f, arg1, arg2, $R, T1, T2) {
|
|
var old,
|
|
t1 = $.Zone__current;
|
|
if (t1 === zone)
|
|
return f.call$2(arg1, arg2);
|
|
$.Zone__current = zone;
|
|
old = t1;
|
|
try {
|
|
t1 = f.call$2(arg1, arg2);
|
|
return t1;
|
|
} finally {
|
|
$.Zone__current = old;
|
|
}
|
|
},
|
|
_rootScheduleMicrotask: function ($self, $parent, zone, f) {
|
|
var t1;
|
|
type$.void_Function._as(f);
|
|
t1 = C.C__RootZone !== zone;
|
|
if (t1)
|
|
f = !(!t1 || false) ? zone.bindCallbackGuarded$1(f) : zone.bindCallback$1$1(f, type$.void);
|
|
P._scheduleAsyncCallback(f);
|
|
},
|
|
_AsyncRun__initializeScheduleImmediate_internalCallback: function _AsyncRun__initializeScheduleImmediate_internalCallback(t0) {
|
|
this._box_0 = t0;
|
|
},
|
|
_AsyncRun__initializeScheduleImmediate_closure: function _AsyncRun__initializeScheduleImmediate_closure(t0, t1, t2) {
|
|
this._box_0 = t0;
|
|
this.div = t1;
|
|
this.span = t2;
|
|
},
|
|
_AsyncRun__scheduleImmediateJsOverride_internalCallback: function _AsyncRun__scheduleImmediateJsOverride_internalCallback(t0) {
|
|
this.callback = t0;
|
|
},
|
|
_AsyncRun__scheduleImmediateWithSetImmediate_internalCallback: function _AsyncRun__scheduleImmediateWithSetImmediate_internalCallback(t0) {
|
|
this.callback = t0;
|
|
},
|
|
_TimerImpl: function _TimerImpl() {},
|
|
_TimerImpl_internalCallback: function _TimerImpl_internalCallback(t0, t1) {
|
|
this.$this = t0;
|
|
this.callback = t1;
|
|
},
|
|
AsyncError: function AsyncError(t0, t1) {
|
|
this.error = t0;
|
|
this.stackTrace = t1;
|
|
},
|
|
Future_Future$delayed_closure: function Future_Future$delayed_closure(t0, t1, t2) {
|
|
this.computation = t0;
|
|
this.result = t1;
|
|
this.T = t2;
|
|
},
|
|
_FutureListener: function _FutureListener(t0, t1, t2, t3, t4) {
|
|
var _ = this;
|
|
_._nextListener = null;
|
|
_.result = t0;
|
|
_.state = t1;
|
|
_.callback = t2;
|
|
_.errorCallback = t3;
|
|
_.$ti = t4;
|
|
},
|
|
_Future: function _Future(t0, t1) {
|
|
var _ = this;
|
|
_._state = 0;
|
|
_._zone = t0;
|
|
_._resultOrListeners = null;
|
|
_.$ti = t1;
|
|
},
|
|
_Future__addListener_closure: function _Future__addListener_closure(t0, t1) {
|
|
this.$this = t0;
|
|
this.listener = t1;
|
|
},
|
|
_Future__prependListeners_closure: function _Future__prependListeners_closure(t0, t1) {
|
|
this._box_0 = t0;
|
|
this.$this = t1;
|
|
},
|
|
_Future__chainForeignFuture_closure: function _Future__chainForeignFuture_closure(t0) {
|
|
this.$this = t0;
|
|
},
|
|
_Future__chainForeignFuture_closure0: function _Future__chainForeignFuture_closure0(t0) {
|
|
this.$this = t0;
|
|
},
|
|
_Future__chainForeignFuture_closure1: function _Future__chainForeignFuture_closure1(t0, t1, t2) {
|
|
this.$this = t0;
|
|
this.e = t1;
|
|
this.s = t2;
|
|
},
|
|
_Future__propagateToListeners_handleWhenCompleteCallback: function _Future__propagateToListeners_handleWhenCompleteCallback(t0, t1, t2) {
|
|
this._box_0 = t0;
|
|
this._box_1 = t1;
|
|
this.hasError = t2;
|
|
},
|
|
_Future__propagateToListeners_handleWhenCompleteCallback_closure: function _Future__propagateToListeners_handleWhenCompleteCallback_closure(t0) {
|
|
this.originalSource = t0;
|
|
},
|
|
_Future__propagateToListeners_handleValueCallback: function _Future__propagateToListeners_handleValueCallback(t0, t1) {
|
|
this._box_0 = t0;
|
|
this.sourceResult = t1;
|
|
},
|
|
_Future__propagateToListeners_handleError: function _Future__propagateToListeners_handleError(t0, t1) {
|
|
this._box_1 = t0;
|
|
this._box_0 = t1;
|
|
},
|
|
_AsyncCallbackEntry: function _AsyncCallbackEntry(t0) {
|
|
this.callback = t0;
|
|
this.next = null;
|
|
},
|
|
_Zone: function _Zone() {},
|
|
_rootHandleUncaughtError_closure: function _rootHandleUncaughtError_closure(t0, t1) {
|
|
this.error = t0;
|
|
this.stackTrace = t1;
|
|
},
|
|
_RootZone: function _RootZone() {},
|
|
_RootZone_bindCallback_closure: function _RootZone_bindCallback_closure(t0, t1, t2) {
|
|
this.$this = t0;
|
|
this.f = t1;
|
|
this.R = t2;
|
|
},
|
|
_RootZone_bindCallbackGuarded_closure: function _RootZone_bindCallbackGuarded_closure(t0, t1) {
|
|
this.$this = t0;
|
|
this.f = t1;
|
|
},
|
|
LinkedHashMap_LinkedHashMap$_literal: function (keyValuePairs, $K, $V) {
|
|
return $K._eval$1("@<0>")._bind$1($V)._eval$1("LinkedHashMap<1,2>")._as(H.fillLiteralMap(keyValuePairs, new H.JsLinkedHashMap($K._eval$1("@<0>")._bind$1($V)._eval$1("JsLinkedHashMap<1,2>"))));
|
|
},
|
|
IterableBase_iterableToShortString: function (iterable, leftDelimiter, rightDelimiter) {
|
|
var parts, t1;
|
|
if (P._isToStringVisiting(iterable)) {
|
|
if (leftDelimiter === "(" && rightDelimiter === ")")
|
|
return "(...)";
|
|
return leftDelimiter + "..." + rightDelimiter;
|
|
}
|
|
parts = H.setRuntimeTypeInfo([], type$.JSArray_String);
|
|
C.JSArray_methods.add$1($._toStringVisiting, iterable);
|
|
try {
|
|
P._iterablePartsToStrings(iterable, parts);
|
|
} finally {
|
|
if (0 >= $._toStringVisiting.length)
|
|
return H.ioore($._toStringVisiting, -1);
|
|
$._toStringVisiting.pop();
|
|
}
|
|
t1 = P.StringBuffer__writeAll(leftDelimiter, type$.Iterable_dynamic._as(parts), ", ") + rightDelimiter;
|
|
return t1.charCodeAt(0) == 0 ? t1 : t1;
|
|
},
|
|
IterableBase_iterableToFullString: function (iterable, leftDelimiter, rightDelimiter) {
|
|
var buffer, t1;
|
|
if (P._isToStringVisiting(iterable))
|
|
return leftDelimiter + "..." + rightDelimiter;
|
|
buffer = new P.StringBuffer(leftDelimiter);
|
|
C.JSArray_methods.add$1($._toStringVisiting, iterable);
|
|
try {
|
|
t1 = buffer;
|
|
t1._contents = P.StringBuffer__writeAll(t1._contents, iterable, ", ");
|
|
} finally {
|
|
if (0 >= $._toStringVisiting.length)
|
|
return H.ioore($._toStringVisiting, -1);
|
|
$._toStringVisiting.pop();
|
|
}
|
|
buffer._contents += rightDelimiter;
|
|
t1 = buffer._contents;
|
|
return t1.charCodeAt(0) == 0 ? t1 : t1;
|
|
},
|
|
_isToStringVisiting: function (o) {
|
|
var t1, i;
|
|
for (t1 = $._toStringVisiting.length, i = 0; i < t1; ++i)
|
|
if (o === $._toStringVisiting[i])
|
|
return true;
|
|
return false;
|
|
},
|
|
_iterablePartsToStrings: function (iterable, parts) {
|
|
var 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());
|
|
C.JSArray_methods.add$1(parts, next);
|
|
$length += next.length + 2;
|
|
++count;
|
|
}
|
|
if (!it.moveNext$0()) {
|
|
if (count <= 5)
|
|
return;
|
|
if (0 >= parts.length)
|
|
return H.ioore(parts, -1);
|
|
ultimateString = parts.pop();
|
|
if (0 >= parts.length)
|
|
return H.ioore(parts, -1);
|
|
penultimateString = parts.pop();
|
|
} else {
|
|
penultimate = it.get$current();
|
|
++count;
|
|
if (!it.moveNext$0()) {
|
|
if (count <= 4) {
|
|
C.JSArray_methods.add$1(parts, H.S(penultimate));
|
|
return;
|
|
}
|
|
ultimateString = H.S(penultimate);
|
|
if (0 >= parts.length)
|
|
return H.ioore(parts, -1);
|
|
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, -1);
|
|
$length -= parts.pop().length + 2;
|
|
--count;
|
|
}
|
|
C.JSArray_methods.add$1(parts, "...");
|
|
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, -1);
|
|
$length -= parts.pop().length + 2;
|
|
if (elision == null) {
|
|
$length += 5;
|
|
elision = "...";
|
|
}
|
|
}
|
|
if (elision != null)
|
|
C.JSArray_methods.add$1(parts, elision);
|
|
C.JSArray_methods.add$1(parts, penultimateString);
|
|
C.JSArray_methods.add$1(parts, ultimateString);
|
|
},
|
|
MapBase_mapToString: function (m) {
|
|
var result, t1 = {};
|
|
if (P._isToStringVisiting(m))
|
|
return "{...}";
|
|
result = new P.StringBuffer("");
|
|
try {
|
|
C.JSArray_methods.add$1($._toStringVisiting, m);
|
|
result._contents += "{";
|
|
t1.first = true;
|
|
m.forEach$1(0, new P.MapBase_mapToString_closure(t1, result));
|
|
result._contents += "}";
|
|
} finally {
|
|
if (0 >= $._toStringVisiting.length)
|
|
return H.ioore($._toStringVisiting, -1);
|
|
$._toStringVisiting.pop();
|
|
}
|
|
t1 = result._contents;
|
|
return t1.charCodeAt(0) == 0 ? t1 : t1;
|
|
},
|
|
ListBase: function ListBase() {},
|
|
ListMixin: function ListMixin() {},
|
|
MapBase: function MapBase() {},
|
|
MapBase_mapToString_closure: function MapBase_mapToString_closure(t0, t1) {
|
|
this._box_0 = t0;
|
|
this.result = t1;
|
|
},
|
|
MapMixin: function MapMixin() {},
|
|
_ListBase_Object_ListMixin: function _ListBase_Object_ListMixin() {},
|
|
Error__objectToString: function (object) {
|
|
if (object instanceof H.Closure)
|
|
return object.toString$0(0);
|
|
return "Instance of '" + H.Primitives_objectTypeName(object) + "'";
|
|
},
|
|
List_List$filled: function ($length, fill, growable, $E) {
|
|
var i,
|
|
result = J.JSArray_JSArray$fixed($length, $E);
|
|
if ($length !== 0 && true)
|
|
for (i = 0; i < $length; ++i)
|
|
result[i] = fill;
|
|
return result;
|
|
},
|
|
List_List$of: function (elements, growable, $E) {
|
|
var t1 = P.List_List$_of(elements, $E);
|
|
return t1;
|
|
},
|
|
List_List$_of: function (elements, $E) {
|
|
var list, t1;
|
|
if (Array.isArray(elements))
|
|
return H.setRuntimeTypeInfo(elements.slice(0), $E._eval$1("JSArray<0>"));
|
|
list = H.setRuntimeTypeInfo([], $E._eval$1("JSArray<0>"));
|
|
for (t1 = J.get$iterator$ax(elements); t1.moveNext$0();)
|
|
C.JSArray_methods.add$1(list, t1.get$current());
|
|
return list;
|
|
},
|
|
StringBuffer__writeAll: function (string, objects, separator) {
|
|
var iterator = J.get$iterator$ax(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;
|
|
},
|
|
Error_safeToString: function (object) {
|
|
if (typeof object == "number" || H._isBool(object) || null == object)
|
|
return J.toString$0$(object);
|
|
if (typeof object == "string")
|
|
return JSON.stringify(object);
|
|
return P.Error__objectToString(object);
|
|
},
|
|
AssertionError$: function (message) {
|
|
return new P.AssertionError(message);
|
|
},
|
|
ArgumentError$: function (message) {
|
|
return new P.ArgumentError(false, null, null, message);
|
|
},
|
|
ArgumentError$value: function (value, $name, message) {
|
|
return new P.ArgumentError(true, value, $name, message);
|
|
},
|
|
RangeError$value: function (value, $name) {
|
|
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");
|
|
},
|
|
IndexError$: function (invalidValue, indexable, $name, message, $length) {
|
|
var t1 = H._asInt($length == null ? J.get$length$asx(indexable) : $length);
|
|
return new P.IndexError(t1, true, invalidValue, $name, "Index out of range");
|
|
},
|
|
UnsupportedError$: function (message) {
|
|
return new P.UnsupportedError(message);
|
|
},
|
|
UnimplementedError$: function (message) {
|
|
return new P.UnimplementedError(message);
|
|
},
|
|
ConcurrentModificationError$: function (modifiedObject) {
|
|
return new P.ConcurrentModificationError(modifiedObject);
|
|
},
|
|
print: function (object) {
|
|
H.printString(J.toString$0$(object));
|
|
},
|
|
Duration: function Duration(t0) {
|
|
this._duration = t0;
|
|
},
|
|
Duration_toString_sixDigits: function Duration_toString_sixDigits() {},
|
|
Duration_toString_twoDigits: function Duration_toString_twoDigits() {},
|
|
Error: function Error() {},
|
|
AssertionError: function AssertionError(t0) {
|
|
this.message = t0;
|
|
},
|
|
TypeError: function TypeError() {},
|
|
NullThrownError: function NullThrownError() {},
|
|
ArgumentError: function ArgumentError(t0, t1, t2, t3) {
|
|
var _ = this;
|
|
_._hasValue = t0;
|
|
_.invalidValue = t1;
|
|
_.name = t2;
|
|
_.message = t3;
|
|
},
|
|
RangeError: function RangeError(t0, t1, t2, t3, t4, t5) {
|
|
var _ = this;
|
|
_.start = t0;
|
|
_.end = t1;
|
|
_._hasValue = t2;
|
|
_.invalidValue = t3;
|
|
_.name = t4;
|
|
_.message = t5;
|
|
},
|
|
IndexError: function IndexError(t0, t1, t2, t3, t4) {
|
|
var _ = this;
|
|
_.length = t0;
|
|
_._hasValue = t1;
|
|
_.invalidValue = t2;
|
|
_.name = t3;
|
|
_.message = t4;
|
|
},
|
|
UnsupportedError: function UnsupportedError(t0) {
|
|
this.message = t0;
|
|
},
|
|
UnimplementedError: function UnimplementedError(t0) {
|
|
this.message = t0;
|
|
},
|
|
ConcurrentModificationError: function ConcurrentModificationError(t0) {
|
|
this.modifiedObject = t0;
|
|
},
|
|
StackOverflowError: function StackOverflowError() {},
|
|
CyclicInitializationError: function CyclicInitializationError(t0) {
|
|
this.variableName = t0;
|
|
},
|
|
_Exception: function _Exception(t0) {
|
|
this.message = t0;
|
|
},
|
|
Iterable: function Iterable() {},
|
|
Iterator: function Iterator() {},
|
|
Null: function Null() {},
|
|
Object: function Object() {},
|
|
_StringStackTrace: function _StringStackTrace() {},
|
|
StringBuffer: function StringBuffer(t0) {
|
|
this._contents = t0;
|
|
}
|
|
},
|
|
W = {
|
|
HtmlElement: function HtmlElement() {},
|
|
AnchorElement: function AnchorElement() {},
|
|
AreaElement: function AreaElement() {},
|
|
CharacterData: function CharacterData() {},
|
|
CssStyleDeclaration: function CssStyleDeclaration() {},
|
|
CssStyleDeclarationBase: function CssStyleDeclarationBase() {},
|
|
DivElement: function DivElement() {},
|
|
DomException: function DomException() {},
|
|
DomTokenList: function DomTokenList() {},
|
|
_FrozenElementList: function _FrozenElementList(t0, t1) {
|
|
this._nodeList = t0;
|
|
this.$ti = t1;
|
|
},
|
|
Element: function Element() {},
|
|
EventTarget: function EventTarget() {},
|
|
FormElement: function FormElement() {},
|
|
Node: function Node() {},
|
|
NodeList: function NodeList() {},
|
|
SelectElement: function SelectElement() {},
|
|
TableCellElement: function TableCellElement() {},
|
|
ImmutableListMixin: function ImmutableListMixin() {},
|
|
FixedSizeListIterator: function FixedSizeListIterator(t0, t1, t2) {
|
|
var _ = this;
|
|
_._array = t0;
|
|
_._html$_length = t1;
|
|
_._position = -1;
|
|
_._html$_current = null;
|
|
_.$ti = t2;
|
|
},
|
|
_CssStyleDeclaration_Interceptor_CssStyleDeclarationBase: function _CssStyleDeclaration_Interceptor_CssStyleDeclarationBase() {},
|
|
_NodeList_Interceptor_ListMixin: function _NodeList_Interceptor_ListMixin() {},
|
|
_NodeList_Interceptor_ListMixin_ImmutableListMixin: function _NodeList_Interceptor_ListMixin_ImmutableListMixin() {}
|
|
},
|
|
V = {
|
|
test_list: function (str) {
|
|
var t1 = type$.JSArray_String;
|
|
if (C.JSArray_methods.join$1(H.setRuntimeTypeInfo(str.split(""), t1), "").length === 0)
|
|
return H.setRuntimeTypeInfo([], t1);
|
|
return H.setRuntimeTypeInfo(["a", "b", "c"], t1);
|
|
},
|
|
main: function () {
|
|
var t1, t2, t3, t4, test_map, t5, tr, td, plist, pbody, p, a, i, b,
|
|
_s13_ = "Hello, World!";
|
|
P.print(V.test_list("abc"));
|
|
P.print(V.test_list(""));
|
|
P.print($.$get$Dt_at());
|
|
t1 = document;
|
|
t2 = t1.querySelector("#an-id");
|
|
t2.toString;
|
|
t3 = t1.querySelector(".a-class");
|
|
t3.toString;
|
|
t4 = type$.Element;
|
|
H.checkTypeBound(t4, t4, "T", "querySelectorAll");
|
|
t4 = t1.querySelectorAll("div");
|
|
test_map = P.LinkedHashMap_LinkedHashMap$_literal(["a", 1], type$.String, type$.int);
|
|
test_map.$indexSet(0, "b", 2);
|
|
test_map.remove$1(0, "a");
|
|
test_map.$indexSet(0, "b", 3);
|
|
P.print(test_map.$index(0, "b"));
|
|
test_map.forEach$1(0, new V.main_closure());
|
|
P.print(test_map._length);
|
|
P.print(test_map._length === 0);
|
|
P.print(test_map._length !== 0);
|
|
P.print(test_map.containsKey$1("b"));
|
|
P.print(test_map.containsValue$1(3));
|
|
t5 = H._instanceType(test_map)._eval$1("LinkedHashMapKeyIterable<1>");
|
|
P.print(P.List_List$of(new H.LinkedHashMapKeyIterable(test_map, t5), true, t5._eval$1("Iterable.E")));
|
|
t5 = test_map.get$values(test_map);
|
|
P.print(P.List_List$of(t5, true, H._instanceType(t5)._eval$1("Iterable.E")));
|
|
P.print(P.MapBase_mapToString(test_map));
|
|
if (test_map._length > 0) {
|
|
test_map._strings = test_map._nums = test_map._rest = test_map._first = test_map._last = null;
|
|
test_map._length = 0;
|
|
test_map._modified$0();
|
|
}
|
|
P.print(test_map);
|
|
tr = t1.createElement("tr");
|
|
td = t1.createElement("td");
|
|
tr.appendChild(td);
|
|
C.TableCellElement_methods.set$text(td, "\u51fb\u6740");
|
|
t5 = td.style;
|
|
t5.width = "44px";
|
|
td = t1.createElement("td");
|
|
tr.appendChild(td);
|
|
C.TableCellElement_methods.set$text(td, "\u81f4\u547d\u4e00\u51fb");
|
|
t5 = td.style;
|
|
t5.minWidth = "112px";
|
|
t5 = type$.DivElement;
|
|
plist = t5._as(t1.querySelector(".plist"));
|
|
pbody = t5._as(t1.querySelector(".pbody"));
|
|
p = t1.createElement("div");
|
|
p.classList.add("p");
|
|
p.appendChild(tr);
|
|
pbody.appendChild(p);
|
|
plist.appendChild(pbody);
|
|
P.print(t2);
|
|
P.print(t3);
|
|
P.print(new W._FrozenElementList(t4, type$._FrozenElementList_Element));
|
|
t1.querySelector("#inputs").appendChild(t2);
|
|
P.print(_s13_);
|
|
for (a = _s13_, i = 0; i < 10; ++i)
|
|
a += " " + C.JSInt_methods.toString$0(i);
|
|
for (b = 124242424, i = 0; i < 10; ++i)
|
|
b += b * i;
|
|
P.Future_Future$delayed(new P.Duration(1000000), type$.dynamic).then$1$1(new V.main_closure0(), type$.Null);
|
|
new V.main_closure1().call$0();
|
|
P.print(a);
|
|
},
|
|
main_closure: function main_closure() {},
|
|
main_closure0: function main_closure0() {},
|
|
main_closure1: function main_closure1() {}
|
|
};
|
|
var holders = [C, H, J, P, W, V];
|
|
hunkHelpers.setFunctionNamesIfNecessary(holders);
|
|
var $ = {};
|
|
H.JS_CONST.prototype = {};
|
|
J.Interceptor.prototype = {
|
|
$eq: function (receiver, other) {
|
|
return receiver === other;
|
|
},
|
|
get$hashCode: function (receiver) {
|
|
return H.Primitives_objectHashCode(receiver);
|
|
},
|
|
toString$0: function (receiver) {
|
|
return "Instance of '" + H.Primitives_objectTypeName(receiver) + "'";
|
|
}
|
|
};
|
|
J.JSBool.prototype = {
|
|
toString$0: function (receiver) {
|
|
return String(receiver);
|
|
},
|
|
get$hashCode: function (receiver) {
|
|
return receiver ? 519018 : 218159;
|
|
},
|
|
$isbool: 1
|
|
};
|
|
J.JSNull.prototype = {
|
|
$eq: function (receiver, other) {
|
|
return null == other;
|
|
},
|
|
toString$0: function (receiver) {
|
|
return "null";
|
|
},
|
|
get$hashCode: function (receiver) {
|
|
return 0;
|
|
},
|
|
$isNull: 1
|
|
};
|
|
J.JavaScriptObject.prototype = {
|
|
get$hashCode: function (receiver) {
|
|
return 0;
|
|
},
|
|
toString$0: function (receiver) {
|
|
return String(receiver);
|
|
}
|
|
};
|
|
J.PlainJavaScriptObject.prototype = {};
|
|
J.UnknownJavaScriptObject.prototype = {};
|
|
J.JavaScriptFunction.prototype = {
|
|
toString$0: function (receiver) {
|
|
var dartClosure = receiver[$.$get$DART_CLOSURE_PROPERTY_NAME()];
|
|
if (dartClosure == null)
|
|
return this.super$JavaScriptObject$toString(receiver);
|
|
return "JavaScript function for " + J.toString$0$(dartClosure);
|
|
},
|
|
$isFunction: 1
|
|
};
|
|
J.JSArray.prototype = {
|
|
add$1: function (receiver, value) {
|
|
H._arrayInstanceType(receiver)._precomputed1._as(value);
|
|
if (!!receiver.fixed$length)
|
|
H.throwExpression(P.UnsupportedError$("add"));
|
|
receiver.push(value);
|
|
},
|
|
join$1: function (receiver, separator) {
|
|
var i,
|
|
list = P.List_List$filled(receiver.length, "", false, type$.String);
|
|
for (i = 0; i < receiver.length; ++i)
|
|
this.$indexSet(list, i, H.S(receiver[i]));
|
|
return list.join(separator);
|
|
},
|
|
toString$0: function (receiver) {
|
|
return P.IterableBase_iterableToFullString(receiver, "[", "]");
|
|
},
|
|
get$iterator: function (receiver) {
|
|
return new J.ArrayIterator(receiver, receiver.length, H._arrayInstanceType(receiver)._eval$1("ArrayIterator<1>"));
|
|
},
|
|
get$hashCode: function (receiver) {
|
|
return H.Primitives_objectHashCode(receiver);
|
|
},
|
|
get$length: function (receiver) {
|
|
return receiver.length;
|
|
},
|
|
$indexSet: function (receiver, index, value) {
|
|
H._arrayInstanceType(receiver)._precomputed1._as(value);
|
|
if (!!receiver.immutable$list)
|
|
H.throwExpression(P.UnsupportedError$("indexed set"));
|
|
if (index >= receiver.length || false)
|
|
throw H.wrapException(H.diagnoseIndexError(receiver, index));
|
|
receiver[index] = value;
|
|
},
|
|
$isIterable: 1,
|
|
$isList: 1
|
|
};
|
|
J.JSUnmodifiableArray.prototype = {};
|
|
J.ArrayIterator.prototype = {
|
|
get$current: function () {
|
|
return this.$ti._precomputed1._as(this._current);
|
|
},
|
|
moveNext$0: function () {
|
|
var t2, _this = this,
|
|
t1 = _this._iterable,
|
|
$length = t1.length;
|
|
if (_this.__interceptors$_length !== $length)
|
|
throw H.wrapException(H.throwConcurrentModificationError(t1));
|
|
t2 = _this._index;
|
|
if (t2 >= $length) {
|
|
_this.set$_current(null);
|
|
return false;
|
|
}
|
|
_this.set$_current(t1[t2]);
|
|
++_this._index;
|
|
return true;
|
|
},
|
|
set$_current: function (_current) {
|
|
this._current = this.$ti._eval$1("1?")._as(_current);
|
|
},
|
|
$isIterator: 1
|
|
};
|
|
J.JSNumber.prototype = {
|
|
toString$0: function (receiver) {
|
|
if (receiver === 0 && 1 / receiver < 0)
|
|
return "-0.0";
|
|
else
|
|
return "" + receiver;
|
|
},
|
|
get$hashCode: function (receiver) {
|
|
var absolute, floorLog2, factor, scaled,
|
|
intValue = receiver | 0;
|
|
if (receiver === intValue)
|
|
return intValue & 536870911;
|
|
absolute = Math.abs(receiver);
|
|
floorLog2 = Math.log(absolute) / 0.6931471805599453 | 0;
|
|
factor = Math.pow(2, floorLog2);
|
|
scaled = absolute < 1 ? absolute / factor : factor / absolute;
|
|
return ((scaled * 9007199254740992 | 0) + (scaled * 3542243181176521 | 0)) * 599197 + floorLog2 * 1259 & 536870911;
|
|
},
|
|
_tdivFast$1: function (receiver, other) {
|
|
return (receiver | 0) === receiver ? receiver / other | 0 : this._tdivSlow$1(receiver, other);
|
|
},
|
|
_tdivSlow$1: function (receiver, other) {
|
|
var quotient = receiver / other;
|
|
if (quotient >= -2147483648 && quotient <= 2147483647)
|
|
return quotient | 0;
|
|
if (quotient > 0) {
|
|
if (quotient !== 1 / 0)
|
|
return Math.floor(quotient);
|
|
} else if (quotient > -1 / 0)
|
|
return Math.ceil(quotient);
|
|
throw H.wrapException(P.UnsupportedError$("Result of truncating division is " + H.S(quotient) + ": " + H.S(receiver) + " ~/ " + other));
|
|
},
|
|
_shrOtherPositive$1: function (receiver, other) {
|
|
var t1;
|
|
if (receiver > 0)
|
|
t1 = this._shrBothPositive$1(receiver, other);
|
|
else {
|
|
t1 = other > 31 ? 31 : other;
|
|
t1 = receiver >> t1 >>> 0;
|
|
}
|
|
return t1;
|
|
},
|
|
_shrBothPositive$1: function (receiver, other) {
|
|
return other > 31 ? 0 : receiver >>> other;
|
|
},
|
|
$isnum: 1
|
|
};
|
|
J.JSInt.prototype = {
|
|
$isint: 1
|
|
};
|
|
J.JSDouble.prototype = {};
|
|
J.JSString.prototype = {
|
|
$add: function (receiver, other) {
|
|
return receiver + other;
|
|
},
|
|
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 = hash + receiver.charCodeAt(i) & 536870911;
|
|
hash = hash + ((hash & 524287) << 10) & 536870911;
|
|
hash ^= hash >> 6;
|
|
}
|
|
hash = hash + ((hash & 67108863) << 3) & 536870911;
|
|
hash ^= hash >> 11;
|
|
return hash + ((hash & 16383) << 15) & 536870911;
|
|
},
|
|
get$length: function (receiver) {
|
|
return receiver.length;
|
|
},
|
|
$isString: 1
|
|
};
|
|
H.LateError.prototype = {
|
|
toString$0: function (_) {
|
|
var t1 = "LateInitializationError: " + this._message;
|
|
return t1;
|
|
}
|
|
};
|
|
H.EfficientLengthIterable.prototype = {};
|
|
H.ListIterator.prototype = {
|
|
get$current: function () {
|
|
return this.$ti._precomputed1._as(this.__internal$_current);
|
|
},
|
|
moveNext$0: function () {
|
|
var t3, _this = this,
|
|
t1 = _this.__internal$_iterable,
|
|
t2 = J.getInterceptor$asx(t1),
|
|
$length = t2.get$length(t1);
|
|
if (_this.__internal$_length !== $length)
|
|
throw H.wrapException(P.ConcurrentModificationError$(t1));
|
|
t3 = _this.__internal$_index;
|
|
if (t3 >= $length) {
|
|
_this.set$__internal$_current(null);
|
|
return false;
|
|
}
|
|
_this.set$__internal$_current(t2.elementAt$1(t1, t3));
|
|
++_this.__internal$_index;
|
|
return true;
|
|
},
|
|
set$__internal$_current: function (_current) {
|
|
this.__internal$_current = this.$ti._eval$1("1?")._as(_current);
|
|
},
|
|
$isIterator: 1
|
|
};
|
|
H.MappedIterable.prototype = {
|
|
get$iterator: function (_) {
|
|
var t1 = this.__internal$_iterable,
|
|
t2 = H._instanceType(this);
|
|
return new H.MappedIterator(t1.get$iterator(t1), this._f, t2._eval$1("@<1>")._bind$1(t2.__rti$_rest[1])._eval$1("MappedIterator<1,2>"));
|
|
},
|
|
get$length: function (_) {
|
|
return this.__internal$_iterable._map._length;
|
|
}
|
|
};
|
|
H.EfficientLengthMappedIterable.prototype = {};
|
|
H.MappedIterator.prototype = {
|
|
moveNext$0: function () {
|
|
var _this = this,
|
|
t1 = _this._iterator;
|
|
if (t1.moveNext$0()) {
|
|
_this.set$__internal$_current(_this._f.call$1(t1.$ti._precomputed1._as(t1.__js_helper$_current)));
|
|
return true;
|
|
}
|
|
_this.set$__internal$_current(null);
|
|
return false;
|
|
},
|
|
get$current: function () {
|
|
return this.$ti.__rti$_rest[1]._as(this.__internal$_current);
|
|
},
|
|
set$__internal$_current: function (_current) {
|
|
this.__internal$_current = this.$ti._eval$1("2?")._as(_current);
|
|
}
|
|
};
|
|
H.TypeErrorDecoder.prototype = {
|
|
matchTypeError$1: function (message) {
|
|
var result, t1, _this = this,
|
|
match = new RegExp(_this._pattern).exec(message);
|
|
if (match == null)
|
|
return null;
|
|
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;
|
|
}
|
|
};
|
|
H.NullError.prototype = {
|
|
toString$0: function (_) {
|
|
var t1 = this._method;
|
|
if (t1 == null)
|
|
return "NoSuchMethodError: " + this.__js_helper$_message;
|
|
return "NoSuchMethodError: method not found: '" + t1 + "' on null";
|
|
}
|
|
};
|
|
H.JsNoSuchMethodError.prototype = {
|
|
toString$0: function (_) {
|
|
var t2, _this = this,
|
|
_s38_ = "NoSuchMethodError: method not found: '",
|
|
t1 = _this._method;
|
|
if (t1 == null)
|
|
return "NoSuchMethodError: " + _this.__js_helper$_message;
|
|
t2 = _this._receiver;
|
|
if (t2 == null)
|
|
return _s38_ + t1 + "' (" + _this.__js_helper$_message + ")";
|
|
return _s38_ + t1 + "' on '" + t2 + "' (" + _this.__js_helper$_message + ")";
|
|
}
|
|
};
|
|
H.UnknownJsTypeError.prototype = {
|
|
toString$0: function (_) {
|
|
var t1 = this.__js_helper$_message;
|
|
return t1.length === 0 ? "Error" : "Error: " + t1;
|
|
}
|
|
};
|
|
H.NullThrownFromJavaScriptException.prototype = {
|
|
toString$0: function (_) {
|
|
return "Throw of null ('" + (this._irritant === null ? "null" : "undefined") + "' from JavaScript)";
|
|
}
|
|
};
|
|
H._StackTrace.prototype = {
|
|
toString$0: function (_) {
|
|
var trace,
|
|
t1 = this._trace;
|
|
if (t1 != null)
|
|
return t1;
|
|
t1 = this._exception;
|
|
trace = t1 !== null && typeof t1 === "object" ? t1.stack : null;
|
|
return this._trace = trace == null ? "" : trace;
|
|
},
|
|
$isStackTrace: 1
|
|
};
|
|
H.Closure.prototype = {
|
|
toString$0: function (_) {
|
|
var $constructor = this.constructor,
|
|
$name = $constructor == null ? null : $constructor.name;
|
|
return "Closure '" + H.unminifyOrTag($name == null ? "unknown" : $name) + "'";
|
|
},
|
|
$isFunction: 1,
|
|
get$$call: function () {
|
|
return this;
|
|
},
|
|
"call*": "call$1",
|
|
$requiredArgCount: 1,
|
|
$defaultValues: null
|
|
};
|
|
H.TearOffClosure.prototype = {};
|
|
H.StaticClosure.prototype = {
|
|
toString$0: function (_) {
|
|
var $name = this.$static_name;
|
|
if ($name == null)
|
|
return "Closure of unknown static method";
|
|
return "Closure '" + H.unminifyOrTag($name) + "'";
|
|
}
|
|
};
|
|
H.BoundClosure.prototype = {
|
|
$eq: function (_, other) {
|
|
var _this = this;
|
|
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 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 " + ("Instance of '" + H.Primitives_objectTypeName(type$.Object._as(receiver)) + "'");
|
|
}
|
|
};
|
|
H.RuntimeError.prototype = {
|
|
toString$0: function (_) {
|
|
return "RuntimeError: " + this.message;
|
|
}
|
|
};
|
|
H._AssertionError.prototype = {
|
|
toString$0: function (_) {
|
|
return "Assertion failed: " + P.Error_safeToString(this.message);
|
|
}
|
|
};
|
|
H.JsLinkedHashMap.prototype = {
|
|
get$length: function (_) {
|
|
return this._length;
|
|
},
|
|
get$values: function (_) {
|
|
var t1 = H._instanceType(this);
|
|
return H.MappedIterable_MappedIterable(new H.LinkedHashMapKeyIterable(this, t1._eval$1("LinkedHashMapKeyIterable<1>")), new H.JsLinkedHashMap_values_closure(this), t1._precomputed1, t1.__rti$_rest[1]);
|
|
},
|
|
containsKey$1: function (key) {
|
|
var strings = this._strings;
|
|
if (strings == null)
|
|
return false;
|
|
return this._containsTableEntry$2(strings, key);
|
|
},
|
|
containsValue$1: function (value) {
|
|
return new H.LinkedHashMapKeyIterable(this, H._instanceType(this)._eval$1("LinkedHashMapKeyIterable<1>")).any$1(0, new H.JsLinkedHashMap_containsValue_closure(this, value));
|
|
},
|
|
$index: function (_, key) {
|
|
var strings, cell, t1, nums, _this = this,
|
|
_null = null;
|
|
if (typeof key == "string") {
|
|
strings = _this._strings;
|
|
if (strings == null)
|
|
return _null;
|
|
cell = _this._getTableCell$2(strings, key);
|
|
t1 = cell == null ? _null : cell.hashMapCellValue;
|
|
return t1;
|
|
} else if (typeof key == "number" && (key & 0x3ffffff) === key) {
|
|
nums = _this._nums;
|
|
if (nums == null)
|
|
return _null;
|
|
cell = _this._getTableCell$2(nums, key);
|
|
t1 = cell == null ? _null : cell.hashMapCellValue;
|
|
return t1;
|
|
} else
|
|
return _this.internalGet$1(key);
|
|
},
|
|
internalGet$1: function (key) {
|
|
var bucket, index,
|
|
rest = this._rest;
|
|
if (rest == null)
|
|
return null;
|
|
bucket = this._getTableBucket$2(rest, J.get$hashCode$(key) & 0x3ffffff);
|
|
index = this.internalFindBucketIndex$2(bucket, key);
|
|
if (index < 0)
|
|
return null;
|
|
return bucket[index].hashMapCellValue;
|
|
},
|
|
$indexSet: function (_, key, value) {
|
|
var strings, nums, rest, hash, bucket, index, _this = this,
|
|
t1 = H._instanceType(_this);
|
|
t1._precomputed1._as(key);
|
|
t1.__rti$_rest[1]._as(value);
|
|
if (typeof key == "string") {
|
|
strings = _this._strings;
|
|
_this._addHashTableEntry$3(strings == null ? _this._strings = _this._newHashTable$0() : strings, key, value);
|
|
} else if (typeof key == "number" && (key & 0x3ffffff) === key) {
|
|
nums = _this._nums;
|
|
_this._addHashTableEntry$3(nums == null ? _this._nums = _this._newHashTable$0() : nums, key, value);
|
|
} else {
|
|
rest = _this._rest;
|
|
if (rest == null)
|
|
rest = _this._rest = _this._newHashTable$0();
|
|
hash = J.get$hashCode$(key) & 0x3ffffff;
|
|
bucket = _this._getTableBucket$2(rest, hash);
|
|
if (bucket == null)
|
|
_this._setTableEntry$3(rest, hash, [_this._newLinkedCell$2(key, value)]);
|
|
else {
|
|
index = _this.internalFindBucketIndex$2(bucket, key);
|
|
if (index >= 0)
|
|
bucket[index].hashMapCellValue = value;
|
|
else
|
|
bucket.push(_this._newLinkedCell$2(key, value));
|
|
}
|
|
}
|
|
},
|
|
remove$1: function (_, key) {
|
|
var t1 = this._removeHashTableEntry$2(this._strings, key);
|
|
return t1;
|
|
},
|
|
forEach$1: function (_, action) {
|
|
var cell, modifications, _this = this;
|
|
H._instanceType(_this)._eval$1("~(1,2)")._as(action);
|
|
cell = _this._first;
|
|
modifications = _this._modifications;
|
|
for (; cell != null;) {
|
|
action.call$2(cell.hashMapCellKey, cell.hashMapCellValue);
|
|
if (modifications !== _this._modifications)
|
|
throw H.wrapException(P.ConcurrentModificationError$(_this));
|
|
cell = cell._next;
|
|
}
|
|
},
|
|
_addHashTableEntry$3: function (table, key, value) {
|
|
var cell, _this = this,
|
|
t1 = H._instanceType(_this);
|
|
t1._precomputed1._as(key);
|
|
t1.__rti$_rest[1]._as(value);
|
|
cell = _this._getTableCell$2(table, key);
|
|
if (cell == null)
|
|
_this._setTableEntry$3(table, key, _this._newLinkedCell$2(key, value));
|
|
else
|
|
cell.hashMapCellValue = value;
|
|
},
|
|
_removeHashTableEntry$2: function (table, key) {
|
|
var cell;
|
|
if (table == null)
|
|
return null;
|
|
cell = this._getTableCell$2(table, key);
|
|
if (cell == null)
|
|
return null;
|
|
this._unlinkCell$1(cell);
|
|
this._deleteTableEntry$2(table, key);
|
|
return cell.hashMapCellValue;
|
|
},
|
|
_modified$0: function () {
|
|
this._modifications = this._modifications + 1 & 67108863;
|
|
},
|
|
_newLinkedCell$2: function (key, value) {
|
|
var _this = this,
|
|
t1 = H._instanceType(_this),
|
|
cell = new H.LinkedHashMapCell(t1._precomputed1._as(key), t1.__rti$_rest[1]._as(value));
|
|
if (_this._first == null)
|
|
_this._first = _this._last = cell;
|
|
else {
|
|
t1 = _this._last;
|
|
t1.toString;
|
|
cell._previous = t1;
|
|
_this._last = t1._next = cell;
|
|
}
|
|
++_this._length;
|
|
_this._modified$0();
|
|
return cell;
|
|
},
|
|
_unlinkCell$1: function (cell) {
|
|
var _this = this,
|
|
previous = cell._previous,
|
|
next = cell._next;
|
|
if (previous == null)
|
|
_this._first = next;
|
|
else
|
|
previous._next = next;
|
|
if (next == null)
|
|
_this._last = previous;
|
|
else
|
|
next._previous = previous;
|
|
--_this._length;
|
|
_this._modified$0();
|
|
},
|
|
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].hashMapCellKey, key))
|
|
return i;
|
|
return -1;
|
|
},
|
|
toString$0: function (_) {
|
|
return P.MapBase_mapToString(this);
|
|
},
|
|
_getTableCell$2: function (table, key) {
|
|
return table[key];
|
|
},
|
|
_getTableBucket$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._getTableCell$2(table, key) != null;
|
|
},
|
|
_newHashTable$0: function () {
|
|
var _s20_ = "<non-identifier-key>",
|
|
table = Object.create(null);
|
|
this._setTableEntry$3(table, _s20_, table);
|
|
this._deleteTableEntry$2(table, _s20_);
|
|
return table;
|
|
},
|
|
$isLinkedHashMap: 1
|
|
};
|
|
H.JsLinkedHashMap_values_closure.prototype = {
|
|
call$1: function (each) {
|
|
var t1 = this.$this,
|
|
t2 = H._instanceType(t1);
|
|
return t2.__rti$_rest[1]._as(t1.$index(0, t2._precomputed1._as(each)));
|
|
},
|
|
$signature: function () {
|
|
return H._instanceType(this.$this)._eval$1("2(1)");
|
|
}
|
|
};
|
|
H.JsLinkedHashMap_containsValue_closure.prototype = {
|
|
call$1: function (each) {
|
|
var t1 = this.$this;
|
|
return J.$eq$(t1.$index(0, H._instanceType(t1)._precomputed1._as(each)), this.value);
|
|
},
|
|
$signature: function () {
|
|
return H._instanceType(this.$this)._eval$1("bool(1)");
|
|
}
|
|
};
|
|
H.LinkedHashMapCell.prototype = {};
|
|
H.LinkedHashMapKeyIterable.prototype = {
|
|
get$length: function (_) {
|
|
return this._map._length;
|
|
},
|
|
get$iterator: function (_) {
|
|
var t1 = this._map,
|
|
t2 = new H.LinkedHashMapKeyIterator(t1, t1._modifications, this.$ti._eval$1("LinkedHashMapKeyIterator<1>"));
|
|
t2._cell = t1._first;
|
|
return t2;
|
|
}
|
|
};
|
|
H.LinkedHashMapKeyIterator.prototype = {
|
|
get$current: function () {
|
|
return this.$ti._precomputed1._as(this.__js_helper$_current);
|
|
},
|
|
moveNext$0: function () {
|
|
var cell, _this = this,
|
|
t1 = _this._map;
|
|
if (_this._modifications !== t1._modifications)
|
|
throw H.wrapException(P.ConcurrentModificationError$(t1));
|
|
cell = _this._cell;
|
|
if (cell == null) {
|
|
_this.set$__js_helper$_current(null);
|
|
return false;
|
|
} else {
|
|
_this.set$__js_helper$_current(cell.hashMapCellKey);
|
|
_this._cell = cell._next;
|
|
return true;
|
|
}
|
|
},
|
|
set$__js_helper$_current: function (_current) {
|
|
this.__js_helper$_current = this.$ti._eval$1("1?")._as(_current);
|
|
},
|
|
$isIterator: 1
|
|
};
|
|
H.initHooks_closure.prototype = {
|
|
call$1: function (o) {
|
|
return this.getTag(o);
|
|
},
|
|
$signature: 5
|
|
};
|
|
H.initHooks_closure0.prototype = {
|
|
call$2: function (o, tag) {
|
|
return this.getUnknownTag(o, tag);
|
|
},
|
|
$signature: 6
|
|
};
|
|
H.initHooks_closure1.prototype = {
|
|
call$1: function (tag) {
|
|
return this.prototypeForTag(H._asString(tag));
|
|
},
|
|
$signature: 7
|
|
};
|
|
H.Rti.prototype = {
|
|
_eval$1: function (recipe) {
|
|
return H._Universe_evalInEnvironment(init.typeUniverse, this, recipe);
|
|
},
|
|
_bind$1: function (typeOrTuple) {
|
|
return H._Universe_bind(init.typeUniverse, this, typeOrTuple);
|
|
}
|
|
};
|
|
H._FunctionParameters.prototype = {};
|
|
H._Error.prototype = {
|
|
toString$0: function (_) {
|
|
return this.__rti$_message;
|
|
}
|
|
};
|
|
H._TypeError.prototype = {};
|
|
P._AsyncRun__initializeScheduleImmediate_internalCallback.prototype = {
|
|
call$1: function (_) {
|
|
var t1 = this._box_0,
|
|
f = t1.storedCallback;
|
|
t1.storedCallback = null;
|
|
f.call$0();
|
|
},
|
|
$signature: 1
|
|
};
|
|
P._AsyncRun__initializeScheduleImmediate_closure.prototype = {
|
|
call$1: function (callback) {
|
|
var t1, t2;
|
|
this._box_0.storedCallback = type$.void_Function._as(callback);
|
|
t1 = this.div;
|
|
t2 = this.span;
|
|
t1.firstChild ? t1.removeChild(t2) : t1.appendChild(t2);
|
|
},
|
|
$signature: 8
|
|
};
|
|
P._AsyncRun__scheduleImmediateJsOverride_internalCallback.prototype = {
|
|
call$0: function () {
|
|
this.callback.call$0();
|
|
},
|
|
$signature: 2
|
|
};
|
|
P._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback.prototype = {
|
|
call$0: function () {
|
|
this.callback.call$0();
|
|
},
|
|
$signature: 2
|
|
};
|
|
P._TimerImpl.prototype = {
|
|
_TimerImpl$2: function (milliseconds, callback) {
|
|
if (self.setTimeout != null)
|
|
self.setTimeout(H.convertDartClosureToJS(new P._TimerImpl_internalCallback(this, callback), 0), milliseconds);
|
|
else
|
|
throw H.wrapException(P.UnsupportedError$("`setTimeout()` not found."));
|
|
}
|
|
};
|
|
P._TimerImpl_internalCallback.prototype = {
|
|
call$0: function () {
|
|
this.callback.call$0();
|
|
},
|
|
$signature: 0
|
|
};
|
|
P.AsyncError.prototype = {
|
|
toString$0: function (_) {
|
|
return H.S(this.error);
|
|
},
|
|
$isError: 1,
|
|
get$stackTrace: function () {
|
|
return this.stackTrace;
|
|
}
|
|
};
|
|
P.Future_Future$delayed_closure.prototype = {
|
|
call$0: function () {
|
|
this.result._complete$1(this.T._as(null));
|
|
},
|
|
$signature: 0
|
|
};
|
|
P._FutureListener.prototype = {
|
|
matchesErrorTest$1: function (asyncError) {
|
|
if ((this.state & 15) !== 6)
|
|
return true;
|
|
return this.result._zone.runUnary$2$2(type$.bool_Function_Object._as(this.callback), asyncError.error, type$.bool, type$.Object);
|
|
},
|
|
handleError$1: function (asyncError) {
|
|
var errorCallback = this.errorCallback,
|
|
t1 = type$.dynamic,
|
|
t2 = type$.Object,
|
|
t3 = asyncError.error,
|
|
t4 = this.$ti._eval$1("2/"),
|
|
t5 = this.result._zone;
|
|
if (type$.dynamic_Function_Object_StackTrace._is(errorCallback))
|
|
return t4._as(t5.runBinary$3$3(errorCallback, t3, asyncError.stackTrace, t1, t2, type$.StackTrace));
|
|
else
|
|
return t4._as(t5.runUnary$2$2(type$.dynamic_Function_Object._as(errorCallback), t3, t1, t2));
|
|
}
|
|
};
|
|
P._Future.prototype = {
|
|
then$1$2$onError: function (f, onError, $R) {
|
|
var currentZone, result, t2,
|
|
t1 = this.$ti;
|
|
t1._bind$1($R)._eval$1("1/(2)")._as(f);
|
|
currentZone = $.Zone__current;
|
|
if (currentZone !== C.C__RootZone) {
|
|
$R._eval$1("@<0/>")._bind$1(t1._precomputed1)._eval$1("1(2)")._as(f);
|
|
if (onError != null)
|
|
onError = P._registerErrorHandler(onError, currentZone);
|
|
}
|
|
result = new P._Future(currentZone, $R._eval$1("_Future<0>"));
|
|
t2 = onError == null ? 1 : 3;
|
|
this._addListener$1(new P._FutureListener(result, t2, f, onError, t1._eval$1("@<1>")._bind$1($R)._eval$1("_FutureListener<1,2>")));
|
|
return result;
|
|
},
|
|
then$1$1: function (f, $R) {
|
|
return this.then$1$2$onError(f, null, $R);
|
|
},
|
|
_addListener$1: function (listener) {
|
|
var source, _this = this,
|
|
t1 = _this._state;
|
|
if (t1 <= 1) {
|
|
listener._nextListener = type$.nullable__FutureListener_dynamic_dynamic._as(_this._resultOrListeners);
|
|
_this._resultOrListeners = listener;
|
|
} else {
|
|
if (t1 === 2) {
|
|
source = type$._Future_dynamic._as(_this._resultOrListeners);
|
|
t1 = source._state;
|
|
if (t1 < 4) {
|
|
source._addListener$1(listener);
|
|
return;
|
|
}
|
|
_this._state = t1;
|
|
_this._resultOrListeners = source._resultOrListeners;
|
|
}
|
|
P._rootScheduleMicrotask(null, null, _this._zone, type$.void_Function._as(new P._Future__addListener_closure(_this, listener)));
|
|
}
|
|
},
|
|
_prependListeners$1: function (listeners) {
|
|
var t1, existingListeners, next, cursor, next0, source, _this = this,
|
|
_box_0 = {};
|
|
_box_0.listeners = listeners;
|
|
if (listeners == null)
|
|
return;
|
|
t1 = _this._state;
|
|
if (t1 <= 1) {
|
|
existingListeners = type$.nullable__FutureListener_dynamic_dynamic._as(_this._resultOrListeners);
|
|
_this._resultOrListeners = listeners;
|
|
if (existingListeners != null) {
|
|
next = listeners._nextListener;
|
|
for (cursor = listeners; next != null; cursor = next, next = next0)
|
|
next0 = next._nextListener;
|
|
cursor._nextListener = existingListeners;
|
|
}
|
|
} else {
|
|
if (t1 === 2) {
|
|
source = type$._Future_dynamic._as(_this._resultOrListeners);
|
|
t1 = source._state;
|
|
if (t1 < 4) {
|
|
source._prependListeners$1(listeners);
|
|
return;
|
|
}
|
|
_this._state = t1;
|
|
_this._resultOrListeners = source._resultOrListeners;
|
|
}
|
|
_box_0.listeners = _this._reverseListeners$1(listeners);
|
|
P._rootScheduleMicrotask(null, null, _this._zone, type$.void_Function._as(new P._Future__prependListeners_closure(_box_0, _this)));
|
|
}
|
|
},
|
|
_removeListeners$0: function () {
|
|
var current = type$.nullable__FutureListener_dynamic_dynamic._as(this._resultOrListeners);
|
|
this._resultOrListeners = null;
|
|
return this._reverseListeners$1(current);
|
|
},
|
|
_reverseListeners$1: function (listeners) {
|
|
var current, prev, next;
|
|
for (current = listeners, prev = null; current != null; prev = current, current = next) {
|
|
next = current._nextListener;
|
|
current._nextListener = prev;
|
|
}
|
|
return prev;
|
|
},
|
|
_chainForeignFuture$1: function (source) {
|
|
var e, s, exception, _this = this;
|
|
_this._state = 1;
|
|
try {
|
|
source.then$1$2$onError(new P._Future__chainForeignFuture_closure(_this), new P._Future__chainForeignFuture_closure0(_this), type$.Null);
|
|
} catch (exception) {
|
|
e = H.unwrapException(exception);
|
|
s = H.getTraceFromException(exception);
|
|
P.scheduleMicrotask(new P._Future__chainForeignFuture_closure1(_this, e, s));
|
|
}
|
|
},
|
|
_complete$1: function (value) {
|
|
var listeners, _this = this,
|
|
t1 = _this.$ti;
|
|
t1._eval$1("1/")._as(value);
|
|
if (t1._eval$1("Future<1>")._is(value))
|
|
_this._chainForeignFuture$1(value);
|
|
else {
|
|
listeners = _this._removeListeners$0();
|
|
t1._precomputed1._as(value);
|
|
_this._state = 4;
|
|
_this._resultOrListeners = value;
|
|
P._Future__propagateToListeners(_this, listeners);
|
|
}
|
|
},
|
|
_completeError$2: function (error, stackTrace) {
|
|
var listeners, t1, _this = this;
|
|
type$.StackTrace._as(stackTrace);
|
|
listeners = _this._removeListeners$0();
|
|
t1 = P.AsyncError$(error, stackTrace);
|
|
_this._state = 8;
|
|
_this._resultOrListeners = t1;
|
|
P._Future__propagateToListeners(_this, listeners);
|
|
},
|
|
$isFuture: 1
|
|
};
|
|
P._Future__addListener_closure.prototype = {
|
|
call$0: function () {
|
|
P._Future__propagateToListeners(this.$this, this.listener);
|
|
},
|
|
$signature: 0
|
|
};
|
|
P._Future__prependListeners_closure.prototype = {
|
|
call$0: function () {
|
|
P._Future__propagateToListeners(this.$this, this._box_0.listeners);
|
|
},
|
|
$signature: 0
|
|
};
|
|
P._Future__chainForeignFuture_closure.prototype = {
|
|
call$1: function (value) {
|
|
var error, stackTrace, t2, listeners, exception,
|
|
t1 = this.$this;
|
|
t1._state = 0;
|
|
try {
|
|
t2 = t1.$ti._precomputed1;
|
|
value = t2._as(t2._as(value));
|
|
listeners = t1._removeListeners$0();
|
|
t1._state = 4;
|
|
t1._resultOrListeners = value;
|
|
P._Future__propagateToListeners(t1, listeners);
|
|
} catch (exception) {
|
|
error = H.unwrapException(exception);
|
|
stackTrace = H.getTraceFromException(exception);
|
|
t1._completeError$2(error, stackTrace);
|
|
}
|
|
},
|
|
$signature: 1
|
|
};
|
|
P._Future__chainForeignFuture_closure0.prototype = {
|
|
call$2: function (error, stackTrace) {
|
|
this.$this._completeError$2(type$.Object._as(error), type$.StackTrace._as(stackTrace));
|
|
},
|
|
$signature: 9
|
|
};
|
|
P._Future__chainForeignFuture_closure1.prototype = {
|
|
call$0: function () {
|
|
this.$this._completeError$2(this.e, this.s);
|
|
},
|
|
$signature: 0
|
|
};
|
|
P._Future__propagateToListeners_handleWhenCompleteCallback.prototype = {
|
|
call$0: function () {
|
|
var e, s, t1, exception, t2, originalSource, _this = this,
|
|
completeResult = null;
|
|
try {
|
|
t1 = _this._box_0.listener;
|
|
completeResult = t1.result._zone.run$1$1(type$.dynamic_Function._as(t1.callback), type$.dynamic);
|
|
} catch (exception) {
|
|
e = H.unwrapException(exception);
|
|
s = H.getTraceFromException(exception);
|
|
t1 = _this.hasError && type$.AsyncError._as(_this._box_1.source._resultOrListeners).error === e;
|
|
t2 = _this._box_0;
|
|
if (t1)
|
|
t2.listenerValueOrError = type$.AsyncError._as(_this._box_1.source._resultOrListeners);
|
|
else
|
|
t2.listenerValueOrError = P.AsyncError$(e, s);
|
|
t2.listenerHasError = true;
|
|
return;
|
|
}
|
|
if (completeResult instanceof P._Future && completeResult._state >= 4) {
|
|
if (completeResult._state === 8) {
|
|
t1 = _this._box_0;
|
|
t1.listenerValueOrError = type$.AsyncError._as(completeResult._resultOrListeners);
|
|
t1.listenerHasError = true;
|
|
}
|
|
return;
|
|
}
|
|
if (type$.Future_dynamic._is(completeResult)) {
|
|
originalSource = _this._box_1.source;
|
|
t1 = _this._box_0;
|
|
t1.listenerValueOrError = completeResult.then$1$1(new P._Future__propagateToListeners_handleWhenCompleteCallback_closure(originalSource), type$.dynamic);
|
|
t1.listenerHasError = false;
|
|
}
|
|
},
|
|
$signature: 0
|
|
};
|
|
P._Future__propagateToListeners_handleWhenCompleteCallback_closure.prototype = {
|
|
call$1: function (_) {
|
|
return this.originalSource;
|
|
},
|
|
$signature: 10
|
|
};
|
|
P._Future__propagateToListeners_handleValueCallback.prototype = {
|
|
call$0: function () {
|
|
var e, s, t1, t2, t3, t4, t5, exception;
|
|
try {
|
|
t1 = this._box_0;
|
|
t2 = t1.listener;
|
|
t3 = t2.$ti;
|
|
t4 = t3._precomputed1;
|
|
t5 = t4._as(this.sourceResult);
|
|
t1.listenerValueOrError = t2.result._zone.runUnary$2$2(t3._eval$1("2/(1)")._as(t2.callback), t5, t3._eval$1("2/"), t4);
|
|
} catch (exception) {
|
|
e = H.unwrapException(exception);
|
|
s = H.getTraceFromException(exception);
|
|
t1 = this._box_0;
|
|
t1.listenerValueOrError = P.AsyncError$(e, s);
|
|
t1.listenerHasError = true;
|
|
}
|
|
},
|
|
$signature: 0
|
|
};
|
|
P._Future__propagateToListeners_handleError.prototype = {
|
|
call$0: function () {
|
|
var asyncError, e, s, t1, exception, t2, _this = this;
|
|
try {
|
|
asyncError = type$.AsyncError._as(_this._box_1.source._resultOrListeners);
|
|
t1 = _this._box_0;
|
|
if (t1.listener.matchesErrorTest$1(asyncError) && t1.listener.errorCallback != null) {
|
|
t1.listenerValueOrError = t1.listener.handleError$1(asyncError);
|
|
t1.listenerHasError = false;
|
|
}
|
|
} catch (exception) {
|
|
e = H.unwrapException(exception);
|
|
s = H.getTraceFromException(exception);
|
|
t1 = type$.AsyncError._as(_this._box_1.source._resultOrListeners);
|
|
t2 = _this._box_0;
|
|
if (t1.error === e)
|
|
t2.listenerValueOrError = t1;
|
|
else
|
|
t2.listenerValueOrError = P.AsyncError$(e, s);
|
|
t2.listenerHasError = true;
|
|
}
|
|
},
|
|
$signature: 0
|
|
};
|
|
P._AsyncCallbackEntry.prototype = {};
|
|
P._Zone.prototype = {
|
|
$isZone: 1
|
|
};
|
|
P._rootHandleUncaughtError_closure.prototype = {
|
|
call$0: function () {
|
|
var error = type$.Object._as(H.wrapException(this.error));
|
|
error.stack = this.stackTrace.toString$0(0);
|
|
throw error;
|
|
},
|
|
$signature: 0
|
|
};
|
|
P._RootZone.prototype = {
|
|
runGuarded$1: function (f) {
|
|
var e, s, exception, _null = null;
|
|
type$.void_Function._as(f);
|
|
try {
|
|
if (C.C__RootZone === $.Zone__current) {
|
|
f.call$0();
|
|
return;
|
|
}
|
|
P._rootRun(_null, _null, this, f, type$.void);
|
|
} catch (exception) {
|
|
e = H.unwrapException(exception);
|
|
s = H.getTraceFromException(exception);
|
|
P._rootHandleUncaughtError(_null, _null, this, type$.Object._as(e), type$.StackTrace._as(s));
|
|
}
|
|
},
|
|
bindCallback$1$1: function (f, $R) {
|
|
return new P._RootZone_bindCallback_closure(this, $R._eval$1("0()")._as(f), $R);
|
|
},
|
|
bindCallbackGuarded$1: function (f) {
|
|
return new P._RootZone_bindCallbackGuarded_closure(this, type$.void_Function._as(f));
|
|
},
|
|
run$1$1: function (f, $R) {
|
|
$R._eval$1("0()")._as(f);
|
|
if ($.Zone__current === C.C__RootZone)
|
|
return f.call$0();
|
|
return P._rootRun(null, null, this, f, $R);
|
|
},
|
|
runUnary$2$2: function (f, arg, $R, $T) {
|
|
$R._eval$1("@<0>")._bind$1($T)._eval$1("1(2)")._as(f);
|
|
$T._as(arg);
|
|
if ($.Zone__current === C.C__RootZone)
|
|
return f.call$1(arg);
|
|
return P._rootRunUnary(null, null, this, f, arg, $R, $T);
|
|
},
|
|
runBinary$3$3: function (f, arg1, arg2, $R, T1, T2) {
|
|
$R._eval$1("@<0>")._bind$1(T1)._bind$1(T2)._eval$1("1(2,3)")._as(f);
|
|
T1._as(arg1);
|
|
T2._as(arg2);
|
|
if ($.Zone__current === C.C__RootZone)
|
|
return f.call$2(arg1, arg2);
|
|
return P._rootRunBinary(null, null, this, f, arg1, arg2, $R, T1, T2);
|
|
}
|
|
};
|
|
P._RootZone_bindCallback_closure.prototype = {
|
|
call$0: function () {
|
|
return this.$this.run$1$1(this.f, this.R);
|
|
},
|
|
$signature: function () {
|
|
return this.R._eval$1("0()");
|
|
}
|
|
};
|
|
P._RootZone_bindCallbackGuarded_closure.prototype = {
|
|
call$0: function () {
|
|
return this.$this.runGuarded$1(this.f);
|
|
},
|
|
$signature: 0
|
|
};
|
|
P.ListBase.prototype = {
|
|
$isIterable: 1,
|
|
$isList: 1
|
|
};
|
|
P.ListMixin.prototype = {
|
|
get$iterator: function (receiver) {
|
|
return new H.ListIterator(receiver, this.get$length(receiver), H.instanceType(receiver)._eval$1("ListIterator<ListMixin.E>"));
|
|
},
|
|
elementAt$1: function (receiver, index) {
|
|
return this.$index(receiver, index);
|
|
},
|
|
toString$0: function (receiver) {
|
|
return P.IterableBase_iterableToFullString(receiver, "[", "]");
|
|
}
|
|
};
|
|
P.MapBase.prototype = {};
|
|
P.MapBase_mapToString_closure.prototype = {
|
|
call$2: function (k, v) {
|
|
var t2,
|
|
t1 = this._box_0;
|
|
if (!t1.first)
|
|
this.result._contents += ", ";
|
|
t1.first = false;
|
|
t1 = this.result;
|
|
t2 = t1._contents += H.S(k);
|
|
t1._contents = t2 + ": ";
|
|
t1._contents += H.S(v);
|
|
},
|
|
$signature: 11
|
|
};
|
|
P.MapMixin.prototype = {
|
|
get$length: function (_) {
|
|
return this._length;
|
|
},
|
|
toString$0: function (_) {
|
|
return P.MapBase_mapToString(this);
|
|
}
|
|
};
|
|
P._ListBase_Object_ListMixin.prototype = {};
|
|
P.Duration.prototype = {
|
|
$eq: function (_, other) {
|
|
if (other == null)
|
|
return false;
|
|
return other instanceof P.Duration && this._duration === other._duration;
|
|
},
|
|
get$hashCode: function (_) {
|
|
return C.JSInt_methods.get$hashCode(this._duration);
|
|
},
|
|
toString$0: function (_) {
|
|
var twoDigitMinutes, twoDigitSeconds, sixDigitUs,
|
|
t1 = new P.Duration_toString_twoDigits(),
|
|
t2 = this._duration;
|
|
if (t2 < 0)
|
|
return "-" + new P.Duration(0 - t2).toString$0(0);
|
|
twoDigitMinutes = t1.call$1(C.JSInt_methods._tdivFast$1(t2, 60000000) % 60);
|
|
twoDigitSeconds = t1.call$1(C.JSInt_methods._tdivFast$1(t2, 1000000) % 60);
|
|
sixDigitUs = new P.Duration_toString_sixDigits().call$1(t2 % 1000000);
|
|
return "" + C.JSInt_methods._tdivFast$1(t2, 3600000000) + ":" + twoDigitMinutes + ":" + twoDigitSeconds + "." + sixDigitUs;
|
|
}
|
|
};
|
|
P.Duration_toString_sixDigits.prototype = {
|
|
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;
|
|
},
|
|
$signature: 4
|
|
};
|
|
P.Duration_toString_twoDigits.prototype = {
|
|
call$1: function (n) {
|
|
if (n >= 10)
|
|
return "" + n;
|
|
return "0" + n;
|
|
},
|
|
$signature: 4
|
|
};
|
|
P.Error.prototype = {
|
|
get$stackTrace: function () {
|
|
return H.getTraceFromException(this.$thrownJsError);
|
|
}
|
|
};
|
|
P.AssertionError.prototype = {
|
|
toString$0: function (_) {
|
|
var t1 = this.message;
|
|
if (t1 != null)
|
|
return "Assertion failed: " + P.Error_safeToString(t1);
|
|
return "Assertion failed";
|
|
}
|
|
};
|
|
P.TypeError.prototype = {};
|
|
P.NullThrownError.prototype = {
|
|
toString$0: function (_) {
|
|
return "Throw of null.";
|
|
}
|
|
};
|
|
P.ArgumentError.prototype = {
|
|
get$_errorName: function () {
|
|
return "Invalid argument" + (!this._hasValue ? "(s)" : "");
|
|
},
|
|
get$_errorExplanation: function () {
|
|
return "";
|
|
},
|
|
toString$0: function (_) {
|
|
var explanation, errorValue, _this = this,
|
|
$name = _this.name,
|
|
nameString = $name == null ? "" : " (" + $name + ")",
|
|
message = _this.message,
|
|
messageString = message == null ? "" : ": " + message,
|
|
prefix = _this.get$_errorName() + nameString + messageString;
|
|
if (!_this._hasValue)
|
|
return prefix;
|
|
explanation = _this.get$_errorExplanation();
|
|
errorValue = P.Error_safeToString(_this.invalidValue);
|
|
return prefix + explanation + ": " + errorValue;
|
|
}
|
|
};
|
|
P.RangeError.prototype = {
|
|
get$_errorName: function () {
|
|
return "RangeError";
|
|
},
|
|
get$_errorExplanation: function () {
|
|
var explanation,
|
|
start = this.start,
|
|
end = this.end;
|
|
if (start == null)
|
|
explanation = end != null ? ": Not less than or equal to " + H.S(end) : "";
|
|
else if (end == null)
|
|
explanation = ": Not greater than or equal to " + H.S(start);
|
|
else if (end > start)
|
|
explanation = ": Not in inclusive range " + H.S(start) + ".." + H.S(end);
|
|
else
|
|
explanation = end < start ? ": Valid value range is empty" : ": Only valid value is " + H.S(start);
|
|
return explanation;
|
|
}
|
|
};
|
|
P.IndexError.prototype = {
|
|
get$_errorName: function () {
|
|
return "RangeError";
|
|
},
|
|
get$_errorExplanation: function () {
|
|
if (H._asInt(this.invalidValue) < 0)
|
|
return ": index must not be negative";
|
|
var t1 = this.length;
|
|
if (t1 === 0)
|
|
return ": no indices are valid";
|
|
return ": index should be less than " + t1;
|
|
},
|
|
get$length: function (receiver) {
|
|
return this.length;
|
|
}
|
|
};
|
|
P.UnsupportedError.prototype = {
|
|
toString$0: function (_) {
|
|
return "Unsupported operation: " + this.message;
|
|
}
|
|
};
|
|
P.UnimplementedError.prototype = {
|
|
toString$0: function (_) {
|
|
var t1 = "UnimplementedError: " + this.message;
|
|
return t1;
|
|
}
|
|
};
|
|
P.ConcurrentModificationError.prototype = {
|
|
toString$0: function (_) {
|
|
var t1 = this.modifiedObject;
|
|
if (t1 == null)
|
|
return "Concurrent modification during iteration.";
|
|
return "Concurrent modification during iteration: " + P.Error_safeToString(t1) + ".";
|
|
}
|
|
};
|
|
P.StackOverflowError.prototype = {
|
|
toString$0: function (_) {
|
|
return "Stack Overflow";
|
|
},
|
|
get$stackTrace: function () {
|
|
return null;
|
|
},
|
|
$isError: 1
|
|
};
|
|
P.CyclicInitializationError.prototype = {
|
|
toString$0: function (_) {
|
|
var t1 = "Reading static variable '" + this.variableName + "' during its initialization";
|
|
return t1;
|
|
}
|
|
};
|
|
P._Exception.prototype = {
|
|
toString$0: function (_) {
|
|
return "Exception: " + this.message;
|
|
}
|
|
};
|
|
P.Iterable.prototype = {
|
|
any$1: function (_, test) {
|
|
var t1;
|
|
H._instanceType(this)._eval$1("bool(Iterable.E)")._as(test);
|
|
for (t1 = this.get$iterator(this); t1.moveNext$0();)
|
|
if (H.boolConversionCheck(test.call$1(t1.get$current())))
|
|
return true;
|
|
return false;
|
|
},
|
|
get$length: function (_) {
|
|
var count,
|
|
it = this.get$iterator(this);
|
|
for (count = 0; it.moveNext$0();)
|
|
++count;
|
|
return count;
|
|
},
|
|
toString$0: function (_) {
|
|
return P.IterableBase_iterableToShortString(this, "(", ")");
|
|
}
|
|
};
|
|
P.Iterator.prototype = {};
|
|
P.Null.prototype = {
|
|
get$hashCode: function (_) {
|
|
return P.Object.prototype.get$hashCode.call(C.JSNull_methods, this);
|
|
},
|
|
toString$0: function (_) {
|
|
return "null";
|
|
}
|
|
};
|
|
P.Object.prototype = {
|
|
constructor: P.Object,
|
|
$isObject: 1,
|
|
$eq: function (_, other) {
|
|
return this === other;
|
|
},
|
|
get$hashCode: function (_) {
|
|
return H.Primitives_objectHashCode(this);
|
|
},
|
|
toString$0: function (_) {
|
|
return "Instance of '" + H.Primitives_objectTypeName(this) + "'";
|
|
},
|
|
toString: function () {
|
|
return this.toString$0(this);
|
|
}
|
|
};
|
|
P._StringStackTrace.prototype = {
|
|
toString$0: function (_) {
|
|
return "";
|
|
},
|
|
$isStackTrace: 1
|
|
};
|
|
P.StringBuffer.prototype = {
|
|
get$length: function (_) {
|
|
return this._contents.length;
|
|
},
|
|
toString$0: function (_) {
|
|
var t1 = this._contents;
|
|
return t1.charCodeAt(0) == 0 ? t1 : t1;
|
|
}
|
|
};
|
|
W.HtmlElement.prototype = {};
|
|
W.AnchorElement.prototype = {
|
|
toString$0: function (receiver) {
|
|
return String(receiver);
|
|
}
|
|
};
|
|
W.AreaElement.prototype = {
|
|
toString$0: function (receiver) {
|
|
return String(receiver);
|
|
}
|
|
};
|
|
W.CharacterData.prototype = {
|
|
get$length: function (receiver) {
|
|
return receiver.length;
|
|
}
|
|
};
|
|
W.CssStyleDeclaration.prototype = {
|
|
get$length: function (receiver) {
|
|
return receiver.length;
|
|
}
|
|
};
|
|
W.CssStyleDeclarationBase.prototype = {};
|
|
W.DivElement.prototype = {
|
|
$isDivElement: 1
|
|
};
|
|
W.DomException.prototype = {
|
|
toString$0: function (receiver) {
|
|
return String(receiver);
|
|
}
|
|
};
|
|
W.DomTokenList.prototype = {
|
|
get$length: function (receiver) {
|
|
return receiver.length;
|
|
}
|
|
};
|
|
W._FrozenElementList.prototype = {
|
|
get$length: function (_) {
|
|
return this._nodeList.length;
|
|
},
|
|
$index: function (_, index) {
|
|
var t1 = this._nodeList;
|
|
if (index < 0 || index >= t1.length)
|
|
return H.ioore(t1, index);
|
|
return this.$ti._precomputed1._as(t1[index]);
|
|
}
|
|
};
|
|
W.Element.prototype = {
|
|
toString$0: function (receiver) {
|
|
return receiver.localName;
|
|
},
|
|
$isElement: 1
|
|
};
|
|
W.EventTarget.prototype = {};
|
|
W.FormElement.prototype = {
|
|
get$length: function (receiver) {
|
|
return receiver.length;
|
|
}
|
|
};
|
|
W.Node.prototype = {
|
|
toString$0: function (receiver) {
|
|
var value = receiver.nodeValue;
|
|
return value == null ? this.super$Interceptor$toString(receiver) : value;
|
|
},
|
|
set$text: function (receiver, value) {
|
|
receiver.textContent = value;
|
|
},
|
|
$isNode: 1
|
|
};
|
|
W.NodeList.prototype = {
|
|
get$length: function (receiver) {
|
|
return receiver.length;
|
|
},
|
|
$index: function (receiver, index) {
|
|
if (index >>> 0 !== index || index >= receiver.length)
|
|
throw H.wrapException(P.IndexError$(index, receiver, null, null, null));
|
|
return receiver[index];
|
|
},
|
|
elementAt$1: function (receiver, index) {
|
|
if (index >= receiver.length)
|
|
return H.ioore(receiver, index);
|
|
return receiver[index];
|
|
},
|
|
$isJavaScriptIndexingBehavior: 1,
|
|
$isIterable: 1,
|
|
$isList: 1
|
|
};
|
|
W.SelectElement.prototype = {
|
|
get$length: function (receiver) {
|
|
return receiver.length;
|
|
}
|
|
};
|
|
W.TableCellElement.prototype = {};
|
|
W.ImmutableListMixin.prototype = {
|
|
get$iterator: function (receiver) {
|
|
return new W.FixedSizeListIterator(receiver, receiver.length, H.instanceType(receiver)._eval$1("FixedSizeListIterator<ImmutableListMixin.E>"));
|
|
}
|
|
};
|
|
W.FixedSizeListIterator.prototype = {
|
|
moveNext$0: function () {
|
|
var _this = this,
|
|
nextPosition = _this._position + 1,
|
|
t1 = _this._html$_length;
|
|
if (nextPosition < t1) {
|
|
t1 = _this._array;
|
|
if (nextPosition < 0 || nextPosition >= t1.length)
|
|
return H.ioore(t1, nextPosition);
|
|
_this.set$_html$_current(t1[nextPosition]);
|
|
_this._position = nextPosition;
|
|
return true;
|
|
}
|
|
_this.set$_html$_current(null);
|
|
_this._position = t1;
|
|
return false;
|
|
},
|
|
get$current: function () {
|
|
return this.$ti._precomputed1._as(this._html$_current);
|
|
},
|
|
set$_html$_current: function (_current) {
|
|
this._html$_current = this.$ti._eval$1("1?")._as(_current);
|
|
},
|
|
$isIterator: 1
|
|
};
|
|
W._CssStyleDeclaration_Interceptor_CssStyleDeclarationBase.prototype = {};
|
|
W._NodeList_Interceptor_ListMixin.prototype = {};
|
|
W._NodeList_Interceptor_ListMixin_ImmutableListMixin.prototype = {};
|
|
V.main_closure.prototype = {
|
|
call$2: function (key, value) {
|
|
H._asString(key);
|
|
H._asInt(value);
|
|
P.print(key + " : " + value);
|
|
},
|
|
$signature: 12
|
|
};
|
|
V.main_closure0.prototype = {
|
|
call$1: function (value) {
|
|
P.print("\u5ef6\u65f61\u79d2\u6267\u884c then ");
|
|
P.print(value);
|
|
},
|
|
$signature: 1
|
|
};
|
|
V.main_closure1.prototype = {
|
|
call$0: function () {
|
|
P.print("closuer");
|
|
},
|
|
$signature: 2
|
|
};
|
|
(function aliases() {
|
|
var _ = J.Interceptor.prototype;
|
|
_.super$Interceptor$toString = _.toString$0;
|
|
_ = J.JavaScriptObject.prototype;
|
|
_.super$JavaScriptObject$toString = _.toString$0;
|
|
})();
|
|
(function installTearOffs() {
|
|
var _static_1 = hunkHelpers._static_1,
|
|
_static_0 = hunkHelpers._static_0;
|
|
_static_1(P, "async__AsyncRun__scheduleImmediateJsOverride$closure", "_AsyncRun__scheduleImmediateJsOverride", 3);
|
|
_static_1(P, "async__AsyncRun__scheduleImmediateWithSetImmediate$closure", "_AsyncRun__scheduleImmediateWithSetImmediate", 3);
|
|
_static_1(P, "async__AsyncRun__scheduleImmediateWithTimer$closure", "_AsyncRun__scheduleImmediateWithTimer", 3);
|
|
_static_0(P, "async___startMicrotaskLoop$closure", "_startMicrotaskLoop", 0);
|
|
})();
|
|
(function inheritance() {
|
|
var _mixin = hunkHelpers.mixin,
|
|
_inherit = hunkHelpers.inherit,
|
|
_inheritMany = hunkHelpers.inheritMany;
|
|
_inherit(P.Object, null);
|
|
_inheritMany(P.Object, [H.JS_CONST, J.Interceptor, J.ArrayIterator, P.Error, P.Iterable, H.ListIterator, P.Iterator, H.TypeErrorDecoder, H.NullThrownFromJavaScriptException, H._StackTrace, H.Closure, P.MapMixin, H.LinkedHashMapCell, H.LinkedHashMapKeyIterator, H.Rti, H._FunctionParameters, P._TimerImpl, P.AsyncError, P._FutureListener, P._Future, P._AsyncCallbackEntry, P._Zone, P._ListBase_Object_ListMixin, P.ListMixin, P.Duration, P.StackOverflowError, P._Exception, P.Null, P._StringStackTrace, P.StringBuffer, W.CssStyleDeclarationBase, W.ImmutableListMixin, W.FixedSizeListIterator]);
|
|
_inheritMany(J.Interceptor, [J.JSBool, J.JSNull, J.JavaScriptObject, J.JSArray, J.JSNumber, J.JSString, W.EventTarget, W._CssStyleDeclaration_Interceptor_CssStyleDeclarationBase, W.DomException, W.DomTokenList, W._NodeList_Interceptor_ListMixin]);
|
|
_inheritMany(J.JavaScriptObject, [J.PlainJavaScriptObject, J.UnknownJavaScriptObject, J.JavaScriptFunction]);
|
|
_inherit(J.JSUnmodifiableArray, J.JSArray);
|
|
_inheritMany(J.JSNumber, [J.JSInt, J.JSDouble]);
|
|
_inheritMany(P.Error, [H.LateError, P.TypeError, H.JsNoSuchMethodError, H.UnknownJsTypeError, H.RuntimeError, P.AssertionError, H._Error, P.NullThrownError, P.ArgumentError, P.UnsupportedError, P.UnimplementedError, P.ConcurrentModificationError, P.CyclicInitializationError]);
|
|
_inheritMany(P.Iterable, [H.EfficientLengthIterable, H.MappedIterable]);
|
|
_inherit(H.EfficientLengthMappedIterable, H.MappedIterable);
|
|
_inherit(H.MappedIterator, P.Iterator);
|
|
_inherit(H.NullError, P.TypeError);
|
|
_inheritMany(H.Closure, [H.TearOffClosure, H.JsLinkedHashMap_values_closure, H.JsLinkedHashMap_containsValue_closure, H.initHooks_closure, H.initHooks_closure0, H.initHooks_closure1, P._AsyncRun__initializeScheduleImmediate_internalCallback, P._AsyncRun__initializeScheduleImmediate_closure, P._AsyncRun__scheduleImmediateJsOverride_internalCallback, P._AsyncRun__scheduleImmediateWithSetImmediate_internalCallback, P._TimerImpl_internalCallback, P.Future_Future$delayed_closure, P._Future__addListener_closure, P._Future__prependListeners_closure, P._Future__chainForeignFuture_closure, P._Future__chainForeignFuture_closure0, P._Future__chainForeignFuture_closure1, P._Future__propagateToListeners_handleWhenCompleteCallback, P._Future__propagateToListeners_handleWhenCompleteCallback_closure, P._Future__propagateToListeners_handleValueCallback, P._Future__propagateToListeners_handleError, P._rootHandleUncaughtError_closure, P._RootZone_bindCallback_closure, P._RootZone_bindCallbackGuarded_closure, P.MapBase_mapToString_closure, P.Duration_toString_sixDigits, P.Duration_toString_twoDigits, V.main_closure, V.main_closure0, V.main_closure1]);
|
|
_inheritMany(H.TearOffClosure, [H.StaticClosure, H.BoundClosure]);
|
|
_inherit(H._AssertionError, P.AssertionError);
|
|
_inherit(P.MapBase, P.MapMixin);
|
|
_inherit(H.JsLinkedHashMap, P.MapBase);
|
|
_inherit(H.LinkedHashMapKeyIterable, H.EfficientLengthIterable);
|
|
_inherit(H._TypeError, H._Error);
|
|
_inherit(P._RootZone, P._Zone);
|
|
_inherit(P.ListBase, P._ListBase_Object_ListMixin);
|
|
_inheritMany(P.ArgumentError, [P.RangeError, P.IndexError]);
|
|
_inherit(W.Node, W.EventTarget);
|
|
_inheritMany(W.Node, [W.Element, W.CharacterData]);
|
|
_inherit(W.HtmlElement, W.Element);
|
|
_inheritMany(W.HtmlElement, [W.AnchorElement, W.AreaElement, W.DivElement, W.FormElement, W.SelectElement, W.TableCellElement]);
|
|
_inherit(W.CssStyleDeclaration, W._CssStyleDeclaration_Interceptor_CssStyleDeclarationBase);
|
|
_inherit(W._FrozenElementList, P.ListBase);
|
|
_inherit(W._NodeList_Interceptor_ListMixin_ImmutableListMixin, W._NodeList_Interceptor_ListMixin);
|
|
_inherit(W.NodeList, W._NodeList_Interceptor_ListMixin_ImmutableListMixin);
|
|
_mixin(P._ListBase_Object_ListMixin, P.ListMixin);
|
|
_mixin(W._CssStyleDeclaration_Interceptor_CssStyleDeclarationBase, W.CssStyleDeclarationBase);
|
|
_mixin(W._NodeList_Interceptor_ListMixin, P.ListMixin);
|
|
_mixin(W._NodeList_Interceptor_ListMixin_ImmutableListMixin, W.ImmutableListMixin);
|
|
})();
|
|
var init = {
|
|
typeUniverse: {
|
|
eC: new Map(),
|
|
tR: {},
|
|
eT: {},
|
|
tPV: {},
|
|
sEA: []
|
|
},
|
|
mangledGlobalNames: {
|
|
int: "int",
|
|
double: "double",
|
|
num: "num",
|
|
String: "String",
|
|
bool: "bool",
|
|
Null: "Null",
|
|
List: "List"
|
|
},
|
|
mangledNames: {},
|
|
getTypeFromName: getGlobalFromName,
|
|
metadata: [],
|
|
types: ["~()", "Null(@)", "Null()", "~(~())", "String(int)", "@(@)", "@(@,String)", "@(String)", "Null(~())", "Null(Object,StackTrace)", "_Future<@>(@)", "~(Object?,Object?)", "~(String,int)"],
|
|
interceptorsByTag: null,
|
|
leafTags: null,
|
|
arrayRti: typeof Symbol == "function" && typeof Symbol() == "symbol" ? Symbol("$ti") : "$ti"
|
|
};
|
|
H._Universe_addRules(init.typeUniverse, JSON.parse('{"PlainJavaScriptObject":"JavaScriptObject","UnknownJavaScriptObject":"JavaScriptObject","JavaScriptFunction":"JavaScriptObject","AElement":"Element","GraphicsElement":"Element","SvgElement":"Element","AudioElement":"HtmlElement","MediaElement":"HtmlElement","HtmlDocument":"Node","Document":"Node","CDataSection":"CharacterData","Text":"CharacterData","JSBool":{"bool":[]},"JSNull":{"Null":[]},"JavaScriptObject":{"Function":[]},"JSArray":{"List":["1"],"Iterable":["1"]},"JSUnmodifiableArray":{"JSArray":["1"],"List":["1"],"Iterable":["1"]},"ArrayIterator":{"Iterator":["1"]},"JSNumber":{"num":[]},"JSInt":{"int":[],"num":[]},"JSDouble":{"num":[]},"JSString":{"String":[]},"LateError":{"Error":[]},"EfficientLengthIterable":{"Iterable":["1"]},"ListIterator":{"Iterator":["1"]},"MappedIterable":{"Iterable":["2"],"Iterable.E":"2"},"EfficientLengthMappedIterable":{"MappedIterable":["1","2"],"Iterable":["2"],"Iterable.E":"2"},"MappedIterator":{"Iterator":["2"]},"NullError":{"Error":[]},"JsNoSuchMethodError":{"Error":[]},"UnknownJsTypeError":{"Error":[]},"_StackTrace":{"StackTrace":[]},"Closure":{"Function":[]},"TearOffClosure":{"Function":[]},"StaticClosure":{"Function":[]},"BoundClosure":{"Function":[]},"RuntimeError":{"Error":[]},"_AssertionError":{"Error":[]},"JsLinkedHashMap":{"MapMixin":["1","2"],"LinkedHashMap":["1","2"]},"LinkedHashMapKeyIterable":{"Iterable":["1"],"Iterable.E":"1"},"LinkedHashMapKeyIterator":{"Iterator":["1"]},"_Error":{"Error":[]},"_TypeError":{"Error":[]},"AsyncError":{"Error":[]},"_Future":{"Future":["1"]},"_Zone":{"Zone":[]},"_RootZone":{"_Zone":[],"Zone":[]},"ListBase":{"ListMixin":["1"],"List":["1"],"Iterable":["1"]},"MapBase":{"MapMixin":["1","2"]},"int":{"num":[]},"AssertionError":{"Error":[]},"TypeError":{"Error":[]},"NullThrownError":{"Error":[]},"ArgumentError":{"Error":[]},"RangeError":{"Error":[]},"IndexError":{"Error":[]},"UnsupportedError":{"Error":[]},"UnimplementedError":{"Error":[]},"ConcurrentModificationError":{"Error":[]},"StackOverflowError":{"Error":[]},"CyclicInitializationError":{"Error":[]},"_StringStackTrace":{"StackTrace":[]},"HtmlElement":{"Element":[],"Node":[]},"AnchorElement":{"Element":[],"Node":[]},"AreaElement":{"Element":[],"Node":[]},"CharacterData":{"Node":[]},"DivElement":{"Element":[],"Node":[]},"_FrozenElementList":{"ListMixin":["1"],"List":["1"],"Iterable":["1"],"ListMixin.E":"1"},"Element":{"Node":[]},"FormElement":{"Element":[],"Node":[]},"NodeList":{"ListMixin":["Node"],"ImmutableListMixin":["Node"],"List":["Node"],"JavaScriptIndexingBehavior":["Node"],"Iterable":["Node"],"ListMixin.E":"Node","ImmutableListMixin.E":"Node"},"SelectElement":{"Element":[],"Node":[]},"TableCellElement":{"Element":[],"Node":[]},"FixedSizeListIterator":{"Iterator":["1"]}}'));
|
|
H._Universe_addErasedTypes(init.typeUniverse, JSON.parse('{"EfficientLengthIterable":1,"ListBase":1,"MapBase":2,"_ListBase_Object_ListMixin":1}'));
|
|
0;
|
|
var type$ = (function rtii() {
|
|
var findType = H.findType;
|
|
return {
|
|
AsyncError: findType("AsyncError"),
|
|
DivElement: findType("DivElement"),
|
|
Element: findType("Element"),
|
|
Error: findType("Error"),
|
|
Function: findType("Function"),
|
|
Future_dynamic: findType("Future<@>"),
|
|
Iterable_dynamic: findType("Iterable<@>"),
|
|
JSArray_String: findType("JSArray<String>"),
|
|
JSArray_dynamic: findType("JSArray<@>"),
|
|
JSNull: findType("JSNull"),
|
|
JavaScriptFunction: findType("JavaScriptFunction"),
|
|
JavaScriptIndexingBehavior_dynamic: findType("JavaScriptIndexingBehavior<@>"),
|
|
Null: findType("Null"),
|
|
Object: findType("Object"),
|
|
StackTrace: findType("StackTrace"),
|
|
String: findType("String"),
|
|
UnknownJavaScriptObject: findType("UnknownJavaScriptObject"),
|
|
_FrozenElementList_Element: findType("_FrozenElementList<Element>"),
|
|
_Future_dynamic: findType("_Future<@>"),
|
|
bool: findType("bool"),
|
|
bool_Function_Object: findType("bool(Object)"),
|
|
double: findType("double"),
|
|
dynamic: findType("@"),
|
|
dynamic_Function: findType("@()"),
|
|
dynamic_Function_Object: findType("@(Object)"),
|
|
dynamic_Function_Object_StackTrace: findType("@(Object,StackTrace)"),
|
|
int: findType("int"),
|
|
legacy_Never: findType("0&*"),
|
|
legacy_Object: findType("Object*"),
|
|
nullable_Future_Null: findType("Future<Null>?"),
|
|
nullable_Object: findType("Object?"),
|
|
nullable__FutureListener_dynamic_dynamic: findType("_FutureListener<@,@>?"),
|
|
num: findType("num"),
|
|
void: findType("~"),
|
|
void_Function: findType("~()")
|
|
};
|
|
})();
|
|
(function constants() {
|
|
C.Interceptor_methods = J.Interceptor.prototype;
|
|
C.JSArray_methods = J.JSArray.prototype;
|
|
C.JSInt_methods = J.JSInt.prototype;
|
|
C.JSNull_methods = J.JSNull.prototype;
|
|
C.JSString_methods = J.JSString.prototype;
|
|
C.JavaScriptFunction_methods = J.JavaScriptFunction.prototype;
|
|
C.PlainJavaScriptObject_methods = J.PlainJavaScriptObject.prototype;
|
|
C.TableCellElement_methods = W.TableCellElement.prototype;
|
|
C.UnknownJavaScriptObject_methods = J.UnknownJavaScriptObject.prototype;
|
|
C.C_JS_CONST = function getTagFallback(o) {
|
|
var s = Object.prototype.toString.call(o);
|
|
return s.substring(8, s.length - 1);
|
|
};
|
|
C.C_JS_CONST0 = function () {
|
|
var toStringFunction = Object.prototype.toString;
|
|
|
|
function getTag(o) {
|
|
var s = toStringFunction.call(o);
|
|
return s.substring(8, s.length - 1);
|
|
}
|
|
|
|
function getUnknownTag(object, tag) {
|
|
if (/^HTML[A-Z].*Element$/.test(tag)) {
|
|
var name = toStringFunction.call(object);
|
|
if (name == "[object Object]") return null;
|
|
return "HTMLElement";
|
|
}
|
|
}
|
|
|
|
function getUnknownTagGenericBrowser(object, tag) {
|
|
if (self.HTMLElement && object instanceof HTMLElement) return "HTMLElement";
|
|
return getUnknownTag(object, tag);
|
|
}
|
|
|
|
function prototypeForTag(tag) {
|
|
if (typeof window == "undefined") return null;
|
|
if (typeof window[tag] == "undefined") return null;
|
|
var constructor = window[tag];
|
|
if (typeof constructor != "function") return null;
|
|
return constructor.prototype;
|
|
}
|
|
|
|
function discriminator(tag) {
|
|
return null;
|
|
}
|
|
var isBrowser = typeof navigator == "object";
|
|
return {
|
|
getTag: getTag,
|
|
getUnknownTag: isBrowser ? getUnknownTagGenericBrowser : getUnknownTag,
|
|
prototypeForTag: prototypeForTag,
|
|
discriminator: discriminator
|
|
};
|
|
};
|
|
C.C_JS_CONST6 = function (getTagFallback) {
|
|
return function (hooks) {
|
|
if (typeof navigator != "object") return hooks;
|
|
var ua = navigator.userAgent;
|
|
if (ua.indexOf("DumpRenderTree") >= 0) return hooks;
|
|
if (ua.indexOf("Chrome") >= 0) {
|
|
function confirm(p) {
|
|
return typeof window == "object" && window[p] && window[p].name == p;
|
|
}
|
|
if (confirm("Window") && confirm("HTMLElement")) return hooks;
|
|
}
|
|
hooks.getTag = getTagFallback;
|
|
};
|
|
};
|
|
C.C_JS_CONST1 = function (hooks) {
|
|
if (typeof dartExperimentalFixupGetTag != "function") return hooks;
|
|
hooks.getTag = dartExperimentalFixupGetTag(hooks.getTag);
|
|
};
|
|
C.C_JS_CONST2 = function (hooks) {
|
|
var getTag = hooks.getTag;
|
|
var prototypeForTag = hooks.prototypeForTag;
|
|
|
|
function getTagFixed(o) {
|
|
var tag = getTag(o);
|
|
if (tag == "Document") {
|
|
if (!!o.xmlVersion) return "!Document";
|
|
return "!HTMLDocument";
|
|
}
|
|
return tag;
|
|
}
|
|
|
|
function prototypeForTagFixed(tag) {
|
|
if (tag == "Document") return null;
|
|
return prototypeForTag(tag);
|
|
}
|
|
hooks.getTag = getTagFixed;
|
|
hooks.prototypeForTag = prototypeForTagFixed;
|
|
};
|
|
C.C_JS_CONST5 = function (hooks) {
|
|
var userAgent = typeof navigator == "object" ? navigator.userAgent : "";
|
|
if (userAgent.indexOf("Firefox") == -1) return hooks;
|
|
var getTag = hooks.getTag;
|
|
var quickMap = {
|
|
"BeforeUnloadEvent": "Event",
|
|
"DataTransfer": "Clipboard",
|
|
"GeoGeolocation": "Geolocation",
|
|
"Location": "!Location",
|
|
"WorkerMessageEvent": "MessageEvent",
|
|
"XMLDocument": "!Document"
|
|
};
|
|
|
|
function getTagFirefox(o) {
|
|
var tag = getTag(o);
|
|
return quickMap[tag] || tag;
|
|
}
|
|
hooks.getTag = getTagFirefox;
|
|
};
|
|
C.C_JS_CONST4 = function (hooks) {
|
|
var userAgent = typeof navigator == "object" ? navigator.userAgent : "";
|
|
if (userAgent.indexOf("Trident/") == -1) return hooks;
|
|
var getTag = hooks.getTag;
|
|
var quickMap = {
|
|
"BeforeUnloadEvent": "Event",
|
|
"DataTransfer": "Clipboard",
|
|
"HTMLDDElement": "HTMLElement",
|
|
"HTMLDTElement": "HTMLElement",
|
|
"HTMLPhraseElement": "HTMLElement",
|
|
"Position": "Geoposition"
|
|
};
|
|
|
|
function getTagIE(o) {
|
|
var tag = getTag(o);
|
|
var newTag = quickMap[tag];
|
|
if (newTag) return newTag;
|
|
if (tag == "Object") {
|
|
if (window.DataView && (o instanceof window.DataView)) return "DataView";
|
|
}
|
|
return tag;
|
|
}
|
|
|
|
function prototypeForTagIE(tag) {
|
|
var constructor = window[tag];
|
|
if (constructor == null) return null;
|
|
return constructor.prototype;
|
|
}
|
|
hooks.getTag = getTagIE;
|
|
hooks.prototypeForTag = prototypeForTagIE;
|
|
};
|
|
C.C_JS_CONST3 = function (hooks) {
|
|
return hooks;
|
|
};
|
|
C.C__RootZone = new P._RootZone();
|
|
C.C__StringStackTrace = new P._StringStackTrace();
|
|
C.Duration_0 = new P.Duration(0);
|
|
})();
|
|
(function staticFields() {
|
|
$._JS_INTEROP_INTERCEPTOR_TAG = null;
|
|
$.Closure_functionCounter = 0;
|
|
$.BoundClosure_selfFieldNameCache = null;
|
|
$.BoundClosure_receiverFieldNameCache = null;
|
|
$.getTagFunction = null;
|
|
$.alternateTagFunction = null;
|
|
$.prototypeForTagFunction = null;
|
|
$.dispatchRecordsForInstanceTags = null;
|
|
$.interceptorsForUncacheableTags = null;
|
|
$.initNativeDispatchFlag = null;
|
|
$._nextCallback = null;
|
|
$._lastCallback = null;
|
|
$._lastPriorityCallback = null;
|
|
$._isInCallbackLoop = false;
|
|
$.Zone__current = C.C__RootZone;
|
|
$._toStringVisiting = H.setRuntimeTypeInfo([], H.findType("JSArray<Object>"));
|
|
})();
|
|
(function lazyInitializers() {
|
|
var _lazyFinal = hunkHelpers.lazyFinal,
|
|
_lazy = hunkHelpers.lazy;
|
|
_lazyFinal($, "DART_CLOSURE_PROPERTY_NAME", "$get$DART_CLOSURE_PROPERTY_NAME", function () {
|
|
return H.getIsolateAffinityTag("_$dart_dartClosure");
|
|
});
|
|
_lazyFinal($, "TypeErrorDecoder_noSuchMethodPattern", "$get$TypeErrorDecoder_noSuchMethodPattern", function () {
|
|
return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn({
|
|
toString: function () {
|
|
return "$receiver$";
|
|
}
|
|
}));
|
|
});
|
|
_lazyFinal($, "TypeErrorDecoder_notClosurePattern", "$get$TypeErrorDecoder_notClosurePattern", function () {
|
|
return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn({
|
|
$method$: null,
|
|
toString: function () {
|
|
return "$receiver$";
|
|
}
|
|
}));
|
|
});
|
|
_lazyFinal($, "TypeErrorDecoder_nullCallPattern", "$get$TypeErrorDecoder_nullCallPattern", function () {
|
|
return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn(null));
|
|
});
|
|
_lazyFinal($, "TypeErrorDecoder_nullLiteralCallPattern", "$get$TypeErrorDecoder_nullLiteralCallPattern", function () {
|
|
return H.TypeErrorDecoder_extractPattern(function () {
|
|
var $argumentsExpr$ = "$arguments$";
|
|
try {
|
|
null.$method$($argumentsExpr$);
|
|
} catch (e) {
|
|
return e.message;
|
|
}
|
|
}());
|
|
});
|
|
_lazyFinal($, "TypeErrorDecoder_undefinedCallPattern", "$get$TypeErrorDecoder_undefinedCallPattern", function () {
|
|
return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokeCallErrorOn(void 0));
|
|
});
|
|
_lazyFinal($, "TypeErrorDecoder_undefinedLiteralCallPattern", "$get$TypeErrorDecoder_undefinedLiteralCallPattern", function () {
|
|
return H.TypeErrorDecoder_extractPattern(function () {
|
|
var $argumentsExpr$ = "$arguments$";
|
|
try {
|
|
(void 0).$method$($argumentsExpr$);
|
|
} catch (e) {
|
|
return e.message;
|
|
}
|
|
}());
|
|
});
|
|
_lazyFinal($, "TypeErrorDecoder_nullPropertyPattern", "$get$TypeErrorDecoder_nullPropertyPattern", function () {
|
|
return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokePropertyErrorOn(null));
|
|
});
|
|
_lazyFinal($, "TypeErrorDecoder_nullLiteralPropertyPattern", "$get$TypeErrorDecoder_nullLiteralPropertyPattern", function () {
|
|
return H.TypeErrorDecoder_extractPattern(function () {
|
|
try {
|
|
null.$method$;
|
|
} catch (e) {
|
|
return e.message;
|
|
}
|
|
}());
|
|
});
|
|
_lazyFinal($, "TypeErrorDecoder_undefinedPropertyPattern", "$get$TypeErrorDecoder_undefinedPropertyPattern", function () {
|
|
return H.TypeErrorDecoder_extractPattern(H.TypeErrorDecoder_provokePropertyErrorOn(void 0));
|
|
});
|
|
_lazyFinal($, "TypeErrorDecoder_undefinedLiteralPropertyPattern", "$get$TypeErrorDecoder_undefinedLiteralPropertyPattern", function () {
|
|
return H.TypeErrorDecoder_extractPattern(function () {
|
|
try {
|
|
(void 0).$method$;
|
|
} catch (e) {
|
|
return e.message;
|
|
}
|
|
}());
|
|
});
|
|
_lazyFinal($, "_AsyncRun__scheduleImmediateClosure", "$get$_AsyncRun__scheduleImmediateClosure", function () {
|
|
return P._AsyncRun__initializeScheduleImmediate();
|
|
});
|
|
_lazy($, "Dt_at", "$get$Dt_at", function () {
|
|
return "@";
|
|
});
|
|
})();
|
|
(function nativeSupport() {
|
|
! function () {
|
|
var intern = function (s) {
|
|
var o = {};
|
|
o[s] = 1;
|
|
return Object.keys(hunkHelpers.convertToFastObject(o))[0];
|
|
};
|
|
init.getIsolateTag = function (name) {
|
|
return intern("___dart_" + name + init.isolateTag);
|
|
};
|
|
var tableProperty = "___dart_isolate_tags_";
|
|
var usedProperties = Object[tableProperty] || (Object[tableProperty] = Object.create(null));
|
|
var rootProperty = "_ZxYxX";
|
|
for (var i = 0;; i++) {
|
|
var property = intern(rootProperty + "_" + i + "_");
|
|
if (!(property in usedProperties)) {
|
|
usedProperties[property] = 1;
|
|
init.isolateTag = property;
|
|
break;
|
|
}
|
|
}
|
|
init.dispatchPropertyName = init.getIsolateTag("dispatch_record");
|
|
}();
|
|
hunkHelpers.setOrUpdateInterceptorsByTag({
|
|
ApplicationCacheErrorEvent: J.Interceptor,
|
|
DOMError: J.Interceptor,
|
|
ErrorEvent: J.Interceptor,
|
|
Event: J.Interceptor,
|
|
InputEvent: J.Interceptor,
|
|
SubmitEvent: J.Interceptor,
|
|
MediaError: J.Interceptor,
|
|
Navigator: J.Interceptor,
|
|
NavigatorConcurrentHardware: J.Interceptor,
|
|
NavigatorUserMediaError: J.Interceptor,
|
|
OverconstrainedError: J.Interceptor,
|
|
PositionError: J.Interceptor,
|
|
SensorErrorEvent: J.Interceptor,
|
|
SpeechRecognitionError: J.Interceptor,
|
|
SQLError: J.Interceptor,
|
|
HTMLAudioElement: W.HtmlElement,
|
|
HTMLBRElement: W.HtmlElement,
|
|
HTMLBaseElement: W.HtmlElement,
|
|
HTMLBodyElement: W.HtmlElement,
|
|
HTMLButtonElement: W.HtmlElement,
|
|
HTMLCanvasElement: W.HtmlElement,
|
|
HTMLContentElement: W.HtmlElement,
|
|
HTMLDListElement: W.HtmlElement,
|
|
HTMLDataElement: W.HtmlElement,
|
|
HTMLDataListElement: W.HtmlElement,
|
|
HTMLDetailsElement: W.HtmlElement,
|
|
HTMLDialogElement: W.HtmlElement,
|
|
HTMLEmbedElement: W.HtmlElement,
|
|
HTMLFieldSetElement: W.HtmlElement,
|
|
HTMLHRElement: W.HtmlElement,
|
|
HTMLHeadElement: W.HtmlElement,
|
|
HTMLHeadingElement: W.HtmlElement,
|
|
HTMLHtmlElement: W.HtmlElement,
|
|
HTMLIFrameElement: W.HtmlElement,
|
|
HTMLImageElement: W.HtmlElement,
|
|
HTMLInputElement: W.HtmlElement,
|
|
HTMLLIElement: W.HtmlElement,
|
|
HTMLLabelElement: W.HtmlElement,
|
|
HTMLLegendElement: W.HtmlElement,
|
|
HTMLLinkElement: W.HtmlElement,
|
|
HTMLMapElement: W.HtmlElement,
|
|
HTMLMediaElement: W.HtmlElement,
|
|
HTMLMenuElement: W.HtmlElement,
|
|
HTMLMetaElement: W.HtmlElement,
|
|
HTMLMeterElement: W.HtmlElement,
|
|
HTMLModElement: W.HtmlElement,
|
|
HTMLOListElement: W.HtmlElement,
|
|
HTMLObjectElement: W.HtmlElement,
|
|
HTMLOptGroupElement: W.HtmlElement,
|
|
HTMLOptionElement: W.HtmlElement,
|
|
HTMLOutputElement: W.HtmlElement,
|
|
HTMLParagraphElement: W.HtmlElement,
|
|
HTMLParamElement: W.HtmlElement,
|
|
HTMLPictureElement: W.HtmlElement,
|
|
HTMLPreElement: W.HtmlElement,
|
|
HTMLProgressElement: W.HtmlElement,
|
|
HTMLQuoteElement: W.HtmlElement,
|
|
HTMLScriptElement: W.HtmlElement,
|
|
HTMLShadowElement: W.HtmlElement,
|
|
HTMLSlotElement: W.HtmlElement,
|
|
HTMLSourceElement: W.HtmlElement,
|
|
HTMLSpanElement: W.HtmlElement,
|
|
HTMLStyleElement: W.HtmlElement,
|
|
HTMLTableCaptionElement: W.HtmlElement,
|
|
HTMLTableColElement: W.HtmlElement,
|
|
HTMLTableElement: W.HtmlElement,
|
|
HTMLTableRowElement: W.HtmlElement,
|
|
HTMLTableSectionElement: W.HtmlElement,
|
|
HTMLTemplateElement: W.HtmlElement,
|
|
HTMLTextAreaElement: W.HtmlElement,
|
|
HTMLTimeElement: W.HtmlElement,
|
|
HTMLTitleElement: W.HtmlElement,
|
|
HTMLTrackElement: W.HtmlElement,
|
|
HTMLUListElement: W.HtmlElement,
|
|
HTMLUnknownElement: W.HtmlElement,
|
|
HTMLVideoElement: W.HtmlElement,
|
|
HTMLDirectoryElement: W.HtmlElement,
|
|
HTMLFontElement: W.HtmlElement,
|
|
HTMLFrameElement: W.HtmlElement,
|
|
HTMLFrameSetElement: W.HtmlElement,
|
|
HTMLMarqueeElement: W.HtmlElement,
|
|
HTMLElement: W.HtmlElement,
|
|
HTMLAnchorElement: W.AnchorElement,
|
|
HTMLAreaElement: W.AreaElement,
|
|
CDATASection: W.CharacterData,
|
|
CharacterData: W.CharacterData,
|
|
Comment: W.CharacterData,
|
|
ProcessingInstruction: W.CharacterData,
|
|
Text: W.CharacterData,
|
|
CSSStyleDeclaration: W.CssStyleDeclaration,
|
|
MSStyleCSSProperties: W.CssStyleDeclaration,
|
|
CSS2Properties: W.CssStyleDeclaration,
|
|
HTMLDivElement: W.DivElement,
|
|
DOMException: W.DomException,
|
|
DOMTokenList: W.DomTokenList,
|
|
SVGAElement: W.Element,
|
|
SVGAnimateElement: W.Element,
|
|
SVGAnimateMotionElement: W.Element,
|
|
SVGAnimateTransformElement: W.Element,
|
|
SVGAnimationElement: W.Element,
|
|
SVGCircleElement: W.Element,
|
|
SVGClipPathElement: W.Element,
|
|
SVGDefsElement: W.Element,
|
|
SVGDescElement: W.Element,
|
|
SVGDiscardElement: W.Element,
|
|
SVGEllipseElement: W.Element,
|
|
SVGFEBlendElement: W.Element,
|
|
SVGFEColorMatrixElement: W.Element,
|
|
SVGFEComponentTransferElement: W.Element,
|
|
SVGFECompositeElement: W.Element,
|
|
SVGFEConvolveMatrixElement: W.Element,
|
|
SVGFEDiffuseLightingElement: W.Element,
|
|
SVGFEDisplacementMapElement: W.Element,
|
|
SVGFEDistantLightElement: W.Element,
|
|
SVGFEFloodElement: W.Element,
|
|
SVGFEFuncAElement: W.Element,
|
|
SVGFEFuncBElement: W.Element,
|
|
SVGFEFuncGElement: W.Element,
|
|
SVGFEFuncRElement: W.Element,
|
|
SVGFEGaussianBlurElement: W.Element,
|
|
SVGFEImageElement: W.Element,
|
|
SVGFEMergeElement: W.Element,
|
|
SVGFEMergeNodeElement: W.Element,
|
|
SVGFEMorphologyElement: W.Element,
|
|
SVGFEOffsetElement: W.Element,
|
|
SVGFEPointLightElement: W.Element,
|
|
SVGFESpecularLightingElement: W.Element,
|
|
SVGFESpotLightElement: W.Element,
|
|
SVGFETileElement: W.Element,
|
|
SVGFETurbulenceElement: W.Element,
|
|
SVGFilterElement: W.Element,
|
|
SVGForeignObjectElement: W.Element,
|
|
SVGGElement: W.Element,
|
|
SVGGeometryElement: W.Element,
|
|
SVGGraphicsElement: W.Element,
|
|
SVGImageElement: W.Element,
|
|
SVGLineElement: W.Element,
|
|
SVGLinearGradientElement: W.Element,
|
|
SVGMarkerElement: W.Element,
|
|
SVGMaskElement: W.Element,
|
|
SVGMetadataElement: W.Element,
|
|
SVGPathElement: W.Element,
|
|
SVGPatternElement: W.Element,
|
|
SVGPolygonElement: W.Element,
|
|
SVGPolylineElement: W.Element,
|
|
SVGRadialGradientElement: W.Element,
|
|
SVGRectElement: W.Element,
|
|
SVGScriptElement: W.Element,
|
|
SVGSetElement: W.Element,
|
|
SVGStopElement: W.Element,
|
|
SVGStyleElement: W.Element,
|
|
SVGElement: W.Element,
|
|
SVGSVGElement: W.Element,
|
|
SVGSwitchElement: W.Element,
|
|
SVGSymbolElement: W.Element,
|
|
SVGTSpanElement: W.Element,
|
|
SVGTextContentElement: W.Element,
|
|
SVGTextElement: W.Element,
|
|
SVGTextPathElement: W.Element,
|
|
SVGTextPositioningElement: W.Element,
|
|
SVGTitleElement: W.Element,
|
|
SVGUseElement: W.Element,
|
|
SVGViewElement: W.Element,
|
|
SVGGradientElement: W.Element,
|
|
SVGComponentTransferFunctionElement: W.Element,
|
|
SVGFEDropShadowElement: W.Element,
|
|
SVGMPathElement: W.Element,
|
|
Element: W.Element,
|
|
Window: W.EventTarget,
|
|
DOMWindow: W.EventTarget,
|
|
EventTarget: W.EventTarget,
|
|
HTMLFormElement: W.FormElement,
|
|
Document: W.Node,
|
|
DocumentFragment: W.Node,
|
|
HTMLDocument: W.Node,
|
|
ShadowRoot: W.Node,
|
|
XMLDocument: W.Node,
|
|
Attr: W.Node,
|
|
DocumentType: W.Node,
|
|
Node: W.Node,
|
|
NodeList: W.NodeList,
|
|
RadioNodeList: W.NodeList,
|
|
HTMLSelectElement: W.SelectElement,
|
|
HTMLTableCellElement: W.TableCellElement,
|
|
HTMLTableDataCellElement: W.TableCellElement,
|
|
HTMLTableHeaderCellElement: W.TableCellElement
|
|
});
|
|
hunkHelpers.setOrUpdateLeafTags({
|
|
ApplicationCacheErrorEvent: true,
|
|
DOMError: true,
|
|
ErrorEvent: true,
|
|
Event: true,
|
|
InputEvent: true,
|
|
SubmitEvent: true,
|
|
MediaError: true,
|
|
Navigator: true,
|
|
NavigatorConcurrentHardware: true,
|
|
NavigatorUserMediaError: true,
|
|
OverconstrainedError: true,
|
|
PositionError: true,
|
|
SensorErrorEvent: true,
|
|
SpeechRecognitionError: true,
|
|
SQLError: true,
|
|
HTMLAudioElement: true,
|
|
HTMLBRElement: true,
|
|
HTMLBaseElement: true,
|
|
HTMLBodyElement: true,
|
|
HTMLButtonElement: true,
|
|
HTMLCanvasElement: true,
|
|
HTMLContentElement: true,
|
|
HTMLDListElement: true,
|
|
HTMLDataElement: true,
|
|
HTMLDataListElement: true,
|
|
HTMLDetailsElement: true,
|
|
HTMLDialogElement: true,
|
|
HTMLEmbedElement: true,
|
|
HTMLFieldSetElement: true,
|
|
HTMLHRElement: true,
|
|
HTMLHeadElement: true,
|
|
HTMLHeadingElement: true,
|
|
HTMLHtmlElement: true,
|
|
HTMLIFrameElement: true,
|
|
HTMLImageElement: true,
|
|
HTMLInputElement: true,
|
|
HTMLLIElement: true,
|
|
HTMLLabelElement: true,
|
|
HTMLLegendElement: true,
|
|
HTMLLinkElement: true,
|
|
HTMLMapElement: true,
|
|
HTMLMediaElement: true,
|
|
HTMLMenuElement: true,
|
|
HTMLMetaElement: true,
|
|
HTMLMeterElement: true,
|
|
HTMLModElement: true,
|
|
HTMLOListElement: true,
|
|
HTMLObjectElement: true,
|
|
HTMLOptGroupElement: true,
|
|
HTMLOptionElement: true,
|
|
HTMLOutputElement: true,
|
|
HTMLParagraphElement: true,
|
|
HTMLParamElement: true,
|
|
HTMLPictureElement: true,
|
|
HTMLPreElement: true,
|
|
HTMLProgressElement: true,
|
|
HTMLQuoteElement: true,
|
|
HTMLScriptElement: true,
|
|
HTMLShadowElement: true,
|
|
HTMLSlotElement: true,
|
|
HTMLSourceElement: true,
|
|
HTMLSpanElement: true,
|
|
HTMLStyleElement: true,
|
|
HTMLTableCaptionElement: true,
|
|
HTMLTableColElement: true,
|
|
HTMLTableElement: true,
|
|
HTMLTableRowElement: true,
|
|
HTMLTableSectionElement: true,
|
|
HTMLTemplateElement: true,
|
|
HTMLTextAreaElement: true,
|
|
HTMLTimeElement: true,
|
|
HTMLTitleElement: true,
|
|
HTMLTrackElement: true,
|
|
HTMLUListElement: true,
|
|
HTMLUnknownElement: true,
|
|
HTMLVideoElement: true,
|
|
HTMLDirectoryElement: true,
|
|
HTMLFontElement: true,
|
|
HTMLFrameElement: true,
|
|
HTMLFrameSetElement: true,
|
|
HTMLMarqueeElement: true,
|
|
HTMLElement: false,
|
|
HTMLAnchorElement: true,
|
|
HTMLAreaElement: true,
|
|
CDATASection: true,
|
|
CharacterData: true,
|
|
Comment: true,
|
|
ProcessingInstruction: true,
|
|
Text: true,
|
|
CSSStyleDeclaration: true,
|
|
MSStyleCSSProperties: true,
|
|
CSS2Properties: true,
|
|
HTMLDivElement: true,
|
|
DOMException: true,
|
|
DOMTokenList: true,
|
|
SVGAElement: true,
|
|
SVGAnimateElement: true,
|
|
SVGAnimateMotionElement: true,
|
|
SVGAnimateTransformElement: true,
|
|
SVGAnimationElement: true,
|
|
SVGCircleElement: true,
|
|
SVGClipPathElement: true,
|
|
SVGDefsElement: true,
|
|
SVGDescElement: true,
|
|
SVGDiscardElement: true,
|
|
SVGEllipseElement: true,
|
|
SVGFEBlendElement: true,
|
|
SVGFEColorMatrixElement: true,
|
|
SVGFEComponentTransferElement: true,
|
|
SVGFECompositeElement: true,
|
|
SVGFEConvolveMatrixElement: true,
|
|
SVGFEDiffuseLightingElement: true,
|
|
SVGFEDisplacementMapElement: true,
|
|
SVGFEDistantLightElement: true,
|
|
SVGFEFloodElement: true,
|
|
SVGFEFuncAElement: true,
|
|
SVGFEFuncBElement: true,
|
|
SVGFEFuncGElement: true,
|
|
SVGFEFuncRElement: true,
|
|
SVGFEGaussianBlurElement: true,
|
|
SVGFEImageElement: true,
|
|
SVGFEMergeElement: true,
|
|
SVGFEMergeNodeElement: true,
|
|
SVGFEMorphologyElement: true,
|
|
SVGFEOffsetElement: true,
|
|
SVGFEPointLightElement: true,
|
|
SVGFESpecularLightingElement: true,
|
|
SVGFESpotLightElement: true,
|
|
SVGFETileElement: true,
|
|
SVGFETurbulenceElement: true,
|
|
SVGFilterElement: true,
|
|
SVGForeignObjectElement: true,
|
|
SVGGElement: true,
|
|
SVGGeometryElement: true,
|
|
SVGGraphicsElement: true,
|
|
SVGImageElement: true,
|
|
SVGLineElement: true,
|
|
SVGLinearGradientElement: true,
|
|
SVGMarkerElement: true,
|
|
SVGMaskElement: true,
|
|
SVGMetadataElement: true,
|
|
SVGPathElement: true,
|
|
SVGPatternElement: true,
|
|
SVGPolygonElement: true,
|
|
SVGPolylineElement: true,
|
|
SVGRadialGradientElement: true,
|
|
SVGRectElement: true,
|
|
SVGScriptElement: true,
|
|
SVGSetElement: true,
|
|
SVGStopElement: true,
|
|
SVGStyleElement: true,
|
|
SVGElement: true,
|
|
SVGSVGElement: true,
|
|
SVGSwitchElement: true,
|
|
SVGSymbolElement: true,
|
|
SVGTSpanElement: true,
|
|
SVGTextContentElement: true,
|
|
SVGTextElement: true,
|
|
SVGTextPathElement: true,
|
|
SVGTextPositioningElement: true,
|
|
SVGTitleElement: true,
|
|
SVGUseElement: true,
|
|
SVGViewElement: true,
|
|
SVGGradientElement: true,
|
|
SVGComponentTransferFunctionElement: true,
|
|
SVGFEDropShadowElement: true,
|
|
SVGMPathElement: true,
|
|
Element: false,
|
|
Window: true,
|
|
DOMWindow: true,
|
|
EventTarget: false,
|
|
HTMLFormElement: true,
|
|
Document: true,
|
|
DocumentFragment: true,
|
|
HTMLDocument: true,
|
|
ShadowRoot: true,
|
|
XMLDocument: true,
|
|
Attr: true,
|
|
DocumentType: true,
|
|
Node: false,
|
|
NodeList: true,
|
|
RadioNodeList: true,
|
|
HTMLSelectElement: true,
|
|
HTMLTableCellElement: true,
|
|
HTMLTableDataCellElement: true,
|
|
HTMLTableHeaderCellElement: true
|
|
});
|
|
})();
|
|
convertAllToFastObject(holders);
|
|
convertToFastObject($);
|
|
(function (callback) {
|
|
if (typeof document === "undefined") {
|
|
callback(null);
|
|
return;
|
|
}
|
|
if (typeof document.currentScript != "undefined") {
|
|
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;
|
|
var callMain = V.main;
|
|
if (typeof dartMainRunner === "function")
|
|
dartMainRunner(callMain, []);
|
|
else
|
|
callMain([]);
|
|
});
|
|
})();
|
|
|
|
//# sourceMappingURL=out.js.map
|