Bug 1459927 - Traverse nsIStackFrame async callers when reporting browser-chrome test harness failures. r=ted.mielczarek
MozReview-Commit-ID: BZ1bt1amerq
--- a/testing/mochitest/browser-test.js
+++ b/testing/mochitest/browser-test.js
@@ -1243,18 +1243,19 @@ function testResult({ name, pass, todo,
this.msg += String(ex);
}
if (stack) {
this.msg += "\nStack trace:\n";
let normalized;
if (stack instanceof Ci.nsIStackFrame) {
let frames = [];
- for (let frame = stack; frame; frame = frame.caller) {
- frames.push(frame.filename + ":" + frame.name + ":" + frame.lineNumber);
+ for (let frame = stack; frame; frame = frame.asyncCaller || frame.caller) {
+ let msg = `${frame.filename}:${frame.name}:${frame.lineNumber}`;
+ frames.push(frame.asyncCause ? `${frame.asyncCause}*${msg}` : msg);
}
normalized = frames.join("\n");
} else {
normalized = "" + stack;
}
this.msg += normalized;
}