| 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:async'; | 7 import 'dart:async'; |
| 8 import 'dart:collection' show Queue, LinkedHashMap; | 8 import 'dart:collection' show Queue, LinkedHashMap; |
| 9 import 'dart:io'; | 9 import 'dart:io'; |
| 10 import 'dart:uri'; | 10 import 'dart:uri'; |
| (...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 'compiled ${inputProvider.dartCharactersRead} characters Dart ' | 255 'compiled ${inputProvider.dartCharactersRead} characters Dart ' |
| 256 '-> $charactersWritten characters $outputLanguage ' | 256 '-> $charactersWritten characters $outputLanguage ' |
| 257 'in ${relativize(cwd, out, isWindows)}'); | 257 'in ${relativize(cwd, out, isWindows)}'); |
| 258 if (!explicitOut) { | 258 if (!explicitOut) { |
| 259 String input = uriPathToNative(arguments[0]); | 259 String input = uriPathToNative(arguments[0]); |
| 260 String output = relativize(cwd, out, isWindows); | 260 String output = relativize(cwd, out, isWindows); |
| 261 print('Dart file $input compiled to $outputLanguage: $output'); | 261 print('Dart file $input compiled to $outputLanguage: $output'); |
| 262 } | 262 } |
| 263 } | 263 } |
| 264 | 264 |
| 265 StreamSink<String> outputProvider(String name, String extension) { | 265 EventSink<String> outputProvider(String name, String extension) { |
| 266 Uri uri; | 266 Uri uri; |
| 267 String sourceMapFileName; | 267 String sourceMapFileName; |
| 268 bool isPrimaryOutput = false; | 268 bool isPrimaryOutput = false; |
| 269 if (name == '') { | 269 if (name == '') { |
| 270 if (extension == 'js' || extension == 'dart') { | 270 if (extension == 'js' || extension == 'dart') { |
| 271 isPrimaryOutput = true; | 271 isPrimaryOutput = true; |
| 272 uri = out; | 272 uri = out; |
| 273 sourceMapFileName = | 273 sourceMapFileName = |
| 274 sourceMapOut.path.substring(sourceMapOut.path.lastIndexOf('/') + 1); | 274 sourceMapOut.path.substring(sourceMapOut.path.lastIndexOf('/') + 1); |
| 275 } else if (extension == 'js.map' || extension == 'dart.map') { | 275 } else if (extension == 'js.map' || extension == 'dart.map') { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 307 return sink; | 307 return sink; |
| 308 } | 308 } |
| 309 | 309 |
| 310 api.compile(uri, libraryRoot, packageRoot, | 310 api.compile(uri, libraryRoot, packageRoot, |
| 311 inputProvider.readStringFromUri, handler, | 311 inputProvider.readStringFromUri, handler, |
| 312 options, outputProvider) | 312 options, outputProvider) |
| 313 .then(compilationDone); | 313 .then(compilationDone); |
| 314 } | 314 } |
| 315 | 315 |
| 316 // TODO(ahe): Get rid of this class if http://dartbug.com/8118 is fixed. | 316 // TODO(ahe): Get rid of this class if http://dartbug.com/8118 is fixed. |
| 317 class CountingSink implements StreamSink<String> { | 317 class CountingSink implements EventSink<String> { |
| 318 final StreamSink<String> sink; | 318 final EventSink<String> sink; |
| 319 int count = 0; | 319 int count = 0; |
| 320 | 320 |
| 321 CountingSink(this.sink); | 321 CountingSink(this.sink); |
| 322 | 322 |
| 323 add(String value) { | 323 void add(String value) { |
| 324 sink.add(value); | 324 sink.add(value); |
| 325 count += value.length; | 325 count += value.length; |
| 326 } | 326 } |
| 327 | 327 |
| 328 signalError(AsyncError error) => sink.signalError(error); | 328 void addError(AsyncError error) { sink.signalError(error); } |
| 329 | 329 |
| 330 close() => sink.close(); | 330 void close() { sink.close(); } |
| 331 } | 331 } |
| 332 | 332 |
| 333 class AbortLeg { | 333 class AbortLeg { |
| 334 final message; | 334 final message; |
| 335 AbortLeg(this.message); | 335 AbortLeg(this.message); |
| 336 toString() => 'Aborted due to --throw-on-error: $message'; | 336 toString() => 'Aborted due to --throw-on-error: $message'; |
| 337 } | 337 } |
| 338 | 338 |
| 339 void writeString(Uri uri, String text) { | 339 void writeString(Uri uri, String text) { |
| 340 if (uri.scheme != 'file') { | 340 if (uri.scheme != 'file') { |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 491 } catch (ignored) { | 491 } catch (ignored) { |
| 492 print('Internal error: error while printing exception'); | 492 print('Internal error: error while printing exception'); |
| 493 } | 493 } |
| 494 try { | 494 try { |
| 495 print(trace); | 495 print(trace); |
| 496 } finally { | 496 } finally { |
| 497 exit(253); // 253 is recognized as a crash by our test scripts. | 497 exit(253); // 253 is recognized as a crash by our test scripts. |
| 498 } | 498 } |
| 499 } | 499 } |
| 500 } | 500 } |
| OLD | NEW |