Code review changes for r31644. R=rnystrom@google.com BUG= Review URL: https://codereview.chromium.org//132223003 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart/pkg/stack_trace@31679 260f80e4-7a28-3924-810f-c04153c831b5
diff --git a/pkgs/stack_trace/lib/src/frame.dart b/pkgs/stack_trace/lib/src/frame.dart index 8544c78..7b9c7b1 100644 --- a/pkgs/stack_trace/lib/src/frame.dart +++ b/pkgs/stack_trace/lib/src/frame.dart
@@ -11,14 +11,14 @@ // #1 Foo._bar (file:///home/nweiz/code/stuff.dart:42:21) final _vmFrame = new RegExp( - r'^#\d+\s+([^\s].*) \((.+?):(\d+)(?::(\d+))?\)$'); + r'^#\d+\s+(\S.*) \((.+?):(\d+)(?::(\d+))?\)$'); // at VW.call$0 (http://pub.dartlang.org/stuff.dart.js:560:28) // at VW.call$0 (eval as fn // (http://pub.dartlang.org/stuff.dart.js:560:28), efn:3:28) // at http://pub.dartlang.org/stuff.dart.js:560:28 final _v8Frame = new RegExp( - r'^\s*at (?:([^\s].*?)(?: \[as [^\]]+\])? \((.*)\)|(.*))$'); + r'^\s*at (?:(\S.*?)(?: \[as [^\]]+\])? \((.*)\)|(.*))$'); // http://pub.dartlang.org/stuff.dart.js:560:28 final _v8UrlLocation = new RegExp(r'^(.*):(\d+):(\d+)$'); @@ -28,7 +28,7 @@ // eval as function (eval as otherFunction // (http://pub.dartlang.org/stuff.dart.js:560:28)) final _v8EvalLocation = new RegExp( - r'^eval at (?:[^\s].*?) \((.*)\)(?:, .*?:\d+:\d+)?$'); + r'^eval at (?:\S.*?) \((.*)\)(?:, .*?:\d+:\d+)?$'); // foo$bar$0@http://pub.dartlang.org/stuff.dart.js:560:28 // http://pub.dartlang.org/stuff.dart.js:560:28 @@ -43,7 +43,7 @@ // foo/bar.dart 10:11 in Foo._bar // http://dartlang.org/foo/bar.dart in Foo._bar final _friendlyFrame = new RegExp( - r'^([^\s]+)(?: (\d+)(?::(\d+))?)?\s+([^\d][^\s]*)$'); + r'^(\S+)(?: (\d+)(?::(\d+))?)?\s+([^\d]\S*)$'); final _initialDot = new RegExp(r"^\."); @@ -154,8 +154,10 @@ // nesting for each eval performed on that line. parseLocation(location, member) { var evalMatch = _v8EvalLocation.firstMatch(location); - if (evalMatch != null) return parseLocation(evalMatch[1], member); - + while (evalMatch != null) { + location = evalMatch[1]; + evalMatch = _v8EvalLocation.firstMatch(location); + } var urlMatch = _v8UrlLocation.firstMatch(location); if (urlMatch == null) {