Index: compiler/java/com/google/dart/compiler/backend/js/DollarMangler.java |
diff --git a/compiler/java/com/google/dart/compiler/backend/js/DollarMangler.java b/compiler/java/com/google/dart/compiler/backend/js/DollarMangler.java |
index 08d55ace75430cb105aa578b47028ebccb653ae0..e10131f73c92f96d9c266f856170ff9abb701fff 100644 |
--- a/compiler/java/com/google/dart/compiler/backend/js/DollarMangler.java |
+++ b/compiler/java/com/google/dart/compiler/backend/js/DollarMangler.java |
@@ -44,6 +44,7 @@ public class DollarMangler implements DartMangler { |
private static final String FIELD_SUFFIX = "$field"; |
private static final String METHOD_SUFFIX = "$member"; |
private static final String NAMED_SUFFIX = "$named"; |
+ private static final String RTT_LOOKUP_SUFFIX = "$lookupRTT"; |
private static final String CONSTRUCTOR_SUFFIX = "$Constructor"; |
private static final String FACTORY_SUFFIX = "$Factory"; |
private static final String INITIALIZER_SUFFIX = "$Initializer"; |
@@ -328,6 +329,24 @@ public class DollarMangler implements DartMangler { |
} |
@Override |
+ public String mangleLookupMethod(MethodElement method, LibraryElement currentLibrary) { |
+ // There can be no named shims for operators, getters, or setters. |
+ String methodName = method.getName(); |
+ methodName = attachSuffix(methodName, RTT_LOOKUP_SUFFIX, currentLibrary); |
+ |
+ String prefix = ""; |
+ if (ElementKind.of(method.getEnclosingElement()).equals(ElementKind.LIBRARY)) { |
+ prefix = mangleLibraryName((LibraryElement) method.getEnclosingElement()); |
+ } |
+ return prefix + methodName; |
+ } |
+ |
+ @Override |
+ public String mangleLookupMethod(String methodName, LibraryElement currentLibrary) { |
+ return attachSuffix(methodName, RTT_LOOKUP_SUFFIX, currentLibrary); |
+ } |
+ |
+ @Override |
public String mangleEntryPoint(MethodElement method, LibraryElement library) { |
Element holder = method.getEnclosingElement(); |
switch (ElementKind.of(holder)) { |