@@ -55,6 +55,13 @@ class PrettyPrinter extends LogPrinter {
5555 static final _webStackTraceRegex =
5656 RegExp (r'^((packages|dart-sdk)\/[^\s]+\/)' );
5757
58+ /// Matches a stacktrace line as generated by browser Dart.
59+ /// For example:
60+ /// dart:sdk_internal
61+ /// package:logger/src/logger.dart
62+ static final _browserStackTraceRegex =
63+ RegExp (r'^(?:package:)?(dart:[^\s]+|[^\s]+)' );
64+
5865 static DateTime _startTime;
5966
6067 /// Amount of [StackTrace] lines to show with message (non-error log).
@@ -147,7 +154,8 @@ class PrettyPrinter extends LogPrinter {
147154 var count = 0 ;
148155 for (var line in lines) {
149156 if (_discardDeviceStacktraceLine (line) ||
150- _discardWebStacktraceLine (line)) {
157+ _discardWebStacktraceLine (line) ||
158+ _discardBrowserStacktraceLine (line)) {
151159 continue ;
152160 }
153161 formatted.add ('#$count ${line .replaceFirst (RegExp (r'#\d+\s+' ), '' )}' );
@@ -180,6 +188,15 @@ class PrettyPrinter extends LogPrinter {
180188 match.group (1 ).startsWith ('dart-sdk/lib' );
181189 }
182190
191+ bool _discardBrowserStacktraceLine (String line) {
192+ var match = _browserStackTraceRegex.matchAsPrefix (line);
193+ if (match == null ) {
194+ return false ;
195+ }
196+ return match.group (1 ).startsWith ('package:logger' ) ||
197+ match.group (1 ).startsWith ('dart:' );
198+ }
199+
183200 String getTime () {
184201 String _threeDigits (int n) {
185202 if (n >= 100 ) return '$n ' ;
0 commit comments