anchor.diff:    // directly. In effect, we don't support truly asynchronous API.
     String code = api.compile(uri, libraryRoot, provider, handler, options).value;
     if (code === null) {
  -    fail('Error: compilation failed.');
  +    fail('Error: Compilation failed.');
     }
     writeString(out, code);
     int jsBytesWritten = code.length;
     info('compiled $dartBytesRead bytes Dart -> $jsBytesWritten bytes JS '
          + 'in ${relativize(cwd, out)}');
  +  if (!explicitOut) {
  +    String input = uriPathToNative(arguments[0]);
  +    String output = relativize(cwd, out);
  +    print('Dart file $input compiled to JavaScript: $output');
  +  }
   }
   
   class AbortLeg {
  
positive.code:   // terminal size normally 80x24. Two lines are used for the prompts
    // before and after running the compiler.
    print('''
  dart2js [OPTIONS...] DART-FILE
  
  A Dart to JavaScript compiler.
  
  By default, the compiled JavaScript code is saved to a file named
  out.js in the current directory.
  
  Common options:
  
    --help      Display this message.
  
    --out=FILE  Save the output to FILE (default is out.js).
  
    --checked   Turn on checked mode in generated JavaScript code.
  ''');
  }
  
  void helpAndExit() {
  
negative.code:   parseCommandLine(handlers, argv);
  
    if (arguments.isEmpty()) {
      helpAndFail('Error: No Dart file specified.');
    }
    if (arguments.length > 1) {
      var extra = arguments.getRange(1, arguments.length - 1);
      helpAndFail('Error: Extra arguments: ${Strings.join(extra, " ")}');
    }
  
    Map<String, SourceFile> sourceFiles = <SourceFile>{};
  