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

Side by Side Diff: pkg/compiler/lib/src/helpers/trace.dart

Issue 2865693002: Create closed world for hello world using .dill file (Closed)
Patch Set: Update and fix. Created 3 years, 7 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
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 import '../common.dart'; 5 import '../common.dart';
6 import '../util/util.dart'; 6 import '../util/util.dart';
7 7
8 /// Function signature for [trace]. 8 /// Function signature for [trace].
9 typedef void Trace(String message, 9 typedef void Trace(String message,
10 {bool condition(String stackTrace), int limit, bool throwOnPrint}); 10 {bool condition(String stackTrace), int limit, bool throwOnPrint});
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 // expression. The last case is used for async bodies. 130 // expression. The last case is used for async bodies.
131 for (String line in stackTrace.split('\n')) { 131 for (String line in stackTrace.split('\n')) {
132 try { 132 try {
133 index++; 133 index++;
134 if (rangeStart != null && index < rangeStart) continue; 134 if (rangeStart != null && index < rangeStart) continue;
135 if (rangeEnd != null && index > rangeEnd) break; 135 if (rangeEnd != null && index > rangeEnd) break;
136 if (line.isEmpty) continue; 136 if (line.isEmpty) continue;
137 137
138 // Strip index. 138 // Strip index.
139 line = line.replaceFirst(indexPattern, ''); 139 line = line.replaceFirst(indexPattern, '');
140 if (line == '<asynchronous suspension>') {
141 lines.add(new StackTraceLine(index, '', '', '', line));
142 continue;
143 }
140 144
141 int leftParenPos = line.indexOf('('); 145 int leftParenPos = line.indexOf('(');
142 int rightParenPos = line.indexOf(')', leftParenPos); 146 int rightParenPos = line.indexOf(')', leftParenPos);
143 int lastColon = line.lastIndexOf(':', rightParenPos); 147 int lastColon = line.lastIndexOf(':', rightParenPos);
144 int nextToLastColon = line.lastIndexOf(':', lastColon - 1); 148 int nextToLastColon = line.lastIndexOf(':', lastColon - 1);
145 149
146 String lineNo; 150 String lineNo;
147 String columnNo; 151 String columnNo;
148 if (nextToLastColon != -1) { 152 if (nextToLastColon != -1) {
149 lineNo = line.substring(nextToLastColon + 1, lastColon); 153 lineNo = line.substring(nextToLastColon + 1, lastColon);
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 } 342 }
339 for (int index = text.length; index < intendedLength; index++) { 343 for (int index = text.length; index < intendedLength; index++) {
340 int dotsIndex = index % dotsLength; 344 int dotsIndex = index % dotsLength;
341 sb.write(dots.substring(dotsIndex, dotsIndex + 1)); 345 sb.write(dots.substring(dotsIndex, dotsIndex + 1));
342 } 346 }
343 if (padLeft) { 347 if (padLeft) {
344 sb.write(text); 348 sb.write(text);
345 } 349 }
346 return sb.toString(); 350 return sb.toString();
347 } 351 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698