| Index: pkg/smoke/lib/src/default_transformer.dart | 
| diff --git a/pkg/smoke/lib/src/default_transformer.dart b/pkg/smoke/lib/src/default_transformer.dart | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..742e48747ad39c471bba65666414f8396be098df | 
| --- /dev/null | 
| +++ b/pkg/smoke/lib/src/default_transformer.dart | 
| @@ -0,0 +1,36 @@ | 
| +// 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. | 
| + | 
| +/// Transformer that replaces the default mirror-based implementation of smoke, | 
| +/// so that during deploy smoke doesn't include any dependency on dart:mirrors. | 
| +library smoke.src.default_transformer; | 
| + | 
| +import 'dart:async'; | 
| +import 'package:barback/barback.dart'; | 
| + | 
| +/// Replaces the default mirror-based implementation of smoke in | 
| +/// `pacakge:smoke/implementation.dart`, so that during deploy smoke doesn't | 
| +/// include any dependency on dart:mirrors. | 
| +// TODO(sigmund): include tests that run this transformation automatically. | 
| +class DefaultTransformer extends Transformer { | 
| +  DefaultTransformer.asPlugin(); | 
| + | 
| +  /// Only apply to `lib/src/implementation.dart`. | 
| +  Future<bool> isPrimary(Asset input) => new Future.value( | 
| +      input.id.package == 'smoke' && | 
| +      input.id.path == 'lib/src/implementation.dart'); | 
| + | 
| +  Future apply(Transform transform) { | 
| +    var id = transform.primaryInput.id; | 
| +    return transform.primaryInput.readAsString().then((code) { | 
| +      // Note: this rewrite is highly-coupled with how implementation.dart is | 
| +      // written. Make sure both are updated in sync. | 
| +      transform.addOutput(new Asset.fromString(id, code | 
| +          .replaceAll(new RegExp('new Reflective[^;]*;'), | 
| +              'throwNotConfiguredError();') | 
| +          .replaceAll("import 'package:smoke/mirrors.dart'';", ''))); | 
| +    }); | 
| +  } | 
| +} | 
| + | 
|  |