| Index: pkg/compiler/lib/src/js_emitter/old_emitter/class_emitter.dart
|
| diff --git a/pkg/compiler/lib/src/js_emitter/old_emitter/class_emitter.dart b/pkg/compiler/lib/src/js_emitter/old_emitter/class_emitter.dart
|
| index b0820443a763cd6a0833441ac9884cd3bed015fe..6a8381564379138dd1b8e1aed7cc4575122b3c6f 100644
|
| --- a/pkg/compiler/lib/src/js_emitter/old_emitter/class_emitter.dart
|
| +++ b/pkg/compiler/lib/src/js_emitter/old_emitter/class_emitter.dart
|
| @@ -11,11 +11,12 @@ class ClassEmitter extends CodeEmitterHelper {
|
|
|
| /**
|
| * Documentation wanted -- johnniwinther
|
| + *
|
| + * Invariant: [classElement] must be a declaration element.
|
| */
|
| - void emitClass(Class cls,
|
| - ClassBuilder enclosingBuilder,
|
| - Map<String, jsAst.Expression> additionalProperties) {
|
| - ClassElement classElement = cls.element;
|
| + void generateClass(ClassElement classElement,
|
| + ClassBuilder properties,
|
| + Map<String, jsAst.Expression> additionalProperties) {
|
| final onlyForRti =
|
| emitter.typeTestRegistry.rtiNeededClasses.contains(classElement);
|
|
|
| @@ -25,15 +26,14 @@ class ClassEmitter extends CodeEmitterHelper {
|
| emitter.needsClassSupport = true;
|
| String className = namer.getNameOfClass(classElement);
|
|
|
| - Class superclass = cls.superclass;
|
| + ClassElement superclass = classElement.superclass;
|
| String superName = "";
|
| if (superclass != null) {
|
| - superName = superclass.name;
|
| + superName = namer.getNameOfClass(superclass);
|
| }
|
|
|
| - if (cls.isMixinApplication) {
|
| - MixinApplication mixinApplication = cls;
|
| - String mixinName = mixinApplication.mixinClass.name;
|
| + if (classElement.isMixinApplication) {
|
| + String mixinName = namer.getNameOfClass(computeMixinClass(classElement));
|
| superName = '$superName+$mixinName';
|
| emitter.needsMixinSupport = true;
|
| }
|
| @@ -60,7 +60,7 @@ class ClassEmitter extends CodeEmitterHelper {
|
| emitTypeVariableReaders(classElement, builder);
|
|
|
| emitClassBuilderWithReflectionData(
|
| - className, classElement, builder, enclosingBuilder);
|
| + className, classElement, builder, properties);
|
| }
|
|
|
| void emitClassConstructor(ClassElement classElement,
|
|
|