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

Unified Diff: sdk/lib/_internal/pub/lib/src/barback/load_transformers.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/barback/load_transformers.dart
diff --git a/sdk/lib/_internal/pub/lib/src/barback/load_transformers.dart b/sdk/lib/_internal/pub/lib/src/barback/load_transformers.dart
index 7c4e2a1f5f64824f361677fc7d71eedf22863d79..c92791b6c67d20908336b8b280f449dde1c044f2 100644
--- a/sdk/lib/_internal/pub/lib/src/barback/load_transformers.dart
+++ b/sdk/lib/_internal/pub/lib/src/barback/load_transformers.dart
@@ -12,6 +12,7 @@ import 'package:barback/barback.dart';
// TODO(nweiz): don't import from "src" once issue 14966 is fixed.
import 'package:barback/src/internal_asset.dart';
import 'package:source_maps/source_maps.dart';
+import 'package:stack_trace/stack_trace.dart';
import '../barback.dart';
import '../dart.dart' as dart;
@@ -542,7 +543,7 @@ Map _serializeId(AssetId id) => {'package': id.package, 'path': id.path};
/// throws an error, that will also be sent.
void _respond(wrappedMessage, callback(message)) {
var replyTo = wrappedMessage['replyTo'];
- new Future.sync(() => callback(wrappedMessage['message']))
+ syncFuture(() => callback(wrappedMessage['message']))
.then((result) => replyTo.send({'type': 'success', 'value': result}))
.catchError((error, stackTrace) {
// TODO(nweiz): at least MissingInputException should be preserved here.
@@ -565,10 +566,11 @@ Future _call(SendPort port, message) {
'replyTo': receivePort.sendPort
});
- return receivePort.first.then((response) {
+ return Chain.track(receivePort.first).then((response) {
if (response['type'] == 'success') return response['value'];
assert(response['type'] == 'error');
return new Future.error(
- new dart.CrossIsolateException.deserialize(response['error']));
+ new dart.CrossIsolateException.deserialize(response['error']),
+ new Chain.current());
});
}

Powered by Google App Engine
This is Rietveld 408576698