| 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:args/src/usage_exception.dart' show UsageException; | 7 import 'package:args/src/usage_exception.dart' show UsageException; |
| 8 import 'package:analyzer/analyzer.dart' | 8 import 'package:analyzer/analyzer.dart' |
| 9 show | 9 show |
| 10 AnalysisError, | 10 AnalysisError, |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 | 151 |
| 152 /// If [sourceMap] is emitted, this will emit a `sourceMappingUrl` comment | 152 /// If [sourceMap] is emitted, this will emit a `sourceMappingUrl` comment |
| 153 /// into the output JavaScript module. | 153 /// into the output JavaScript module. |
| 154 final bool sourceMapComment; | 154 final bool sourceMapComment; |
| 155 | 155 |
| 156 /// Whether to emit a summary file containing API signatures. | 156 /// Whether to emit a summary file containing API signatures. |
| 157 /// | 157 /// |
| 158 /// This is required for a modular build process. | 158 /// This is required for a modular build process. |
| 159 final bool summarizeApi; | 159 final bool summarizeApi; |
| 160 | 160 |
| 161 /// The file extension for summaries. |
| 162 final String summaryExtension; |
| 163 |
| 161 /// Whether to preserve metdata only accessible via mirrors | 164 /// Whether to preserve metdata only accessible via mirrors |
| 162 final bool emitMetadata; | 165 final bool emitMetadata; |
| 163 | 166 |
| 164 /// Whether to force compilation of code with static errors. | 167 /// Whether to force compilation of code with static errors. |
| 165 final bool unsafeForceCompile; | 168 final bool unsafeForceCompile; |
| 166 | 169 |
| 167 /// Whether to emit Closure Compiler-friendly code. | 170 /// Whether to emit Closure Compiler-friendly code. |
| 168 final bool closure; | 171 final bool closure; |
| 169 | 172 |
| 170 /// Hoist the types at instance creation sites | 173 /// Hoist the types at instance creation sites |
| (...skipping 27 matching lines...) Expand all Loading... |
| 198 final bool destructureNamedParams; | 201 final bool destructureNamedParams; |
| 199 | 202 |
| 200 /// Which module format to support. | 203 /// Which module format to support. |
| 201 /// Currently 'es6' and 'legacy' are supported. | 204 /// Currently 'es6' and 'legacy' are supported. |
| 202 final ModuleFormat moduleFormat; | 205 final ModuleFormat moduleFormat; |
| 203 | 206 |
| 204 const CompilerOptions( | 207 const CompilerOptions( |
| 205 {this.sourceMap: true, | 208 {this.sourceMap: true, |
| 206 this.sourceMapComment: true, | 209 this.sourceMapComment: true, |
| 207 this.summarizeApi: true, | 210 this.summarizeApi: true, |
| 211 this.summaryExtension: 'sum', |
| 208 this.unsafeForceCompile: false, | 212 this.unsafeForceCompile: false, |
| 209 this.emitMetadata: false, | 213 this.emitMetadata: false, |
| 210 this.closure: false, | 214 this.closure: false, |
| 211 this.destructureNamedParams: false, | 215 this.destructureNamedParams: false, |
| 212 this.moduleFormat: ModuleFormat.legacy, | 216 this.moduleFormat: ModuleFormat.legacy, |
| 213 this.hoistInstanceCreation: true, | 217 this.hoistInstanceCreation: true, |
| 214 this.hoistSignatureTypes: false, | 218 this.hoistSignatureTypes: false, |
| 215 this.nameTypeTests: true, | 219 this.nameTypeTests: true, |
| 216 this.hoistTypeTests: true, | 220 this.hoistTypeTests: true, |
| 217 this.useAngular2Whitelist: false}); | 221 this.useAngular2Whitelist: false}); |
| 218 | 222 |
| 219 CompilerOptions.fromArguments(ArgResults args) | 223 CompilerOptions.fromArguments(ArgResults args) |
| 220 : sourceMap = args['source-map'], | 224 : sourceMap = args['source-map'], |
| 221 sourceMapComment = args['source-map-comment'], | 225 sourceMapComment = args['source-map-comment'], |
| 222 summarizeApi = args['summarize'], | 226 summarizeApi = args['summarize'], |
| 227 summaryExtension = args['summary-extension'], |
| 223 unsafeForceCompile = args['unsafe-force-compile'], | 228 unsafeForceCompile = args['unsafe-force-compile'], |
| 224 emitMetadata = args['emit-metadata'], | 229 emitMetadata = args['emit-metadata'], |
| 225 closure = args['closure-experimental'], | 230 closure = args['closure-experimental'], |
| 226 destructureNamedParams = args['destructure-named-params'], | 231 destructureNamedParams = args['destructure-named-params'], |
| 227 moduleFormat = parseModuleFormat(args['modules']), | 232 moduleFormat = parseModuleFormat(args['modules']), |
| 228 hoistInstanceCreation = args['hoist-instance-creation'], | 233 hoistInstanceCreation = args['hoist-instance-creation'], |
| 229 hoistSignatureTypes = args['hoist-signature-types'], | 234 hoistSignatureTypes = args['hoist-signature-types'], |
| 230 nameTypeTests = args['name-type-tests'], | 235 nameTypeTests = args['name-type-tests'], |
| 231 hoistTypeTests = args['hoist-type-tests'], | 236 hoistTypeTests = args['hoist-type-tests'], |
| 232 useAngular2Whitelist = args['unsafe-angular2-whitelist']; | 237 useAngular2Whitelist = args['unsafe-angular2-whitelist']; |
| 233 | 238 |
| 234 static ArgParser addArguments(ArgParser parser) => parser | 239 static ArgParser addArguments(ArgParser parser) => parser |
| 235 ..addFlag('summarize', help: 'emit an API summary file', defaultsTo: true) | 240 ..addFlag('summarize', help: 'emit an API summary file', defaultsTo: true) |
| 241 ..addOption('summary-extension', |
| 242 help: 'file extension for Dart summary files', defaultsTo: 'sum') |
| 236 ..addFlag('source-map', help: 'emit source mapping', defaultsTo: true) | 243 ..addFlag('source-map', help: 'emit source mapping', defaultsTo: true) |
| 237 ..addFlag('source-map-comment', | 244 ..addFlag('source-map-comment', |
| 238 help: 'adds a sourceMappingURL comment to the end of the JS,\n' | 245 help: 'adds a sourceMappingURL comment to the end of the JS,\n' |
| 239 'disable if using X-SourceMap header', | 246 'disable if using X-SourceMap header', |
| 240 defaultsTo: true) | 247 defaultsTo: true) |
| 241 ..addOption('modules', | 248 ..addOption('modules', |
| 242 help: 'module pattern to emit', | 249 help: 'module pattern to emit', |
| 243 allowed: ['es6', 'legacy', 'node'], | 250 allowed: ['es6', 'legacy', 'node'], |
| 244 allowedHelp: { | 251 allowedHelp: { |
| 245 'es6': 'es6 modules', | 252 'es6': 'es6 modules', |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 } | 357 } |
| 351 } | 358 } |
| 352 | 359 |
| 353 /// (Public for tests) the error code used when a part is missing. | 360 /// (Public for tests) the error code used when a part is missing. |
| 354 final missingPartErrorCode = const CompileTimeErrorCode( | 361 final missingPartErrorCode = const CompileTimeErrorCode( |
| 355 'MISSING_PART', 'The part was not supplied as an input to the compiler.'); | 362 'MISSING_PART', 'The part was not supplied as an input to the compiler.'); |
| 356 | 363 |
| 357 /// (Public for tests) the error code used when a part is unused. | 364 /// (Public for tests) the error code used when a part is unused. |
| 358 final unusedPartWarningCode = const StaticWarningCode( | 365 final unusedPartWarningCode = const StaticWarningCode( |
| 359 'UNUSED_PART', 'The part was not used by any libraries being compiled.'); | 366 'UNUSED_PART', 'The part was not used by any libraries being compiled.'); |
| OLD | NEW |