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 library dart2js.src.options; | 5 library dart2js.src.options; |
6 | 6 |
7 import '../compiler.dart' show PackagesDiscoveryProvider; | 7 import '../compiler.dart' show PackagesDiscoveryProvider; |
8 import 'commandline_options.dart' show Flags; | 8 import 'commandline_options.dart' show Flags; |
9 | 9 |
10 /// Options used for controlling diagnostic messages. | 10 /// Options used for controlling diagnostic messages. |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
195 | 195 |
196 /// Whether to trust type annotations during inference and optimizations. | 196 /// Whether to trust type annotations during inference and optimizations. |
197 final bool trustTypeAnnotations; | 197 final bool trustTypeAnnotations; |
198 | 198 |
199 /// Whether to generate code compliant with content security policy (CSP). | 199 /// Whether to generate code compliant with content security policy (CSP). |
200 final bool useContentSecurityPolicy; | 200 final bool useContentSecurityPolicy; |
201 | 201 |
202 /// Whether to use kernel internally as part of compilation. | 202 /// Whether to use kernel internally as part of compilation. |
203 final bool useKernel; | 203 final bool useKernel; |
204 | 204 |
| 205 /// Read input from a .dill file rather than a .dart input (only to be used in |
| 206 /// conjunction with useKernel = true). |
| 207 final bool loadFromDill; |
| 208 |
205 // Whether to use kernel internally for global type inference calculations. | 209 // Whether to use kernel internally for global type inference calculations. |
206 // TODO(efortuna): Remove this and consolidate with useKernel. | 210 // TODO(efortuna): Remove this and consolidate with useKernel. |
207 final bool kernelGlobalInference; | 211 final bool kernelGlobalInference; |
208 | 212 |
209 /// When obfuscating for minification, whether to use the frequency of a name | 213 /// When obfuscating for minification, whether to use the frequency of a name |
210 /// as an heuristic to pick shorter names. | 214 /// as an heuristic to pick shorter names. |
211 final bool useFrequencyNamer; | 215 final bool useFrequencyNamer; |
212 | 216 |
213 /// Whether to generate source-information from both the old and the new | 217 /// Whether to generate source-information from both the old and the new |
214 /// source-information engines. (experimental) | 218 /// source-information engines. (experimental) |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 sourceMapUri: _extractUriOption(options, '--source-map='), | 299 sourceMapUri: _extractUriOption(options, '--source-map='), |
296 strips: _extractCsvOption(options, '--force-strip='), | 300 strips: _extractCsvOption(options, '--force-strip='), |
297 testMode: _hasOption(options, Flags.testMode), | 301 testMode: _hasOption(options, Flags.testMode), |
298 trustJSInteropTypeAnnotations: | 302 trustJSInteropTypeAnnotations: |
299 _hasOption(options, Flags.trustJSInteropTypeAnnotations), | 303 _hasOption(options, Flags.trustJSInteropTypeAnnotations), |
300 trustPrimitives: _hasOption(options, Flags.trustPrimitives), | 304 trustPrimitives: _hasOption(options, Flags.trustPrimitives), |
301 trustTypeAnnotations: _hasOption(options, Flags.trustTypeAnnotations), | 305 trustTypeAnnotations: _hasOption(options, Flags.trustTypeAnnotations), |
302 useContentSecurityPolicy: | 306 useContentSecurityPolicy: |
303 _hasOption(options, Flags.useContentSecurityPolicy), | 307 _hasOption(options, Flags.useContentSecurityPolicy), |
304 useKernel: _hasOption(options, Flags.useKernel), | 308 useKernel: _hasOption(options, Flags.useKernel), |
| 309 loadFromDill: _hasOption(options, Flags.loadFromDill), |
305 useFrequencyNamer: | 310 useFrequencyNamer: |
306 !_hasOption(options, Flags.noFrequencyBasedMinification), | 311 !_hasOption(options, Flags.noFrequencyBasedMinification), |
307 useMultiSourceInfo: _hasOption(options, Flags.useMultiSourceInfo), | 312 useMultiSourceInfo: _hasOption(options, Flags.useMultiSourceInfo), |
308 useNewSourceInfo: _hasOption(options, Flags.useNewSourceInfo), | 313 useNewSourceInfo: _hasOption(options, Flags.useNewSourceInfo), |
309 useStartupEmitter: _hasOption(options, Flags.fastStartup), | 314 useStartupEmitter: _hasOption(options, Flags.fastStartup), |
310 verbose: _hasOption(options, Flags.verbose)); | 315 verbose: _hasOption(options, Flags.verbose)); |
311 } | 316 } |
312 | 317 |
313 /// Creates an option object for the compiler. | 318 /// Creates an option object for the compiler. |
314 /// | 319 /// |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 Uri resolutionOutput: null, | 360 Uri resolutionOutput: null, |
356 bool resolveOnly: false, | 361 bool resolveOnly: false, |
357 Uri sourceMapUri: null, | 362 Uri sourceMapUri: null, |
358 List<String> strips: const [], | 363 List<String> strips: const [], |
359 bool testMode: false, | 364 bool testMode: false, |
360 bool trustJSInteropTypeAnnotations: false, | 365 bool trustJSInteropTypeAnnotations: false, |
361 bool trustPrimitives: false, | 366 bool trustPrimitives: false, |
362 bool trustTypeAnnotations: false, | 367 bool trustTypeAnnotations: false, |
363 bool useContentSecurityPolicy: false, | 368 bool useContentSecurityPolicy: false, |
364 bool useKernel: false, | 369 bool useKernel: false, |
| 370 bool loadFromDill: false, |
365 bool useFrequencyNamer: true, | 371 bool useFrequencyNamer: true, |
366 bool useMultiSourceInfo: false, | 372 bool useMultiSourceInfo: false, |
367 bool useNewSourceInfo: false, | 373 bool useNewSourceInfo: false, |
368 bool useStartupEmitter: false, | 374 bool useStartupEmitter: false, |
369 bool verbose: false}) { | 375 bool verbose: false}) { |
370 // TODO(sigmund): should entrypoint be here? should we validate it is not | 376 // TODO(sigmund): should entrypoint be here? should we validate it is not |
371 // null? In unittests we use the same compiler to analyze or build multiple | 377 // null? In unittests we use the same compiler to analyze or build multiple |
372 // entrypoints. | 378 // entrypoints. |
373 if (libraryRoot == null) { | 379 if (libraryRoot == null) { |
374 throw new ArgumentError("[libraryRoot] is null."); | 380 throw new ArgumentError("[libraryRoot] is null."); |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
427 resolutionOutput: resolutionOutput, | 433 resolutionOutput: resolutionOutput, |
428 resolveOnly: resolveOnly, | 434 resolveOnly: resolveOnly, |
429 sourceMapUri: sourceMapUri, | 435 sourceMapUri: sourceMapUri, |
430 strips: strips, | 436 strips: strips, |
431 testMode: testMode, | 437 testMode: testMode, |
432 trustJSInteropTypeAnnotations: trustJSInteropTypeAnnotations, | 438 trustJSInteropTypeAnnotations: trustJSInteropTypeAnnotations, |
433 trustPrimitives: trustPrimitives, | 439 trustPrimitives: trustPrimitives, |
434 trustTypeAnnotations: trustTypeAnnotations, | 440 trustTypeAnnotations: trustTypeAnnotations, |
435 useContentSecurityPolicy: useContentSecurityPolicy, | 441 useContentSecurityPolicy: useContentSecurityPolicy, |
436 useKernel: useKernel, | 442 useKernel: useKernel, |
| 443 loadFromDill: loadFromDill, |
437 useFrequencyNamer: useFrequencyNamer, | 444 useFrequencyNamer: useFrequencyNamer, |
438 useMultiSourceInfo: useMultiSourceInfo, | 445 useMultiSourceInfo: useMultiSourceInfo, |
439 useNewSourceInfo: useNewSourceInfo, | 446 useNewSourceInfo: useNewSourceInfo, |
440 useStartupEmitter: useStartupEmitter, | 447 useStartupEmitter: useStartupEmitter, |
441 verbose: verbose); | 448 verbose: verbose); |
442 } | 449 } |
443 | 450 |
444 CompilerOptions._(this.entryPoint, this.libraryRoot, this.packageRoot, | 451 CompilerOptions._(this.entryPoint, this.libraryRoot, this.packageRoot, |
445 this.packageConfig, this.packagesDiscoveryProvider, this.environment, | 452 this.packageConfig, this.packagesDiscoveryProvider, this.environment, |
446 {this.allowMockCompilation: false, | 453 {this.allowMockCompilation: false, |
(...skipping 30 matching lines...) Expand all Loading... |
477 this.resolveOnly: false, | 484 this.resolveOnly: false, |
478 this.compileOnly: false, | 485 this.compileOnly: false, |
479 this.sourceMapUri: null, | 486 this.sourceMapUri: null, |
480 this.strips: const [], | 487 this.strips: const [], |
481 this.testMode: false, | 488 this.testMode: false, |
482 this.trustJSInteropTypeAnnotations: false, | 489 this.trustJSInteropTypeAnnotations: false, |
483 this.trustPrimitives: false, | 490 this.trustPrimitives: false, |
484 this.trustTypeAnnotations: false, | 491 this.trustTypeAnnotations: false, |
485 this.useContentSecurityPolicy: false, | 492 this.useContentSecurityPolicy: false, |
486 this.useKernel: false, | 493 this.useKernel: false, |
| 494 this.loadFromDill: false, |
487 this.useFrequencyNamer: false, | 495 this.useFrequencyNamer: false, |
488 this.useMultiSourceInfo: false, | 496 this.useMultiSourceInfo: false, |
489 this.useNewSourceInfo: false, | 497 this.useNewSourceInfo: false, |
490 this.useStartupEmitter: false, | 498 this.useStartupEmitter: false, |
491 this.verbose: false}) | 499 this.verbose: false}) |
492 : _shownPackageWarnings = shownPackageWarnings; | 500 : _shownPackageWarnings = shownPackageWarnings; |
493 | 501 |
494 /// Creates a copy of the [CompilerOptions] where the provided non-null | 502 /// Creates a copy of the [CompilerOptions] where the provided non-null |
495 /// option values replace existing. | 503 /// option values replace existing. |
496 static CompilerOptions copy(CompilerOptions options, | 504 static CompilerOptions copy(CompilerOptions options, |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
534 resolveOnly, | 542 resolveOnly, |
535 compileOnly, | 543 compileOnly, |
536 sourceMapUri, | 544 sourceMapUri, |
537 strips, | 545 strips, |
538 testMode, | 546 testMode, |
539 trustJSInteropTypeAnnotations, | 547 trustJSInteropTypeAnnotations, |
540 trustPrimitives, | 548 trustPrimitives, |
541 trustTypeAnnotations, | 549 trustTypeAnnotations, |
542 useContentSecurityPolicy, | 550 useContentSecurityPolicy, |
543 useKernel, | 551 useKernel, |
| 552 loadFromDill, |
544 useFrequencyNamer, | 553 useFrequencyNamer, |
545 useMultiSourceInfo, | 554 useMultiSourceInfo, |
546 useNewSourceInfo, | 555 useNewSourceInfo, |
547 useStartupEmitter, | 556 useStartupEmitter, |
548 verbose}) { | 557 verbose}) { |
549 return new CompilerOptions._( | 558 return new CompilerOptions._( |
550 entryPoint ?? options.entryPoint, | 559 entryPoint ?? options.entryPoint, |
551 libraryRoot ?? options.libraryRoot, | 560 libraryRoot ?? options.libraryRoot, |
552 packageRoot ?? options.packageRoot, | 561 packageRoot ?? options.packageRoot, |
553 packageConfig ?? options.packageConfig, | 562 packageConfig ?? options.packageConfig, |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
601 strips: strips ?? options.strips, | 610 strips: strips ?? options.strips, |
602 testMode: testMode ?? options.testMode, | 611 testMode: testMode ?? options.testMode, |
603 trustJSInteropTypeAnnotations: trustJSInteropTypeAnnotations ?? | 612 trustJSInteropTypeAnnotations: trustJSInteropTypeAnnotations ?? |
604 options.trustJSInteropTypeAnnotations, | 613 options.trustJSInteropTypeAnnotations, |
605 trustPrimitives: trustPrimitives ?? options.trustPrimitives, | 614 trustPrimitives: trustPrimitives ?? options.trustPrimitives, |
606 trustTypeAnnotations: | 615 trustTypeAnnotations: |
607 trustTypeAnnotations ?? options.trustTypeAnnotations, | 616 trustTypeAnnotations ?? options.trustTypeAnnotations, |
608 useContentSecurityPolicy: | 617 useContentSecurityPolicy: |
609 useContentSecurityPolicy ?? options.useContentSecurityPolicy, | 618 useContentSecurityPolicy ?? options.useContentSecurityPolicy, |
610 useKernel: useKernel ?? options.useKernel, | 619 useKernel: useKernel ?? options.useKernel, |
| 620 loadFromDill: loadFromDill ?? options.loadFromDill, |
611 useFrequencyNamer: useFrequencyNamer ?? options.useFrequencyNamer, | 621 useFrequencyNamer: useFrequencyNamer ?? options.useFrequencyNamer, |
612 useMultiSourceInfo: useMultiSourceInfo ?? options.useMultiSourceInfo, | 622 useMultiSourceInfo: useMultiSourceInfo ?? options.useMultiSourceInfo, |
613 useNewSourceInfo: useNewSourceInfo ?? options.useNewSourceInfo, | 623 useNewSourceInfo: useNewSourceInfo ?? options.useNewSourceInfo, |
614 useStartupEmitter: useStartupEmitter ?? options.useStartupEmitter, | 624 useStartupEmitter: useStartupEmitter ?? options.useStartupEmitter, |
615 verbose: verbose ?? options.verbose); | 625 verbose: verbose ?? options.verbose); |
616 } | 626 } |
617 | 627 |
618 /// Returns `true` if warnings and hints are shown for all packages. | 628 /// Returns `true` if warnings and hints are shown for all packages. |
619 bool get showAllPackageWarnings { | 629 bool get showAllPackageWarnings { |
620 return _shownPackageWarnings != null && _shownPackageWarnings.isEmpty; | 630 return _shownPackageWarnings != null && _shownPackageWarnings.isEmpty; |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
707 _extractStringOption(options, "--platform-config=", null), | 717 _extractStringOption(options, "--platform-config=", null), |
708 _extractCsvOption(options, '--categories=')); | 718 _extractCsvOption(options, '--categories=')); |
709 } | 719 } |
710 | 720 |
711 /// Locations of the platform descriptor files relative to the library root. | 721 /// Locations of the platform descriptor files relative to the library root. |
712 const String _clientPlatform = "lib/dart_client.platform"; | 722 const String _clientPlatform = "lib/dart_client.platform"; |
713 const String _serverPlatform = "lib/dart_server.platform"; | 723 const String _serverPlatform = "lib/dart_server.platform"; |
714 const String _sharedPlatform = "lib/dart_shared.platform"; | 724 const String _sharedPlatform = "lib/dart_shared.platform"; |
715 | 725 |
716 const String _UNDETERMINED_BUILD_ID = "build number could not be determined"; | 726 const String _UNDETERMINED_BUILD_ID = "build number could not be determined"; |
OLD | NEW |