Index: lib/src/trace.dart |
diff --git a/lib/src/trace.dart b/lib/src/trace.dart |
index 2690ece17a2fac811a86413328eb2fd3fd7a1b58..1ab8e83351d44c270c0fac3441caeb4dedeb749d 100644 |
--- a/lib/src/trace.dart |
+++ b/lib/src/trace.dart |
@@ -205,7 +205,16 @@ class Trace implements StackTrace { |
/// removed. |
Trace get terse { |
return new Trace(foldFrames((frame) { |
- return frame.isCore || frame.package == 'stack_trace'; |
+ if (frame.isCore) return true; |
+ if (frame.package == 'stack_trace') return true; |
+ |
+ // Ignore async stack frames without any line or column information. These |
Bob Nystrom
2015/02/12 19:31:45
Do you know if the VM intends to always have these
nweiz
2015/02/12 19:57:01
Done.
|
+ // come from the VM's async/await implementation and represent internal |
+ // frames. They only ever show up in stack chains and are always |
+ // surrounded by other traces that are actually useful, so we can just get |
+ // rid of them. |
+ if (!frame.member.contains('<async>')) return false; |
+ return frame.line == null; |
}).frames.map((frame) { |
if (!frame.isCore) return frame; |
var library = frame.library.replaceAll(_terseRegExp, ''); |