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

Side by Side Diff: pkg/compiler/lib/src/js_backend/backend.dart

Issue 1173403002: dart2js: Fix hints in code base. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Updated to latest revision 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 unified diff | Download patch
OLDNEW
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 1046 matching lines...) Expand 10 before | Expand all | Expand 10 after
1057 1057
1058 mapLiteralUntypedMaker = getMember('_makeLiteral'); 1058 mapLiteralUntypedMaker = getMember('_makeLiteral');
1059 mapLiteralUntypedEmptyMaker = getMember('_makeEmpty'); 1059 mapLiteralUntypedEmptyMaker = getMember('_makeEmpty');
1060 enqueueInResolution(mapLiteralUntypedMaker, registry); 1060 enqueueInResolution(mapLiteralUntypedMaker, registry);
1061 enqueueInResolution(mapLiteralUntypedEmptyMaker, registry); 1061 enqueueInResolution(mapLiteralUntypedEmptyMaker, registry);
1062 } 1062 }
1063 } 1063 }
1064 if (cls == closureClass) { 1064 if (cls == closureClass) {
1065 enqueue(enqueuer, findHelper('closureFromTearOff'), registry); 1065 enqueue(enqueuer, findHelper('closureFromTearOff'), registry);
1066 } 1066 }
1067 ClassElement result = null;
1068 if (cls == compiler.stringClass || cls == jsStringClass) { 1067 if (cls == compiler.stringClass || cls == jsStringClass) {
1069 addInterceptors(jsStringClass, enqueuer, registry); 1068 addInterceptors(jsStringClass, enqueuer, registry);
1070 } else if (cls == compiler.listClass || 1069 } else if (cls == compiler.listClass ||
1071 cls == jsArrayClass || 1070 cls == jsArrayClass ||
1072 cls == jsFixedArrayClass || 1071 cls == jsFixedArrayClass ||
1073 cls == jsExtendableArrayClass || 1072 cls == jsExtendableArrayClass ||
1074 cls == jsUnmodifiableArrayClass) { 1073 cls == jsUnmodifiableArrayClass) {
1075 addInterceptors(jsArrayClass, enqueuer, registry); 1074 addInterceptors(jsArrayClass, enqueuer, registry);
1076 addInterceptors(jsMutableArrayClass, enqueuer, registry); 1075 addInterceptors(jsMutableArrayClass, enqueuer, registry);
1077 addInterceptors(jsFixedArrayClass, enqueuer, registry); 1076 addInterceptors(jsFixedArrayClass, enqueuer, registry);
(...skipping 937 matching lines...) Expand 10 before | Expand all | Expand 10 after
2015 if (library.isPlatformLibrary && !library.isPatched) { 2014 if (library.isPlatformLibrary && !library.isPatched) {
2016 // Apply patch, if any. 2015 // Apply patch, if any.
2017 Uri patchUri = compiler.resolvePatchUri(library.canonicalUri.path); 2016 Uri patchUri = compiler.resolvePatchUri(library.canonicalUri.path);
2018 if (patchUri != null) { 2017 if (patchUri != null) {
2019 return compiler.patchParser.patchLibrary(loader, patchUri, library); 2018 return compiler.patchParser.patchLibrary(loader, patchUri, library);
2020 } 2019 }
2021 } 2020 }
2022 }).then((_) { 2021 }).then((_) {
2023 Uri uri = library.canonicalUri; 2022 Uri uri = library.canonicalUri;
2024 2023
2025 VariableElement findVariable(String name) {
2026 return find(library, name);
2027 }
2028
2029 FunctionElement findMethod(String name) { 2024 FunctionElement findMethod(String name) {
2030 return find(library, name); 2025 return find(library, name);
2031 } 2026 }
2032 2027
2033 ClassElement findClass(String name) { 2028 ClassElement findClass(String name) {
2034 return find(library, name); 2029 return find(library, name);
2035 } 2030 }
2036 2031
2037 if (uri == DART_INTERCEPTORS) { 2032 if (uri == DART_INTERCEPTORS) {
2038 getInterceptorMethod = findMethod('getInterceptor'); 2033 getInterceptorMethod = findMethod('getInterceptor');
2039 getNativeInterceptorMethod = findMethod('getNativeInterceptor'); 2034 getNativeInterceptorMethod = findMethod('getNativeInterceptor');
2040 2035 jsInterceptorClass = findClass('Interceptor');
2041 List<ClassElement> classes = [ 2036 jsStringClass = findClass('JSString');
2042 jsInterceptorClass = findClass('Interceptor'), 2037 jsArrayClass = findClass('JSArray');
2043 jsStringClass = findClass('JSString'), 2038 // The int class must be before the double class, because the
2044 jsArrayClass = findClass('JSArray'), 2039 // emitter relies on this list for the order of type checks.
2045 // The int class must be before the double class, because the 2040 jsIntClass = findClass('JSInt');
2046 // emitter relies on this list for the order of type checks. 2041 jsPositiveIntClass = findClass('JSPositiveInt');
2047 jsIntClass = findClass('JSInt'), 2042 jsUInt32Class = findClass('JSUInt32');
2048 jsPositiveIntClass = findClass('JSPositiveInt'), 2043 jsUInt31Class = findClass('JSUInt31');
2049 jsUInt32Class = findClass('JSUInt32'), 2044 jsDoubleClass = findClass('JSDouble');
2050 jsUInt31Class = findClass('JSUInt31'), 2045 jsNumberClass = findClass('JSNumber');
2051 jsDoubleClass = findClass('JSDouble'), 2046 jsNullClass = findClass('JSNull');
2052 jsNumberClass = findClass('JSNumber'), 2047 jsBoolClass = findClass('JSBool');
2053 jsNullClass = findClass('JSNull'), 2048 jsMutableArrayClass = findClass('JSMutableArray');
2054 jsBoolClass = findClass('JSBool'), 2049 jsFixedArrayClass = findClass('JSFixedArray');
2055 jsMutableArrayClass = findClass('JSMutableArray'), 2050 jsExtendableArrayClass = findClass('JSExtendableArray');
2056 jsFixedArrayClass = findClass('JSFixedArray'), 2051 jsUnmodifiableArrayClass = findClass('JSUnmodifiableArray');
2057 jsExtendableArrayClass = findClass('JSExtendableArray'), 2052 jsPlainJavaScriptObjectClass = findClass('PlainJavaScriptObject');
2058 jsUnmodifiableArrayClass = findClass('JSUnmodifiableArray'), 2053 jsUnknownJavaScriptObjectClass = findClass('UnknownJavaScriptObject');
2059 jsPlainJavaScriptObjectClass = findClass('PlainJavaScriptObject'),
2060 jsUnknownJavaScriptObjectClass = findClass('UnknownJavaScriptObject'),
2061 ];
2062
2063 jsIndexableClass = findClass('JSIndexable'); 2054 jsIndexableClass = findClass('JSIndexable');
2064 jsMutableIndexableClass = findClass('JSMutableIndexable'); 2055 jsMutableIndexableClass = findClass('JSMutableIndexable');
2065 } else if (uri == DART_JS_HELPER) { 2056 } else if (uri == DART_JS_HELPER) {
2066 initializeHelperClasses(); 2057 initializeHelperClasses();
2067 assertMethod = findHelper('assertHelper'); 2058 assertMethod = findHelper('assertHelper');
2068 2059
2069 typeLiteralClass = findClass('TypeImpl'); 2060 typeLiteralClass = findClass('TypeImpl');
2070 constMapLiteralClass = findClass('ConstantMap'); 2061 constMapLiteralClass = findClass('ConstantMap');
2071 typeVariableClass = findClass('TypeVariable'); 2062 typeVariableClass = findClass('TypeVariable');
2072 2063
(...skipping 910 matching lines...) Expand 10 before | Expand all | Expand 10 after
2983 } 2974 }
2984 } 2975 }
2985 2976
2986 /// Records that [constant] is used by the element behind [registry]. 2977 /// Records that [constant] is used by the element behind [registry].
2987 class Dependency { 2978 class Dependency {
2988 final ConstantValue constant; 2979 final ConstantValue constant;
2989 final Element annotatedElement; 2980 final Element annotatedElement;
2990 2981
2991 const Dependency(this.constant, this.annotatedElement); 2982 const Dependency(this.constant, this.annotatedElement);
2992 } 2983 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698