create-expo-cljs-app
Version:
Create a react native application with Expo and Shadow-CLJS!
1 lines • 67.3 kB
JavaScript
["^ ","~:resource-id",["~:shadow.build.classpath/resource","goog/debug/debug.js"],"~:js","goog.provide(\"goog.debug\");\ngoog.require(\"goog.array\");\ngoog.require(\"goog.debug.errorcontext\");\ngoog.require(\"goog.userAgent\");\ngoog.debug.LOGGING_ENABLED = goog.define(\"goog.debug.LOGGING_ENABLED\", goog.DEBUG);\ngoog.debug.FORCE_SLOPPY_STACKS = goog.define(\"goog.debug.FORCE_SLOPPY_STACKS\", false);\ngoog.debug.catchErrors = function(logFunc, opt_cancel, opt_target) {\n var target = opt_target || goog.global;\n var oldErrorHandler = target.onerror;\n var retVal = !!opt_cancel;\n if (goog.userAgent.WEBKIT && !goog.userAgent.isVersionOrHigher(\"535.3\")) {\n retVal = !retVal;\n }\n target.onerror = function(message, url, line, opt_col, opt_error) {\n if (oldErrorHandler) {\n oldErrorHandler(message, url, line, opt_col, opt_error);\n }\n logFunc({message:message, fileName:url, line:line, lineNumber:line, col:opt_col, error:opt_error});\n return retVal;\n };\n};\ngoog.debug.expose = function(obj, opt_showFn) {\n if (typeof obj == \"undefined\") {\n return \"undefined\";\n }\n if (obj == null) {\n return \"NULL\";\n }\n var str = [];\n for (var x in obj) {\n if (!opt_showFn && goog.isFunction(obj[x])) {\n continue;\n }\n var s = x + \" \\x3d \";\n try {\n s += obj[x];\n } catch (e) {\n s += \"*** \" + e + \" ***\";\n }\n str.push(s);\n }\n return str.join(\"\\n\");\n};\ngoog.debug.deepExpose = function(obj, opt_showFn) {\n var str = [];\n var uidsToCleanup = [];\n var ancestorUids = {};\n var helper = function(obj, space) {\n var nestspace = space + \" \";\n var indentMultiline = function(str) {\n return str.replace(/\\n/g, \"\\n\" + space);\n };\n try {\n if (obj === undefined) {\n str.push(\"undefined\");\n } else {\n if (obj === null) {\n str.push(\"NULL\");\n } else {\n if (typeof obj === \"string\") {\n str.push('\"' + indentMultiline(obj) + '\"');\n } else {\n if (goog.isFunction(obj)) {\n str.push(indentMultiline(String(obj)));\n } else {\n if (goog.isObject(obj)) {\n if (!goog.hasUid(obj)) {\n uidsToCleanup.push(obj);\n }\n var uid = goog.getUid(obj);\n if (ancestorUids[uid]) {\n str.push(\"*** reference loop detected (id\\x3d\" + uid + \") ***\");\n } else {\n ancestorUids[uid] = true;\n str.push(\"{\");\n for (var x in obj) {\n if (!opt_showFn && goog.isFunction(obj[x])) {\n continue;\n }\n str.push(\"\\n\");\n str.push(nestspace);\n str.push(x + \" \\x3d \");\n helper(obj[x], nestspace);\n }\n str.push(\"\\n\" + space + \"}\");\n delete ancestorUids[uid];\n }\n } else {\n str.push(obj);\n }\n }\n }\n }\n }\n } catch (e) {\n str.push(\"*** \" + e + \" ***\");\n }\n };\n helper(obj, \"\");\n for (var i = 0; i < uidsToCleanup.length; i++) {\n goog.removeUid(uidsToCleanup[i]);\n }\n return str.join(\"\");\n};\ngoog.debug.exposeArray = function(arr) {\n var str = [];\n for (var i = 0; i < arr.length; i++) {\n if (goog.isArray(arr[i])) {\n str.push(goog.debug.exposeArray(arr[i]));\n } else {\n str.push(arr[i]);\n }\n }\n return \"[ \" + str.join(\", \") + \" ]\";\n};\ngoog.debug.normalizeErrorObject = function(err) {\n var href = goog.getObjectByName(\"window.location.href\");\n if (err == null) {\n err = 'Unknown Error of type \"null/undefined\"';\n }\n if (typeof err === \"string\") {\n return {\"message\":err, \"name\":\"Unknown error\", \"lineNumber\":\"Not available\", \"fileName\":href, \"stack\":\"Not available\"};\n }\n var lineNumber, fileName;\n var threwError = false;\n try {\n lineNumber = err.lineNumber || err.line || \"Not available\";\n } catch (e) {\n lineNumber = \"Not available\";\n threwError = true;\n }\n try {\n fileName = err.fileName || err.filename || err.sourceURL || goog.global[\"$googDebugFname\"] || href;\n } catch (e) {\n fileName = \"Not available\";\n threwError = true;\n }\n if (threwError || !err.lineNumber || !err.fileName || !err.stack || !err.message || !err.name) {\n var message = err.message;\n if (message == null) {\n if (err.constructor && err.constructor instanceof Function) {\n var ctorName = err.constructor.name ? err.constructor.name : goog.debug.getFunctionName(err.constructor);\n message = 'Unknown Error of type \"' + ctorName + '\"';\n } else {\n message = \"Unknown Error of unknown type\";\n }\n }\n return {\"message\":message, \"name\":err.name || \"UnknownError\", \"lineNumber\":lineNumber, \"fileName\":fileName, \"stack\":err.stack || \"Not available\"};\n }\n return err;\n};\ngoog.debug.enhanceError = function(err, opt_message) {\n var error;\n if (!(err instanceof Error)) {\n error = Error(err);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(error, goog.debug.enhanceError);\n }\n } else {\n error = err;\n }\n if (!error.stack) {\n error.stack = goog.debug.getStacktrace(goog.debug.enhanceError);\n }\n if (opt_message) {\n var x = 0;\n while (error[\"message\" + x]) {\n ++x;\n }\n error[\"message\" + x] = String(opt_message);\n }\n return error;\n};\ngoog.debug.enhanceErrorWithContext = function(err, opt_context) {\n var error = goog.debug.enhanceError(err);\n if (opt_context) {\n for (var key in opt_context) {\n goog.debug.errorcontext.addErrorContext(error, key, opt_context[key]);\n }\n }\n return error;\n};\ngoog.debug.getStacktraceSimple = function(opt_depth) {\n if (!goog.debug.FORCE_SLOPPY_STACKS) {\n var stack = goog.debug.getNativeStackTrace_(goog.debug.getStacktraceSimple);\n if (stack) {\n return stack;\n }\n }\n var sb = [];\n var fn = arguments.callee.caller;\n var depth = 0;\n while (fn && (!opt_depth || depth < opt_depth)) {\n sb.push(goog.debug.getFunctionName(fn));\n sb.push(\"()\\n\");\n try {\n fn = fn.caller;\n } catch (e) {\n sb.push(\"[exception trying to get caller]\\n\");\n break;\n }\n depth++;\n if (depth >= goog.debug.MAX_STACK_DEPTH) {\n sb.push(\"[...long stack...]\");\n break;\n }\n }\n if (opt_depth && depth >= opt_depth) {\n sb.push(\"[...reached max depth limit...]\");\n } else {\n sb.push(\"[end]\");\n }\n return sb.join(\"\");\n};\ngoog.debug.MAX_STACK_DEPTH = 50;\ngoog.debug.getNativeStackTrace_ = function(fn) {\n var tempErr = new Error;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(tempErr, fn);\n return String(tempErr.stack);\n } else {\n try {\n throw tempErr;\n } catch (e) {\n tempErr = e;\n }\n var stack = tempErr.stack;\n if (stack) {\n return String(stack);\n }\n }\n return null;\n};\ngoog.debug.getStacktrace = function(fn) {\n var stack;\n if (!goog.debug.FORCE_SLOPPY_STACKS) {\n var contextFn = fn || goog.debug.getStacktrace;\n stack = goog.debug.getNativeStackTrace_(contextFn);\n }\n if (!stack) {\n stack = goog.debug.getStacktraceHelper_(fn || arguments.callee.caller, []);\n }\n return stack;\n};\ngoog.debug.getStacktraceHelper_ = function(fn, visited) {\n var sb = [];\n if (goog.array.contains(visited, fn)) {\n sb.push(\"[...circular reference...]\");\n } else {\n if (fn && visited.length < goog.debug.MAX_STACK_DEPTH) {\n sb.push(goog.debug.getFunctionName(fn) + \"(\");\n var args = fn.arguments;\n for (var i = 0; args && i < args.length; i++) {\n if (i > 0) {\n sb.push(\", \");\n }\n var argDesc;\n var arg = args[i];\n switch(typeof arg) {\n case \"object\":\n argDesc = arg ? \"object\" : \"null\";\n break;\n case \"string\":\n argDesc = arg;\n break;\n case \"number\":\n argDesc = String(arg);\n break;\n case \"boolean\":\n argDesc = arg ? \"true\" : \"false\";\n break;\n case \"function\":\n argDesc = goog.debug.getFunctionName(arg);\n argDesc = argDesc ? argDesc : \"[fn]\";\n break;\n case \"undefined\":\n default:\n argDesc = typeof arg;\n break;\n }\n if (argDesc.length > 40) {\n argDesc = argDesc.substr(0, 40) + \"...\";\n }\n sb.push(argDesc);\n }\n visited.push(fn);\n sb.push(\")\\n\");\n try {\n sb.push(goog.debug.getStacktraceHelper_(fn.caller, visited));\n } catch (e) {\n sb.push(\"[exception trying to get caller]\\n\");\n }\n } else {\n if (fn) {\n sb.push(\"[...long stack...]\");\n } else {\n sb.push(\"[end]\");\n }\n }\n }\n return sb.join(\"\");\n};\ngoog.debug.getFunctionName = function(fn) {\n if (goog.debug.fnNameCache_[fn]) {\n return goog.debug.fnNameCache_[fn];\n }\n var functionSource = String(fn);\n if (!goog.debug.fnNameCache_[functionSource]) {\n var matches = /function\\s+([^\\(]+)/m.exec(functionSource);\n if (matches) {\n var method = matches[1];\n goog.debug.fnNameCache_[functionSource] = method;\n } else {\n goog.debug.fnNameCache_[functionSource] = \"[Anonymous]\";\n }\n }\n return goog.debug.fnNameCache_[functionSource];\n};\ngoog.debug.makeWhitespaceVisible = function(string) {\n return string.replace(/ /g, \"[_]\").replace(/\\f/g, \"[f]\").replace(/\\n/g, \"[n]\\n\").replace(/\\r/g, \"[r]\").replace(/\\t/g, \"[t]\");\n};\ngoog.debug.runtimeType = function(value) {\n if (value instanceof Function) {\n return value.displayName || value.name || \"unknown type name\";\n } else {\n if (value instanceof Object) {\n return value.constructor.displayName || value.constructor.name || Object.prototype.toString.call(value);\n } else {\n return value === null ? \"null\" : typeof value;\n }\n }\n};\ngoog.debug.fnNameCache_ = {};\ngoog.debug.freezeInternal_ = goog.DEBUG && Object.freeze || function(arg) {\n return arg;\n};\ngoog.debug.freeze = function(arg) {\n return {valueOf:function() {\n return goog.debug.freezeInternal_(arg);\n }}.valueOf();\n};\n","~:source","// Copyright 2006 The Closure Library Authors. All Rights Reserved.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n// http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS-IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/**\n * @fileoverview Logging and debugging utilities.\n *\n * @see ../demos/debug.html\n */\n\ngoog.provide('goog.debug');\n\ngoog.require('goog.array');\ngoog.require('goog.debug.errorcontext');\ngoog.require('goog.userAgent');\n\n\n/** @define {boolean} Whether logging should be enabled. */\ngoog.debug.LOGGING_ENABLED =\n goog.define('goog.debug.LOGGING_ENABLED', goog.DEBUG);\n\n\n/** @define {boolean} Whether to force \"sloppy\" stack building. */\ngoog.debug.FORCE_SLOPPY_STACKS =\n goog.define('goog.debug.FORCE_SLOPPY_STACKS', false);\n\n\n/**\n * Catches onerror events fired by windows and similar objects.\n * @param {function(Object)} logFunc The function to call with the error\n * information.\n * @param {boolean=} opt_cancel Whether to stop the error from reaching the\n * browser.\n * @param {Object=} opt_target Object that fires onerror events.\n * @suppress {strictMissingProperties} onerror is not defined as a property\n * on Object.\n */\ngoog.debug.catchErrors = function(logFunc, opt_cancel, opt_target) {\n var target = opt_target || goog.global;\n var oldErrorHandler = target.onerror;\n var retVal = !!opt_cancel;\n\n // Chrome interprets onerror return value backwards (http://crbug.com/92062)\n // until it was fixed in webkit revision r94061 (Webkit 535.3). This\n // workaround still needs to be skipped in Safari after the webkit change\n // gets pushed out in Safari.\n // See https://bugs.webkit.org/show_bug.cgi?id=67119\n if (goog.userAgent.WEBKIT && !goog.userAgent.isVersionOrHigher('535.3')) {\n retVal = !retVal;\n }\n\n /**\n * New onerror handler for this target. This onerror handler follows the spec\n * according to\n * http://www.whatwg.org/specs/web-apps/current-work/#runtime-script-errors\n * The spec was changed in August 2013 to support receiving column information\n * and an error object for all scripts on the same origin or cross origin\n * scripts with the proper headers. See\n * https://mikewest.org/2013/08/debugging-runtime-errors-with-window-onerror\n *\n * @param {string} message The error message. For cross-origin errors, this\n * will be scrubbed to just \"Script error.\". For new browsers that have\n * updated to follow the latest spec, errors that come from origins that\n * have proper cross origin headers will not be scrubbed.\n * @param {string} url The URL of the script that caused the error. The URL\n * will be scrubbed to \"\" for cross origin scripts unless the script has\n * proper cross origin headers and the browser has updated to the latest\n * spec.\n * @param {number} line The line number in the script that the error\n * occurred on.\n * @param {number=} opt_col The optional column number that the error\n * occurred on. Only browsers that have updated to the latest spec will\n * include this.\n * @param {Error=} opt_error The optional actual error object for this\n * error that should include the stack. Only browsers that have updated\n * to the latest spec will inlude this parameter.\n * @return {boolean} Whether to prevent the error from reaching the browser.\n */\n target.onerror = function(message, url, line, opt_col, opt_error) {\n if (oldErrorHandler) {\n oldErrorHandler(message, url, line, opt_col, opt_error);\n }\n logFunc({\n message: message,\n fileName: url,\n line: line,\n lineNumber: line,\n col: opt_col,\n error: opt_error\n });\n return retVal;\n };\n};\n\n\n/**\n * Creates a string representing an object and all its properties.\n * @param {Object|null|undefined} obj Object to expose.\n * @param {boolean=} opt_showFn Show the functions as well as the properties,\n * default is false.\n * @return {string} The string representation of `obj`.\n */\ngoog.debug.expose = function(obj, opt_showFn) {\n if (typeof obj == 'undefined') {\n return 'undefined';\n }\n if (obj == null) {\n return 'NULL';\n }\n var str = [];\n\n for (var x in obj) {\n if (!opt_showFn && goog.isFunction(obj[x])) {\n continue;\n }\n var s = x + ' = ';\n\n try {\n s += obj[x];\n } catch (e) {\n s += '*** ' + e + ' ***';\n }\n str.push(s);\n }\n return str.join('\\n');\n};\n\n\n/**\n * Creates a string representing a given primitive or object, and for an\n * object, all its properties and nested objects. NOTE: The output will include\n * Uids on all objects that were exposed. Any added Uids will be removed before\n * returning.\n * @param {*} obj Object to expose.\n * @param {boolean=} opt_showFn Also show properties that are functions (by\n * default, functions are omitted).\n * @return {string} A string representation of `obj`.\n */\ngoog.debug.deepExpose = function(obj, opt_showFn) {\n var str = [];\n\n // Track any objects where deepExpose added a Uid, so they can be cleaned up\n // before return. We do this globally, rather than only on ancestors so that\n // if the same object appears in the output, you can see it.\n var uidsToCleanup = [];\n var ancestorUids = {};\n\n var helper = function(obj, space) {\n var nestspace = space + ' ';\n\n var indentMultiline = function(str) {\n return str.replace(/\\n/g, '\\n' + space);\n };\n\n\n try {\n if (obj === undefined) {\n str.push('undefined');\n } else if (obj === null) {\n str.push('NULL');\n } else if (typeof obj === 'string') {\n str.push('\"' + indentMultiline(obj) + '\"');\n } else if (goog.isFunction(obj)) {\n str.push(indentMultiline(String(obj)));\n } else if (goog.isObject(obj)) {\n // Add a Uid if needed. The struct calls implicitly adds them.\n if (!goog.hasUid(obj)) {\n uidsToCleanup.push(obj);\n }\n var uid = goog.getUid(obj);\n if (ancestorUids[uid]) {\n str.push('*** reference loop detected (id=' + uid + ') ***');\n } else {\n ancestorUids[uid] = true;\n str.push('{');\n for (var x in obj) {\n if (!opt_showFn && goog.isFunction(obj[x])) {\n continue;\n }\n str.push('\\n');\n str.push(nestspace);\n str.push(x + ' = ');\n helper(obj[x], nestspace);\n }\n str.push('\\n' + space + '}');\n delete ancestorUids[uid];\n }\n } else {\n str.push(obj);\n }\n } catch (e) {\n str.push('*** ' + e + ' ***');\n }\n };\n\n helper(obj, '');\n\n // Cleanup any Uids that were added by the deepExpose.\n for (var i = 0; i < uidsToCleanup.length; i++) {\n goog.removeUid(uidsToCleanup[i]);\n }\n\n return str.join('');\n};\n\n\n/**\n * Recursively outputs a nested array as a string.\n * @param {Array<?>} arr The array.\n * @return {string} String representing nested array.\n */\ngoog.debug.exposeArray = function(arr) {\n var str = [];\n for (var i = 0; i < arr.length; i++) {\n if (goog.isArray(arr[i])) {\n str.push(goog.debug.exposeArray(arr[i]));\n } else {\n str.push(arr[i]);\n }\n }\n return '[ ' + str.join(', ') + ' ]';\n};\n\n\n/**\n * Normalizes the error/exception object between browsers.\n * @param {*} err Raw error object.\n * @return {{\n * message: (?|undefined),\n * name: (?|undefined),\n * lineNumber: (?|undefined),\n * fileName: (?|undefined),\n * stack: (?|undefined)\n * }} Normalized error object.\n * @suppress {strictMissingProperties} properties not defined on err\n */\ngoog.debug.normalizeErrorObject = function(err) {\n var href = goog.getObjectByName('window.location.href');\n if (err == null) {\n err = 'Unknown Error of type \"null/undefined\"';\n }\n if (typeof err === 'string') {\n return {\n 'message': err,\n 'name': 'Unknown error',\n 'lineNumber': 'Not available',\n 'fileName': href,\n 'stack': 'Not available'\n };\n }\n\n var lineNumber, fileName;\n var threwError = false;\n\n try {\n lineNumber = err.lineNumber || err.line || 'Not available';\n } catch (e) {\n // Firefox 2 sometimes throws an error when accessing 'lineNumber':\n // Message: Permission denied to get property UnnamedClass.lineNumber\n lineNumber = 'Not available';\n threwError = true;\n }\n\n try {\n fileName = err.fileName || err.filename || err.sourceURL ||\n // $googDebugFname may be set before a call to eval to set the filename\n // that the eval is supposed to present.\n goog.global['$googDebugFname'] || href;\n } catch (e) {\n // Firefox 2 may also throw an error when accessing 'filename'.\n fileName = 'Not available';\n threwError = true;\n }\n\n // The IE Error object contains only the name and the message.\n // The Safari Error object uses the line and sourceURL fields.\n if (threwError || !err.lineNumber || !err.fileName || !err.stack ||\n !err.message || !err.name) {\n var message = err.message;\n if (message == null) {\n if (err.constructor && err.constructor instanceof Function) {\n var ctorName = err.constructor.name ?\n err.constructor.name :\n goog.debug.getFunctionName(err.constructor);\n message = 'Unknown Error of type \"' + ctorName + '\"';\n } else {\n message = 'Unknown Error of unknown type';\n }\n }\n return {\n 'message': message,\n 'name': err.name || 'UnknownError',\n 'lineNumber': lineNumber,\n 'fileName': fileName,\n 'stack': err.stack || 'Not available'\n };\n }\n\n // Standards error object\n // Typed !Object. Should be a subtype of the return type, but it's not.\n return /** @type {?} */ (err);\n};\n\n\n/**\n * Converts an object to an Error using the object's toString if it's not\n * already an Error, adds a stacktrace if there isn't one, and optionally adds\n * an extra message.\n * @param {*} err The original thrown error, object, or string.\n * @param {string=} opt_message optional additional message to add to the\n * error.\n * @return {!Error} If err is an Error, it is enhanced and returned. Otherwise,\n * it is converted to an Error which is enhanced and returned.\n */\ngoog.debug.enhanceError = function(err, opt_message) {\n var error;\n if (!(err instanceof Error)) {\n error = Error(err);\n if (Error.captureStackTrace) {\n // Trim this function off the call stack, if we can.\n Error.captureStackTrace(error, goog.debug.enhanceError);\n }\n } else {\n error = err;\n }\n\n if (!error.stack) {\n error.stack = goog.debug.getStacktrace(goog.debug.enhanceError);\n }\n if (opt_message) {\n // find the first unoccupied 'messageX' property\n var x = 0;\n while (error['message' + x]) {\n ++x;\n }\n error['message' + x] = String(opt_message);\n }\n return error;\n};\n\n\n/**\n * Converts an object to an Error using the object's toString if it's not\n * already an Error, adds a stacktrace if there isn't one, and optionally adds\n * context to the Error, which is reported by the closure error reporter.\n * @param {*} err The original thrown error, object, or string.\n * @param {!Object<string, string>=} opt_context Key-value context to add to the\n * Error.\n * @return {!Error} If err is an Error, it is enhanced and returned. Otherwise,\n * it is converted to an Error which is enhanced and returned.\n */\ngoog.debug.enhanceErrorWithContext = function(err, opt_context) {\n var error = goog.debug.enhanceError(err);\n if (opt_context) {\n for (var key in opt_context) {\n goog.debug.errorcontext.addErrorContext(error, key, opt_context[key]);\n }\n }\n return error;\n};\n\n\n/**\n * Gets the current stack trace. Simple and iterative - doesn't worry about\n * catching circular references or getting the args.\n * @param {number=} opt_depth Optional maximum depth to trace back to.\n * @return {string} A string with the function names of all functions in the\n * stack, separated by \\n.\n * @suppress {es5Strict}\n */\ngoog.debug.getStacktraceSimple = function(opt_depth) {\n if (!goog.debug.FORCE_SLOPPY_STACKS) {\n var stack = goog.debug.getNativeStackTrace_(goog.debug.getStacktraceSimple);\n if (stack) {\n return stack;\n }\n // NOTE: browsers that have strict mode support also have native \"stack\"\n // properties. Fall-through for legacy browser support.\n }\n\n var sb = [];\n var fn = arguments.callee.caller;\n var depth = 0;\n\n while (fn && (!opt_depth || depth < opt_depth)) {\n sb.push(goog.debug.getFunctionName(fn));\n sb.push('()\\n');\n\n try {\n fn = fn.caller;\n } catch (e) {\n sb.push('[exception trying to get caller]\\n');\n break;\n }\n depth++;\n if (depth >= goog.debug.MAX_STACK_DEPTH) {\n sb.push('[...long stack...]');\n break;\n }\n }\n if (opt_depth && depth >= opt_depth) {\n sb.push('[...reached max depth limit...]');\n } else {\n sb.push('[end]');\n }\n\n return sb.join('');\n};\n\n\n/**\n * Max length of stack to try and output\n * @type {number}\n */\ngoog.debug.MAX_STACK_DEPTH = 50;\n\n\n/**\n * @param {Function} fn The function to start getting the trace from.\n * @return {?string}\n * @private\n */\ngoog.debug.getNativeStackTrace_ = function(fn) {\n var tempErr = new Error();\n if (Error.captureStackTrace) {\n Error.captureStackTrace(tempErr, fn);\n return String(tempErr.stack);\n } else {\n // IE10, only adds stack traces when an exception is thrown.\n try {\n throw tempErr;\n } catch (e) {\n tempErr = e;\n }\n var stack = tempErr.stack;\n if (stack) {\n return String(stack);\n }\n }\n return null;\n};\n\n\n/**\n * Gets the current stack trace, either starting from the caller or starting\n * from a specified function that's currently on the call stack.\n * @param {?Function=} fn If provided, when collecting the stack trace all\n * frames above the topmost call to this function, including that call,\n * will be left out of the stack trace.\n * @return {string} Stack trace.\n * @suppress {es5Strict}\n */\ngoog.debug.getStacktrace = function(fn) {\n var stack;\n if (!goog.debug.FORCE_SLOPPY_STACKS) {\n // Try to get the stack trace from the environment if it is available.\n var contextFn = fn || goog.debug.getStacktrace;\n stack = goog.debug.getNativeStackTrace_(contextFn);\n }\n if (!stack) {\n // NOTE: browsers that have strict mode support also have native \"stack\"\n // properties. This function will throw in strict mode.\n stack = goog.debug.getStacktraceHelper_(fn || arguments.callee.caller, []);\n }\n return stack;\n};\n\n\n/**\n * Private helper for getStacktrace().\n * @param {?Function} fn If provided, when collecting the stack trace all\n * frames above the topmost call to this function, including that call,\n * will be left out of the stack trace.\n * @param {Array<!Function>} visited List of functions visited so far.\n * @return {string} Stack trace starting from function fn.\n * @suppress {es5Strict}\n * @private\n */\ngoog.debug.getStacktraceHelper_ = function(fn, visited) {\n var sb = [];\n\n // Circular reference, certain functions like bind seem to cause a recursive\n // loop so we need to catch circular references\n if (goog.array.contains(visited, fn)) {\n sb.push('[...circular reference...]');\n\n // Traverse the call stack until function not found or max depth is reached\n } else if (fn && visited.length < goog.debug.MAX_STACK_DEPTH) {\n sb.push(goog.debug.getFunctionName(fn) + '(');\n var args = fn.arguments;\n // Args may be null for some special functions such as host objects or eval.\n for (var i = 0; args && i < args.length; i++) {\n if (i > 0) {\n sb.push(', ');\n }\n var argDesc;\n var arg = args[i];\n switch (typeof arg) {\n case 'object':\n argDesc = arg ? 'object' : 'null';\n break;\n\n case 'string':\n argDesc = arg;\n break;\n\n case 'number':\n argDesc = String(arg);\n break;\n\n case 'boolean':\n argDesc = arg ? 'true' : 'false';\n break;\n\n case 'function':\n argDesc = goog.debug.getFunctionName(arg);\n argDesc = argDesc ? argDesc : '[fn]';\n break;\n\n case 'undefined':\n default:\n argDesc = typeof arg;\n break;\n }\n\n if (argDesc.length > 40) {\n argDesc = argDesc.substr(0, 40) + '...';\n }\n sb.push(argDesc);\n }\n visited.push(fn);\n sb.push(')\\n');\n\n try {\n sb.push(goog.debug.getStacktraceHelper_(fn.caller, visited));\n } catch (e) {\n sb.push('[exception trying to get caller]\\n');\n }\n\n } else if (fn) {\n sb.push('[...long stack...]');\n } else {\n sb.push('[end]');\n }\n return sb.join('');\n};\n\n\n/**\n * Gets a function name\n * @param {Function} fn Function to get name of.\n * @return {string} Function's name.\n */\ngoog.debug.getFunctionName = function(fn) {\n if (goog.debug.fnNameCache_[fn]) {\n return goog.debug.fnNameCache_[fn];\n }\n\n // Heuristically determine function name based on code.\n var functionSource = String(fn);\n if (!goog.debug.fnNameCache_[functionSource]) {\n var matches = /function\\s+([^\\(]+)/m.exec(functionSource);\n if (matches) {\n var method = matches[1];\n goog.debug.fnNameCache_[functionSource] = method;\n } else {\n goog.debug.fnNameCache_[functionSource] = '[Anonymous]';\n }\n }\n\n return goog.debug.fnNameCache_[functionSource];\n};\n\n\n/**\n * Makes whitespace visible by replacing it with printable characters.\n * This is useful in finding diffrences between the expected and the actual\n * output strings of a testcase.\n * @param {string} string whose whitespace needs to be made visible.\n * @return {string} string whose whitespace is made visible.\n */\ngoog.debug.makeWhitespaceVisible = function(string) {\n return string.replace(/ /g, '[_]')\n .replace(/\\f/g, '[f]')\n .replace(/\\n/g, '[n]\\n')\n .replace(/\\r/g, '[r]')\n .replace(/\\t/g, '[t]');\n};\n\n\n/**\n * Returns the type of a value. If a constructor is passed, and a suitable\n * string cannot be found, 'unknown type name' will be returned.\n *\n * <p>Forked rather than moved from {@link goog.asserts.getType_}\n * to avoid adding a dependency to goog.asserts.\n * @param {*} value A constructor, object, or primitive.\n * @return {string} The best display name for the value, or 'unknown type name'.\n */\ngoog.debug.runtimeType = function(value) {\n if (value instanceof Function) {\n return value.displayName || value.name || 'unknown type name';\n } else if (value instanceof Object) {\n return /** @type {string} */ (value.constructor.displayName) ||\n value.constructor.name || Object.prototype.toString.call(value);\n } else {\n return value === null ? 'null' : typeof value;\n }\n};\n\n\n/**\n * Hash map for storing function names that have already been looked up.\n * @type {Object}\n * @private\n */\ngoog.debug.fnNameCache_ = {};\n\n\n/**\n * Private internal function to support goog.debug.freeze.\n * @param {T} arg\n * @return {T}\n * @template T\n * @private\n */\ngoog.debug.freezeInternal_ = goog.DEBUG && Object.freeze || function(arg) {\n return arg;\n};\n\n\n/**\n * Freezes the given object, but only in debug mode (and in browsers that\n * support it). Note that this is a shallow freeze, so for deeply nested\n * objects it must be called at every level to ensure deep immutability.\n * @param {T} arg\n * @return {T}\n * @template T\n */\ngoog.debug.freeze = function(arg) {\n // NOTE: this compiles to nothing, but hides the possible side effect of\n // freezeInternal_ from the compiler so that the entire call can be\n // removed if the result is not used.\n return {\n valueOf: function() {\n return goog.debug.freezeInternal_(arg);\n }\n }.valueOf();\n};\n","~:compiled-at",1613924115859,"~:source-map-json","{\n\"version\":3,\n\"file\":\"goog.debug.debug.js\",\n\"lineCount\":342,\n\"mappings\":\"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\",\n\"sources\":[\"goog/debug/debug.js\"],\n\"sourcesContent\":[\"// Copyright 2006 The Closure Library Authors. All Rights Reserved.\\n//\\n// Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n// you may not use this file except in compliance with the License.\\n// You may obtain a copy of the License at\\n//\\n// http://www.apache.org/licenses/LICENSE-2.0\\n//\\n// Unless required by applicable law or agreed to in writing, software\\n// distributed under the License is distributed on an \\\"AS-IS\\\" BASIS,\\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\\n// See the License for the specific language governing permissions and\\n// limitations under the License.\\n\\n/**\\n * @fileoverview Logging and debugging utilities.\\n *\\n * @see ../demos/debug.html\\n */\\n\\ngoog.provide('goog.debug');\\n\\ngoog.require('goog.array');\\ngoog.require('goog.debug.errorcontext');\\ngoog.require('goog.userAgent');\\n\\n\\n/** @define {boolean} Whether logging should be enabled. */\\ngoog.debug.LOGGING_ENABLED =\\n goog.define('goog.debug.LOGGING_ENABLED', goog.DEBUG);\\n\\n\\n/** @define {boolean} Whether to force \\\"sloppy\\\" stack building. */\\ngoog.debug.FORCE_SLOPPY_STACKS =\\n goog.define('goog.debug.FORCE_SLOPPY_STACKS', false);\\n\\n\\n/**\\n * Catches onerror events fired by windows and similar objects.\\n * @param {function(Object)} logFunc The function to call with the error\\n * information.\\n * @param {boolean=} opt_cancel Whether to stop the error from reaching the\\n * browser.\\n * @param {Object=} opt_target Object that fires onerror events.\\n * @suppress {strictMissingProperties} onerror is not defined as a property\\n * on Object.\\n */\\ngoog.debug.catchErrors = function(logFunc, opt_cancel, opt_target) {\\n var target = opt_target || goog.global;\\n var oldErrorHandler = target.onerror;\\n var retVal = !!opt_cancel;\\n\\n // Chrome interprets onerror return value backwards (http://crbug.com/92062)\\n // until it was fixed in webkit revision r94061 (Webkit 535.3). This\\n // workaround still needs to be skipped in Safari after the webkit change\\n // gets pushed out in Safari.\\n // See https://bugs.webkit.org/show_bug.cgi?id=67119\\n if (goog.userAgent.WEBKIT && !goog.userAgent.isVersionOrHigher('535.3')) {\\n retVal = !retVal;\\n }\\n\\n /**\\n * New onerror handler for this target. This onerror handler follows the spec\\n * according to\\n * http://www.whatwg.org/specs/web-apps/current-work/#runtime-script-errors\\n * The spec was changed in August 2013 to support receiving column information\\n * and an error object for all scripts on the same origin or cross origin\\n * scripts with the proper headers. See\\n * https://mikewest.org/2013/08/debugging-runtime-errors-with-window-onerror\\n *\\n * @param {string} message The error message. For cross-origin errors, this\\n * will be scrubbed to just \\\"Script error.\\\". For new browsers that have\\n * updated to follow the latest spec, errors that come from origins that\\n * have proper cross origin headers will not be scrubbed.\\n * @param {string} url The URL of the script that caused the error. The URL\\n * will be scrubbed to \\\"\\\" for cross origin scripts unless the script has\\n * proper cross origin headers and the browser has updated to the latest\\n * spec.\\n * @param {number} line The line number in the script that the error\\n * occurred on.\\n * @param {number=} opt_col The optional column number that the error\\n * occurred on. Only browsers that have updated to the latest spec will\\n * include this.\\n * @param {Error=} opt_error The optional actual error object for this\\n * error that should include the stack. Only browsers that have updated\\n * to the latest spec will inlude this parameter.\\n * @return {boolean} Whether to prevent the error from reaching the browser.\\n */\\n target.onerror = function(message, url, line, opt_col, opt_error) {\\n if (oldErrorHandler) {\\n oldErrorHandler(message, url, line, opt_col, opt_error);\\n }\\n logFunc({\\n message: message,\\n fileName: url,\\n line: line,\\n lineNumber: line,\\n col: opt_col,\\n error: opt_error\\n });\\n return retVal;\\n };\\n};\\n\\n\\n/**\\n * Creates a string representing an object and all its properties.\\n * @param {Object|null|undefined} obj Object to expose.\\n * @param {boolean=} opt_showFn Show the functions as well as the properties,\\n * default is false.\\n * @return {string} The string representation of `obj`.\\n */\\ngoog.debug.expose = function(obj, opt_showFn) {\\n if (typeof obj == 'undefined') {\\n return 'undefined';\\n }\\n if (obj == null) {\\n return 'NULL';\\n }\\n var str = [];\\n\\n for (var x in obj) {\\n if (!opt_showFn && goog.isFunction(obj[x])) {\\n continue;\\n }\\n var s = x + ' = ';\\n\\n try {\\n s += obj[x];\\n } catch (e) {\\n s += '*** ' + e + ' ***';\\n }\\n str.push(s);\\n }\\n return str.join('\\\\n');\\n};\\n\\n\\n/**\\n * Creates a string representing a given primitive or object, and for an\\n * object, all its properties and nested objects. NOTE: The output will include\\n * Uids on all objects that were exposed. Any added Uids will be removed before\\n * returning.\\n * @param {*} obj Object to expose.\\n * @param {boolean=} opt_showFn Also show properties that are functions (by\\n * default, functions are omitted).\\n * @return {string} A string representation of `obj`.\\n */\\ngoog.debug.deepExpose = function(obj, opt_showFn) {\\n var str = [];\\n\\n // Track any objects where deepExpose added a Uid, so they can be cleaned up\\n // before return. We do this globally, rather than only on ancestors so that\\n // if the same object appears in the output, you can see it.\\n var uidsToCleanup = [];\\n var ancestorUids = {};\\n\\n var helper = function(obj, space) {\\n var nestspace = space + ' ';\\n\\n var indentMultiline = function(str) {\\n return str.replace(/\\\\n/g, '\\\\n' + space);\\n };\\n\\n\\n try {\\n if (obj === undefined) {\\n str.push('undefined');\\n } else if (obj === null) {\\n str.push('NULL