Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Unified Diff: pkg/compiler/lib/src/library_loader.dart

Issue 1192103002: Support serialization of the compiler backbone. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld 408576698