| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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'); | 5 #library('dart2js'); |
| 6 | 6 |
| 7 #import('dart:io'); | 7 #import('dart:io'); |
| 8 #import('dart:uri'); | 8 #import('dart:uri'); |
| 9 #import('dart:utf'); | 9 #import('dart:utf'); |
| 10 | 10 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 bool throwOnError = false; | 69 bool throwOnError = false; |
| 70 bool showWarnings = true; | 70 bool showWarnings = true; |
| 71 bool verbose = false; | 71 bool verbose = false; |
| 72 Uri libraryRoot = cwd; | 72 Uri libraryRoot = cwd; |
| 73 Uri out = cwd.resolve('out.js'); | 73 Uri out = cwd.resolve('out.js'); |
| 74 Uri sourceMapOut = cwd.resolve('out.js.map'); | 74 Uri sourceMapOut = cwd.resolve('out.js.map'); |
| 75 Uri packageRoot = null; | 75 Uri packageRoot = null; |
| 76 List<String> options = new List<String>(); | 76 List<String> options = new List<String>(); |
| 77 bool explicitOut = false; | 77 bool explicitOut = false; |
| 78 bool wantHelp = false; | 78 bool wantHelp = false; |
| 79 bool enableColors = true; | 79 bool enableColors = false; |
| 80 | 80 |
| 81 passThrough(String argument) => options.add(argument); | 81 passThrough(String argument) => options.add(argument); |
| 82 | 82 |
| 83 setLibraryRoot(String argument) { | 83 setLibraryRoot(String argument) { |
| 84 libraryRoot = cwd.resolve(extractPath(argument)); | 84 libraryRoot = cwd.resolve(extractPath(argument)); |
| 85 } | 85 } |
| 86 | 86 |
| 87 setPackageRoot(String argument) { | 87 setPackageRoot(String argument) { |
| 88 packageRoot = cwd.resolve(extractPath(argument)); | 88 packageRoot = cwd.resolve(extractPath(argument)); |
| 89 } | 89 } |
| (...skipping 28 matching lines...) Expand all Loading... |
| 118 List<OptionHandler> handlers = <OptionHandler>[ | 118 List<OptionHandler> handlers = <OptionHandler>[ |
| 119 new OptionHandler('-[chv?]+', handleShortOptions), | 119 new OptionHandler('-[chv?]+', handleShortOptions), |
| 120 new OptionHandler('--throw-on-error', (_) => throwOnError = true), | 120 new OptionHandler('--throw-on-error', (_) => throwOnError = true), |
| 121 new OptionHandler('--suppress-warnings', (_) => showWarnings = false), | 121 new OptionHandler('--suppress-warnings', (_) => showWarnings = false), |
| 122 new OptionHandler('--output-type=dart|--output-type=js', passThrough), | 122 new OptionHandler('--output-type=dart|--output-type=js', passThrough), |
| 123 new OptionHandler('--verbose', (_) => verbose = true), | 123 new OptionHandler('--verbose', (_) => verbose = true), |
| 124 new OptionHandler('--library-root=.+', setLibraryRoot), | 124 new OptionHandler('--library-root=.+', setLibraryRoot), |
| 125 new OptionHandler('--out=.+|-o.+', setOutput), | 125 new OptionHandler('--out=.+|-o.+', setOutput), |
| 126 new OptionHandler('--allow-mock-compilation', passThrough), | 126 new OptionHandler('--allow-mock-compilation', passThrough), |
| 127 new OptionHandler('--minify', passThrough), | 127 new OptionHandler('--minify', passThrough), |
| 128 // TODO(ahe): Remove the --no-colors option. |
| 128 new OptionHandler('--no-colors', (_) => enableColors = false), | 129 new OptionHandler('--no-colors', (_) => enableColors = false), |
| 130 new OptionHandler('--colors', (_) => enableColors = true), |
| 129 new OptionHandler('--enable[_-]checked[_-]mode|--checked', | 131 new OptionHandler('--enable[_-]checked[_-]mode|--checked', |
| 130 (_) => passThrough('--enable-checked-mode')), | 132 (_) => passThrough('--enable-checked-mode')), |
| 131 new OptionHandler(@'--help|/\?|/h', (_) => wantHelp = true), | 133 new OptionHandler(@'--help|/\?|/h', (_) => wantHelp = true), |
| 132 new OptionHandler(@'--package-root=.+|-p.+', setPackageRoot), | 134 new OptionHandler(@'--package-root=.+|-p.+', setPackageRoot), |
| 133 // The following two options must come last. | 135 // The following two options must come last. |
| 134 new OptionHandler('-.*', (String argument) { | 136 new OptionHandler('-.*', (String argument) { |
| 135 helpAndFail('Error: Unknown option "$argument".'); | 137 helpAndFail('Error: Unknown option "$argument".'); |
| 136 }), | 138 }), |
| 137 new OptionHandler('.*', (String argument) { | 139 new OptionHandler('.*', (String argument) { |
| 138 arguments.add(nativeToUriPath(argument)); | 140 arguments.add(nativeToUriPath(argument)); |
| (...skipping 26 matching lines...) Expand all Loading... |
| 165 throw 'Error: Cannot read "${relativize(cwd, uri)}" (${ex.osError}).'; | 167 throw 'Error: Cannot read "${relativize(cwd, uri)}" (${ex.osError}).'; |
| 166 } | 168 } |
| 167 dartBytesRead += source.length; | 169 dartBytesRead += source.length; |
| 168 sourceFiles[uri.toString()] = | 170 sourceFiles[uri.toString()] = |
| 169 new SourceFile(relativize(cwd, uri), source); | 171 new SourceFile(relativize(cwd, uri), source); |
| 170 return new Future.immediate(source); | 172 return new Future.immediate(source); |
| 171 } | 173 } |
| 172 | 174 |
| 173 void info(var message, [api.Diagnostic kind = api.Diagnostic.VERBOSE_INFO]) { | 175 void info(var message, [api.Diagnostic kind = api.Diagnostic.VERBOSE_INFO]) { |
| 174 if (!verbose && kind === api.Diagnostic.VERBOSE_INFO) return; | 176 if (!verbose && kind === api.Diagnostic.VERBOSE_INFO) return; |
| 175 print('${colors.green("info:")} $message'); | 177 if (enableColors) { |
| 178 print('${colors.green("info:")} $message'); |
| 179 } else { |
| 180 print('info: $message'); |
| 181 } |
| 176 } | 182 } |
| 177 | 183 |
| 178 bool isAborting = false; | 184 bool isAborting = false; |
| 179 | 185 |
| 180 final int FATAL = api.Diagnostic.CRASH.ordinal | api.Diagnostic.ERROR.ordinal; | 186 final int FATAL = api.Diagnostic.CRASH.ordinal | api.Diagnostic.ERROR.ordinal; |
| 181 final int INFO = | 187 final int INFO = |
| 182 api.Diagnostic.INFO.ordinal | api.Diagnostic.VERBOSE_INFO.ordinal; | 188 api.Diagnostic.INFO.ordinal | api.Diagnostic.VERBOSE_INFO.ordinal; |
| 183 | 189 |
| 184 void handler(Uri uri, int begin, int end, String message, | 190 void handler(Uri uri, int begin, int end, String message, |
| 185 api.Diagnostic kind) { | 191 api.Diagnostic kind) { |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 } | 290 } |
| 285 | 291 |
| 286 void compilerMain(Options options) { | 292 void compilerMain(Options options) { |
| 287 var root = uriPathToNative("/$LIBRARY_ROOT"); | 293 var root = uriPathToNative("/$LIBRARY_ROOT"); |
| 288 List<String> argv = ['--library-root=${options.script}$root']; | 294 List<String> argv = ['--library-root=${options.script}$root']; |
| 289 argv.addAll(options.arguments); | 295 argv.addAll(options.arguments); |
| 290 compile(argv); | 296 compile(argv); |
| 291 } | 297 } |
| 292 | 298 |
| 293 void help() { | 299 void help() { |
| 294 // This message should be no longer than 22 lines. The default | 300 // This message should be no longer than 20 lines. The default |
| 295 // terminal size normally 80x24. Two lines are used for the prompts | 301 // terminal size normally 80x24. Two lines are used for the prompts |
| 296 // before and after running the compiler. | 302 // before and after running the compiler. Another two lines may be |
| 303 // used to print an error message. |
| 297 print(''' | 304 print(''' |
| 298 Usage: dart2js [options] dartfile | 305 Usage: dart2js [options] dartfile |
| 299 | 306 |
| 300 Compiles Dart to JavaScript. | 307 Compiles Dart to JavaScript. |
| 301 | 308 |
| 302 Common options: | 309 Common options: |
| 303 -o<file> Generate the output into <file>. | 310 -o<file> Generate the output into <file>. |
| 304 -c Insert runtime type checks and enable assertions (checked mode). | 311 -c Insert runtime type checks and enable assertions (checked mode). |
| 305 -h Display this message (add -v for information about all options).'''); | 312 -h Display this message (add -v for information about all options).'''); |
| 306 } | 313 } |
| (...skipping 19 matching lines...) Expand all Loading... |
| 326 | 333 |
| 327 -p<path>, --package-root=<path> | 334 -p<path>, --package-root=<path> |
| 328 Where to find packages, that is, "package:..." imports. | 335 Where to find packages, that is, "package:..." imports. |
| 329 | 336 |
| 330 --minify | 337 --minify |
| 331 Generate minified output. | 338 Generate minified output. |
| 332 | 339 |
| 333 --suppress-warnings | 340 --suppress-warnings |
| 334 Do not display any warnings. | 341 Do not display any warnings. |
| 335 | 342 |
| 336 --no-colors | 343 --colors |
| 337 Do not add colors to diagnostic messages. | 344 Add colors to diagnostic messages. |
| 338 | 345 |
| 339 The following options are only used for compiler development and may | 346 The following options are only used for compiler development and may |
| 340 be removed in a future version: | 347 be removed in a future version: |
| 341 | 348 |
| 342 --output-type=dart | 349 --output-type=dart |
| 343 Output Dart code instead of JavaScript. | 350 Output Dart code instead of JavaScript. |
| 344 | 351 |
| 345 --throw-on-error | 352 --throw-on-error |
| 346 Throw an exception if a compile-time error is detected. | 353 Throw an exception if a compile-time error is detected. |
| 347 | 354 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 377 } catch (ignored) { | 384 } catch (ignored) { |
| 378 print('Internal error: error while printing exception'); | 385 print('Internal error: error while printing exception'); |
| 379 } | 386 } |
| 380 try { | 387 try { |
| 381 print(trace); | 388 print(trace); |
| 382 } finally { | 389 } finally { |
| 383 exit(253); // 253 is recognized as a crash by our test scripts. | 390 exit(253); // 253 is recognized as a crash by our test scripts. |
| 384 } | 391 } |
| 385 } | 392 } |
| 386 } | 393 } |
| OLD | NEW |