Chromium Code Reviews| Index: pkg/compiler/lib/src/library_loader.dart |
| diff --git a/pkg/compiler/lib/src/library_loader.dart b/pkg/compiler/lib/src/library_loader.dart |
| index a566d3f27d33b24bb5cb2e9152311f66648137da..172435d093553cc0d7b347c725e9a7b043f234af 100644 |
| --- a/pkg/compiler/lib/src/library_loader.dart |
| +++ b/pkg/compiler/lib/src/library_loader.dart |
| @@ -482,7 +482,7 @@ class _LibraryLoaderTask extends CompilerTask implements LibraryLoaderTask { |
| then((Script sourceScript) { |
| if (sourceScript == null) return; |
| - CompilationUnitElement unit = |
| + CompilationUnitElementX unit = |
| new CompilationUnitElementX(sourceScript, library); |
| compiler.withCurrentElement(unit, () { |
| compiler.scanner.scan(unit); |
| @@ -523,6 +523,19 @@ class _LibraryLoaderTask extends CompilerTask implements LibraryLoaderTask { |
| }); |
| } |
| + Future<LibraryElement> readLibrary(LibraryDependencyHandler handler, |
| + Uri resolvedUri, |
| + LibraryElement library) async { |
| + compiler.onLibraryCreated(library); |
| + libraryCanonicalUriMap[resolvedUri] = library; |
| + await compiler.onLibraryScanned(library, handler); |
| + for (LibraryTag tag in library.tags) { |
| + LibraryElement dependency = library.getLibraryFromTag(tag); |
| + await createLibrary(handler, library, dependency.canonicalUri); |
| + } |
| + return library; |
| + } |
| + |
| /** |
| * Create (or reuse) a library element for the library specified by the |
| * [resolvedUri]. |
| @@ -539,6 +552,10 @@ class _LibraryLoaderTask extends CompilerTask implements LibraryLoaderTask { |
| if (library != null) { |
| return new Future.value(library); |
| } |
| + library = compiler.serialization.readLibrary(resolvedUri); |
|
floitsch
2015/06/26 20:54:04
This is confusing:
we have two readLibrary, but th
Johnni Winther
2015/07/03 12:13:44
Done.
|
| + if (library != null) { |
| + return readLibrary(handler, resolvedUri, library); |
| + } |
| var readScript = compiler.readScript; |
| if (readableUri == null) { |
| readableUri = resolvedUri; |