OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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.cmdline; | 5 library dart2js.cmdline; |
6 | 6 |
7 import 'dart:async' show Future; | 7 import 'dart:async' show Future; |
8 import 'dart:convert' show UTF8, LineSplitter; | 8 import 'dart:convert' show UTF8, LineSplitter; |
9 import 'dart:io' show exit, File, FileMode, Platform, stdin, stderr; | 9 import 'dart:io' show exit, File, FileMode, Platform, stdin, stderr; |
10 | 10 |
11 import 'package:package_config/discovery.dart' show findPackages; | 11 import 'package:package_config/discovery.dart' show findPackages; |
12 | 12 |
13 import '../compiler.dart' as api; | 13 import '../compiler_new.dart' as api; |
14 import 'commandline_options.dart'; | 14 import 'commandline_options.dart'; |
15 import 'filenames.dart'; | 15 import 'filenames.dart'; |
16 import 'io/source_file.dart'; | 16 import 'io/source_file.dart'; |
| 17 import 'options.dart' show CompilerOptions; |
17 import 'source_file_provider.dart'; | 18 import 'source_file_provider.dart'; |
18 import 'util/command_line.dart'; | 19 import 'util/command_line.dart'; |
19 import 'util/uri_extras.dart'; | 20 import 'util/uri_extras.dart'; |
20 import 'util/util.dart' show stackTraceFilePrefix; | 21 import 'util/util.dart' show stackTraceFilePrefix; |
21 | 22 |
22 const String LIBRARY_ROOT = '../../../../../sdk'; | 23 const String LIBRARY_ROOT = '../../../../../sdk'; |
23 const String OUTPUT_LANGUAGE_DART = 'Dart'; | 24 const String OUTPUT_LANGUAGE_DART = 'Dart'; |
24 | 25 |
25 /** | 26 /** |
26 * A string to identify the revision or build. | 27 * A string to identify the revision or build. |
(...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
477 print(" $filename"); | 478 print(" $filename"); |
478 } | 479 } |
479 } else if (!explicitOut) { | 480 } else if (!explicitOut) { |
480 String input = uriPathToNative(arguments[0]); | 481 String input = uriPathToNative(arguments[0]); |
481 String output = relativize(currentDirectory, out, Platform.isWindows); | 482 String output = relativize(currentDirectory, out, Platform.isWindows); |
482 print('Dart file ($input) compiled to $outputLanguage: $output'); | 483 print('Dart file ($input) compiled to $outputLanguage: $output'); |
483 } | 484 } |
484 return result; | 485 return result; |
485 } | 486 } |
486 | 487 |
487 Uri uri = currentDirectory.resolve(arguments[0]); | 488 Uri script = currentDirectory.resolve(arguments[0]); |
488 return compileFunc( | 489 CompilerOptions compilerOptions = new CompilerOptions.parse( |
489 uri, | 490 entryPoint: script, |
490 libraryRoot, | 491 libraryRoot: libraryRoot, |
491 packageRoot, | 492 packageRoot: packageRoot, |
492 inputProvider, | 493 packageConfig: packageConfig, |
493 diagnosticHandler, | 494 packagesDiscoveryProvider: findPackages, |
494 options, | 495 options: options, |
495 outputProvider, | 496 environment: environment); |
496 environment, | 497 return compileFunc(compilerOptions, inputProvider, |
497 packageConfig, | 498 diagnosticHandler, outputProvider) |
498 findPackages) | |
499 .then(compilationDone); | 499 .then(compilationDone); |
500 } | 500 } |
501 | 501 |
502 class AbortLeg { | 502 class AbortLeg { |
503 final message; | 503 final message; |
504 AbortLeg(this.message); | 504 AbortLeg(this.message); |
505 toString() => 'Aborted due to --throw-on-error: $message'; | 505 toString() => 'Aborted due to --throw-on-error: $message'; |
506 } | 506 } |
507 | 507 |
508 void writeString(Uri uri, String text) { | 508 void writeString(Uri uri, String text) { |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
699 void main(List<String> arguments) { | 699 void main(List<String> arguments) { |
700 // Since the sdk/bin/dart2js script adds its own arguments in front of | 700 // Since the sdk/bin/dart2js script adds its own arguments in front of |
701 // user-supplied arguments we search for '--batch' at the end of the list. | 701 // user-supplied arguments we search for '--batch' at the end of the list. |
702 if (arguments.length > 0 && arguments.last == "--batch") { | 702 if (arguments.length > 0 && arguments.last == "--batch") { |
703 batchMain(arguments.sublist(0, arguments.length - 1)); | 703 batchMain(arguments.sublist(0, arguments.length - 1)); |
704 return; | 704 return; |
705 } | 705 } |
706 internalMain(arguments); | 706 internalMain(arguments); |
707 } | 707 } |
708 | 708 |
709 var exitFunc = exit; | 709 typedef void ExitFunc(int exitCode); |
710 var compileFunc = api.compile; | 710 typedef Future<api.CompilationResult> CompileFunc( |
| 711 CompilerOptions compilerOptions, |
| 712 api.CompilerInput compilerInput, |
| 713 api.CompilerDiagnostics compilerDiagnostics, |
| 714 api.CompilerOutput compilerOutput); |
| 715 |
| 716 ExitFunc exitFunc = exit; |
| 717 CompileFunc compileFunc = api.compile; |
711 | 718 |
712 Future<api.CompilationResult> internalMain(List<String> arguments) { | 719 Future<api.CompilationResult> internalMain(List<String> arguments) { |
713 Future onError(exception, trace) { | 720 Future onError(exception, trace) { |
714 // If we are already trying to exit, just continue exiting. | 721 // If we are already trying to exit, just continue exiting. |
715 if (exception == _EXIT_SIGNAL) throw exception; | 722 if (exception == _EXIT_SIGNAL) throw exception; |
716 | 723 |
717 try { | 724 try { |
718 print('The compiler crashed: $exception'); | 725 print('The compiler crashed: $exception'); |
719 } catch (ignored) { | 726 } catch (ignored) { |
720 print('The compiler crashed: error while printing exception'); | 727 print('The compiler crashed: error while printing exception'); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
777 } else if (exitCode == 253) { | 784 } else if (exitCode == 253) { |
778 print(">>> TEST CRASH"); | 785 print(">>> TEST CRASH"); |
779 } else { | 786 } else { |
780 print(">>> TEST FAIL"); | 787 print(">>> TEST FAIL"); |
781 } | 788 } |
782 stderr.writeln(">>> EOF STDERR"); | 789 stderr.writeln(">>> EOF STDERR"); |
783 subscription.resume(); | 790 subscription.resume(); |
784 }); | 791 }); |
785 }); | 792 }); |
786 } | 793 } |
OLD | NEW |