Support Safari 6.1 stack traces with blank lines in pkg/stack_trace. R=rnystrom@google.com BUG= Review URL: https://codereview.chromium.org//136693006 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart/pkg/stack_trace@31756 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/pkgs/stack_trace/lib/src/trace.dart b/pkgs/stack_trace/lib/src/trace.dart index 45cb42c..21e8afc 100644 --- a/pkgs/stack_trace/lib/src/trace.dart +++ b/pkgs/stack_trace/lib/src/trace.dart
@@ -164,6 +164,7 @@ /// Parses a string representation of a Safari 6.1+ stack trace. Trace.parseSafari6_1(String trace) : this(trace.trim().split("\n") + .where((line) => line.isNotEmpty) .map((line) => new Frame.parseSafari6_1(line))); /// Parses a string representation of a Safari 6.0 stack trace.
diff --git a/pkgs/stack_trace/test/trace_test.dart b/pkgs/stack_trace/test/trace_test.dart index 4c3278f..eeeff28 100644 --- a/pkgs/stack_trace/test/trace_test.dart +++ b/pkgs/stack_trace/test/trace_test.dart
@@ -160,6 +160,21 @@ equals(Uri.parse("http://pub.dartlang.org/thing.js"))); }); + test('parses a Safari 6.1 stack trace with an empty line correctly', () { + var trace = new Trace.parse( + 'http://pub.dartlang.org/stuff.js:42:43\n' + '\n' + 'zip@http://pub.dartlang.org/stuff.js:0:1\n' + 'zip\$zap@http://pub.dartlang.org/thing.js:1:2'); + + expect(trace.frames[0].uri, + equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); + expect(trace.frames[1].uri, + equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); + expect(trace.frames[2].uri, + equals(Uri.parse("http://pub.dartlang.org/thing.js"))); + }); + test('parses a package:stack_trace stack trace correctly', () { var trace = new Trace.parse( 'http://dartlang.org/foo/bar.dart 10:11 Foo.<fn>.bar\n'