Chromium Code Reviews| 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, ''); |