Chromium Code Reviews| Index: sdk/lib/_internal/compiler/implementation/js_backend/namer.dart |
| diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/namer.dart b/sdk/lib/_internal/compiler/implementation/js_backend/namer.dart |
| index 61f6d847fb1da5aa06ee9302ae4955b058e80c02..571fd6d32b13d4777213a8ed4bc3477b735a4a66 100644 |
| --- a/sdk/lib/_internal/compiler/implementation/js_backend/namer.dart |
| +++ b/sdk/lib/_internal/compiler/implementation/js_backend/namer.dart |
| @@ -317,9 +317,8 @@ class Namer implements ClosureNamer { |
| if (name != elementName) return getMappedOperatorName(name.slowToString()); |
| LibraryElement library = element.getLibrary(); |
| - if (element.kind == ElementKind.GENERATIVE_CONSTRUCTOR_BODY) { |
| - ConstructorBodyElement bodyElement = element; |
| - name = bodyElement.constructor.name; |
| + if (element.isGenerativeConstructorBody()) { |
| + name = Elements.reconstructConstructorNameSourceString(element); |
|
ahe
2013/07/11 10:09:42
Can we get rid of this?
Johnni Winther
2013/07/11 13:09:19
It requires changes to reflection. Added a TODO.
|
| } |
| FunctionSignature signature = element.computeSignature(compiler); |
| String methodName = |
| @@ -516,12 +515,13 @@ class Namer implements ClosureNamer { |
| assert(!element.isInstanceMember()); |
| String name; |
| if (element.isGenerativeConstructor()) { |
| - if (element.name == element.getEnclosingClass().name) { |
| - // Keep the class name for the class and not the factory. |
| - name = "${element.name.slowToString()}\$"; |
| - } else { |
| - name = element.name.slowToString(); |
| - } |
| + name = "${element.getEnclosingClass().name.slowToString()}\$" |
| + "${element.name.slowToString()}"; |
| + } else if (element.isFactoryConstructor()) { |
| + // TODO(johnniwinther): Change factory name encoding as to not include |
| + // the class-name twice. |
| + String className = element.getEnclosingClass().name.slowToString(); |
| + name = '${className}_${Elements.reconstructConstructorName(element)}'; |
| } else if (Elements.isStaticOrTopLevel(element)) { |
| if (element.isMember()) { |
| ClassElement enclosingClass = element.getEnclosingClass(); |