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

Unified Diff: sdk/lib/_internal/compiler/implementation/js_backend/backend.dart

Issue 350693007: Load patches via callback. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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: sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
index 57b0ffd3b884749d2281bdfabfc8f755f70cba76..0ea6946998a3f7924a80710d1209a3f99e92bd7d 100644
--- a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
+++ b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
@@ -1601,70 +1601,73 @@ class JavaScriptBackend extends Backend {
return false;
}
- void onLibraryScanned(LibraryElement library) {
- Uri uri = library.canonicalUri;
-
- // TODO(johnniwinther): Assert that the elements are found.
- VariableElement findVariable(String name) {
- return library.find(name);
- }
-
- FunctionElement findMethod(String name) {
- return library.find(name);
- }
-
- ClassElement findClass(String name) {
- return library.find(name);
- }
-
- if (uri == Compiler.DART_INTERCEPTORS) {
- getInterceptorMethod = findMethod('getInterceptor');
- interceptedNames = findVariable('interceptedNames');
- mapTypeToInterceptor = findVariable('mapTypeToInterceptor');
- getNativeInterceptorMethod = findMethod('getNativeInterceptor');
-
- List<ClassElement> classes = [
- jsInterceptorClass = findClass('Interceptor'),
- jsStringClass = findClass('JSString'),
- jsArrayClass = findClass('JSArray'),
- // The int class must be before the double class, because the
- // emitter relies on this list for the order of type checks.
- jsIntClass = findClass('JSInt'),
- jsPositiveIntClass = findClass('JSPositiveInt'),
- jsUInt32Class = findClass('JSUInt32'),
- jsUInt31Class = findClass('JSUInt31'),
- jsDoubleClass = findClass('JSDouble'),
- jsNumberClass = findClass('JSNumber'),
- jsNullClass = findClass('JSNull'),
- jsBoolClass = findClass('JSBool'),
- jsMutableArrayClass = findClass('JSMutableArray'),
- jsFixedArrayClass = findClass('JSFixedArray'),
- jsExtendableArrayClass = findClass('JSExtendableArray'),
- jsPlainJavaScriptObjectClass = findClass('PlainJavaScriptObject'),
- jsUnknownJavaScriptObjectClass = findClass('UnknownJavaScriptObject'),
- ];
-
- jsIndexableClass = findClass('JSIndexable');
- jsMutableIndexableClass = findClass('JSMutableIndexable');
- } else if (uri == Compiler.DART_JS_HELPER) {
- typeLiteralClass = findClass('TypeImpl');
- constMapLiteralClass = findClass('ConstantMap');
- typeVariableClass = findClass('TypeVariable');
-
- jsIndexingBehaviorInterface = findClass('JavaScriptIndexingBehavior');
-
- noSideEffectsClass = findClass('NoSideEffects');
- noThrowsClass = findClass('NoThrows');
- noInlineClass = findClass('NoInline');
- irRepresentationClass = findClass('IrRepresentation');
- } else if (uri == DART_JS_MIRRORS) {
- disableTreeShakingMarker = library.find('disableTreeShaking');
- preserveMetadataMarker = library.find('preserveMetadata');
- } else if (uri == DART_JS_NAMES) {
- preserveNamesMarker = library.find('preserveNames');
- } else if (uri == Compiler.DART_JS_HELPER) {
- getIsolateAffinityTagMarker = library.find('getIsolateAffinityTag');
- }
+ Future onLibraryScanned(LibraryElement library,
+ LibraryLoaderCallback callback) {
+ return super.onLibraryScanned(library, callback).then((_) {
+ Uri uri = library.canonicalUri;
+
+ // TODO(johnniwinther): Assert that the elements are found.
+ VariableElement findVariable(String name) {
+ return library.find(name);
+ }
+
+ FunctionElement findMethod(String name) {
+ return library.find(name);
+ }
+
+ ClassElement findClass(String name) {
+ return library.find(name);
+ }
+
+ if (uri == Compiler.DART_INTERCEPTORS) {
+ getInterceptorMethod = findMethod('getInterceptor');
+ interceptedNames = findVariable('interceptedNames');
+ mapTypeToInterceptor = findVariable('mapTypeToInterceptor');
+ getNativeInterceptorMethod = findMethod('getNativeInterceptor');
+
+ List<ClassElement> classes = [
+ jsInterceptorClass = findClass('Interceptor'),
+ jsStringClass = findClass('JSString'),
+ jsArrayClass = findClass('JSArray'),
+ // The int class must be before the double class, because the
+ // emitter relies on this list for the order of type checks.
+ jsIntClass = findClass('JSInt'),
+ jsPositiveIntClass = findClass('JSPositiveInt'),
+ jsUInt32Class = findClass('JSUInt32'),
+ jsUInt31Class = findClass('JSUInt31'),
+ jsDoubleClass = findClass('JSDouble'),
+ jsNumberClass = findClass('JSNumber'),
+ jsNullClass = findClass('JSNull'),
+ jsBoolClass = findClass('JSBool'),
+ jsMutableArrayClass = findClass('JSMutableArray'),
+ jsFixedArrayClass = findClass('JSFixedArray'),
+ jsExtendableArrayClass = findClass('JSExtendableArray'),
+ jsPlainJavaScriptObjectClass = findClass('PlainJavaScriptObject'),
+ jsUnknownJavaScriptObjectClass = findClass('UnknownJavaScriptObject'),
+ ];
+
+ jsIndexableClass = findClass('JSIndexable');
+ jsMutableIndexableClass = findClass('JSMutableIndexable');
+ } else if (uri == Compiler.DART_JS_HELPER) {
+ typeLiteralClass = findClass('TypeImpl');
+ constMapLiteralClass = findClass('ConstantMap');
+ typeVariableClass = findClass('TypeVariable');
+
+ jsIndexingBehaviorInterface = findClass('JavaScriptIndexingBehavior');
+
+ noSideEffectsClass = findClass('NoSideEffects');
+ noThrowsClass = findClass('NoThrows');
+ noInlineClass = findClass('NoInline');
+ irRepresentationClass = findClass('IrRepresentation');
+ } else if (uri == DART_JS_MIRRORS) {
+ disableTreeShakingMarker = library.find('disableTreeShaking');
+ preserveMetadataMarker = library.find('preserveMetadata');
+ } else if (uri == DART_JS_NAMES) {
+ preserveNamesMarker = library.find('preserveNames');
+ } else if (uri == Compiler.DART_JS_HELPER) {
+ getIsolateAffinityTagMarker = library.find('getIsolateAffinityTag');
+ }
+ });
}
Future onLibrariesLoaded(Map<Uri, LibraryElement> loadedLibraries) {

Powered by Google App Engine
This is Rietveld 408576698