@topl_protocol/brambldart
Version:
A pure JavaScript implementation of BramblDart.
1,268 lines (1,248 loc) • 115 kB
JavaScript
// make sure to keep this as 'var'
// we don't want block scoping
var dartNodePreambleSelf = typeof global !== "undefined" ? global : window;
var self = Object.create(dartNodePreambleSelf);
self.scheduleImmediate = typeof setImmediate !== "undefined"
? function (cb) {
setImmediate(cb);
}
: function(cb) {
setTimeout(cb, 0);
};
// CommonJS globals.
self.exports = exports;
// Node.js specific exports, check to see if they exist & or polyfilled
if (typeof process !== "undefined") {
self.process = process;
}
if (typeof __dirname !== "undefined") {
self.__dirname = __dirname;
}
if (typeof __filename !== "undefined") {
self.__filename = __filename;
}
if (typeof Buffer !== "undefined") {
self.Buffer = Buffer;
}
// if we're running in a browser, Dart supports most of this out of box
// make sure we only run these in Node.js environment
var dartNodeIsActuallyNode = !dartNodePreambleSelf.window
try {
// Check if we're in a Web Worker instead.
if ("undefined" !== typeof WorkerGlobalScope && dartNodePreambleSelf instanceof WorkerGlobalScope) {
dartNodeIsActuallyNode = false;
}
// Check if we're in Electron, with Node.js integration, and override if true.
if ("undefined" !== typeof process && process.versions && process.versions.hasOwnProperty('electron') && process.versions.hasOwnProperty('node')) {
dartNodeIsActuallyNode = true;
}
} catch(e) {}
if (dartNodeIsActuallyNode) {
// This line is to:
// 1) Prevent Webpack from bundling.
// 2) In Webpack on Node.js, make sure we're using the native Node.js require, which is available via __non_webpack_require__
// https://github.com/mbullington/node_preamble.dart/issues/18#issuecomment-527305561
var url = ("undefined" !== typeof __webpack_require__ ? __non_webpack_require__ : require)("url");
// Setting `self.location=` in Electron throws a `TypeError`, so we define it
// as a property instead to be safe.
Object.defineProperty(self, "location", {
value: {
get href() {
if (url.pathToFileURL) {
return url.pathToFileURL(process.cwd()).href + "/";
} else {
// This isn't really a correct transformation, but it's the best we have
// for versions of Node <10.12.0 which introduced `url.pathToFileURL()`.
// For example, it will fail for paths that contain characters that need
// to be escaped in URLs.
return "file://" + (function() {
var cwd = process.cwd();
if (process.platform != "win32") return cwd;
return "/" + cwd.replace(/\\/g, "/");
})() + "/"
}
}
}
});
(function() {
function computeCurrentScript() {
try {
throw new Error();
} catch(e) {
var stack = e.stack;
var re = new RegExp("^ *at [^(]*\\((.*):[0-9]*:[0-9]*\\)$", "mg");
var lastMatch = null;
do {
var match = re.exec(stack);
if (match != null) lastMatch = match;
} while (match != null);
return lastMatch[1];
}
}
// Setting `self.document=` isn't known to throw an error anywhere like
// `self.location=` does on Electron, but it's better to be future-proof
// just in case..
var cachedCurrentScript = null;
Object.defineProperty(self, "document", {
value: {
get currentScript() {
if (cachedCurrentScript == null) {
cachedCurrentScript = {src: computeCurrentScript()};
}
return cachedCurrentScript;
}
}
});
})();
self.dartDeferredLibraryLoader = function(uri, successCallback, errorCallback) {
try {
load(uri);
successCallback();
} catch (error) {
errorCallback(error);
}
};
}
// Generated by dart2js (NullSafetyMode.sound, trust primitives, omit checks, lax runtime type, no-legacy-javascript), the Dart to JavaScript compiler version: 2.15.0-82.0.dev.
// 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, loadId):
// 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. The loadId argument is the deferred import that resulted in
// this uri being loaded.
//
// 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.throwLateFieldADI(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 instanceTearOffGetter(isIntercepted, parameters) {
var name = parameters.fs[0];
if (isIntercepted)
return new Function("parameters, createTearOffClass, cache", "return function tearOff_" + name + functionCounter++ + "(receiver) {" + "if (cache === null) cache = createTearOffClass(parameters);" + "return new cache(receiver, this);" + "}")(parameters, H.closureFromTearOff, null);
else
return new Function("parameters, createTearOffClass, cache", "return function tearOff_" + name + functionCounter++ + "() {" + "if (cache === null) cache = createTearOffClass(parameters);" + "return new cache(this, null);" + "}")(parameters, H.closureFromTearOff, null);
}
function staticTearOffGetter(parameters) {
var cache = null;
return function() {
if (cache === null)
cache = H.closureFromTearOff(parameters).prototype;
return cache;
};
}
var typesOffset = 0;
function tearOffParameters(container, isStatic, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, needsDirectAccess) {
if (typeof funType == "number")
funType += typesOffset;
return {co: container, iS: isStatic, iI: isIntercepted, rC: requiredParameterCount, dV: optionalParameterDefaultValues, cs: callNames, fs: funsOrNames, fT: funType, aI: applyIndex || 0, nDA: needsDirectAccess};
}
function installStaticTearOff(holder, getterName, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex) {
var parameters = tearOffParameters(holder, true, false, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, false);
var getterFunction = staticTearOffGetter(parameters);
holder[getterName] = getterFunction;
}
function installInstanceTearOff(prototype, getterName, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, needsDirectAccess) {
isIntercepted = !!isIntercepted;
var parameters = tearOffParameters(prototype, false, isIntercepted, requiredParameterCount, optionalParameterDefaultValues, callNames, funsOrNames, funType, applyIndex, !!needsDirectAccess);
var getterFunction = instanceTearOffGetter(isIntercepted, parameters);
prototype[getterName] = getterFunction;
}
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, false);
};
},
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, $);
}
var C = {},
E = {JsError: function JsError() {
}},
H = {JS_CONST: function JS_CONST() {
}, LateError: function LateError(t0) {
this._message = t0;
}, ListIterator: function ListIterator(t0, t1) {
var _ = this;
_.__internal$_iterable = t0;
_.__internal$_length = t1;
_.__internal$_index = 0;
_.__internal$_current = null;
}, FixedLengthListMixin: function FixedLengthListMixin() {
},
unminifyOrTag(rawClassName) {
var preserved = init.mangledGlobalNames[rawClassName];
if (preserved != null)
return preserved;
return rawClassName;
},
isJsIndexable(object, record) {
var result;
if (record != null) {
result = record.x;
if (result != null)
return result;
}
return type$.JavaScriptIndexingBehavior_dynamic._is(object);
},
S(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_objectTypeName(object) {
return H.Primitives__objectTypeNameNewRti(object);
},
Primitives__objectTypeNameNewRti(object) {
var dispatchName, t1, $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);
t1 = dispatchName !== "Object" && dispatchName !== "";
if (t1)
return dispatchName;
$constructor = object.constructor;
if (typeof $constructor == "function") {
constructorName = $constructor.name;
if (typeof constructorName == "string")
t1 = constructorName !== "Object" && constructorName !== "";
else
t1 = false;
if (t1)
return constructorName;
}
}
return H._rtiToString(H.instanceType(object), null);
},
wrapException(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() {
return J.toString$0$(this.dartException);
},
throwExpression(ex) {
throw H.wrapException(ex);
},
throwConcurrentModificationError(collection) {
throw H.wrapException(P.ConcurrentModificationError$(collection));
},
Closure_fromTearOff(parameters) {
var $prototype, $constructor, t2, trampoline, applyTrampoline, i, stub, stub0, stubName, stubCallName,
container = parameters.co,
isStatic = parameters.iS,
isIntercepted = parameters.iI,
needsDirectAccess = parameters.nDA,
applyTrampolineIndex = parameters.aI,
funsOrNames = parameters.fs,
callNames = parameters.cs,
$name = funsOrNames[0],
callName = callNames[0],
$function = container[$name],
t1 = parameters.fT;
t1.toString;
$prototype = isStatic ? Object.create(new H.StaticClosure().constructor.prototype) : Object.create(new H.BoundClosure(null, null).constructor.prototype);
$prototype.$initialize = $prototype.constructor;
if (isStatic)
$constructor = function static_tear_off() {
this.$initialize();
};
else {
t2 = $.Closure_functionCounter;
$.Closure_functionCounter = t2 + 1;
t2 = new Function("a,b" + t2, "this.$initialize(a,b" + t2 + ")");
$constructor = t2;
}
$prototype.constructor = $constructor;
$constructor.prototype = $prototype;
$prototype.$_name = $name;
$prototype.$_target = $function;
t2 = !isStatic;
if (t2)
trampoline = H.Closure_forwardCallTo($name, $function, isIntercepted, needsDirectAccess);
else {
$prototype.$static_name = $name;
trampoline = $function;
}
$prototype.$signature = H.Closure__computeSignatureFunctionNewRti(t1, isStatic, isIntercepted);
$prototype[callName] = trampoline;
for (applyTrampoline = trampoline, i = 1; i < funsOrNames.length; ++i) {
stub = funsOrNames[i];
if (typeof stub == "string") {
stub0 = container[stub];
stubName = stub;
stub = stub0;
} else
stubName = "";
stubCallName = callNames[i];
if (stubCallName != null) {
if (t2)
stub = H.Closure_forwardCallTo(stubName, stub, isIntercepted, needsDirectAccess);
$prototype[stubCallName] = stub;
}
if (i === applyTrampolineIndex)
applyTrampoline = stub;
}
$prototype["call*"] = applyTrampoline;
$prototype.$requiredArgCount = parameters.rC;
$prototype.$defaultValues = parameters.dV;
return $constructor;
},
Closure__computeSignatureFunctionNewRti(functionType, isStatic, isIntercepted) {
if (typeof functionType == "number")
return functionType;
if (typeof functionType == "string") {
if (isStatic)
throw H.wrapException("Cannot compute signature for static tearoff.");
return function(recipe, evalOnReceiver) {
return function() {
return evalOnReceiver(this, recipe);
};
}(functionType, H.BoundClosure_evalRecipe);
}
throw H.wrapException("Error in functionType of tearoff");
},
Closure_cspForwardCall(arity, needsDirectAccess, stubName, $function) {
var getReceiver = H.BoundClosure_receiverOf;
switch (needsDirectAccess ? -1 : arity) {
case 0:
return function(entry, receiverOf) {
return function() {
return receiverOf(this)[entry]();
};
}(stubName, getReceiver);
case 1:
return function(entry, receiverOf) {
return function(a) {
return receiverOf(this)[entry](a);
};
}(stubName, getReceiver);
case 2:
return function(entry, receiverOf) {
return function(a, b) {
return receiverOf(this)[entry](a, b);
};
}(stubName, getReceiver);
case 3:
return function(entry, receiverOf) {
return function(a, b, c) {
return receiverOf(this)[entry](a, b, c);
};
}(stubName, getReceiver);
case 4:
return function(entry, receiverOf) {
return function(a, b, c, d) {
return receiverOf(this)[entry](a, b, c, d);
};
}(stubName, getReceiver);
case 5:
return function(entry, receiverOf) {
return function(a, b, c, d, e) {
return receiverOf(this)[entry](a, b, c, d, e);
};
}(stubName, getReceiver);
default:
return function(f, receiverOf) {
return function() {
return f.apply(receiverOf(this), arguments);
};
}($function, getReceiver);
}
},
Closure_forwardCallTo(stubName, $function, isIntercepted, needsDirectAccess) {
var arity, t1, selfName, t2, $arguments,
_s8_ = "receiver";
if (isIntercepted)
return H.Closure_forwardInterceptedCallTo(stubName, $function, needsDirectAccess);
arity = $function.length;
t1 = needsDirectAccess || arity >= 27;
if (t1)
return H.Closure_cspForwardCall(arity, needsDirectAccess, stubName, $function);
if (arity === 0) {
t1 = $.Closure_functionCounter;
$.Closure_functionCounter = t1 + 1;
selfName = "self" + H.S(t1);
t1 = "return function(){var " + selfName + " = this.";
t2 = $.BoundClosure__receiverFieldNameCache;
return new Function(t1 + (t2 == null ? $.BoundClosure__receiverFieldNameCache = H.BoundClosure__computeFieldNamed(_s8_) : t2) + ";return " + selfName + "." + stubName + "();}")();
}
$arguments = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity).join(",");
t1 = $.Closure_functionCounter;
$.Closure_functionCounter = t1 + 1;
$arguments += H.S(t1);
t1 = "return function(" + $arguments + "){return this.";
t2 = $.BoundClosure__receiverFieldNameCache;
return new Function(t1 + (t2 == null ? $.BoundClosure__receiverFieldNameCache = H.BoundClosure__computeFieldNamed(_s8_) : t2) + "." + stubName + "(" + $arguments + ");}")();
},
Closure_cspForwardInterceptedCall(arity, needsDirectAccess, stubName, $function) {
var getReceiver = H.BoundClosure_receiverOf,
getInterceptor = H.BoundClosure_interceptorOf;
switch (needsDirectAccess ? -1 : arity) {
case 0:
throw H.wrapException(new H.RuntimeError("Intercepted function with no arguments."));
case 1:
return function(entry, interceptorOf, receiverOf) {
return function() {
return interceptorOf(this)[entry](receiverOf(this));
};
}(stubName, getInterceptor, getReceiver);
case 2:
return function(entry, interceptorOf, receiverOf) {
return function(a) {
return interceptorOf(this)[entry](receiverOf(this), a);
};
}(stubName, getInterceptor, getReceiver);
case 3:
return function(entry, interceptorOf, receiverOf) {
return function(a, b) {
return interceptorOf(this)[entry](receiverOf(this), a, b);
};
}(stubName, getInterceptor, getReceiver);
case 4:
return function(entry, interceptorOf, receiverOf) {
return function(a, b, c) {
return interceptorOf(this)[entry](receiverOf(this), a, b, c);
};
}(stubName, getInterceptor, getReceiver);
case 5:
return function(entry, interceptorOf, receiverOf) {
return function(a, b, c, d) {
return interceptorOf(this)[entry](receiverOf(this), a, b, c, d);
};
}(stubName, getInterceptor, getReceiver);
case 6:
return function(entry, interceptorOf, receiverOf) {
return function(a, b, c, d, e) {
return interceptorOf(this)[entry](receiverOf(this), a, b, c, d, e);
};
}(stubName, getInterceptor, getReceiver);
default:
return function(f, interceptorOf, receiverOf) {
return function() {
var a = [receiverOf(this)];
Array.prototype.push.apply(a, arguments);
return f.apply(interceptorOf(this), a);
};
}($function, getInterceptor, getReceiver);
}
},
Closure_forwardInterceptedCallTo(stubName, $function, needsDirectAccess) {
var receiverField, arity, t1, t2, $arguments,
interceptorField = $.BoundClosure__interceptorFieldNameCache;
if (interceptorField == null)
interceptorField = $.BoundClosure__interceptorFieldNameCache = H.BoundClosure__computeFieldNamed("interceptor");
receiverField = $.BoundClosure__receiverFieldNameCache;
if (receiverField == null)
receiverField = $.BoundClosure__receiverFieldNameCache = H.BoundClosure__computeFieldNamed("receiver");
arity = $function.length;
t1 = needsDirectAccess || arity >= 28;
if (t1)
return H.Closure_cspForwardInterceptedCall(arity, needsDirectAccess, stubName, $function);
if (arity === 1) {
t1 = "return function(){return this." + interceptorField + "." + stubName + "(this." + receiverField + ");";
t2 = $.Closure_functionCounter;
$.Closure_functionCounter = t2 + 1;
return new Function(t1 + H.S(t2) + "}")();
}
$arguments = "abcdefghijklmnopqrstuvwxyz".split("").splice(0, arity - 1).join(",");
t1 = "return function(" + $arguments + "){return this." + interceptorField + "." + stubName + "(this." + receiverField + ", " + $arguments + ");";
t2 = $.Closure_functionCounter;
$.Closure_functionCounter = t2 + 1;
return new Function(t1 + H.S(t2) + "}")();
},
closureFromTearOff(parameters) {
return H.Closure_fromTearOff(parameters);
},
BoundClosure_evalRecipe(closure, recipe) {
return H._Universe_evalInEnvironment(init.typeUniverse, H.instanceType(closure._receiver), recipe);
},
BoundClosure_receiverOf(closure) {
return closure._receiver;
},
BoundClosure_interceptorOf(closure) {
return closure._interceptor;
},
BoundClosure__computeFieldNamed(fieldName) {
var names, i, $name,
template = new H.BoundClosure("receiver", "interceptor"),
t1 = Object.getOwnPropertyNames(template);
t1.fixed$length = Array;
names = t1;
for (t1 = names.length, i = 0; i < t1; ++i) {
$name = names[i];
if (template[$name] === fieldName)
return $name;
}
throw H.wrapException(P.ArgumentError$("Field name " + fieldName + " not found."));
},
throwCyclicInit(staticName) {
throw H.wrapException(new P.CyclicInitializationError(staticName));
},
getIsolateAffinityTag($name) {
return init.getIsolateTag($name);
},
lookupAndCacheInterceptor(obj) {
var interceptor, interceptorClass, altTag, mark, t1,
tag = $.getTagFunction.call$1(obj),
record = $.dispatchRecordsForInstanceTags[tag];
if (record != null) {
Object.defineProperty(obj, init.dispatchPropertyName, {value: record, enumerable: false, writable: true, configurable: true});
return record.i;
}
interceptor = $.interceptorsForUncacheableTags[tag];
if (interceptor != null)
return interceptor;
interceptorClass = init.interceptorsByTag[tag];
if (interceptorClass == null) {
altTag = $.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(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(interceptor) {
return J.makeDispatchRecord(interceptor, false, null, !!interceptor.$isJavaScriptIndexingBehavior);
},
makeDefaultDispatchRecord(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() {
if (true === $.initNativeDispatchFlag)
return;
$.initNativeDispatchFlag = true;
H.initNativeDispatchContinue();
},
initNativeDispatchContinue() {
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() {
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(transformer, hooks) {
return transformer(hooks) || hooks;
},
Closure: function Closure() {
},
Closure2Args: function Closure2Args() {
},
TearOffClosure: function TearOffClosure() {
},
StaticClosure: function StaticClosure() {
},
BoundClosure: function BoundClosure(t0, t1) {
this._receiver = t0;
this._interceptor = t1;
},
RuntimeError: function RuntimeError(t0) {
this.message = t0;
},
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;
},
NativeTypedData: function NativeTypedData() {
},
NativeTypedArray: function NativeTypedArray() {
},
NativeTypedArrayOfInt: function NativeTypedArrayOfInt() {
},
NativeUint8List: function NativeUint8List() {
},
_NativeTypedArrayOfInt_NativeTypedArray_ListMixin: function _NativeTypedArrayOfInt_NativeTypedArray_ListMixin() {
},
_NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin: function _NativeTypedArrayOfInt_NativeTypedArray_ListMixin_FixedLengthListMixin() {
},
Rti__getQuestionFromStar(universe, rti) {
var question = rti._precomputed1;
return question == null ? rti._precomputed1 = H._Universe__lookupQuestionRti(universe, rti._primary, true) : question;
},
Rti__getFutureFromFutureOr(universe, rti) {
var future = rti._precomputed1;
return future == null ? rti._precomputed1 = H._Universe__lookupInterfaceRti(universe, "Future", [rti._primary]) : future;
},
Rti__isUnionOfFunctionType(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(rti) {
return rti._canonicalRecipe;
},
findType(recipe) {
return H._Universe_eval(init.typeUniverse, recipe, false);
},
_substitute(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._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._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._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._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(universe, rtiArray, typeArguments, depth) {
var changed, i, rti, substitutedRti,
$length = rtiArray.length,
result = H._Utils_newArrayOrEmpty($length);
for (changed = false, i = 0; i < $length; ++i) {
rti = rtiArray[i];
substitutedRti = H._substitute(universe, rti, typeArguments, depth);
if (substitutedRti !== rti)
changed = true;
result[i] = substitutedRti;
}
return changed ? result : rtiArray;
},
_substituteNamed(universe, namedArray, typeArguments, depth) {
var changed, i, t1, t2, rti, substitutedRti,
$length = namedArray.length,
result = H._Utils_newArrayOrEmpty($length);
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.splice(i, 3, t1, t2, substitutedRti);
}
return changed ? result : namedArray;
},
_substituteFunctionParameters(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;
},
closureFunctionType(closure) {
var signature = closure.$signature;
if (signature != null) {
if (typeof signature == "number")
return H.getTypeFromTypesTable(signature);
return closure.$signature();
}
return null;
},
instanceOrFunctionType(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(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(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(object) {
var rti = object.$ti;
return rti != null ? rti : H._instanceTypeFromConstructor(object);
},
_instanceTypeFromConstructor(instance) {
var $constructor = instance.constructor,
probe = $constructor.$ccache;
if (probe != null)
return probe;
return H._instanceTypeFromConstructorMiss(instance, $constructor);
},
_instanceTypeFromConstructorMiss(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(index) {
var rti,
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(object) {
var t1, unstarred, isFn, $name, 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) {
$name = unstarred._primary;
if (unstarred._rest.every(H.isTopType)) {
testRti._specializedTestResource = "$is" + $name;
if ($name === "List")
return H._finishIsFn(testRti, object, H._isListTestViaProperty);
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(testRti, object, isFn) {
testRti._is = isFn;
return testRti._is(object);
},
_installSpecializedAsCheck(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(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(object) {
var testRti = this;
if (object == null)
return H._nullIs(testRti);
return H._isSubtype(init.typeUniverse, H.instanceOrFunctionType(object, testRti), null, testRti, null);
},
_generalNullableIsTestImplementation(object) {
if (object == null)
return true;
return this._primary._is(object);
},
_isTestViaProperty(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];
},
_isListTestViaProperty(object) {
var tag, testRti = this;
if (object == null)
return H._nullIs(testRti);
if (typeof object != "object")
return false;
if (Array.isArray(object))
return true;
tag = testRti._specializedTestResource;
if (object instanceof P.Object)
return !!object[tag];
return !!J.getInterceptor$(object)[tag];
},
_generalAsCheckImplementation(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(object) {
var testRti = this;
if (object == null)
return object;
else if (testRti._is(object))
return object;
H._failedAsCheck(object, testRti);
},
_failedAsCheck(object, testRti) {
throw H.wrapException(H._TypeError$fromMessage(H._Error_compose(object, H.instanceOrFunctionType(object, testRti), H._rtiToString(testRti, null))));
},
_Error_compose(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(message) {
return new H._TypeError("TypeError: " + message);
},
_TypeError__TypeError$forType(object, type) {
return new H._TypeError("TypeError: " + H._Error_compose(object, null, type));
},
_isObject(object) {
return object != null;
},
_asObject(object) {
if (object != null)
return object;
throw H.wrapException(H._TypeError__TypeError$forType(object, "Object"));
},
_isTop(object) {
return true;
},
_asTop(object) {
return object;
},
_isBool(object) {
return true === object || false === object;
},
_asBool(object) {
if (true === object)
return true;
if (false === object)
return false;
throw H.wrapException(H._TypeError__TypeError$forType(object, "bool"));
},
_asBoolS(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(object) {
if (true === object)