{"version":3,"sources":["stackframe.js"],"names":["root","factory","define","amd","exports","module","StackFrame","this","_isNumber","n","isNaN","parseFloat","isFinite","functionName","args","fileName","lineNumber","columnNumber","source","undefined","setFunctionName","setArgs","setFileName","setLineNumber","setColumnNumber","setSource","prototype","getFunctionName","v","String","getArgs","Object","toString","call","TypeError","getFileName","getLineNumber","Number","getColumnNumber","getSource","join"],"mappings":"CAAC,SAAUA,EAAMC,GACb,YAIsB,mBAAXC,SAAyBA,OAAOC,IACvCD,OAAO,gBAAkBD,GACC,gBAAZG,SACdC,OAAOD,QAAUH,IAEjBD,EAAKM,WAAaL,KAExBM,KAAM,WACJ,YACA,SAASC,GAAUC,GACf,OAAQC,MAAMC,WAAWF,KAAOG,SAASH,GAG7C,QAASH,GAAWO,EAAcC,EAAMC,EAAUC,EAAYC,EAAcC,GACnDC,SAAjBN,GACAN,KAAKa,gBAAgBP,GAEZM,SAATL,GACAP,KAAKc,QAAQP,GAEAK,SAAbJ,GACAR,KAAKe,YAAYP,GAEFI,SAAfH,GACAT,KAAKgB,cAAcP,GAEFG,SAAjBF,GACAV,KAAKiB,gBAAgBP,GAEVE,SAAXD,GACAX,KAAKkB,UAAUP,GAsEvB,MAlEAZ,GAAWoB,WACPC,gBAAiB,WACb,MAAOpB,MAAKM,cAEhBO,gBAAiB,SAAUQ,GACvBrB,KAAKM,aAAegB,OAAOD,IAG/BE,QAAS,WACL,MAAOvB,MAAKO,MAEhBO,QAAS,SAAUO,GACf,GAA0C,mBAAtCG,OAAOL,UAAUM,SAASC,KAAKL,GAC/B,KAAM,IAAIM,WAAU,wBAExB3B,MAAKO,KAAOc,GAOhBO,YAAa,WACT,MAAO5B,MAAKQ,UAEhBO,YAAa,SAAUM,GACnBrB,KAAKQ,SAAWc,OAAOD,IAG3BQ,cAAe,WACX,MAAO7B,MAAKS,YAEhBO,cAAe,SAAUK,GACrB,IAAKpB,EAAUoB,GACX,KAAM,IAAIM,WAAU,+BAExB3B,MAAKS,WAAaqB,OAAOT,IAG7BU,gBAAiB,WACb,MAAO/B,MAAKU,cAEhBO,gBAAiB,SAAUI,GACvB,IAAKpB,EAAUoB,GACX,KAAM,IAAIM,WAAU,iCAExB3B,MAAKU,aAAeoB,OAAOT,IAG/BW,UAAW,WACP,MAAOhC,MAAKW,QAEhBO,UAAW,SAAUG,GACjBrB,KAAKW,OAASW,OAAOD,IAGzBI,SAAU,WACN,GAAInB,GAAeN,KAAKoB,mBAAqB,cACzCb,EAAO,KAAOP,KAAKuB,eAAiBU,KAAK,KAAO,IAChDzB,EAAWR,KAAK4B,cAAiB,IAAM5B,KAAK4B,cAAiB,GAC7DnB,EAAaR,EAAUD,KAAK6B,iBAAoB,IAAM7B,KAAK6B,gBAAmB,GAC9EnB,EAAeT,EAAUD,KAAK+B,mBAAsB,IAAM/B,KAAK+B,kBAAqB,EACxF,OAAOzB,GAAeC,EAAOC,EAAWC,EAAaC,IAItDX","file":"stackframe.min.js","sourcesContent":["(function (root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.StackFrame = factory();\n }\n}(this, function () {\n 'use strict';\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function StackFrame(functionName, args, fileName, lineNumber, columnNumber, source) {\n if (functionName !== undefined) {\n this.setFunctionName(functionName);\n }\n if (args !== undefined) {\n this.setArgs(args);\n }\n if (fileName !== undefined) {\n this.setFileName(fileName);\n }\n if (lineNumber !== undefined) {\n this.setLineNumber(lineNumber);\n }\n if (columnNumber !== undefined) {\n this.setColumnNumber(columnNumber);\n }\n if (source !== undefined) {\n this.setSource(source);\n }\n }\n\n StackFrame.prototype = {\n getFunctionName: function () {\n return this.functionName;\n },\n setFunctionName: function (v) {\n this.functionName = String(v);\n },\n\n getArgs: function () {\n return this.args;\n },\n setArgs: function (v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n this.args = v;\n },\n\n // NOTE: Property name may be misleading as it includes the path,\n // but it somewhat mirrors V8's JavaScriptStackTraceApi\n // https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi and Gecko's\n // http://mxr.mozilla.org/mozilla-central/source/xpcom/base/nsIException.idl#14\n getFileName: function () {\n return this.fileName;\n },\n setFileName: function (v) {\n this.fileName = String(v);\n },\n\n getLineNumber: function () {\n return this.lineNumber;\n },\n setLineNumber: function (v) {\n if (!_isNumber(v)) {\n throw new TypeError('Line Number must be a Number');\n }\n this.lineNumber = Number(v);\n },\n\n getColumnNumber: function () {\n return this.columnNumber;\n },\n setColumnNumber: function (v) {\n if (!_isNumber(v)) {\n throw new TypeError('Column Number must be a Number');\n }\n this.columnNumber = Number(v);\n },\n\n getSource: function () {\n return this.source;\n },\n setSource: function (v) {\n this.source = String(v);\n },\n\n toString: function() {\n var functionName = this.getFunctionName() || '{anonymous}';\n var args = '(' + (this.getArgs() || []).join(',') + ')';\n var fileName = this.getFileName() ? ('@' + this.getFileName()) : '';\n var lineNumber = _isNumber(this.getLineNumber()) ? (':' + this.getLineNumber()) : '';\n var columnNumber = _isNumber(this.getColumnNumber()) ? (':' + this.getColumnNumber()) : '';\n return functionName + args + fileName + lineNumber + columnNumber;\n }\n };\n\n return StackFrame;\n}));\n"],"sourceRoot":"/source/"}