Don't crash when mapping stack chains. R=kevmoo@google.com Review URL: https://codereview.chromium.org//1108053006
diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d8803f..b13f72f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md
@@ -1,3 +1,7 @@ +## 1.0.1 + +* Don't crash when mapping stack chains. + ## 1.0.0 * Initial release.
diff --git a/lib/source_map_stack_trace.dart b/lib/source_map_stack_trace.dart index 9c65dd9..a5a22b3 100644 --- a/lib/source_map_stack_trace.dart +++ b/lib/source_map_stack_trace.dart
@@ -25,8 +25,8 @@ {bool minified: false, packageRoot, sdkRoot}) { if (stackTrace is Chain) { return new Chain(stackTrace.traces.map((trace) { - return mapStackTrace(trace, sourceMap, - minified: minified, packageRoot: packageRoot, sdkRoot: sdkRoot); + return new Trace.from(mapStackTrace(sourceMap, trace, + minified: minified, packageRoot: packageRoot, sdkRoot: sdkRoot)); })); }
diff --git a/pubspec.yaml b/pubspec.yaml index f847d45..afa10ad 100644 --- a/pubspec.yaml +++ b/pubspec.yaml
@@ -1,5 +1,5 @@ name: source_map_stack_trace -version: 1.0.0 +version: 1.0.1 description: > A package for applying source maps to stack traces. author: Dart Team <misc@dartlang.org>
diff --git a/test/source_map_stack_trace_test.dart b/test/source_map_stack_trace_test.dart index 432b616..ffaaaee 100644 --- a/test/source_map_stack_trace_test.dart +++ b/test/source_map_stack_trace_test.dart
@@ -122,6 +122,26 @@ expect(frame.column, equals(4)); }); + test("converts a stack chain", () { + var trace = new Chain([ + new Trace.parse("foo.dart.js 10:11 foo"), + new Trace.parse("foo.dart.js 10:11 bar") + ]); + var traces = mapStackTrace(_simpleMapping, trace).traces; + + var frame = traces.first.frames.single; + expect(frame.uri, equals(Uri.parse("foo.dart"))); + expect(frame.member, equals("foo")); + expect(frame.line, equals(2)); + expect(frame.column, equals(4)); + + frame = traces.last.frames.single; + expect(frame.uri, equals(Uri.parse("foo.dart"))); + expect(frame.member, equals("bar")); + expect(frame.line, equals(2)); + expect(frame.column, equals(4)); + }); + group("cleans up", () { test("Firefox junk", () { expect(_prettify("foo/<"), equals("foo"));