Skip to content

Commit 4103276

Browse files
committed
Fixing stack frame parser for Firefox new stack trace format (with column numbers and more allowed symbols in function names). Fixes issue 8093
1 parent 55f56cd commit 4103276

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

javascript/firefox-driver/js/error.js

+20-7
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,29 @@ fxdriver.error.toJSON = function(ex) {
3737
var stack = ex.stack.replace(/\s*$/, '').split('\n');
3838

3939
for (var frame = stack.shift(); frame; frame = stack.shift()) {
40-
var match = frame.match(/^([a-zA-Z_$][\w./<]*)?(?:\(.*\))?@(.+)?:(\d*)$/);
40+
var methodName;
41+
var fileName;
42+
var lineNumber;
43+
var columnNumber;
44+
45+
var match = frame.match(/(.*):(\d+):(\d+)$/);
4146
if (match) {
42-
stackFrames.push({
43-
'methodName': match[1],
44-
'fileName': match[2],
45-
'lineNumber': Number(match[3])
46-
});
47+
frame = match[1];
48+
lineNumber = Number(match[2]);
49+
columnNumber = Number(match[3]);
4750
} else {
48-
stackFrames.push({'methodName': frame});
51+
match = frame.match(/(.*):(\d+)$/);
52+
frame = match[1];
53+
lineNumber = Number(match[2]);
4954
}
55+
56+
match = frame.match(/^([a-zA-Z_$][\w./<$]*)?(?:\(.*\))?@(.+)?$/);
57+
stackFrames.push({
58+
'methodName': match[1],
59+
'fileName': match[2],
60+
'lineNumber': lineNumber,
61+
'columnNumber': columnNumber
62+
});
5063
}
5164
}
5265

0 commit comments

Comments
 (0)