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

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

Issue 1975153002: Support (de)serialization from command-line (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 4 years, 7 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/compiler.dart ('k') | pkg/compiler/lib/src/options.dart » ('j') | 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) 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
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 } 98 }
99 } 99 }
100 100
101 FormattingDiagnosticHandler diagnosticHandler; 101 FormattingDiagnosticHandler diagnosticHandler;
102 102
103 Future<api.CompilationResult> compile(List<String> argv) { 103 Future<api.CompilationResult> compile(List<String> argv) {
104 stackTraceFilePrefix = '$currentDirectory'; 104 stackTraceFilePrefix = '$currentDirectory';
105 Uri libraryRoot = currentDirectory; 105 Uri libraryRoot = currentDirectory;
106 Uri out = currentDirectory.resolve('out.js'); 106 Uri out = currentDirectory.resolve('out.js');
107 Uri sourceMapOut = currentDirectory.resolve('out.js.map'); 107 Uri sourceMapOut = currentDirectory.resolve('out.js.map');
108 Uri resolutionInput;
108 Uri packageConfig = null; 109 Uri packageConfig = null;
109 Uri packageRoot = null; 110 Uri packageRoot = null;
110 List<String> options = new List<String>(); 111 List<String> options = new List<String>();
111 bool explicitOut = false; 112 List<String> explicitOutputArguments = <String>[];
112 bool wantHelp = false; 113 bool wantHelp = false;
113 bool wantVersion = false; 114 bool wantVersion = false;
114 String outputLanguage = 'JavaScript'; 115 String outputLanguage = 'JavaScript';
115 bool stripArgumentSet = false; 116 bool stripArgumentSet = false;
116 bool analyzeOnly = false; 117 bool analyzeOnly = false;
117 bool analyzeAll = false; 118 bool analyzeAll = false;
119 bool resolveOnly = false;
120 Uri resolutionOutput = currentDirectory.resolve('out.data');
118 bool dumpInfo = false; 121 bool dumpInfo = false;
119 bool allowNativeExtensions = false; 122 bool allowNativeExtensions = false;
120 bool trustTypeAnnotations = false; 123 bool trustTypeAnnotations = false;
121 bool trustJSInteropTypeAnnotations = false; 124 bool trustJSInteropTypeAnnotations = false;
122 bool checkedMode = false; 125 bool checkedMode = false;
123 // List of provided options that imply that output is expected. 126 // List of provided options that imply that output is expected.
124 List<String> optionsImplyCompilation = <String>[]; 127 List<String> optionsImplyCompilation = <String>[];
125 bool hasDisallowUnsafeEval = false; 128 bool hasDisallowUnsafeEval = false;
126 // TODO(johnniwinther): Measure time for reading files. 129 // TODO(johnniwinther): Measure time for reading files.
127 SourceFileProvider inputProvider = new CompilerSourceFileProvider(); 130 SourceFileProvider inputProvider = new CompilerSourceFileProvider();
128 diagnosticHandler = new FormattingDiagnosticHandler(inputProvider); 131 diagnosticHandler = new FormattingDiagnosticHandler(inputProvider);
129 Map<String, dynamic> environment = new Map<String, dynamic>(); 132 Map<String, dynamic> environment = new Map<String, dynamic>();
130 133
131 passThrough(String argument) => options.add(argument); 134 void passThrough(String argument) => options.add(argument);
132 135
133 if (BUILD_ID != null) { 136 if (BUILD_ID != null) {
134 passThrough("--build-id=$BUILD_ID"); 137 passThrough("--build-id=$BUILD_ID");
135 } 138 }
136 139
137 setLibraryRoot(String argument) { 140 void setLibraryRoot(String argument) {
138 libraryRoot = currentDirectory.resolve(extractPath(argument)); 141 libraryRoot = currentDirectory.resolve(extractPath(argument));
139 } 142 }
140 143
141 setPackageRoot(String argument) { 144 void setPackageRoot(String argument) {
142 packageRoot = currentDirectory.resolve(extractPath(argument)); 145 packageRoot = currentDirectory.resolve(extractPath(argument));
143 } 146 }
144 147
145 setPackageConfig(String argument) { 148 void setPackageConfig(String argument) {
146 packageConfig = 149 packageConfig =
147 currentDirectory.resolve(extractPath(argument, isDirectory: false)); 150 currentDirectory.resolve(extractPath(argument, isDirectory: false));
148 } 151 }
149 152
150 setOutput(Iterator<String> arguments) { 153 void setOutput(Iterator<String> arguments) {
151 optionsImplyCompilation.add(arguments.current); 154 explicitOutputArguments.add(arguments.current);
152 String path; 155 String path;
153 if (arguments.current == '-o') { 156 if (arguments.current == '-o') {
154 if (!arguments.moveNext()) { 157 if (!arguments.moveNext()) {
155 helpAndFail('Error: Missing file after -o option.'); 158 helpAndFail('Error: Missing file after -o option.');
156 } 159 }
160 explicitOutputArguments.add(arguments.current);
157 path = arguments.current; 161 path = arguments.current;
158 } else { 162 } else {
159 path = extractParameter(arguments.current); 163 path = extractParameter(arguments.current);
160 } 164 }
161 explicitOut = true; 165 resolutionOutput = out = currentDirectory.resolve(nativeToUriPath(path));
162 out = currentDirectory.resolve(nativeToUriPath(path));
163 sourceMapOut = Uri.parse('$out.map'); 166 sourceMapOut = Uri.parse('$out.map');
164 } 167 }
165 168
166 setOutputType(String argument) { 169 void setOutputType(String argument) {
167 optionsImplyCompilation.add(argument); 170 optionsImplyCompilation.add(argument);
168 if (argument == '--output-type=dart' || 171 if (argument == '--output-type=dart' ||
169 argument == '--output-type=dart-multi') { 172 argument == '--output-type=dart-multi') {
170 outputLanguage = OUTPUT_LANGUAGE_DART; 173 outputLanguage = OUTPUT_LANGUAGE_DART;
171 if (!explicitOut) { 174 if (explicitOutputArguments.isNotEmpty) {
172 out = currentDirectory.resolve('out.dart'); 175 out = currentDirectory.resolve('out.dart');
173 sourceMapOut = currentDirectory.resolve('out.dart.map'); 176 sourceMapOut = currentDirectory.resolve('out.dart.map');
174 } 177 }
175 diagnosticHandler( 178 diagnosticHandler(
176 null, 179 null,
177 null, 180 null,
178 null, 181 null,
179 "--output-type=dart is deprecated. It will remain available " 182 "--output-type=dart is deprecated. It will remain available "
180 "in Dart 1.11, but will be removed in Dart 1.12.", 183 "in Dart 1.11, but will be removed in Dart 1.12.",
181 api.Diagnostic.WARNING); 184 api.Diagnostic.WARNING);
182 } 185 }
183 passThrough(argument); 186 passThrough(argument);
184 } 187 }
185 188
189 void setResolutionInput(String argument) {
190 resolutionInput =
191 currentDirectory.resolve(extractPath(argument, isDirectory: false));
192 }
193
194 void setResolveOnly(String argument) {
195 resolveOnly = true;
196 passThrough(argument);
197 }
198
186 String getDepsOutput(Map<Uri, SourceFile> sourceFiles) { 199 String getDepsOutput(Map<Uri, SourceFile> sourceFiles) {
187 var filenames = sourceFiles.keys.map((uri) => '$uri').toList(); 200 var filenames = sourceFiles.keys.map((uri) => '$uri').toList();
188 filenames.sort(); 201 filenames.sort();
189 return filenames.join("\n"); 202 return filenames.join("\n");
190 } 203 }
191 204
192 setStrip(String argument) { 205 void implyCompilation(String argument) {
193 optionsImplyCompilation.add(argument); 206 optionsImplyCompilation.add(argument);
194 stripArgumentSet = true;
195 passThrough(argument); 207 passThrough(argument);
196 } 208 }
197 209
198 setAnalyzeOnly(String argument) { 210 void setStrip(String argument) {
211 stripArgumentSet = true;
212 implyCompilation(argument);
213 }
214
215 void setAnalyzeOnly(String argument) {
199 analyzeOnly = true; 216 analyzeOnly = true;
200 passThrough(argument); 217 passThrough(argument);
201 } 218 }
202 219
203 setAnalyzeAll(String argument) { 220 void setAnalyzeAll(String argument) {
204 analyzeAll = true; 221 analyzeAll = true;
205 passThrough(argument); 222 passThrough(argument);
206 } 223 }
207 224
208 setAllowNativeExtensions(String argument) { 225 void setAllowNativeExtensions(String argument) {
209 allowNativeExtensions = true; 226 allowNativeExtensions = true;
210 passThrough(argument); 227 passThrough(argument);
211 } 228 }
212 229
213 setVerbose(_) { 230 void setVerbose(_) {
214 diagnosticHandler.verbose = true; 231 diagnosticHandler.verbose = true;
215 passThrough('--verbose'); 232 passThrough('--verbose');
216 } 233 }
217 234
218 implyCompilation(String argument) { 235 void setDumpInfo(String argument) {
219 optionsImplyCompilation.add(argument);
220 passThrough(argument);
221 }
222
223 setDumpInfo(String argument) {
224 implyCompilation(argument); 236 implyCompilation(argument);
225 dumpInfo = true; 237 dumpInfo = true;
226 } 238 }
227 239
228 setTrustTypeAnnotations(String argument) { 240 void setTrustTypeAnnotations(String argument) {
229 trustTypeAnnotations = true; 241 trustTypeAnnotations = true;
230 implyCompilation(argument); 242 implyCompilation(argument);
231 } 243 }
232 244
233 setTrustJSInteropTypeAnnotations(String argument) { 245 void setTrustJSInteropTypeAnnotations(String argument) {
234 trustJSInteropTypeAnnotations = true; 246 trustJSInteropTypeAnnotations = true;
235 implyCompilation(argument); 247 implyCompilation(argument);
236 } 248 }
237 249
238 setTrustPrimitives(String argument) { 250 void setTrustPrimitives(String argument) {
239 implyCompilation(argument); 251 implyCompilation(argument);
240 } 252 }
241 253
242 setCheckedMode(String argument) { 254 void setCheckedMode(String argument) {
243 checkedMode = true; 255 checkedMode = true;
244 passThrough(argument); 256 passThrough(argument);
245 } 257 }
246 258
247 addInEnvironment(String argument) { 259 void addInEnvironment(String argument) {
248 int eqIndex = argument.indexOf('='); 260 int eqIndex = argument.indexOf('=');
249 String name = argument.substring(2, eqIndex); 261 String name = argument.substring(2, eqIndex);
250 String value = argument.substring(eqIndex + 1); 262 String value = argument.substring(eqIndex + 1);
251 environment[name] = value; 263 environment[name] = value;
252 } 264 }
253 265
254 setCategories(String argument) { 266 void setCategories(String argument) {
255 List<String> categories = extractParameter(argument).split(','); 267 List<String> categories = extractParameter(argument).split(',');
256 if (categories.contains('all')) { 268 if (categories.contains('all')) {
257 categories = ["Client", "Server"]; 269 categories = ["Client", "Server"];
258 } else { 270 } else {
259 for (String category in categories) { 271 for (String category in categories) {
260 if (!["Client", "Server"].contains(category)) { 272 if (!["Client", "Server"].contains(category)) {
261 fail('Unsupported library category "$category", ' 273 fail('Unsupported library category "$category", '
262 'supported categories are: Client, Server, all'); 274 'supported categories are: Client, Server, all');
263 } 275 }
264 } 276 }
265 } 277 }
266 passThrough('--categories=${categories.join(",")}'); 278 passThrough('--categories=${categories.join(",")}');
267 } 279 }
268 280
269 void handleThrowOnError(String argument) { 281 void handleThrowOnError(String argument) {
270 diagnosticHandler.throwOnError = true; 282 diagnosticHandler.throwOnError = true;
271 String parameter = extractParameter(argument, isOptionalArgument: true); 283 String parameter = extractParameter(argument, isOptionalArgument: true);
272 if (parameter != null) { 284 if (parameter != null) {
273 diagnosticHandler.throwOnErrorCount = int.parse(parameter); 285 diagnosticHandler.throwOnErrorCount = int.parse(parameter);
274 } 286 }
275 } 287 }
276 288
277 handleShortOptions(String argument) { 289 void handleShortOptions(String argument) {
278 var shortOptions = argument.substring(1).split(""); 290 var shortOptions = argument.substring(1).split("");
279 for (var shortOption in shortOptions) { 291 for (var shortOption in shortOptions) {
280 switch (shortOption) { 292 switch (shortOption) {
281 case 'v': 293 case 'v':
282 setVerbose(null); 294 setVerbose(null);
283 break; 295 break;
284 case 'h': 296 case 'h':
285 case '?': 297 case '?':
286 wantHelp = true; 298 wantHelp = true;
287 break; 299 break;
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 new OptionHandler( 348 new OptionHandler(
337 Flags.trustJSInteropTypeAnnotations, 349 Flags.trustJSInteropTypeAnnotations,
338 (_) => setTrustJSInteropTypeAnnotations( 350 (_) => setTrustJSInteropTypeAnnotations(
339 Flags.trustJSInteropTypeAnnotations)), 351 Flags.trustJSInteropTypeAnnotations)),
340 new OptionHandler(r'--help|/\?|/h', (_) => wantHelp = true), 352 new OptionHandler(r'--help|/\?|/h', (_) => wantHelp = true),
341 new OptionHandler('--packages=.+', setPackageConfig), 353 new OptionHandler('--packages=.+', setPackageConfig),
342 new OptionHandler('--package-root=.+|-p.+', setPackageRoot), 354 new OptionHandler('--package-root=.+|-p.+', setPackageRoot),
343 new OptionHandler(Flags.analyzeAll, setAnalyzeAll), 355 new OptionHandler(Flags.analyzeAll, setAnalyzeAll),
344 new OptionHandler(Flags.analyzeOnly, setAnalyzeOnly), 356 new OptionHandler(Flags.analyzeOnly, setAnalyzeOnly),
345 new OptionHandler(Flags.noSourceMaps, passThrough), 357 new OptionHandler(Flags.noSourceMaps, passThrough),
358 new OptionHandler(Option.resolutionInput, setResolutionInput),
359 new OptionHandler(Flags.resolveOnly, setResolveOnly),
346 new OptionHandler(Flags.analyzeSignaturesOnly, setAnalyzeOnly), 360 new OptionHandler(Flags.analyzeSignaturesOnly, setAnalyzeOnly),
347 new OptionHandler(Flags.disableNativeLiveTypeAnalysis, passThrough), 361 new OptionHandler(Flags.disableNativeLiveTypeAnalysis, passThrough),
348 new OptionHandler('--categories=.*', setCategories), 362 new OptionHandler('--categories=.*', setCategories),
349 new OptionHandler(Flags.disableTypeInference, implyCompilation), 363 new OptionHandler(Flags.disableTypeInference, implyCompilation),
350 new OptionHandler(Flags.terse, passThrough), 364 new OptionHandler(Flags.terse, passThrough),
351 new OptionHandler('--deferred-map=.+', implyCompilation), 365 new OptionHandler('--deferred-map=.+', implyCompilation),
352 new OptionHandler(Flags.dumpInfo, setDumpInfo), 366 new OptionHandler(Flags.dumpInfo, setDumpInfo),
353 new OptionHandler( 367 new OptionHandler(
354 '--disallow-unsafe-eval', (_) => hasDisallowUnsafeEval = true), 368 '--disallow-unsafe-eval', (_) => hasDisallowUnsafeEval = true),
355 new OptionHandler(Option.showPackageWarnings, passThrough), 369 new OptionHandler(Option.showPackageWarnings, passThrough),
356 new OptionHandler(Flags.useContentSecurityPolicy, passThrough), 370 new OptionHandler(Flags.useContentSecurityPolicy, passThrough),
357 new OptionHandler(Flags.enableExperimentalMirrors, passThrough), 371 new OptionHandler(Flags.enableExperimentalMirrors, passThrough),
358 new OptionHandler(Flags.enableAssertMessage, passThrough), 372 new OptionHandler(Flags.enableAssertMessage, passThrough),
373
359 // TODO(floitsch): remove conditional directives flag. 374 // TODO(floitsch): remove conditional directives flag.
360 // We don't provide the info-message yet, since we haven't publicly 375 // We don't provide the info-message yet, since we haven't publicly
361 // launched the feature yet. 376 // launched the feature yet.
362 new OptionHandler(Flags.conditionalDirectives, (_) {}), 377 new OptionHandler(Flags.conditionalDirectives, (_) {}),
363 new OptionHandler('--enable-async', (_) { 378 new OptionHandler('--enable-async', (_) {
364 diagnosticHandler.info( 379 diagnosticHandler.info(
365 "Option '--enable-async' is no longer needed. " 380 "Option '--enable-async' is no longer needed. "
366 "Async-await is supported by default.", 381 "Async-await is supported by default.",
367 api.Diagnostic.HINT); 382 api.Diagnostic.HINT);
368 }), 383 }),
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 436
422 if (checkedMode && trustTypeAnnotations) { 437 if (checkedMode && trustTypeAnnotations) {
423 helpAndFail("Option '${Flags.trustTypeAnnotations}' may not be used in " 438 helpAndFail("Option '${Flags.trustTypeAnnotations}' may not be used in "
424 "checked mode."); 439 "checked mode.");
425 } 440 }
426 441
427 if (packageRoot != null && packageConfig != null) { 442 if (packageRoot != null && packageConfig != null) {
428 helpAndFail("Cannot specify both '--package-root' and '--packages."); 443 helpAndFail("Cannot specify both '--package-root' and '--packages.");
429 } 444 }
430 445
431 if ((analyzeOnly || analyzeAll) && !optionsImplyCompilation.isEmpty) { 446 List<String> optionsImplyOutput = <String>[]
432 if (!analyzeOnly) { 447 ..addAll(optionsImplyCompilation)
448 ..addAll(explicitOutputArguments);
449 if (resolveOnly && !optionsImplyCompilation.isEmpty) {
450 diagnosticHandler.info(
451 "Options $optionsImplyCompilation indicate that compilation is "
452 "expected, but compilation is turned off by the option "
453 "'${Flags.resolveOnly}'.",
454 api.Diagnostic.INFO);
455 } else if ((analyzeOnly || analyzeAll) && !optionsImplyOutput.isEmpty) {
456 if (analyzeAll && !analyzeOnly) {
433 diagnosticHandler.info( 457 diagnosticHandler.info(
434 "Option '${Flags.analyzeAll}' implies '${Flags.analyzeOnly}'.", 458 "Option '${Flags.analyzeAll}' implies '${Flags.analyzeOnly}'.",
435 api.Diagnostic.INFO); 459 api.Diagnostic.INFO);
436 } 460 }
437 diagnosticHandler.info( 461 diagnosticHandler.info(
438 "Options $optionsImplyCompilation indicate that output is expected, " 462 "Options $optionsImplyOutput indicate that output is expected, "
439 "but compilation is turned off by the option '${Flags.analyzeOnly}'.", 463 "but compilation is turned off by the option '${Flags.analyzeOnly}'.",
440 api.Diagnostic.INFO); 464 api.Diagnostic.INFO);
441 } 465 }
442 if (analyzeAll) analyzeOnly = true; 466 if (resolveOnly) {
467 analyzeOnly = analyzeAll = true;
468 } else if (analyzeAll) {
469 analyzeOnly = true;
470 }
443 if (!analyzeOnly) { 471 if (!analyzeOnly) {
444 if (allowNativeExtensions) { 472 if (allowNativeExtensions) {
445 helpAndFail("Option '${Flags.allowNativeExtensions}' is only supported " 473 helpAndFail("Option '${Flags.allowNativeExtensions}' is only supported "
446 "in combination with the '${Flags.analyzeOnly}' option."); 474 "in combination with the '${Flags.analyzeOnly}' option.");
447 } 475 }
448 } 476 }
449 if (dumpInfo && outputLanguage == OUTPUT_LANGUAGE_DART) { 477 if (dumpInfo && outputLanguage == OUTPUT_LANGUAGE_DART) {
450 helpAndFail("Option '${Flags.dumpInfo}' is not supported in " 478 helpAndFail("Option '${Flags.dumpInfo}' is not supported in "
451 "combination with the '--output-type=dart' option."); 479 "combination with the '--output-type=dart' option.");
452 } 480 }
453 481
454 options.add('--out=$out'); 482 options.add('--out=$out');
455 options.add('--source-map=$sourceMapOut'); 483 options.add('--source-map=$sourceMapOut');
456 484
457 RandomAccessFileOutputProvider outputProvider = 485 RandomAccessFileOutputProvider outputProvider =
458 new RandomAccessFileOutputProvider(out, sourceMapOut, 486 new RandomAccessFileOutputProvider(out, sourceMapOut,
459 onInfo: diagnosticHandler.info, onFailure: fail); 487 onInfo: diagnosticHandler.info,
488 onFailure: fail,
489 resolutionOutput: resolveOnly ? resolutionOutput : null);
460 490
461 api.CompilationResult compilationDone(api.CompilationResult result) { 491 api.CompilationResult compilationDone(api.CompilationResult result) {
462 if (analyzeOnly) return result; 492 if (analyzeOnly) return result;
463 if (!result.isSuccess) { 493 if (!result.isSuccess) {
464 fail('Compilation failed.'); 494 fail('Compilation failed.');
465 } 495 }
466 writeString( 496 writeString(
467 Uri.parse('$out.deps'), getDepsOutput(inputProvider.sourceFiles)); 497 Uri.parse('$out.deps'), getDepsOutput(inputProvider.sourceFiles));
468 diagnosticHandler 498 diagnosticHandler
469 .info('Compiled ${inputProvider.dartCharactersRead} characters Dart ' 499 .info('Compiled ${inputProvider.dartCharactersRead} characters Dart '
470 '-> ${outputProvider.totalCharactersWritten} characters ' 500 '-> ${outputProvider.totalCharactersWritten} characters '
471 '$outputLanguage in ' 501 '$outputLanguage in '
472 '${relativize(currentDirectory, out, Platform.isWindows)}'); 502 '${relativize(currentDirectory, out, Platform.isWindows)}');
473 if (diagnosticHandler.verbose) { 503 if (diagnosticHandler.verbose) {
474 String input = uriPathToNative(arguments[0]); 504 String input = uriPathToNative(arguments[0]);
475 print('Dart file ($input) compiled to $outputLanguage.'); 505 print('Dart file ($input) compiled to $outputLanguage.');
476 print('Wrote the following files:'); 506 print('Wrote the following files:');
477 for (String filename in outputProvider.allOutputFiles) { 507 for (String filename in outputProvider.allOutputFiles) {
478 print(" $filename"); 508 print(" $filename");
479 } 509 }
480 } else if (!explicitOut) { 510 } else if (explicitOutputArguments.isNotEmpty) {
481 String input = uriPathToNative(arguments[0]); 511 String input = uriPathToNative(arguments[0]);
482 String output = relativize(currentDirectory, out, Platform.isWindows); 512 String output = relativize(currentDirectory, out, Platform.isWindows);
483 print('Dart file ($input) compiled to $outputLanguage: $output'); 513 print('Dart file ($input) compiled to $outputLanguage: $output');
484 } 514 }
485 return result; 515 return result;
486 } 516 }
487 517
488 Uri script = currentDirectory.resolve(arguments[0]); 518 Uri script = currentDirectory.resolve(arguments[0]);
489 CompilerOptions compilerOptions = new CompilerOptions.parse( 519 CompilerOptions compilerOptions = new CompilerOptions.parse(
490 entryPoint: script, 520 entryPoint: script,
491 libraryRoot: libraryRoot, 521 libraryRoot: libraryRoot,
492 packageRoot: packageRoot, 522 packageRoot: packageRoot,
493 packageConfig: packageConfig, 523 packageConfig: packageConfig,
494 packagesDiscoveryProvider: findPackages, 524 packagesDiscoveryProvider: findPackages,
525 resolutionInput: resolutionInput,
526 resolutionOutput: resolutionOutput,
495 options: options, 527 options: options,
496 environment: environment); 528 environment: environment);
497 return compileFunc(compilerOptions, inputProvider, 529 return compileFunc(
498 diagnosticHandler, outputProvider) 530 compilerOptions, inputProvider, diagnosticHandler, outputProvider)
499 .then(compilationDone); 531 .then(compilationDone);
500 } 532 }
501 533
502 class AbortLeg { 534 class AbortLeg {
503 final message; 535 final message;
504 AbortLeg(this.message); 536 AbortLeg(this.message);
505 toString() => 'Aborted due to --throw-on-error: $message'; 537 toString() => 'Aborted due to --throw-on-error: $message';
506 } 538 }
507 539
508 void writeString(Uri uri, String text) { 540 void writeString(Uri uri, String text) {
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
784 } else if (exitCode == 253) { 816 } else if (exitCode == 253) {
785 print(">>> TEST CRASH"); 817 print(">>> TEST CRASH");
786 } else { 818 } else {
787 print(">>> TEST FAIL"); 819 print(">>> TEST FAIL");
788 } 820 }
789 stderr.writeln(">>> EOF STDERR"); 821 stderr.writeln(">>> EOF STDERR");
790 subscription.resume(); 822 subscription.resume();
791 }); 823 });
792 }); 824 });
793 } 825 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/compiler.dart ('k') | pkg/compiler/lib/src/options.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698