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"));