| Index: lib/src/trace.dart
|
| diff --git a/lib/src/trace.dart b/lib/src/trace.dart
|
| index 2690ece17a2fac811a86413328eb2fd3fd7a1b58..5cd09e9bb7fe0774e06ac6297667597dfb19e57e 100644
|
| --- a/lib/src/trace.dart
|
| +++ b/lib/src/trace.dart
|
| @@ -205,7 +205,18 @@ 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
|
| + // 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.
|
| + // TODO(nweiz): Get rid of this logic some time after issue 22009 is
|
| + // fixed.
|
| + 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, '');
|
|
|