OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 part of js_backend; | 5 part of js_backend; |
6 | 6 |
7 const VERBOSE_OPTIMIZER_HINTS = false; | 7 const VERBOSE_OPTIMIZER_HINTS = false; |
8 | 8 |
9 class JavaScriptItemCompilationContext extends ItemCompilationContext { | 9 class JavaScriptItemCompilationContext extends ItemCompilationContext { |
10 final Set<HInstruction> boundsChecked = new Set<HInstruction>(); | 10 final Set<HInstruction> boundsChecked = new Set<HInstruction>(); |
(...skipping 2141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2152 preserveUrisMarker = find(library, 'preserveUris'); | 2152 preserveUrisMarker = find(library, 'preserveUris'); |
2153 preserveLibraryNamesMarker = find(library, 'preserveLibraryNames'); | 2153 preserveLibraryNamesMarker = find(library, 'preserveLibraryNames'); |
2154 } else if (uri == DART_JS_NAMES) { | 2154 } else if (uri == DART_JS_NAMES) { |
2155 preserveNamesMarker = find(library, 'preserveNames'); | 2155 preserveNamesMarker = find(library, 'preserveNames'); |
2156 } else if (uri == DART_EMBEDDED_NAMES) { | 2156 } else if (uri == DART_EMBEDDED_NAMES) { |
2157 jsGetNameEnum = find(library, 'JsGetName'); | 2157 jsGetNameEnum = find(library, 'JsGetName'); |
2158 jsBuiltinEnum = find(library, 'JsBuiltin'); | 2158 jsBuiltinEnum = find(library, 'JsBuiltin'); |
2159 } else if (uri == Uris.dart_html) { | 2159 } else if (uri == Uris.dart_html) { |
2160 htmlLibraryIsLoaded = true; | 2160 htmlLibraryIsLoaded = true; |
2161 } else if (uri == PACKAGE_LOOKUP_MAP) { | 2161 } else if (uri == PACKAGE_LOOKUP_MAP) { |
2162 lookupMapAnalysis.init(library); | 2162 lookupMapAnalysis.initRuntimeClass(find(library, 'LookupMap')); |
2163 } | 2163 } |
2164 annotations.onLibraryScanned(library); | 2164 annotations.onLibraryScanned(library); |
2165 }); | 2165 }); |
2166 } | 2166 } |
2167 | 2167 |
2168 Future onLibrariesLoaded(LoadedLibraries loadedLibraries) { | 2168 Future onLibrariesLoaded(LoadedLibraries loadedLibraries) { |
2169 if (!loadedLibraries.containsLibrary(Uris.dart_core)) { | 2169 if (!loadedLibraries.containsLibrary(Uris.dart_core)) { |
2170 return new Future.value(); | 2170 return new Future.value(); |
2171 } | 2171 } |
2172 | 2172 |
(...skipping 425 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2598 new CodegenRegistry(compiler, | 2598 new CodegenRegistry(compiler, |
2599 dependency.annotatedElement.analyzableElement.treeElements), | 2599 dependency.annotatedElement.analyzableElement.treeElements), |
2600 addForEmission: false); | 2600 addForEmission: false); |
2601 } | 2601 } |
2602 metadataConstants.clear(); | 2602 metadataConstants.clear(); |
2603 } | 2603 } |
2604 } | 2604 } |
2605 return true; | 2605 return true; |
2606 } | 2606 } |
2607 | 2607 |
2608 void onQueueClosed() { | 2608 void onQueueClosed() => lookupMapAnalysis.onQueueClosed(); |
2609 lookupMapAnalysis.onQueueClosed(); | |
2610 } | |
2611 | |
2612 void onCodegenStart() { | |
2613 lookupMapAnalysis.onCodegenStart(); | |
2614 } | |
2615 | 2609 |
2616 void onElementResolved(Element element, TreeElements elements) { | 2610 void onElementResolved(Element element, TreeElements elements) { |
2617 if ((element.isFunction || element.isGenerativeConstructor) && | 2611 if ((element.isFunction || element.isGenerativeConstructor) && |
2618 annotations.noInline(element)) { | 2612 annotations.noInline(element)) { |
2619 inlineCache.markAsNonInlinable(element); | 2613 inlineCache.markAsNonInlinable(element); |
2620 } | 2614 } |
2621 | 2615 |
2622 LibraryElement library = element.library; | 2616 LibraryElement library = element.library; |
2623 if (!library.isPlatformLibrary && !library.canUseNative) return; | 2617 if (!library.isPlatformLibrary && !library.canUseNative) return; |
2624 bool hasNoInline = false; | 2618 bool hasNoInline = false; |
(...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3134 } | 3128 } |
3135 } | 3129 } |
3136 | 3130 |
3137 /// Records that [constant] is used by the element behind [registry]. | 3131 /// Records that [constant] is used by the element behind [registry]. |
3138 class Dependency { | 3132 class Dependency { |
3139 final ConstantValue constant; | 3133 final ConstantValue constant; |
3140 final Element annotatedElement; | 3134 final Element annotatedElement; |
3141 | 3135 |
3142 const Dependency(this.constant, this.annotatedElement); | 3136 const Dependency(this.constant, this.annotatedElement); |
3143 } | 3137 } |
OLD | NEW |