Chromium Code Reviews| Index: pkg/stack_trace/lib/src/vm_trace.dart |
| diff --git a/pkg/stack_trace/lib/src/vm_trace.dart b/pkg/stack_trace/lib/src/vm_trace.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e1596478788e45336d107d79eb2f3ea1b48d823b |
| --- /dev/null |
| +++ b/pkg/stack_trace/lib/src/vm_trace.dart |
| @@ -0,0 +1,31 @@ |
| +// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| +// for details. All rights reserved. Use of this source code is governed by a |
| +// BSD-style license that can be found in the LICENSE file. |
| + |
| +library vm_trace; |
| + |
| +import 'frame.dart'; |
| +import 'utils.dart'; |
| + |
| +/// An implementation of [StackTrace] that emulates the behavior of the VM's |
| +/// implementation. |
| +/// |
| +/// In particular, when [toString] is called, this returns a string in the VM's |
| +/// stack trace format. |
| +class VmTrace implements StackTrace { |
|
Jennifer Messerly
2013/06/28 21:48:07
VMTrace?
nweiz
2013/06/28 22:23:54
Done.
|
| + /// The stack frames that comprise this stack trace. |
| + final List<Frame> frames; |
| + |
| + VmTrace(this.frames); |
| + |
| + String toString() { |
| + var i = 1; |
| + return frames.map((frame) { |
| + var number = padRight("#${i++}", 8); |
| + var member = frame.member.replaceAll("<fn>", "<anonymous closure>"); |
| + var line = frame.line == null ? 0 : frame.line; |
| + var column = frame.column == null ? 0 : frame.column; |
| + return "$number$member (${frame.uri}:$line:$column)\n"; |
| + }).join(); |
| + } |
| +} |