Index: pkg/compiler/lib/src/js_backend/backend.dart |
diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart |
index e943cf8838e085610476fdf99ca29b4db1a15760..b1b2d41f59a67112d91d7895708feb8781c18b55 100644 |
--- a/pkg/compiler/lib/src/js_backend/backend.dart |
+++ b/pkg/compiler/lib/src/js_backend/backend.dart |
@@ -46,7 +46,7 @@ import '../js/js_source_mapping.dart' show JavaScriptSourceInformationStrategy; |
import '../js/rewrite_async.dart'; |
import '../js_emitter/js_emitter.dart' show CodeEmitterTask; |
import '../kernel/task.dart'; |
-import '../library_loader.dart' show LibraryLoader, LoadedLibraries; |
+import '../library_loader.dart' show LoadedLibraries; |
import '../native/native.dart' as native; |
import '../native/resolver.dart'; |
import '../ssa/ssa.dart' show SsaFunctionCompiler; |
@@ -1097,8 +1097,8 @@ class JavaScriptBackend { |
} |
/// This method is called immediately after the [library] and its parts have |
- /// been scanned. |
- Future onLibraryScanned(LibraryElement library, LibraryLoader loader) { |
+ /// been loaded. |
+ void setAnnotations(LibraryElement library) { |
if (!compiler.serialization.isDeserialized(library)) { |
if (canLibraryUseNative(library)) { |
library.forEachLocalMember((Element element) { |
@@ -1109,48 +1109,31 @@ class JavaScriptBackend { |
} |
checkJsInteropClassAnnotations(compiler, library, nativeBaseDataBuilder); |
} |
- if (library.isPlatformLibrary && |
- // Don't patch library currently disallowed. |
- !library.isSynthesized && |
- !library.isPatched && |
- // Don't patch deserialized libraries. |
- !compiler.serialization.isDeserialized(library)) { |
- // Apply patch, if any. |
- Uri patchUri = compiler.resolvePatchUri(library.canonicalUri.path); |
- if (patchUri != null) { |
- return compiler.patchParser.patchLibrary(loader, patchUri, library); |
- } |
- } |
Uri uri = library.canonicalUri; |
if (uri == Uris.dart_html) { |
htmlLibraryIsLoaded = true; |
} else if (uri == LookupMapResolutionAnalysis.PACKAGE_LOOKUP_MAP) { |
lookupMapResolutionAnalysis.init(library); |
} |
- annotations.onLibraryScanned(library); |
- return new Future.value(); |
+ annotations.onLibraryLoaded(library); |
} |
/// This method is called when all new libraries loaded through |
/// [LibraryLoader.loadLibrary] has been loaded and their imports/exports |
/// have been computed. |
- Future onLibrariesLoaded(LoadedLibraries loadedLibraries) { |
- if (!loadedLibraries.containsLibrary(Uris.dart_core)) { |
- return new Future.value(); |
+ void onLibrariesLoaded(LoadedLibraries loadedLibraries) { |
+ if (loadedLibraries.containsLibrary(Uris.dart_core)) { |
+ helpers.onLibrariesLoaded(loadedLibraries); |
+ |
+ // These methods are overwritten with generated versions. |
+ inlineCache.markAsNonInlinable(helpers.getInterceptorMethod, |
+ insideLoop: true); |
+ |
+ specialOperatorEqClasses |
+ ..add(commonElements.objectClass) |
+ ..add(helpers.jsInterceptorClass) |
+ ..add(helpers.jsNullClass); |
} |
- |
- helpers.onLibrariesLoaded(loadedLibraries); |
- |
- // These methods are overwritten with generated versions. |
- inlineCache.markAsNonInlinable(helpers.getInterceptorMethod, |
- insideLoop: true); |
- |
- specialOperatorEqClasses |
- ..add(commonElements.objectClass) |
- ..add(helpers.jsInterceptorClass) |
- ..add(helpers.jsNullClass); |
- |
- return new Future.value(); |
} |
jsAst.Call generateIsJsIndexableCall( |
@@ -1397,31 +1380,6 @@ class JavaScriptBackend { |
return rewriter.rewrite(code); |
} |
- /// The locations of js patch-files relative to the sdk-descriptors. |
- static const _patchLocations = const <String, String>{ |
- "async": "_internal/js_runtime/lib/async_patch.dart", |
- "collection": "_internal/js_runtime/lib/collection_patch.dart", |
- "convert": "_internal/js_runtime/lib/convert_patch.dart", |
- "core": "_internal/js_runtime/lib/core_patch.dart", |
- "developer": "_internal/js_runtime/lib/developer_patch.dart", |
- "io": "_internal/js_runtime/lib/io_patch.dart", |
- "isolate": "_internal/js_runtime/lib/isolate_patch.dart", |
- "math": "_internal/js_runtime/lib/math_patch.dart", |
- "mirrors": "_internal/js_runtime/lib/mirrors_patch.dart", |
- "typed_data": "_internal/js_runtime/lib/typed_data_patch.dart", |
- "_internal": "_internal/js_runtime/lib/internal_patch.dart" |
- }; |
- |
- /// Returns the location of the patch-file associated with [libraryName] |
- /// resolved from [plaformConfigUri]. |
- /// |
- /// Returns null if there is none. |
- Uri resolvePatchUri(String libraryName, Uri platformConfigUri) { |
- String patchLocation = _patchLocations[libraryName]; |
- if (patchLocation == null) return null; |
- return platformConfigUri.resolve(patchLocation); |
- } |
- |
/// Creates an impact strategy to use for compilation. |
ImpactStrategy createImpactStrategy( |
{bool supportDeferredLoad: true, |