OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 library js_backend.namer; | 5 library js_backend.namer; |
6 | 6 |
7 import 'dart:collection' show HashMap; | 7 import 'dart:collection' show HashMap; |
8 | 8 |
9 import 'package:js_runtime/shared/embedded_names.dart' show JsGetName; | 9 import 'package:js_runtime/shared/embedded_names.dart' show JsGetName; |
10 | 10 |
(...skipping 1916 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1927 if (failed) return; | 1927 if (failed) return; |
1928 _visit(constant.fields[field]); | 1928 _visit(constant.fields[field]); |
1929 }); | 1929 }); |
1930 } | 1930 } |
1931 | 1931 |
1932 @override | 1932 @override |
1933 void visitType(TypeConstantValue constant, [_]) { | 1933 void visitType(TypeConstantValue constant, [_]) { |
1934 // Generates something like 'Type_String_k8F', using the simple name of the | 1934 // Generates something like 'Type_String_k8F', using the simple name of the |
1935 // type and a hash to disambiguate the same name in different libraries. | 1935 // type and a hash to disambiguate the same name in different libraries. |
1936 addRoot('Type'); | 1936 addRoot('Type'); |
1937 DartType type = constant.representedType; | 1937 ResolutionDartType type = constant.representedType; |
1938 String name = type.element?.name; | 1938 String name = type.element?.name; |
1939 if (name == null) { | 1939 if (name == null) { |
1940 // e.g. DartType 'dynamic' has no element. | 1940 // e.g. DartType 'dynamic' has no element. |
1941 name = rtiEncoder.getTypeRepresentationForTypeConstant(type); | 1941 name = rtiEncoder.getTypeRepresentationForTypeConstant(type); |
1942 } | 1942 } |
1943 addIdentifier(name); | 1943 addIdentifier(name); |
1944 add(getHashTag(constant, 3)); | 1944 add(getHashTag(constant, 3)); |
1945 } | 1945 } |
1946 | 1946 |
1947 @override | 1947 @override |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2051 int hash = _hashString(3, constant.type.element.name); | 2051 int hash = _hashString(3, constant.type.element.name); |
2052 codegenWorldBuilder.forEachInstanceField(constant.type.element, | 2052 codegenWorldBuilder.forEachInstanceField(constant.type.element, |
2053 (_, FieldEntity field) { | 2053 (_, FieldEntity field) { |
2054 hash = _combine(hash, _visit(constant.fields[field])); | 2054 hash = _combine(hash, _visit(constant.fields[field])); |
2055 }); | 2055 }); |
2056 return hash; | 2056 return hash; |
2057 } | 2057 } |
2058 | 2058 |
2059 @override | 2059 @override |
2060 int visitType(TypeConstantValue constant, [_]) { | 2060 int visitType(TypeConstantValue constant, [_]) { |
2061 DartType type = constant.representedType; | 2061 ResolutionDartType type = constant.representedType; |
2062 // This name includes the library name and type parameters. | 2062 // This name includes the library name and type parameters. |
2063 String name = rtiEncoder.getTypeRepresentationForTypeConstant(type); | 2063 String name = rtiEncoder.getTypeRepresentationForTypeConstant(type); |
2064 return _hashString(4, name); | 2064 return _hashString(4, name); |
2065 } | 2065 } |
2066 | 2066 |
2067 @override | 2067 @override |
2068 int visitInterceptor(InterceptorConstantValue constant, [_]) { | 2068 int visitInterceptor(InterceptorConstantValue constant, [_]) { |
2069 String typeName = constant.cls.name; | 2069 String typeName = constant.cls.name; |
2070 return _hashString(5, typeName); | 2070 return _hashString(5, typeName); |
2071 } | 2071 } |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2238 void addSuggestion(String original, String suggestion) { | 2238 void addSuggestion(String original, String suggestion) { |
2239 assert(!_suggestedNames.containsKey(original)); | 2239 assert(!_suggestedNames.containsKey(original)); |
2240 _suggestedNames[original] = suggestion; | 2240 _suggestedNames[original] = suggestion; |
2241 } | 2241 } |
2242 | 2242 |
2243 bool hasSuggestion(String original) => _suggestedNames.containsKey(original); | 2243 bool hasSuggestion(String original) => _suggestedNames.containsKey(original); |
2244 bool isSuggestion(String candidate) { | 2244 bool isSuggestion(String candidate) { |
2245 return _suggestedNames.containsValue(candidate); | 2245 return _suggestedNames.containsValue(candidate); |
2246 } | 2246 } |
2247 } | 2247 } |
OLD | NEW |