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

Side by Side Diff: pkg/compiler/lib/src/options.dart

Issue 2270473002: Add flag to dart2js to configure whether to use the kernel lowering. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 3 months 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 unified diff | Download patch
« no previous file with comments | « pkg/compiler/lib/src/js_backend/backend.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 parsing. 10 /// Options used for parsing.
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 214
215 /// Whether to trust primitive types during inference and optimizations. 215 /// Whether to trust primitive types during inference and optimizations.
216 final bool trustPrimitives; 216 final bool trustPrimitives;
217 217
218 /// Whether to trust type annotations during inference and optimizations. 218 /// Whether to trust type annotations during inference and optimizations.
219 final bool trustTypeAnnotations; 219 final bool trustTypeAnnotations;
220 220
221 /// Whether to generate code compliant with content security policy (CSP). 221 /// Whether to generate code compliant with content security policy (CSP).
222 final bool useContentSecurityPolicy; 222 final bool useContentSecurityPolicy;
223 223
224 /// Whether to use kernel internally as part of compilation.
225 final bool useKernel;
226
224 /// When obfuscating for minification, whether to use the frequency of a name 227 /// When obfuscating for minification, whether to use the frequency of a name
225 /// as an heuristic to pick shorter names. 228 /// as an heuristic to pick shorter names.
226 final bool useFrequencyNamer; 229 final bool useFrequencyNamer;
227 230
228 /// Whether to use the new source-information implementation for source-maps. 231 /// Whether to use the new source-information implementation for source-maps.
229 /// (experimental) 232 /// (experimental)
230 final bool useNewSourceInfo; 233 final bool useNewSourceInfo;
231 234
232 /// Whether the user requested to use the fast startup emitter. The full 235 /// Whether the user requested to use the fast startup emitter. The full
233 /// emitter might still be used if the program uses dart:mirrors. 236 /// emitter might still be used if the program uses dart:mirrors.
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 resolveOnly: _hasOption(options, Flags.resolveOnly), 314 resolveOnly: _hasOption(options, Flags.resolveOnly),
312 sourceMapUri: _extractUriOption(options, '--source-map='), 315 sourceMapUri: _extractUriOption(options, '--source-map='),
313 strips: _extractCsvOption(options, '--force-strip='), 316 strips: _extractCsvOption(options, '--force-strip='),
314 testMode: _hasOption(options, Flags.testMode), 317 testMode: _hasOption(options, Flags.testMode),
315 trustJSInteropTypeAnnotations: 318 trustJSInteropTypeAnnotations:
316 _hasOption(options, Flags.trustJSInteropTypeAnnotations), 319 _hasOption(options, Flags.trustJSInteropTypeAnnotations),
317 trustPrimitives: _hasOption(options, Flags.trustPrimitives), 320 trustPrimitives: _hasOption(options, Flags.trustPrimitives),
318 trustTypeAnnotations: _hasOption(options, Flags.trustTypeAnnotations), 321 trustTypeAnnotations: _hasOption(options, Flags.trustTypeAnnotations),
319 useContentSecurityPolicy: 322 useContentSecurityPolicy:
320 _hasOption(options, Flags.useContentSecurityPolicy), 323 _hasOption(options, Flags.useContentSecurityPolicy),
324 useKernel: _hasOption(options, Flags.useKernel),
321 useFrequencyNamer: 325 useFrequencyNamer:
322 !_hasOption(options, Flags.noFrequencyBasedMinification), 326 !_hasOption(options, Flags.noFrequencyBasedMinification),
323 useNewSourceInfo: _hasOption(options, Flags.useNewSourceInfo), 327 useNewSourceInfo: _hasOption(options, Flags.useNewSourceInfo),
324 useStartupEmitter: _hasOption(options, Flags.fastStartup), 328 useStartupEmitter: _hasOption(options, Flags.fastStartup),
325 verbose: _hasOption(options, Flags.verbose)); 329 verbose: _hasOption(options, Flags.verbose));
326 } 330 }
327 331
328 /// Creates an option object for the compiler. 332 /// Creates an option object for the compiler.
329 /// 333 ///
330 /// This validates and normalizes dependent options to be consistent. For 334 /// This validates and normalizes dependent options to be consistent. For
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 List<Uri> resolutionInputs: null, 375 List<Uri> resolutionInputs: null,
372 Uri resolutionOutput: null, 376 Uri resolutionOutput: null,
373 bool resolveOnly: false, 377 bool resolveOnly: false,
374 Uri sourceMapUri: null, 378 Uri sourceMapUri: null,
375 List<String> strips: const [], 379 List<String> strips: const [],
376 bool testMode: false, 380 bool testMode: false,
377 bool trustJSInteropTypeAnnotations: false, 381 bool trustJSInteropTypeAnnotations: false,
378 bool trustPrimitives: false, 382 bool trustPrimitives: false,
379 bool trustTypeAnnotations: false, 383 bool trustTypeAnnotations: false,
380 bool useContentSecurityPolicy: false, 384 bool useContentSecurityPolicy: false,
385 bool useKernel: false,
381 bool useFrequencyNamer: true, 386 bool useFrequencyNamer: true,
382 bool useNewSourceInfo: false, 387 bool useNewSourceInfo: false,
383 bool useStartupEmitter: false, 388 bool useStartupEmitter: false,
384 bool verbose: false}) { 389 bool verbose: false}) {
385 // TODO(sigmund): should entrypoint be here? should we validate it is not 390 // TODO(sigmund): should entrypoint be here? should we validate it is not
386 // null? In unittests we use the same compiler to analyze or build multiple 391 // null? In unittests we use the same compiler to analyze or build multiple
387 // entrypoints. 392 // entrypoints.
388 if (libraryRoot == null) { 393 if (libraryRoot == null) {
389 throw new ArgumentError("[libraryRoot] is null."); 394 throw new ArgumentError("[libraryRoot] is null.");
390 } 395 }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
443 resolutionInputs: resolutionInputs, 448 resolutionInputs: resolutionInputs,
444 resolutionOutput: resolutionOutput, 449 resolutionOutput: resolutionOutput,
445 resolveOnly: resolveOnly, 450 resolveOnly: resolveOnly,
446 sourceMapUri: sourceMapUri, 451 sourceMapUri: sourceMapUri,
447 strips: strips, 452 strips: strips,
448 testMode: testMode, 453 testMode: testMode,
449 trustJSInteropTypeAnnotations: trustJSInteropTypeAnnotations, 454 trustJSInteropTypeAnnotations: trustJSInteropTypeAnnotations,
450 trustPrimitives: trustPrimitives, 455 trustPrimitives: trustPrimitives,
451 trustTypeAnnotations: trustTypeAnnotations, 456 trustTypeAnnotations: trustTypeAnnotations,
452 useContentSecurityPolicy: useContentSecurityPolicy, 457 useContentSecurityPolicy: useContentSecurityPolicy,
458 useKernel: useKernel,
453 useFrequencyNamer: useFrequencyNamer, 459 useFrequencyNamer: useFrequencyNamer,
454 useNewSourceInfo: useNewSourceInfo, 460 useNewSourceInfo: useNewSourceInfo,
455 useStartupEmitter: useStartupEmitter, 461 useStartupEmitter: useStartupEmitter,
456 verbose: verbose); 462 verbose: verbose);
457 } 463 }
458 464
459 CompilerOptions._(this.entryPoint, this.libraryRoot, this.packageRoot, 465 CompilerOptions._(this.entryPoint, this.libraryRoot, this.packageRoot,
460 this.packageConfig, this.packagesDiscoveryProvider, this.environment, 466 this.packageConfig, this.packagesDiscoveryProvider, this.environment,
461 {this.allowMockCompilation: false, 467 {this.allowMockCompilation: false,
462 this.allowNativeExtensions: false, 468 this.allowNativeExtensions: false,
(...skipping 30 matching lines...) Expand all
493 this.resolutionOutput: null, 499 this.resolutionOutput: null,
494 this.resolveOnly: false, 500 this.resolveOnly: false,
495 this.compileOnly: false, 501 this.compileOnly: false,
496 this.sourceMapUri: null, 502 this.sourceMapUri: null,
497 this.strips: const [], 503 this.strips: const [],
498 this.testMode: false, 504 this.testMode: false,
499 this.trustJSInteropTypeAnnotations: false, 505 this.trustJSInteropTypeAnnotations: false,
500 this.trustPrimitives: false, 506 this.trustPrimitives: false,
501 this.trustTypeAnnotations: false, 507 this.trustTypeAnnotations: false,
502 this.useContentSecurityPolicy: false, 508 this.useContentSecurityPolicy: false,
509 this.useKernel: false,
503 this.useFrequencyNamer: false, 510 this.useFrequencyNamer: false,
504 this.useNewSourceInfo: false, 511 this.useNewSourceInfo: false,
505 this.useStartupEmitter: false, 512 this.useStartupEmitter: false,
506 this.verbose: false}) 513 this.verbose: false})
507 : _shownPackageWarnings = shownPackageWarnings; 514 : _shownPackageWarnings = shownPackageWarnings;
508 515
509 /// Creates a copy of the [CompilerOptions] where the provided non-null 516 /// Creates a copy of the [CompilerOptions] where the provided non-null
510 /// option values replace existing. 517 /// option values replace existing.
511 static CompilerOptions copy(CompilerOptions options, 518 static CompilerOptions copy(CompilerOptions options,
512 {entryPoint, 519 {entryPoint,
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 resolutionOutput, 557 resolutionOutput,
551 resolveOnly, 558 resolveOnly,
552 compileOnly, 559 compileOnly,
553 sourceMapUri, 560 sourceMapUri,
554 strips, 561 strips,
555 testMode, 562 testMode,
556 trustJSInteropTypeAnnotations, 563 trustJSInteropTypeAnnotations,
557 trustPrimitives, 564 trustPrimitives,
558 trustTypeAnnotations, 565 trustTypeAnnotations,
559 useContentSecurityPolicy, 566 useContentSecurityPolicy,
567 useKernel,
560 useFrequencyNamer, 568 useFrequencyNamer,
561 useNewSourceInfo, 569 useNewSourceInfo,
562 useStartupEmitter, 570 useStartupEmitter,
563 verbose}) { 571 verbose}) {
564 return new CompilerOptions._( 572 return new CompilerOptions._(
565 entryPoint ?? options.entryPoint, 573 entryPoint ?? options.entryPoint,
566 libraryRoot ?? options.libraryRoot, 574 libraryRoot ?? options.libraryRoot,
567 packageRoot ?? options.packageRoot, 575 packageRoot ?? options.packageRoot,
568 packageConfig ?? options.packageConfig, 576 packageConfig ?? options.packageConfig,
569 packagesDiscoveryProvider ?? options.packagesDiscoveryProvider, 577 packagesDiscoveryProvider ?? options.packagesDiscoveryProvider,
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
619 sourceMapUri: sourceMapUri ?? options.sourceMapUri, 627 sourceMapUri: sourceMapUri ?? options.sourceMapUri,
620 strips: strips ?? options.strips, 628 strips: strips ?? options.strips,
621 testMode: testMode ?? options.testMode, 629 testMode: testMode ?? options.testMode,
622 trustJSInteropTypeAnnotations: trustJSInteropTypeAnnotations ?? 630 trustJSInteropTypeAnnotations: trustJSInteropTypeAnnotations ??
623 options.trustJSInteropTypeAnnotations, 631 options.trustJSInteropTypeAnnotations,
624 trustPrimitives: trustPrimitives ?? options.trustPrimitives, 632 trustPrimitives: trustPrimitives ?? options.trustPrimitives,
625 trustTypeAnnotations: 633 trustTypeAnnotations:
626 trustTypeAnnotations ?? options.trustTypeAnnotations, 634 trustTypeAnnotations ?? options.trustTypeAnnotations,
627 useContentSecurityPolicy: 635 useContentSecurityPolicy:
628 useContentSecurityPolicy ?? options.useContentSecurityPolicy, 636 useContentSecurityPolicy ?? options.useContentSecurityPolicy,
637 useKernel: useKernel ?? options.useKernel,
629 useFrequencyNamer: useFrequencyNamer ?? options.useFrequencyNamer, 638 useFrequencyNamer: useFrequencyNamer ?? options.useFrequencyNamer,
630 useNewSourceInfo: useNewSourceInfo ?? options.useNewSourceInfo, 639 useNewSourceInfo: useNewSourceInfo ?? options.useNewSourceInfo,
631 useStartupEmitter: useStartupEmitter ?? options.useStartupEmitter, 640 useStartupEmitter: useStartupEmitter ?? options.useStartupEmitter,
632 verbose: verbose ?? options.verbose); 641 verbose: verbose ?? options.verbose);
633 } 642 }
634 643
635 /// Returns `true` if warnings and hints are shown for all packages. 644 /// Returns `true` if warnings and hints are shown for all packages.
636 bool get showAllPackageWarnings { 645 bool get showAllPackageWarnings {
637 return _shownPackageWarnings != null && _shownPackageWarnings.isEmpty; 646 return _shownPackageWarnings != null && _shownPackageWarnings.isEmpty;
638 } 647 }
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 } 735 }
727 736
728 /// Locations of the platform descriptor files relative to the library root. 737 /// Locations of the platform descriptor files relative to the library root.
729 const String _clientPlatform = "lib/dart_client.platform"; 738 const String _clientPlatform = "lib/dart_client.platform";
730 const String _serverPlatform = "lib/dart_server.platform"; 739 const String _serverPlatform = "lib/dart_server.platform";
731 const String _sharedPlatform = "lib/dart_shared.platform"; 740 const String _sharedPlatform = "lib/dart_shared.platform";
732 741
733 const String _UNDETERMINED_BUILD_ID = "build number could not be determined"; 742 const String _UNDETERMINED_BUILD_ID = "build number could not be determined";
734 const bool _forceIncrementalSupport = 743 const bool _forceIncrementalSupport =
735 const bool.fromEnvironment('DART2JS_EXPERIMENTAL_INCREMENTAL_SUPPORT'); 744 const bool.fromEnvironment('DART2JS_EXPERIMENTAL_INCREMENTAL_SUPPORT');
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_backend/backend.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698