OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 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 | 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 // Helper class for writing compiler tests. | 5 // Helper class for writing compiler tests. |
6 library trydart.compiler_test_case; | 6 library trydart.compiler_test_case; |
7 | 7 |
8 import 'dart:async' show | 8 import 'dart:async' show |
9 Future; | 9 Future; |
10 | 10 |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 final MockCompiler compiler; | 52 final MockCompiler compiler; |
53 | 53 |
54 CompilerTestCase.init(this.source, this.scriptUri, this.compiler); | 54 CompilerTestCase.init(this.source, this.scriptUri, this.compiler); |
55 | 55 |
56 CompilerTestCase.intermediate(String source, Uri scriptUri) | 56 CompilerTestCase.intermediate(String source, Uri scriptUri) |
57 : this.init(source, scriptUri, compilerFor(source, scriptUri)); | 57 : this.init(source, scriptUri, compilerFor(source, scriptUri)); |
58 | 58 |
59 CompilerTestCase(String source, [String path]) | 59 CompilerTestCase(String source, [String path]) |
60 : this.intermediate(source, customUri(path == null ? 'main.dart' : path)); | 60 : this.intermediate(source, customUri(path == null ? 'main.dart' : path)); |
61 | 61 |
62 Future<LibraryElement> get mainApp { | 62 Future<LibraryElement> loadMainApp() { |
63 return compiler.libraryLoader.loadLibrary(scriptUri) | 63 return compiler.libraryLoader.loadLibrary(scriptUri) |
64 .then((LibraryElement library) { | 64 .then((LibraryElement library) { |
65 if (compiler.mainApp == null) { | 65 if (compiler.mainApp == null) { |
66 compiler.mainApp = library; | 66 compiler.mainApp = library; |
67 } else if (compiler.mainApp != library) { | 67 } else if (compiler.mainApp != library) { |
68 throw | 68 throw |
69 "Inconsistent use of compiler" | 69 "Inconsistent use of compiler" |
70 " (${compiler.mainApp} != $library)."; | 70 " (${compiler.mainApp} != $library)."; |
71 } | 71 } |
72 return library; | 72 return library; |
73 }); | 73 }); |
74 } | 74 } |
75 | 75 |
76 Future run(); | 76 Future run(); |
77 | 77 |
78 /// Returns a future for the mainApp after running the compiler. | 78 /// Returns a future for the mainApp after running the compiler. |
79 Future<LibraryElement> compile() { | 79 Future<LibraryElement> compile() { |
80 return mainApp.then((LibraryElement library) { | 80 return loadMainApp().then((LibraryElement library) { |
81 return compiler.runCompiler(scriptUri).then((_) => library); | 81 return compiler.runCompiler(scriptUri).then((_) => library); |
82 }); | 82 }); |
83 } | 83 } |
84 | 84 |
85 String toString() => source; | 85 String toString() => source; |
86 } | 86 } |
OLD | NEW |