Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import 'dart:collection' show HashSet; | 5 import 'dart:collection' show HashSet; |
| 6 import 'package:args/args.dart' show ArgParser, ArgResults; | 6 import 'package:args/args.dart' show ArgParser, ArgResults; |
| 7 import 'package:analyzer/analyzer.dart' | 7 import 'package:analyzer/analyzer.dart' |
| 8 show | 8 show |
| 9 AnalysisError, | 9 AnalysisError, |
| 10 CompilationUnit, | 10 CompilationUnit, |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 143 | 143 |
| 144 /// If [sourceMap] is emitted, this will emit a `sourceMappingUrl` comment | 144 /// If [sourceMap] is emitted, this will emit a `sourceMappingUrl` comment |
| 145 /// into the output JavaScript module. | 145 /// into the output JavaScript module. |
| 146 final bool sourceMapComment; | 146 final bool sourceMapComment; |
| 147 | 147 |
| 148 /// Whether to emit a summary file containing API signatures. | 148 /// Whether to emit a summary file containing API signatures. |
| 149 /// | 149 /// |
| 150 /// This is required for a modular build process. | 150 /// This is required for a modular build process. |
| 151 final bool summarizeApi; | 151 final bool summarizeApi; |
| 152 | 152 |
| 153 /// Whether to preserve metdata only accessible via mirrors | |
| 154 final bool preserveAnnotations; | |
| 155 | |
| 153 /// Whether to force compilation of code with static errors. | 156 /// Whether to force compilation of code with static errors. |
| 154 final bool unsafeForceCompile; | 157 final bool unsafeForceCompile; |
| 155 | 158 |
| 156 /// Whether to emit Closure Compiler-friendly code. | 159 /// Whether to emit Closure Compiler-friendly code. |
| 157 final bool closure; | 160 final bool closure; |
| 158 | 161 |
| 159 /// Enable ES6 destructuring of named parameters. Off by default. | 162 /// Enable ES6 destructuring of named parameters. Off by default. |
| 160 /// | 163 /// |
| 161 /// Older V8 versions do not accept default values with destructuring in | 164 /// Older V8 versions do not accept default values with destructuring in |
| 162 /// arrow functions yet (e.g. `({a} = {}) => 1`) but happily accepts them | 165 /// arrow functions yet (e.g. `({a} = {}) => 1`) but happily accepts them |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 174 | 177 |
| 175 /// Which module format to support. | 178 /// Which module format to support. |
| 176 /// Currently 'es6' and 'legacy' are supported. | 179 /// Currently 'es6' and 'legacy' are supported. |
| 177 final ModuleFormat moduleFormat; | 180 final ModuleFormat moduleFormat; |
| 178 | 181 |
| 179 const CompilerOptions( | 182 const CompilerOptions( |
| 180 {this.sourceMap: true, | 183 {this.sourceMap: true, |
| 181 this.sourceMapComment: true, | 184 this.sourceMapComment: true, |
| 182 this.summarizeApi: true, | 185 this.summarizeApi: true, |
| 183 this.unsafeForceCompile: false, | 186 this.unsafeForceCompile: false, |
| 187 this.preserveAnnotations: false, | |
| 184 this.closure: false, | 188 this.closure: false, |
| 185 this.destructureNamedParams: false, | 189 this.destructureNamedParams: false, |
| 186 this.moduleFormat: ModuleFormat.legacy}); | 190 this.moduleFormat: ModuleFormat.legacy}); |
| 187 | 191 |
| 188 CompilerOptions.fromArguments(ArgResults args) | 192 CompilerOptions.fromArguments(ArgResults args) |
| 189 : sourceMap = args['source-map'], | 193 : sourceMap = args['source-map'], |
| 190 sourceMapComment = args['source-map-comment'], | 194 sourceMapComment = args['source-map-comment'], |
| 191 summarizeApi = args['summarize'], | 195 summarizeApi = args['summarize'], |
| 192 unsafeForceCompile = args['unsafe-force-compile'], | 196 unsafeForceCompile = args['unsafe-force-compile'], |
| 197 preserveAnnotations = args['preserve-annotations'], | |
| 193 closure = args['closure-experimental'], | 198 closure = args['closure-experimental'], |
| 194 destructureNamedParams = args['destructure-named-params'], | 199 destructureNamedParams = args['destructure-named-params'], |
| 195 moduleFormat = parseModuleFormat(args['modules']); | 200 moduleFormat = parseModuleFormat(args['modules']); |
| 196 | 201 |
| 197 static ArgParser addArguments(ArgParser parser) => parser | 202 static ArgParser addArguments(ArgParser parser) => parser |
| 198 ..addFlag('summarize', help: 'emit an API summary file', defaultsTo: true) | 203 ..addFlag('summarize', help: 'emit an API summary file', defaultsTo: true) |
| 199 ..addFlag('source-map', help: 'emit source mapping', defaultsTo: true) | 204 ..addFlag('source-map', help: 'emit source mapping', defaultsTo: true) |
| 200 ..addFlag('source-map-comment', | 205 ..addFlag('source-map-comment', |
| 201 help: 'adds a sourceMappingURL comment to the end of the JS,\n' | 206 help: 'adds a sourceMappingURL comment to the end of the JS,\n' |
| 202 'disable if using X-SourceMap header', | 207 'disable if using X-SourceMap header', |
| 203 defaultsTo: true) | 208 defaultsTo: true) |
| 204 ..addOption('modules', | 209 ..addOption('modules', |
| 205 help: 'module pattern to emit', | 210 help: 'module pattern to emit', |
| 206 allowed: ['es6', 'legacy', 'node'], | 211 allowed: ['es6', 'legacy', 'node'], |
| 207 allowedHelp: { | 212 allowedHelp: { |
| 208 'es6': 'es6 modules', | 213 'es6': 'es6 modules', |
| 209 'legacy': 'a custom format used by dartdevc, similar to AMD', | 214 'legacy': 'a custom format used by dartdevc, similar to AMD', |
| 210 'node': 'node.js modules (https://nodejs.org/api/modules.html)' | 215 'node': 'node.js modules (https://nodejs.org/api/modules.html)' |
| 211 }, | 216 }, |
| 212 defaultsTo: 'legacy') | 217 defaultsTo: 'legacy') |
| 218 ..addFlag('preserve-annotations', | |
|
Jennifer Messerly
2016/05/17 21:39:42
maybe "emit-metadata" -- slightly shorter?
we als
| |
| 219 help: 'emit metadata annotations queriable via mirrors', | |
| 220 defaultsTo: false) | |
| 213 ..addFlag('closure-experimental', | 221 ..addFlag('closure-experimental', |
| 214 help: 'emit Closure Compiler-friendly code (experimental)', | 222 help: 'emit Closure Compiler-friendly code (experimental)', |
| 215 defaultsTo: false) | 223 defaultsTo: false) |
| 216 ..addFlag('destructure-named-params', | 224 ..addFlag('destructure-named-params', |
| 217 help: 'Destructure named parameters', defaultsTo: false) | 225 help: 'Destructure named parameters', defaultsTo: false) |
| 218 ..addFlag('unsafe-force-compile', | 226 ..addFlag('unsafe-force-compile', |
| 219 help: 'Compile code even if it has errors. ಠ_ಠ\n' | 227 help: 'Compile code even if it has errors. ಠ_ಠ\n' |
| 220 'This has undefined behavior!', | 228 'This has undefined behavior!', |
| 221 defaultsTo: false); | 229 defaultsTo: false); |
| 222 } | 230 } |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 300 } | 308 } |
| 301 } | 309 } |
| 302 | 310 |
| 303 /// (Public for tests) the error code used when a part is missing. | 311 /// (Public for tests) the error code used when a part is missing. |
| 304 final missingPartErrorCode = const CompileTimeErrorCode( | 312 final missingPartErrorCode = const CompileTimeErrorCode( |
| 305 'MISSING_PART', 'The part was not supplied as an input to the compiler.'); | 313 'MISSING_PART', 'The part was not supplied as an input to the compiler.'); |
| 306 | 314 |
| 307 /// (Public for tests) the error code used when a part is unused. | 315 /// (Public for tests) the error code used when a part is unused. |
| 308 final unusedPartWarningCode = const StaticWarningCode( | 316 final unusedPartWarningCode = const StaticWarningCode( |
| 309 'UNUSED_PART', 'The part was not used by any libraries being compiled.'); | 317 'UNUSED_PART', 'The part was not used by any libraries being compiled.'); |
| OLD | NEW |