Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Unified Diff: pkg/dev_compiler/lib/src/compiler/module_builder.dart

Issue 2474523003: fix #27607, add dev_compiler summary to the SDK and move JS files (Closed)
Patch Set: fix typo Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/dev_compiler/lib/src/compiler/compiler.dart ('k') | pkg/dev_compiler/lib/src/js_ast/js_ast.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/dev_compiler/lib/src/compiler/module_builder.dart
diff --git a/pkg/dev_compiler/lib/src/compiler/module_builder.dart b/pkg/dev_compiler/lib/src/compiler/module_builder.dart
index 828a0fa2a81927f68323e7802b168a31e19842ad..4079c4122967afbdf17cfa069d9cc363c3ceba22 100644
--- a/pkg/dev_compiler/lib/src/compiler/module_builder.dart
+++ b/pkg/dev_compiler/lib/src/compiler/module_builder.dart
@@ -65,9 +65,10 @@ void addModuleFormatOptions(ArgParser argParser, {bool allowMultiple: false}) {
allowMultiple: allowMultiple,
defaultsTo: 'amd')
..addFlag('single-out-file',
- help: 'emit output so that libraries can be concatenated together into '
- 'a single file. Only compatible with legacy and amd module formats.',
- defaultsTo: false);
+ help: 'emit modules that can be concatenated into one file.\n'
+ 'Only compatible with legacy and amd module formats.',
+ defaultsTo: false,
+ hide: true);
}
/// Transforms an ES6 [module] into a given module [format].
@@ -79,16 +80,20 @@ void addModuleFormatOptions(ArgParser argParser, {bool allowMultiple: false}) {
/// that affects the top-level module items, especially [ImportDeclaration]s and
/// [ExportDeclaration]s.
Program transformModuleFormat(
- ModuleFormat format, bool singleOutFile, Program module) {
+ ModuleFormat format, Program module, {bool singleOutFile: false}) {
switch (format) {
case ModuleFormat.legacy:
- return new LegacyModuleBuilder(singleOutFile).build(module);
+ // Legacy format always generates output compatible with single file mode.
+ return new LegacyModuleBuilder().build(module);
case ModuleFormat.common:
- return new CommonJSModuleBuilder(singleOutFile).build(module);
+ assert(!singleOutFile);
+ return new CommonJSModuleBuilder().build(module);
case ModuleFormat.amd:
- return new AmdModuleBuilder(singleOutFile).build(module);
+ // TODO(jmesserly): encode singleOutFile as a module format?
+ // Since it's irrelevant except for AMD.
+ return new AmdModuleBuilder(singleOutFile: singleOutFile).build(module);
case ModuleFormat.es6:
- assert(singleOutFile == false);
+ assert(!singleOutFile);
return module;
}
return null; // unreachable. suppresses a bogus analyzer message
@@ -137,9 +142,6 @@ abstract class _ModuleBuilder {
/// Generates modules for with our legacy `dart_library.js` loading mechanism.
// TODO(jmesserly): remove this and replace with something that interoperates.
class LegacyModuleBuilder extends _ModuleBuilder {
- /// The legacy module format always generates output compatible with a single
- /// file mode.
- LegacyModuleBuilder(bool singleOutFile);
Program build(Program module) {
// Collect imports/exports/statements.
@@ -198,14 +200,6 @@ class LegacyModuleBuilder extends _ModuleBuilder {
/// Generates CommonJS modules (used by Node.js).
class CommonJSModuleBuilder extends _ModuleBuilder {
- final bool singleOutFile;
-
- CommonJSModuleBuilder(this.singleOutFile) {
- // singleOutFile mode is not currently supported by the CommonJS module
- // builder.
- assert(singleOutFile == false);
- }
-
Program build(Program module) {
var importStatements = <Statement>[];
@@ -257,7 +251,7 @@ class CommonJSModuleBuilder extends _ModuleBuilder {
class AmdModuleBuilder extends _ModuleBuilder {
final bool singleOutFile;
- AmdModuleBuilder(this.singleOutFile);
+ AmdModuleBuilder({this.singleOutFile: false});
Program build(Program module) {
var importStatements = <Statement>[];
« no previous file with comments | « pkg/dev_compiler/lib/src/compiler/compiler.dart ('k') | pkg/dev_compiler/lib/src/js_ast/js_ast.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698