Index: pkg/stack_trace/test/trace_test.dart |
diff --git a/pkg/stack_trace/test/trace_test.dart b/pkg/stack_trace/test/trace_test.dart |
index bc2db6b85975634c66207e63059dfe7ea6ee3294..17f9c22e946d539afaf80d7158655ce22df1f292 100644 |
--- a/pkg/stack_trace/test/trace_test.dart |
+++ b/pkg/stack_trace/test/trace_test.dart |
@@ -92,7 +92,7 @@ void main() { |
equals(Uri.parse("http://pub.dartlang.org/thing.js"))); |
}); |
- test('parses a Firefox stack trace correctly', () { |
+ test('parses a Firefox/Safari stack trace correctly', () { |
var trace = new Trace.parse( |
'Foo._bar@http://pub.dartlang.org/stuff.js:42\n' |
'zip/<@http://pub.dartlang.org/stuff.js:0\n' |
@@ -130,7 +130,8 @@ void main() { |
equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); |
}); |
- test('parses a Safari 6.0 stack trace correctly', () { |
+ test('parses a Firefox/Safari stack trace containing native code correctly', |
+ () { |
var trace = new Trace.parse( |
'Foo._bar@http://pub.dartlang.org/stuff.js:42\n' |
'zip/<@http://pub.dartlang.org/stuff.js:0\n' |
@@ -146,29 +147,49 @@ void main() { |
expect(trace.frames.length, equals(3)); |
}); |
- test('parses a Safari 6.1 stack trace correctly', () { |
+ test('parses a Firefox/Safari stack trace without a method name correctly', |
+ () { |
var trace = new Trace.parse( |
- 'http://pub.dartlang.org/stuff.js:42:43\n' |
- 'zip@http://pub.dartlang.org/stuff.js:0:1\n' |
- 'zip\$zap@http://pub.dartlang.org/thing.js:1:2'); |
+ 'http://pub.dartlang.org/stuff.js:42\n' |
+ 'zip/<@http://pub.dartlang.org/stuff.js:0\n' |
+ 'zip.zap(12, "@)()/<")@http://pub.dartlang.org/thing.js:1'); |
expect(trace.frames[0].uri, |
equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); |
+ expect(trace.frames[0].member, equals('<fn>')); |
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 Safari 6.1 stack trace with an empty line correctly', () { |
+ test('parses a Firefox/Safari stack trace with an empty line correctly', |
+ () { |
var trace = new Trace.parse( |
- 'http://pub.dartlang.org/stuff.js:42:43\n' |
+ 'Foo._bar@http://pub.dartlang.org/stuff.js:42\n' |
'\n' |
- 'zip@http://pub.dartlang.org/stuff.js:0:1\n' |
- 'zip\$zap@http://pub.dartlang.org/thing.js:1:2'); |
+ 'zip/<@http://pub.dartlang.org/stuff.js:0\n' |
+ 'zip.zap(12, "@)()/<")@http://pub.dartlang.org/thing.js:1'); |
+ |
+ 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 Firefox/Safari stack trace with a column number correctly', |
+ () { |
+ var trace = new Trace.parse( |
+ 'Foo._bar@http://pub.dartlang.org/stuff.js:42:2\n' |
+ 'zip/<@http://pub.dartlang.org/stuff.js:0\n' |
+ 'zip.zap(12, "@)()/<")@http://pub.dartlang.org/thing.js:1'); |
expect(trace.frames[0].uri, |
equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); |
+ expect(trace.frames[0].line, equals(42)); |
+ expect(trace.frames[0].column, equals(2)); |
expect(trace.frames[1].uri, |
equals(Uri.parse("http://pub.dartlang.org/stuff.js"))); |
expect(trace.frames[2].uri, |