| 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' | 7 import 'dart:async' | 
| 8     show Future, EventSink; | 8     show Future, EventSink; | 
| 9 import 'dart:io' | 9 import 'dart:io' | 
| 10     show exit, File, FileMode, Platform, RandomAccessFile, FileSystemException; | 10     show exit, File, FileMode, Platform, RandomAccessFile, FileSystemException; | 
| (...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 314   if (arguments.length > 1) { | 314   if (arguments.length > 1) { | 
| 315     var extra = arguments.sublist(1); | 315     var extra = arguments.sublist(1); | 
| 316     helpAndFail('Error: Extra arguments: ${extra.join(" ")}'); | 316     helpAndFail('Error: Extra arguments: ${extra.join(" ")}'); | 
| 317   } | 317   } | 
| 318 | 318 | 
| 319   Uri uri = currentDirectory.resolve(arguments[0]); | 319   Uri uri = currentDirectory.resolve(arguments[0]); | 
| 320   if (packageRoot == null) { | 320   if (packageRoot == null) { | 
| 321     packageRoot = uri.resolve('./packages/'); | 321     packageRoot = uri.resolve('./packages/'); | 
| 322   } | 322   } | 
| 323 | 323 | 
| 324   diagnosticHandler.info('package root is $packageRoot'); | 324   diagnosticHandler.info('Package root is $packageRoot'); | 
| 325 | 325 | 
| 326   int totalCharactersWritten = 0; | 326   int totalCharactersWritten = 0; | 
| 327 | 327 | 
|  | 328   options.add('--out=$out'); | 
| 328   options.add('--source-map=$sourceMapOut'); | 329   options.add('--source-map=$sourceMapOut'); | 
| 329 | 330 | 
| 330   List<String> allOutputFiles = new List<String>(); | 331   List<String> allOutputFiles = new List<String>(); | 
| 331 | 332 | 
| 332   compilationDone(String code) { | 333   compilationDone(String code) { | 
| 333     if (analyzeOnly) return; | 334     if (analyzeOnly) return; | 
| 334     if (code == null) { | 335     if (code == null) { | 
| 335       fail('Error: Compilation failed.'); | 336       fail('Error: Compilation failed.'); | 
| 336     } | 337     } | 
| 337     writeString(Uri.parse('$out.deps'), | 338     writeString(Uri.parse('$out.deps'), | 
| 338                 getDepsOutput(inputProvider.sourceFiles)); | 339                 getDepsOutput(inputProvider.sourceFiles)); | 
| 339     diagnosticHandler.info( | 340     diagnosticHandler.info( | 
| 340          'compiled ${inputProvider.dartCharactersRead} characters Dart ' | 341          'Compiled ${inputProvider.dartCharactersRead} characters Dart ' | 
| 341          '-> $totalCharactersWritten characters $outputLanguage ' | 342          '-> $totalCharactersWritten characters $outputLanguage ' | 
| 342          'in ${relativize(currentDirectory, out, isWindows)}'); | 343          'in ${relativize(currentDirectory, out, isWindows)}'); | 
| 343     if (diagnosticHandler.verbose) { | 344     if (diagnosticHandler.verbose) { | 
| 344       String input = uriPathToNative(arguments[0]); | 345       String input = uriPathToNative(arguments[0]); | 
| 345       print('Dart file ($input) compiled to $outputLanguage.'); | 346       print('Dart file ($input) compiled to $outputLanguage.'); | 
| 346       print('Wrote the following files:'); | 347       print('Wrote the following files:'); | 
| 347       for (String filename in allOutputFiles) { | 348       for (String filename in allOutputFiles) { | 
| 348         print("  $filename"); | 349         print("  $filename"); | 
| 349       } | 350       } | 
| 350     } else if (!explicitOut) { | 351     } else if (!explicitOut) { | 
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 403       int offset = 0; | 404       int offset = 0; | 
| 404       while (offset < data.length) { | 405       while (offset < data.length) { | 
| 405         output.writeStringSync( | 406         output.writeStringSync( | 
| 406             data.substring(offset, math.min(offset + chunkSize, data.length))); | 407             data.substring(offset, math.min(offset + chunkSize, data.length))); | 
| 407         offset += chunkSize; | 408         offset += chunkSize; | 
| 408       } | 409       } | 
| 409       charactersWritten += data.length; | 410       charactersWritten += data.length; | 
| 410     } | 411     } | 
| 411 | 412 | 
| 412     onDone() { | 413     onDone() { | 
| 413       if (sourceMapFileName != null) { |  | 
| 414         // Using # is the new proposed standard. @ caused problems in Internet |  | 
| 415         // Explorer due to "Conditional Compilation Statements" in JScript, |  | 
| 416         // see: |  | 
| 417         // http://msdn.microsoft.com/en-us/library/7kx09ct1(v=vs.80).aspx |  | 
| 418         // About source maps, see: |  | 
| 419         // https://docs.google.com/a/google.com/document/d/1U1RGAehQwRypUTovF1KR
     lpiOFze0b-_2gc6fAH0KY0k/edit |  | 
| 420         // TODO(http://dartbug.com/11914): Remove @ line. |  | 
| 421         String sourceMapTag = ''' |  | 
| 422 |  | 
| 423 //# sourceMappingURL=$sourceMapFileName |  | 
| 424 //@ sourceMappingURL=$sourceMapFileName |  | 
| 425 '''; |  | 
| 426         writeStringSync(sourceMapTag); |  | 
| 427       } |  | 
| 428       output.closeSync(); | 414       output.closeSync(); | 
| 429       if (isPrimaryOutput) { | 415       if (isPrimaryOutput) { | 
| 430         totalCharactersWritten += charactersWritten; | 416         totalCharactersWritten += charactersWritten; | 
| 431       } | 417       } | 
| 432     } | 418     } | 
| 433 | 419 | 
| 434     return new EventSinkWrapper(writeStringSync, onDone); | 420     return new EventSinkWrapper(writeStringSync, onDone); | 
| 435   } | 421   } | 
| 436 | 422 | 
| 437   return compileFunc(uri, libraryRoot, packageRoot, | 423   return compileFunc(uri, libraryRoot, packageRoot, | 
| (...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 642     } | 628     } | 
| 643   } | 629   } | 
| 644 | 630 | 
| 645   try { | 631   try { | 
| 646     return compilerMain(arguments).catchError(onError); | 632     return compilerMain(arguments).catchError(onError); | 
| 647   } catch (exception, trace) { | 633   } catch (exception, trace) { | 
| 648     onError(exception, trace); | 634     onError(exception, trace); | 
| 649     return new Future.value(); | 635     return new Future.value(); | 
| 650   } | 636   } | 
| 651 } | 637 } | 
| OLD | NEW | 
|---|