Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(77)

Side by Side Diff: lib/src/frame.dart

Issue 1062123003: Support JavaScriptCore stack traces. (Closed) Base URL: git@github.com:dart-lang/stack_trace@master
Patch Set: Code review changes Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « CHANGELOG.md ('k') | lib/src/trace.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library frame; 5 library frame;
6 6
7 7
8 import 'package:path/path.dart' as path; 8 import 'package:path/path.dart' as path;
9 9
10 import 'trace.dart'; 10 import 'trace.dart';
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 return parseLocation(match[2], 188 return parseLocation(match[2],
189 match[1].replaceAll("<anonymous>", "<fn>") 189 match[1].replaceAll("<anonymous>", "<fn>")
190 .replaceAll("Anonymous function", "<fn>")); 190 .replaceAll("Anonymous function", "<fn>"));
191 } else { 191 } else {
192 // The second form looks like " at LOCATION", and is used for anonymous 192 // The second form looks like " at LOCATION", and is used for anonymous
193 // functions. 193 // functions.
194 return parseLocation(match[3], "<fn>"); 194 return parseLocation(match[3], "<fn>");
195 } 195 }
196 } 196 }
197 197
198 /// Parses a string representation of a JavaScriptCore stack trace.
199 factory Frame.parseJSCore(String frame) => new Frame.parseV8(frame);
200
198 /// Parses a string representation of an IE stack frame. 201 /// Parses a string representation of an IE stack frame.
199 /// 202 ///
200 /// IE10+ frames look just like V8 frames. Prior to IE10, stack traces can't 203 /// IE10+ frames look just like V8 frames. Prior to IE10, stack traces can't
201 /// be retrieved. 204 /// be retrieved.
202 factory Frame.parseIE(String frame) => new Frame.parseV8(frame); 205 factory Frame.parseIE(String frame) => new Frame.parseV8(frame);
203 206
204 /// Parses a string representation of a Firefox stack frame. 207 /// Parses a string representation of a Firefox stack frame.
205 factory Frame.parseFirefox(String frame) { 208 factory Frame.parseFirefox(String frame) {
206 var match = _firefoxSafariFrame.firstMatch(frame); 209 var match = _firefoxSafariFrame.firstMatch(frame);
207 if (match == null) { 210 if (match == null) {
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 // their stack frames. However, if we do get a relative path, we should 287 // their stack frames. However, if we do get a relative path, we should
285 // handle it gracefully. 288 // handle it gracefully.
286 if (uriOrPath.contains('\\')) return path.windows.toUri(uriOrPath); 289 if (uriOrPath.contains('\\')) return path.windows.toUri(uriOrPath);
287 return Uri.parse(uriOrPath); 290 return Uri.parse(uriOrPath);
288 } 291 }
289 292
290 Frame(this.uri, this.line, this.column, this.member); 293 Frame(this.uri, this.line, this.column, this.member);
291 294
292 String toString() => '$location in $member'; 295 String toString() => '$location in $member';
293 } 296 }
OLDNEW
« no previous file with comments | « CHANGELOG.md ('k') | lib/src/trace.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698