| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | |
| 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. | |
| 4 | |
| 5 /// Alternative compile method for dart2js commandline that stores the compiler | |
| 6 /// for later inspection. | |
| 7 /// | |
| 8 /// Use this in testing to inspect the compiler after compilation by setting | |
| 9 /// the `compileFunc` variable in `package:compiler/src/dart2js.dart` | |
| 10 /// to [compiler] before calling the `internalMain` function. | |
| 11 | |
| 12 library dart2js.alt; | |
| 13 | |
| 14 import 'dart:async'; | |
| 15 import 'package:compiler/compiler.dart'; | |
| 16 import 'package:compiler/src/apiimpl.dart'; | |
| 17 | |
| 18 Compiler compiler; | |
| 19 | |
| 20 Future<String> compile(Uri script, | |
| 21 Uri libraryRoot, | |
| 22 Uri packageRoot, | |
| 23 CompilerInputProvider inputProvider, | |
| 24 DiagnosticHandler handler, | |
| 25 [List<String> options = const [], | |
| 26 CompilerOutputProvider outputProvider, | |
| 27 Map<String, dynamic> environment = const {}]) { | |
| 28 if (!libraryRoot.path.endsWith("/")) { | |
| 29 throw new ArgumentError("libraryRoot must end with a /"); | |
| 30 } | |
| 31 if (packageRoot != null && !packageRoot.path.endsWith("/")) { | |
| 32 throw new ArgumentError("packageRoot must end with a /"); | |
| 33 } | |
| 34 compiler = new Compiler(inputProvider, | |
| 35 outputProvider, | |
| 36 handler, | |
| 37 libraryRoot, | |
| 38 packageRoot, | |
| 39 options, | |
| 40 environment); | |
| 41 return compiler.run(script).then((_) { | |
| 42 String code = compiler.assembledCode; | |
| 43 if (code != null && outputProvider != null) { | |
| 44 code = ''; // Non-null signals success. | |
| 45 } | |
| 46 return code; | |
| 47 }); | |
| 48 } | |
| OLD | NEW |