diff options
Diffstat (limited to 'atom/packages/vim-mode/node_modules/grim/lib/deprecation.js')
| -rw-r--r-- | atom/packages/vim-mode/node_modules/grim/lib/deprecation.js | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/atom/packages/vim-mode/node_modules/grim/lib/deprecation.js b/atom/packages/vim-mode/node_modules/grim/lib/deprecation.js new file mode 100644 index 0000000..fa39865 --- /dev/null +++ b/atom/packages/vim-mode/node_modules/grim/lib/deprecation.js @@ -0,0 +1,149 @@ +(function() { + var Deprecation, SourceMapCache; + + SourceMapCache = {}; + + module.exports = Deprecation = (function() { + Deprecation.getFunctionNameFromCallsite = function(callsite) {}; + + Deprecation.deserialize = function(_arg) { + var deprecation, fileName, lineNumber, message, stack, stacks, _i, _len; + message = _arg.message, fileName = _arg.fileName, lineNumber = _arg.lineNumber, stacks = _arg.stacks; + deprecation = new Deprecation(message, fileName, lineNumber); + for (_i = 0, _len = stacks.length; _i < _len; _i++) { + stack = stacks[_i]; + deprecation.addStack(stack, stack.metadata); + } + return deprecation; + }; + + function Deprecation(message, fileName, lineNumber) { + this.message = message; + this.fileName = fileName; + this.lineNumber = lineNumber; + this.callCount = 0; + this.stackCount = 0; + this.stacks = {}; + this.stackCallCounts = {}; + } + + Deprecation.prototype.getFunctionNameFromCallsite = function(callsite) { + var _ref, _ref1, _ref2; + if (callsite.functionName != null) { + return callsite.functionName; + } + if (callsite.isToplevel()) { + return (_ref = callsite.getFunctionName()) != null ? _ref : '<unknown>'; + } else { + if (callsite.isConstructor()) { + return "new " + (callsite.getFunctionName()); + } else if (callsite.getMethodName() && !callsite.getFunctionName()) { + return callsite.getMethodName(); + } else { + return "" + (callsite.getTypeName()) + "." + ((_ref1 = (_ref2 = callsite.getMethodName()) != null ? _ref2 : callsite.getFunctionName()) != null ? _ref1 : '<anonymous>'); + } + } + }; + + Deprecation.prototype.getLocationFromCallsite = function(callsite) { + var column, fileName, line; + if (callsite.location != null) { + return callsite.location; + } + if (callsite.isNative()) { + return "native"; + } else if (callsite.isEval()) { + return "eval at " + (this.getLocationFromCallsite(callsite.getEvalOrigin())); + } else { + fileName = callsite.getFileName(); + line = callsite.getLineNumber(); + column = callsite.getColumnNumber(); + return "" + fileName + ":" + line + ":" + column; + } + }; + + Deprecation.prototype.getFileNameFromCallSite = function(callsite) { + var _ref; + return (_ref = callsite.fileName) != null ? _ref : callsite.getFileName(); + }; + + Deprecation.prototype.getOriginName = function() { + return this.originName; + }; + + Deprecation.prototype.getMessage = function() { + return this.message; + }; + + Deprecation.prototype.getStacks = function() { + var location, parsedStack, parsedStacks, stack, _ref; + parsedStacks = []; + _ref = this.stacks; + for (location in _ref) { + stack = _ref[location]; + parsedStack = this.parseStack(stack); + parsedStack.callCount = this.stackCallCounts[location]; + parsedStack.metadata = stack.metadata; + parsedStacks.push(parsedStack); + } + return parsedStacks; + }; + + Deprecation.prototype.getStackCount = function() { + return this.stackCount; + }; + + Deprecation.prototype.getCallCount = function() { + return this.callCount; + }; + + Deprecation.prototype.addStack = function(stack, metadata) { + var callerLocation, _base, _base1; + if (this.originName == null) { + this.originName = this.getFunctionNameFromCallsite(stack[0]); + } + if (this.fileName == null) { + this.fileName = this.getFileNameFromCallSite(stack[0]); + } + if (this.lineNumber == null) { + this.lineNumber = typeof (_base = stack[0]).getLineNumber === "function" ? _base.getLineNumber() : void 0; + } + this.callCount++; + stack.metadata = metadata; + callerLocation = this.getLocationFromCallsite(stack[1]); + if (this.stacks[callerLocation] == null) { + this.stacks[callerLocation] = stack; + this.stackCount++; + } + if ((_base1 = this.stackCallCounts)[callerLocation] == null) { + _base1[callerLocation] = 0; + } + return this.stackCallCounts[callerLocation]++; + }; + + Deprecation.prototype.parseStack = function(stack) { + return stack.map((function(_this) { + return function(callsite) { + return { + functionName: _this.getFunctionNameFromCallsite(callsite), + location: _this.getLocationFromCallsite(callsite), + fileName: _this.getFileNameFromCallSite(callsite) + }; + }; + })(this)); + }; + + Deprecation.prototype.serialize = function() { + return { + message: this.getMessage(), + lineNumber: this.lineNumber, + fileName: this.fileName, + stacks: this.getStacks() + }; + }; + + return Deprecation; + + })(); + +}).call(this); |