[dartdevc] Allow multiple summaries and experiments in ddb tool
This allows us to test modular compiles from the cli:
> ddb -k foo.dart
> ddb -k -s foo.dill bar.dart
Change-Id: Ib88e7ff1291a7db5ecd1774b9e594121a303f2d5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/102002
Auto-Submit: Vijay Menon <vsm@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
diff --git a/pkg/dev_compiler/tool/ddb b/pkg/dev_compiler/tool/ddb
index fa74444..0b3049e 100755
--- a/pkg/dev_compiler/tool/ddb
+++ b/pkg/dev_compiler/tool/ddb
@@ -33,6 +33,10 @@
..addFlag('help', abbr: 'h', help: 'Display this message.')
..addFlag('kernel',
abbr: 'k', help: 'Compile with the new kernel-based front end.')
+ ..addMultiOption('summary',
+ abbr: 's',
+ help: 'summary file(s) of imported libraries, optionally\n'
+ 'with module import path: -s path.sum=js/import/path')
..addFlag('debug',
abbr: 'd',
help: 'Use current source instead of built SDK.',
@@ -46,8 +50,8 @@
abbr: 'p',
help: 'Run with the corresponding chrome/V8 debugging port open.',
defaultsTo: '9222')
- ..addOption('enable-experiment',
- help: 'Run with specified experiments enabled.', defaultsTo: '')
+ ..addMultiOption('enable-experiment',
+ help: 'Run with specified experiments enabled.')
..addOption('binary', abbr: 'b', help: 'Runtime binary path.');
var options = parser.parse(args);
@@ -69,7 +73,8 @@
var debug = options['debug'] as bool;
var kernel = options['kernel'] as bool;
var binary = options['binary'] as String;
- var experiment = options['enable-experiment'] as String;
+ var experiments = options['enable-experiment'] as List;
+ var summaries = options['summary'] as List;
var port = int.parse(options['port'] as String);
var dartBinary = Platform.resolvedExecutable;
@@ -147,8 +152,8 @@
// TODO(nshahan) Cleanup when we settle on using or removing library-root.
if (!kernel)
'--library-root=$libRoot',
- if (experiment.isNotEmpty)
- '--enable-experiment=$experiment',
+ for (var summary in summaries) '--summary=$summary',
+ for (var experiment in experiments) '--enable-experiment=$experiment',
'-o',
'$libRoot/$basename.js',
entry