Handle function names in backtraces
This commit is contained in:
@@ -122,6 +122,7 @@
|
||||
}
|
||||
.offenders .offenderButton .backtrace {
|
||||
white-space: nowrap;
|
||||
padding: 0.5em;
|
||||
}
|
||||
.offenders .offenderButton:hover {
|
||||
border-bottom-left-radius: 0;
|
||||
|
||||
@@ -137,6 +137,7 @@
|
||||
|
||||
.backtrace {
|
||||
white-space: nowrap;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
|
||||
+13
-6
@@ -107,13 +107,19 @@ var OffendersHelpers = function() {
|
||||
var parts = null;
|
||||
|
||||
for (var i=0 ; i<traceArray.length ; i++) {
|
||||
parts = /^([^ ]+):(\d*)$/.exec(traceArray[i]);
|
||||
parts = /^(([\w$]+) )?([^ ]+):(\d+)$/.exec(traceArray[i]);
|
||||
|
||||
if (parts) {
|
||||
results.push({
|
||||
file: parts[1],
|
||||
line: parseInt(parts[2], 10)
|
||||
});
|
||||
var obj = {
|
||||
file: parts[3],
|
||||
line: parseInt(parts[4], 10)
|
||||
};
|
||||
|
||||
if (parts[2]) {
|
||||
obj.functionName = parts[2];
|
||||
}
|
||||
|
||||
results.push(obj);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
@@ -131,7 +137,8 @@ var OffendersHelpers = function() {
|
||||
|
||||
var html = '<div class="offenderButton opens">backtrace<div class="backtrace">';
|
||||
backtraceArray.forEach(function(backtraceObj) {
|
||||
html += '<div><a href="' + backtraceObj.file + '" target="_blank">' + backtraceObj.file + '</a> line ' + backtraceObj.line + '</div>';
|
||||
var functionName = (backtraceObj.functionName) ? backtraceObj.functionName + '() ' : '';
|
||||
html += '<div>' + functionName + '<a href="' + backtraceObj.file + '" target="_blank">' + backtraceObj.file + '</a> line ' + backtraceObj.line + '</div>';
|
||||
});
|
||||
return html + '</div></div>';
|
||||
};
|
||||
|
||||
@@ -137,7 +137,7 @@ describe('offendersHelpers', function() {
|
||||
describe('backtraceToArray', function() {
|
||||
|
||||
it('should transform a backtrace into an array', function() {
|
||||
var result = offendersHelpers.backtraceToArray('http://pouet.com/js/jquery.footer-transverse-min-v1.0.20.js:1 / http://pouet.com/js/main.js:1');
|
||||
var result = offendersHelpers.backtraceToArray('http://pouet.com/js/jquery.footer-transverse-min-v1.0.20.js:1 / callback http://pouet.com/js/main.js:1');
|
||||
|
||||
result.should.deep.equal([
|
||||
{
|
||||
@@ -145,6 +145,7 @@ describe('offendersHelpers', function() {
|
||||
line: 1
|
||||
},
|
||||
{
|
||||
functionName: 'callback',
|
||||
file: 'http://pouet.com/js/main.js',
|
||||
line: 1
|
||||
}
|
||||
@@ -168,12 +169,13 @@ describe('offendersHelpers', function() {
|
||||
line: 1
|
||||
},
|
||||
{
|
||||
functionName: 'callback',
|
||||
file: 'http://pouet.com/js/main.js',
|
||||
line: 1
|
||||
}
|
||||
]);
|
||||
|
||||
result.should.equal('<div class="offenderButton opens">backtrace<div class="backtrace"><div><a href="http://pouet.com/js/jquery.footer-transverse-min-v1.0.20.js" target="_blank">http://pouet.com/js/jquery.footer-transverse-min-v1.0.20.js</a> line 1</div><div><a href="http://pouet.com/js/main.js" target="_blank">http://pouet.com/js/main.js</a> line 1</div></div></div>');
|
||||
result.should.equal('<div class="offenderButton opens">backtrace<div class="backtrace"><div><a href="http://pouet.com/js/jquery.footer-transverse-min-v1.0.20.js" target="_blank">http://pouet.com/js/jquery.footer-transverse-min-v1.0.20.js</a> line 1</div><div>callback() <a href="http://pouet.com/js/main.js" target="_blank">http://pouet.com/js/main.js</a> line 1</div></div></div>');
|
||||
});
|
||||
|
||||
it('should display "no backtrace"', function() {
|
||||
|
||||
Reference in New Issue
Block a user