Index: sdk/lib/_internal/pub/asset/dart/transformer_isolate.dart |
diff --git a/sdk/lib/_internal/pub/asset/dart/transformer_isolate.dart b/sdk/lib/_internal/pub/asset/dart/transformer_isolate.dart |
deleted file mode 100644 |
index 50bb97baac869e1a1ca8666246a6d312158efbed..0000000000000000000000000000000000000000 |
--- a/sdk/lib/_internal/pub/asset/dart/transformer_isolate.dart |
+++ /dev/null |
@@ -1,112 +0,0 @@ |
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-library pub.asset.transformer_isolate; |
- |
-import 'dart:convert'; |
-import 'dart:isolate'; |
-import 'dart:mirrors'; |
- |
-import 'package:barback/barback.dart'; |
- |
-import 'serialize.dart'; |
- |
-/// The mirror system. |
-/// |
-/// Cached to avoid re-instantiating each time a transformer is initialized. |
-final _mirrors = currentMirrorSystem(); |
- |
-/// Sets up the initial communication with the host isolate. |
-void loadTransformers(SendPort replyTo) { |
- var port = new ReceivePort(); |
- replyTo.send(port.sendPort); |
- port.listen((wrappedMessage) { |
- // TODO(nweiz): When issue 19228 is fixed, spin up a separate isolate for |
- // libraries loaded beyond the first so they can run in parallel. |
- respond(wrappedMessage, (message) { |
- var configuration = JSON.decode(message['configuration']); |
- var mode = new BarbackMode(message['mode']); |
- return _initialize(message['library'], configuration, mode). |
- map(serializeTransformerLike).toList(); |
- }); |
- }); |
-} |
- |
-/// Loads all the transformers and groups defined in [uri]. |
-/// |
-/// Loads the library, finds any [Transformer] or [TransformerGroup] subclasses |
-/// in it, instantiates them with [configuration] and [mode], and returns them. |
-List _initialize(String uri, Map configuration, BarbackMode mode) { |
- var transformerClass = reflectClass(Transformer); |
- var aggregateClass = _aggregateTransformerClass; |
- var groupClass = reflectClass(TransformerGroup); |
- |
- var seen = new Set(); |
- var transformers = []; |
- |
- loadFromLibrary(library) { |
- if (seen.contains(library)) return; |
- seen.add(library); |
- |
- // Load transformers from libraries exported by [library]. |
- for (var dependency in library.libraryDependencies) { |
- if (!dependency.isExport) continue; |
- loadFromLibrary(dependency.targetLibrary); |
- } |
- |
- // TODO(nweiz): if no valid transformers are found, throw an error message |
- // describing candidates and why they were rejected. |
- transformers.addAll(library.declarations.values.map((declaration) { |
- if (declaration is! ClassMirror) return null; |
- var classMirror = declaration; |
- if (classMirror.isPrivate) return null; |
- if (classMirror.isAbstract) return null; |
- if (!classMirror.isSubtypeOf(transformerClass) && |
- !classMirror.isSubtypeOf(groupClass) && |
- (aggregateClass == null || |
- !classMirror.isSubtypeOf(aggregateClass))) { |
- return null; |
- } |
- |
- var constructor = _getConstructor(classMirror, 'asPlugin'); |
- if (constructor == null) return null; |
- if (constructor.parameters.isEmpty) { |
- if (configuration.isNotEmpty) return null; |
- return classMirror.newInstance(const Symbol('asPlugin'), []).reflectee; |
- } |
- if (constructor.parameters.length != 1) return null; |
- |
- return classMirror.newInstance(const Symbol('asPlugin'), |
- [new BarbackSettings(configuration, mode)]).reflectee; |
- }).where((classMirror) => classMirror != null)); |
- } |
- |
- var library = _mirrors.libraries[Uri.parse(uri)]; |
- |
- // This should only happen if something's wrong with the logic in pub itself. |
- // If it were user error, the entire isolate would fail to load. |
- if (library == null) throw "Couldn't find library at $uri."; |
- |
- loadFromLibrary(library); |
- return transformers; |
-} |
- |
-// TODO(nweiz): clean this up when issue 13248 is fixed. |
-MethodMirror _getConstructor(ClassMirror classMirror, String constructor) { |
- var name = new Symbol("${MirrorSystem.getName(classMirror.simpleName)}" |
- ".$constructor"); |
- var candidate = classMirror.declarations[name]; |
- 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 |
-ClassMirror get _aggregateTransformerClass => |
- reflectClass(AggregateTransformer); |
-//# else |
-//> ClassMirror get _aggregateTransformerClass => null; |
-//# end |