UNPKG

@topl_protocol/brambldart

Version:

A pure JavaScript implementation of BramblDart.

1,268 lines (1,248 loc) 115 kB
// 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)