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

Unified Diff: dart/sdk/lib/_internal/pub/asset/dart/transformer_isolate.dart

Issue 310233002: Expose aggregate transformers in pub. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: code review Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: dart/sdk/lib/_internal/pub/asset/dart/transformer_isolate.dart
diff --git a/dart/sdk/lib/_internal/pub/asset/dart/transformer_isolate.dart b/dart/sdk/lib/_internal/pub/asset/dart/transformer_isolate.dart
index 3b668417ef5321553086efd41ce71ef461d7c1d3..003c5f0f212e64ebdcbbc340384b84f3ddacfc7e 100644
--- a/dart/sdk/lib/_internal/pub/asset/dart/transformer_isolate.dart
+++ b/dart/sdk/lib/_internal/pub/asset/dart/transformer_isolate.dart
@@ -22,7 +22,7 @@ void loadTransformers(SendPort replyTo) {
var configuration = JSON.decode(message['configuration']);
var mode = new BarbackMode(message['mode']);
return _initialize(library, configuration, mode).
- map(serializeTransformerOrGroup).toList();
+ map(serializeTransformerLike).toList();
});
});
}
@@ -34,6 +34,7 @@ void loadTransformers(SendPort replyTo) {
List _initialize(Uri uri, Map configuration, BarbackMode mode) {
var mirrors = currentMirrorSystem();
var transformerClass = reflectClass(Transformer);
+ var aggregateClass = _aggregateTransformerClass;
var groupClass = reflectClass(TransformerGroup);
var seen = new Set();
@@ -57,7 +58,9 @@ List _initialize(Uri uri, Map configuration, BarbackMode mode) {
if (classMirror.isPrivate) return null;
if (classMirror.isAbstract) return null;
if (!classMirror.isSubtypeOf(transformerClass) &&
- !classMirror.isSubtypeOf(groupClass)) {
+ !classMirror.isSubtypeOf(groupClass) &&
+ (aggregateClass == null ||
+ !classMirror.isSubtypeOf(aggregateClass))) {
return null;
}
@@ -86,3 +89,13 @@ MethodMirror _getConstructor(ClassMirror classMirror, String constructor) {
if (candidate is MethodMirror && candidate.isConstructor) return candidate;
return null;
}
+
+// Older barbacks don't support [AggregateTransformer], and calling
+// [reflectClass] on an undefined class will throw an error, so we just define a
+// null getter for them.
+//# if barback >=0.14.1-dev
+ClassMirror get _aggregateTransformerClass =>
+ reflectClass(AggregateTransformer);
+//# else
+//> ClassMirror get _aggregateTransformerClass => null;
+//# end

Powered by Google App Engine
This is Rietveld 408576698