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

Unified Diff: sdk/lib/_internal/pub/lib/src/dart.dart

Issue 113453005: Add stack chain support to pub. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years 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 side-by-side diff with in-line comments
Download patch
Index: sdk/lib/_internal/pub/lib/src/dart.dart
diff --git a/sdk/lib/_internal/pub/lib/src/dart.dart b/sdk/lib/_internal/pub/lib/src/dart.dart
index 03bd0451c6dc46b89a47f0bfcaf855cc28d081b8..68332829bfee4726fb9f0ef021069f94b0fb1b16 100644
--- a/sdk/lib/_internal/pub/lib/src/dart.dart
+++ b/sdk/lib/_internal/pub/lib/src/dart.dart
@@ -12,8 +12,6 @@ import 'package:analyzer/analyzer.dart';
import 'package:path/path.dart' as path;
import 'package:stack_trace/stack_trace.dart';
import '../../../compiler/compiler.dart' as compiler;
-import '../../../compiler/implementation/source_file_provider.dart'
- show FormattingDiagnosticHandler, CompilerSourceFileProvider;
import '../../../compiler/implementation/filenames.dart'
show appendSlash;
@@ -53,7 +51,7 @@ abstract class CompilerProvider {
/// if [packageRoot] is passed that will be used instead.
Future compile(String entrypoint, CompilerProvider provider, {
String packageRoot, bool toDart: false, bool minify: true}) {
- return new Future.sync(() {
+ return syncFuture(() {
var options = <String>['--categories=Client,Server'];
if (toDart) options.add('--output-type=dart');
if (minify) options.add('--minify');
@@ -62,14 +60,14 @@ Future compile(String entrypoint, CompilerProvider provider, {
packageRoot = path.join(path.dirname(entrypoint), 'packages');
}
- return compiler.compile(
+ return Chain.track(compiler.compile(
path.toUri(entrypoint),
path.toUri(appendSlash(_libPath)),
path.toUri(appendSlash(packageRoot)),
provider.provideInput,
provider.handleDiagnostic,
options,
- provider.provideOutput);
+ provider.provideOutput));
});
}
@@ -106,15 +104,16 @@ Future runInIsolate(String code, message) {
var dartPath = path.join(dir, 'runInIsolate.dart');
writeTextFile(dartPath, code, dontLogContents: true);
var port = new ReceivePort();
- return Isolate.spawn(_isolateBuffer, {
+ return Chain.track(Isolate.spawn(_isolateBuffer, {
'replyTo': port.sendPort,
'uri': path.toUri(dartPath).toString(),
'message': message
- }).then((_) => port.first).then((response) {
+ })).then((_) => port.first).then((response) {
if (response['type'] == 'success') return null;
assert(response['type'] == 'error');
return new Future.error(
- new CrossIsolateException.deserialize(response['error']));
+ new CrossIsolateException.deserialize(response['error']),
+ new Chain.current());
});
});
}
@@ -127,7 +126,8 @@ Future runInIsolate(String code, message) {
/// Adding an additional isolate in the middle works around this.
void _isolateBuffer(message) {
var replyTo = message['replyTo'];
- Isolate.spawnUri(Uri.parse(message['uri']), [], message['message'])
+ Chain.track(Isolate.spawnUri(
+ Uri.parse(message['uri']), [], message['message']))
.then((_) => replyTo.send({'type': 'success'}))
.catchError((e, stack) {
replyTo.send({

Powered by Google App Engine
This is Rietveld 408576698