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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/js_backend/namer.dart

Issue 304153014: Remove element from DynamicType. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix infinite loop. 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 part of js_backend; 5 part of js_backend;
6 6
7 /** 7 /**
8 * Assigns JavaScript identifiers to Dart variables, class-names and members. 8 * Assigns JavaScript identifiers to Dart variables, class-names and members.
9 */ 9 */
10 class Namer implements ClosureNamer { 10 class Namer implements ClosureNamer {
(...skipping 707 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 if (selector.isGetter || selector.isSetter) root = '$root\$'; 718 if (selector.isGetter || selector.isSetter) root = '$root\$';
719 return getMappedGlobalName(root, ensureSafe: false); 719 return getMappedGlobalName(root, ensureSafe: false);
720 } else { 720 } else {
721 String suffix = getInterceptorSuffix(classes); 721 String suffix = getInterceptorSuffix(classes);
722 return getMappedGlobalName("$root\$$suffix", ensureSafe: false); 722 return getMappedGlobalName("$root\$$suffix", ensureSafe: false);
723 } 723 }
724 } 724 }
725 725
726 /// Returns the runtime name for [element]. The result is not safe as an id. 726 /// Returns the runtime name for [element]. The result is not safe as an id.
727 String getRuntimeTypeName(Element element) { 727 String getRuntimeTypeName(Element element) {
728 if (identical(element, compiler.dynamicClass)) return 'dynamic'; 728 if (element == null) return 'dynamic';
729 return getNameForRti(element); 729 return getNameForRti(element);
730 } 730 }
731 731
732 /** 732 /**
733 * Returns a preferred JS-id for the given element. The returned id is 733 * Returns a preferred JS-id for the given element. The returned id is
734 * guaranteed to be a valid JS-id. Globals and static fields are furthermore 734 * guaranteed to be a valid JS-id. Globals and static fields are furthermore
735 * guaranteed to be unique. 735 * guaranteed to be unique.
736 * 736 *
737 * For accessing statics consider calling [elementAccess] instead. 737 * For accessing statics consider calling [elementAccess] instead.
738 */ 738 */
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
903 String getFunctionTypeName(FunctionType functionType) { 903 String getFunctionTypeName(FunctionType functionType) {
904 return functionTypeNameMap.putIfAbsent(functionType, () { 904 return functionTypeNameMap.putIfAbsent(functionType, () {
905 String proposedName = functionTypeNamer.computeName(functionType); 905 String proposedName = functionTypeNamer.computeName(functionType);
906 String freshName = getFreshName(proposedName, usedInstanceNames, 906 String freshName = getFreshName(proposedName, usedInstanceNames,
907 suggestedInstanceNames, ensureSafe: true); 907 suggestedInstanceNames, ensureSafe: true);
908 return freshName; 908 return freshName;
909 }); 909 });
910 } 910 }
911 911
912 String operatorIsType(DartType type) { 912 String operatorIsType(DartType type) {
913 if (type.kind == TypeKind.FUNCTION) { 913 if (type.isFunctionType) {
914 // TODO(erikcorry): Reduce from $isx to ix when we are minifying. 914 // TODO(erikcorry): Reduce from $isx to ix when we are minifying.
915 return '${operatorIsPrefix()}_${getFunctionTypeName(type)}'; 915 return '${operatorIsPrefix()}_${getFunctionTypeName(type)}';
916 } 916 }
917 return operatorIs(type.element); 917 return operatorIs(type.element);
918 } 918 }
919 919
920 String operatorIs(Element element) { 920 String operatorIs(Element element) {
921 // TODO(erikcorry): Reduce from $isx to ix when we are minifying. 921 // TODO(erikcorry): Reduce from $isx to ix when we are minifying.
922 return '${operatorIsPrefix()}${getRuntimeTypeName(element)}'; 922 return '${operatorIsPrefix()}${getRuntimeTypeName(element)}';
923 } 923 }
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
1378 if (!first) { 1378 if (!first) {
1379 sb.write('_'); 1379 sb.write('_');
1380 } 1380 }
1381 sb.write('_'); 1381 sb.write('_');
1382 visit(link.head); 1382 visit(link.head);
1383 first = true; 1383 first = true;
1384 } 1384 }
1385 } 1385 }
1386 } 1386 }
1387 } 1387 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698