Index: pkg/dev_compiler/lib/src/compiler/compiler.dart |
diff --git a/pkg/dev_compiler/lib/src/compiler/compiler.dart b/pkg/dev_compiler/lib/src/compiler/compiler.dart |
index c5d93872076ac58ab428af14648da2d135262320..c08d26fb57c55ee41f8e5d68807faf27810ab75e 100644 |
--- a/pkg/dev_compiler/lib/src/compiler/compiler.dart |
+++ b/pkg/dev_compiler/lib/src/compiler/compiler.dart |
@@ -261,6 +261,10 @@ class CompilerOptions { |
/// source maps. |
final Map<String, String> bazelMapping; |
+ /// If specified, the path to write the summary file. |
+ /// Used when building the SDK. |
+ final String summaryOutPath; |
+ |
const CompilerOptions( |
{this.sourceMap: true, |
this.sourceMapComment: true, |
@@ -277,7 +281,8 @@ class CompilerOptions { |
this.nameTypeTests: true, |
this.hoistTypeTests: true, |
this.useAngular2Whitelist: false, |
- this.bazelMapping: const {}}); |
+ this.bazelMapping: const {}, |
+ this.summaryOutPath}); |
CompilerOptions.fromArguments(ArgResults args) |
: sourceMap = args['source-map'], |
@@ -295,7 +300,8 @@ class CompilerOptions { |
nameTypeTests = args['name-type-tests'], |
hoistTypeTests = args['hoist-type-tests'], |
useAngular2Whitelist = args['unsafe-angular2-whitelist'], |
- bazelMapping = _parseBazelMappings(args['bazel-mapping']); |
+ bazelMapping = _parseBazelMappings(args['bazel-mapping']), |
+ summaryOutPath = args['summary-out']; |
static void addArguments(ArgParser parser) { |
parser |
@@ -349,7 +355,9 @@ class CompilerOptions { |
'to/library.dart as the path for library.dart in source maps.', |
allowMultiple: true, |
splitCommas: false, |
- hide: true); |
+ hide: true) |
+ ..addOption('summary-out', |
+ help: 'location to write the summary file', hide: true); |
} |
static Map<String, String> _parseBazelMappings(Iterable argument) { |
@@ -427,8 +435,8 @@ class JSModuleFile { |
// |
// TODO(jmesserly): this should match our old logic, but I'm not sure we are |
// correctly handling the pointer from the .js file to the .map file. |
- JSModuleCode getCode( |
- ModuleFormat format, bool singleOutFile, String jsUrl, String mapUrl) { |
+ JSModuleCode getCode(ModuleFormat format, String jsUrl, String mapUrl, |
+ {bool singleOutFile: false}) { |
var opts = new JS.JavaScriptPrintingOptions( |
emitTypes: options.closure, |
allowKeywordsInProperties: true, |
@@ -443,7 +451,8 @@ class JSModuleFile { |
printer = new JS.SimpleJavaScriptPrintingContext(); |
} |
- var tree = transformModuleFormat(format, singleOutFile, moduleTree); |
+ var tree = |
+ transformModuleFormat(format, moduleTree, singleOutFile: singleOutFile); |
tree.accept( |
new JS.Printer(opts, printer, localNamer: new JS.TemporaryNamer(tree))); |
@@ -477,9 +486,10 @@ class JSModuleFile { |
/// |
/// If [mapPath] is not supplied but [options.sourceMap] is set, mapPath |
/// will default to [jsPath].map. |
- void writeCodeSync(ModuleFormat format, bool singleOutFile, String jsPath) { |
+ void writeCodeSync(ModuleFormat format, String jsPath, |
+ {bool singleOutFile: false}) { |
String mapPath = jsPath + '.map'; |
- var code = getCode(format, singleOutFile, jsPath, mapPath); |
+ var code = getCode(format, jsPath, mapPath, singleOutFile: singleOutFile); |
var c = code.code; |
if (singleOutFile) { |
// In singleOutFile mode we wrap each module in an eval statement to |