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 1906 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1917 } | 1917 } |
1918 } | 1918 } |
1919 if (indexField != null) { | 1919 if (indexField != null) { |
1920 _visit(constant.fields[indexField]); | 1920 _visit(constant.fields[indexField]); |
1921 return; | 1921 return; |
1922 } | 1922 } |
1923 } | 1923 } |
1924 | 1924 |
1925 // TODO(johnniwinther): This should be accessed from a codegen closed world. | 1925 // TODO(johnniwinther): This should be accessed from a codegen closed world. |
1926 codegenWorldBuilder.forEachInstanceField(constant.type.element, | 1926 codegenWorldBuilder.forEachInstanceField(constant.type.element, |
1927 (_, FieldElement field) { | 1927 (_, FieldEntity field) { |
1928 if (failed) return; | 1928 if (failed) return; |
1929 _visit(constant.fields[field]); | 1929 _visit(constant.fields[field]); |
1930 }); | 1930 }); |
1931 } | 1931 } |
1932 | 1932 |
1933 @override | 1933 @override |
1934 void visitType(TypeConstantValue constant, [_]) { | 1934 void visitType(TypeConstantValue constant, [_]) { |
1935 // Generates something like 'Type_String_k8F', using the simple name of the | 1935 // Generates something like 'Type_String_k8F', using the simple name of the |
1936 // type and a hash to disambiguate the same name in different libraries. | 1936 // type and a hash to disambiguate the same name in different libraries. |
1937 addRoot('Type'); | 1937 addRoot('Type'); |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2044 @override | 2044 @override |
2045 int visitMap(MapConstantValue constant, [_]) { | 2045 int visitMap(MapConstantValue constant, [_]) { |
2046 int hash = _hashList(constant.length, constant.keys); | 2046 int hash = _hashList(constant.length, constant.keys); |
2047 return _hashList(hash, constant.values); | 2047 return _hashList(hash, constant.values); |
2048 } | 2048 } |
2049 | 2049 |
2050 @override | 2050 @override |
2051 int visitConstructed(ConstructedConstantValue constant, [_]) { | 2051 int visitConstructed(ConstructedConstantValue constant, [_]) { |
2052 int hash = _hashString(3, constant.type.element.name); | 2052 int hash = _hashString(3, constant.type.element.name); |
2053 codegenWorldBuilder.forEachInstanceField(constant.type.element, | 2053 codegenWorldBuilder.forEachInstanceField(constant.type.element, |
2054 (_, FieldElement field) { | 2054 (_, FieldEntity field) { |
2055 hash = _combine(hash, _visit(constant.fields[field])); | 2055 hash = _combine(hash, _visit(constant.fields[field])); |
2056 }); | 2056 }); |
2057 return hash; | 2057 return hash; |
2058 } | 2058 } |
2059 | 2059 |
2060 @override | 2060 @override |
2061 int visitType(TypeConstantValue constant, [_]) { | 2061 int visitType(TypeConstantValue constant, [_]) { |
2062 ResolutionDartType type = constant.representedType; | 2062 ResolutionDartType type = constant.representedType; |
2063 // This name includes the library name and type parameters. | 2063 // This name includes the library name and type parameters. |
2064 String name = rtiEncoder.getTypeRepresentationForTypeConstant(type); | 2064 String name = rtiEncoder.getTypeRepresentationForTypeConstant(type); |
(...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2239 void addSuggestion(String original, String suggestion) { | 2239 void addSuggestion(String original, String suggestion) { |
2240 assert(!_suggestedNames.containsKey(original)); | 2240 assert(!_suggestedNames.containsKey(original)); |
2241 _suggestedNames[original] = suggestion; | 2241 _suggestedNames[original] = suggestion; |
2242 } | 2242 } |
2243 | 2243 |
2244 bool hasSuggestion(String original) => _suggestedNames.containsKey(original); | 2244 bool hasSuggestion(String original) => _suggestedNames.containsKey(original); |
2245 bool isSuggestion(String candidate) { | 2245 bool isSuggestion(String candidate) { |
2246 return _suggestedNames.containsValue(candidate); | 2246 return _suggestedNames.containsValue(candidate); |
2247 } | 2247 } |
2248 } | 2248 } |
OLD | NEW |