Use StackTrace.current Closes https://github.com/dart-lang/stack_trace/issues/8 R=nweiz@google.com Review URL: https://codereview.chromium.org//1653603002 .
diff --git a/pkgs/stack_trace/CHANGELOG.md b/pkgs/stack_trace/CHANGELOG.md index fb699c6..66c1108 100644 --- a/pkgs/stack_trace/CHANGELOG.md +++ b/pkgs/stack_trace/CHANGELOG.md
@@ -1,3 +1,7 @@ +## 1.6.1 + +* Use `StacktTrace.current` in Dart SDK 1.14 to get the current stack trace. + ## 1.6.0 * Add a `when` parameter to `Chain.capture()`. This allows capturing to be
diff --git a/pkgs/stack_trace/lib/src/trace.dart b/pkgs/stack_trace/lib/src/trace.dart index 6d9823b..927a167 100644 --- a/pkgs/stack_trace/lib/src/trace.dart +++ b/pkgs/stack_trace/lib/src/trace.dart
@@ -81,12 +81,8 @@ "to 0."); } - try { - throw ''; - } catch (_, nativeTrace) { - var trace = new Trace.from(nativeTrace); - return new LazyTrace(() => new Trace(trace.frames.skip(level + 1))); - } + var trace = new Trace.from(StackTrace.current); + return new LazyTrace(() => new Trace(trace.frames.skip(level + 1))); } /// Returns a new stack trace containing the same data as [trace].
diff --git a/pkgs/stack_trace/pubspec.yaml b/pkgs/stack_trace/pubspec.yaml index 1c805c3..e0fdbb9 100644 --- a/pkgs/stack_trace/pubspec.yaml +++ b/pkgs/stack_trace/pubspec.yaml
@@ -7,7 +7,7 @@ # # When the major version is upgraded, you *must* update that version constraint # in pub to stay in sync with this. -version: 1.6.0 +version: 1.6.1 author: "Dart Team <misc@dartlang.org>" homepage: http://github.com/dart-lang/stack_trace description: > @@ -19,4 +19,4 @@ dev_dependencies: test: "^0.12.0" environment: - sdk: ">=1.8.0 <2.0.0" + sdk: ">=1.14.0 <2.0.0"
diff --git a/pkgs/stack_trace/test/trace_test.dart b/pkgs/stack_trace/test/trace_test.dart index edb29fd..077f1ba 100644 --- a/pkgs/stack_trace/test/trace_test.dart +++ b/pkgs/stack_trace/test/trace_test.dart
@@ -6,22 +6,6 @@ import 'package:stack_trace/stack_trace.dart'; import 'package:test/test.dart'; -String getStackTraceString() { - try { - throw ''; - } catch (_, stackTrace) { - return stackTrace.toString(); - } -} - -StackTrace getStackTraceObject() { - try { - throw ''; - } catch (_, stackTrace) { - return stackTrace; - } -} - Trace getCurrentTrace([int level]) => new Trace.current(level); Trace nestedGetCurrentTrace(int level) => getCurrentTrace(level);
diff --git a/pkgs/stack_trace/test/vm_test.dart b/pkgs/stack_trace/test/vm_test.dart index 947f14b..f0967b5 100644 --- a/pkgs/stack_trace/test/vm_test.dart +++ b/pkgs/stack_trace/test/vm_test.dart
@@ -12,22 +12,6 @@ import 'package:stack_trace/stack_trace.dart'; import 'package:test/test.dart'; -String getStackTraceString() { - try { - throw ''; - } catch (_, stackTrace) { - return stackTrace.toString(); - } -} - -StackTrace getStackTraceObject() { - try { - throw ''; - } catch (_, stackTrace) { - return stackTrace; - } -} - Frame getCaller([int level]) { if (level == null) return new Frame.caller(); return new Frame.caller(level); @@ -42,7 +26,7 @@ void main() { group('Trace', () { test('.parse parses a real stack trace correctly', () { - var string = getStackTraceString(); + var string = StackTrace.current.toString(); var trace = new Trace.parse(string); expect(path.url.basename(trace.frames.first.uri.path), equals('vm_test.dart')); @@ -50,7 +34,7 @@ }); test('converts from a native stack trace correctly', () { - var trace = new Trace.from(getStackTraceObject()); + var trace = new Trace.from(StackTrace.current); expect(path.url.basename(trace.frames.first.uri.path), equals('vm_test.dart')); expect(trace.frames.first.member, equals('getStackTraceObject'));