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