Socket
Socket
Sign inDemoInstall

stack-trace

Package Overview
Dependencies
0
Maintainers
0
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.2 to 0.0.3

16

lib/stack-trace.js

@@ -21,3 +21,3 @@ exports.get = function(belowFn) {

return lines.map(function(line) {
var lineMatch = line.match(/at ([^\s]+)\s+\((.+?):(\d+):(\d+)\)/);
var lineMatch = line.match(/at ([^\s]+)\s+\((?:(.+?):(\d+):(\d+)|([^)]+))\)/);
var methodMatch = lineMatch[1].match(/([^\.]+)(?:\.(.+))?/);

@@ -30,2 +30,3 @@ var object = methodMatch[1];

var typeName = 'Object';
var isNative = (lineMatch[5] === 'native');

@@ -43,8 +44,9 @@ if (method) {

var properties = {
fileName: lineMatch[2],
lineNumber: parseInt(lineMatch[3], 10),
fileName: lineMatch[2] || null,
lineNumber: parseInt(lineMatch[3], 10) || null,
functionName: functionName,
typeName: typeName,
methodName: methodName,
columnNumber: parseInt(lineMatch[4], 10),
columnNumber: parseInt(lineMatch[4], 10) || null,
'native': isNative,
};

@@ -59,3 +61,7 @@

for (var property in properties) {
var method = 'get' + property.substr(0, 1).toUpperCase() + property.substr(1);
var prefix = 'get';
if (property === 'native') {
prefix = 'is';
}
var method = prefix + property.substr(0, 1).toUpperCase() + property.substr(1);

@@ -62,0 +68,0 @@ (function(property) {

@@ -5,3 +5,3 @@ {

"description": "Get v8 stack traces as an array of CallSite objects.",
"version": "0.0.2",
"version": "0.0.3",
"homepage": "https://github.com/felixge/node-stack-trace",

@@ -8,0 +8,0 @@ "repository": {

@@ -58,3 +58,8 @@ # stack-trace

* getColumnNumber
* isNative
Note: Except `getFunctionName()`, all of the above methods return exactly the
same values as you would get from `stackTrace.get()`. `getFunctionName()`
is sometimes a little different, but still useful.
### CallSite

@@ -61,0 +66,0 @@

@@ -22,40 +22,64 @@ var common = require('../common');

(function testSymmetry() {
var realTrace = stackTrace.get(); var err = new Error('something went wrong');
var parsedTrace = stackTrace.parse(err);
(function testCompareRealWithParsedStackTrace() {
var realTrace = stackTrace.get(); var err = new Error('something went wrong');
var parsedTrace = stackTrace.parse(err);
realTrace.forEach(function(real, i) {
var parsed = parsedTrace[i];
realTrace.forEach(function(real, i) {
var parsed = parsedTrace[i];
function compare(method, exceptions) {
var realValue = real[method]();
var parsedValue = parsed[method]();
function compare(method, exceptions) {
var realValue = real[method]();
var parsedValue = parsed[method]();
if (exceptions && exceptions[i]) {
realValue = exceptions[i];
}
if (exceptions && exceptions[i]) {
realValue = exceptions[i];
}
var realJson = JSON.stringify(realValue);
var parsedJson = JSON.stringify(parsedValue);
var realJson = JSON.stringify(realValue);
var parsedJson = JSON.stringify(parsedValue);
var message =
method + ': ' + realJson + ' != ' + parsedJson + ' (#' + i + ')';
var message =
method + ': ' + realJson + ' != ' + parsedJson + ' (#' + i + ')';
assert.strictEqual(realValue, parsedValue, message);
}
assert.strictEqual(realValue, parsedValue, message);
}
compare('getFileName');
compare('getFunctionName', {
3: 'Object..js',
5: 'Function._load',
6: 'Array.0',
7: 'EventEmitter._tickCallback',
});
compare('getTypeName');
compare('getMethodName');
compare('getLineNumber');
compare('getColumnNumber', {
0: 49
});
compare('getFileName');
compare('getFunctionName', {
3: 'Object..js',
5: 'Function._load',
6: 'Array.0',
7: 'EventEmitter._tickCallback',
});
compare('getTypeName');
compare('getMethodName');
compare('getLineNumber');
compare('getColumnNumber', {
0: 47
});
compare('isNative');
});
})();
(function testStackWithNativeCall() {
var err = {};
err.stack =
'AssertionError: true == false\n' +
' at Test.fn (/Users/felix/code/node-fast-or-slow/test/fast/example/test-example.js:6:10)\n' +
' at Test.run (/Users/felix/code/node-fast-or-slow/lib/test.js:45:10)\n' +
' at TestCase.runNext (/Users/felix/code/node-fast-or-slow/lib/test_case.js:73:8)\n' +
' at TestCase.run (/Users/felix/code/node-fast-or-slow/lib/test_case.js:61:8)\n' +
' at Array.0 (native)\n' +
' at EventEmitter._tickCallback (node.js:126:26)';
var trace = stackTrace.parse(err);
var nativeCallSite = trace[4];
assert.strictEqual(nativeCallSite.getFileName(), null);
assert.strictEqual(nativeCallSite.getFunctionName(), 'Array.0');
assert.strictEqual(nativeCallSite.getTypeName(), 'Array');
assert.strictEqual(nativeCallSite.getMethodName(), '0');
assert.strictEqual(nativeCallSite.getLineNumber(), null);
assert.strictEqual(nativeCallSite.getColumnNumber(), null);
assert.strictEqual(nativeCallSite.isNative(), true);
})();
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc