Index: sdk/lib/_internal/pub/lib/src/barback/dart2js_transformer.dart |
diff --git a/sdk/lib/_internal/pub/lib/src/barback/dart2js_transformer.dart b/sdk/lib/_internal/pub/lib/src/barback/dart2js_transformer.dart |
index 176d4908d15f398fa0a80618d5b1ba486f967482..8e000571b53ab47e6ecbce27b9b2e5ed55293fb4 100644 |
--- a/sdk/lib/_internal/pub/lib/src/barback/dart2js_transformer.dart |
+++ b/sdk/lib/_internal/pub/lib/src/barback/dart2js_transformer.dart |
@@ -93,7 +93,8 @@ class Dart2JSTransformer extends Transformer implements LazyTransformer { |
return null; |
} |
- var provider = new _BarbackCompilerProvider(_environment, transform); |
+ var provider = new _BarbackCompilerProvider(_environment, transform, |
+ generateSourceMaps: _settings.mode != BarbackMode.RELEASE); |
nweiz
2014/03/11 20:10:30
It might be nice to add a "sourceMaps" configurati
Bob Nystrom
2014/03/11 20:43:31
I'm a little worried that we have too many flags r
|
// Create a "path" to the entrypoint script. The entrypoint may not |
// actually be on disk, but this gives dart2js a root to resolve |
@@ -122,7 +123,9 @@ class Dart2JSTransformer extends Transformer implements LazyTransformer { |
suppressHints: _configBool('suppressHints'), |
suppressPackageWarnings: _configBool( |
'suppressPackageWarnings', defaultsTo: true), |
- terse: _configBool('terse'))).then((_) { |
+ terse: _configBool('terse'), |
+ includeSourceMapUrls: _settings.mode != BarbackMode.RELEASE)) |
+ .then((_) { |
stopwatch.stop(); |
transform.logger.info("Took ${stopwatch.elapsed} to compile $id."); |
}); |
@@ -211,6 +214,8 @@ class _BarbackCompilerProvider implements dart.CompilerProvider { |
/// errors. |
var _isAborting = false; |
+ final bool generateSourceMaps; |
+ |
compiler.Diagnostic _lastKind = null; |
static final int _FATAL = |
@@ -220,7 +225,8 @@ class _BarbackCompilerProvider implements dart.CompilerProvider { |
compiler.Diagnostic.INFO.ordinal | |
compiler.Diagnostic.VERBOSE_INFO.ordinal; |
- _BarbackCompilerProvider(this._environment, this._transform); |
+ _BarbackCompilerProvider(this._environment, this._transform, |
+ {this.generateSourceMaps: true}); |
/// A [CompilerInputProvider] for dart2js. |
Future<String> provideInput(Uri resourceUri) { |
@@ -244,6 +250,11 @@ class _BarbackCompilerProvider implements dart.CompilerProvider { |
// for it. |
assert(name == ""); |
+ // TODO(rnystrom): Do this more cleanly. See: #17403. |
+ if (!generateSourceMaps && extension.endsWith(".map")) { |
+ return new NullSink<String>(); |
+ } |
+ |
var primaryId = _transform.primaryInput.id; |
var id = new AssetId(primaryId.package, "${primaryId.path}.$extension"); |
@@ -356,3 +367,11 @@ class _BarbackCompilerProvider implements dart.CompilerProvider { |
return null; |
} |
} |
+ |
+/// An [EventSink] that discards all data. Provided to dart2js when we don't |
+/// want an actual output. |
+class NullSink<T> implements EventSink<T> { |
+ void add(T event) {} |
+ void addError(errorEvent, [StackTrace stackTrace]) {} |
+ void close() {} |
+} |