| Index: sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart b/sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart
|
| index 4d32c899c6eede74c1243b77c3cd871e2448a91f..1da3abf489df0bedc13ee7b63bcdc4e227ff9717 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart
|
| @@ -1175,16 +1175,6 @@ class CodeEmitterTask extends CompilerTask {
|
| // methods pulled in from mixins are replaced with the members
|
| // from the class definition.
|
|
|
| - // If the class is a native class, we have to add the instance
|
| - // members defined in the non-native mixin applications used by
|
| - // the class.
|
| - visitNativeMixins(classElement, (MixinApplicationElement mixin) {
|
| - mixin.forEachMember(
|
| - visitMember,
|
| - includeBackendMembers: true,
|
| - includeSuperMembers: false);
|
| - });
|
| -
|
| classElement.implementation.forEachMember(
|
| visitMember,
|
| includeBackendMembers: true,
|
| @@ -1295,22 +1285,6 @@ class CodeEmitterTask extends CompilerTask {
|
| }
|
| }
|
|
|
| - void visitNativeMixins(ClassElement classElement,
|
| - void visit(MixinApplicationElement mixinApplication)) {
|
| - if (!classElement.isNative()) return;
|
| - // Use recursion to make sure to visit the superclasses before the
|
| - // subclasses. Once we start keeping track of the emitted fields
|
| - // and members, we're going to want to visit these in the other
|
| - // order so we get the most specialized definition first.
|
| - void recurse(ClassElement cls) {
|
| - if (cls == null || !cls.isMixinApplication) return;
|
| - recurse(cls.superclass);
|
| - assert(!cls.isNative());
|
| - visit(cls);
|
| - }
|
| - recurse(classElement.superclass);
|
| - }
|
| -
|
| /**
|
| * Documentation wanted -- johnniwinther
|
| *
|
| @@ -1388,15 +1362,6 @@ class CodeEmitterTask extends CompilerTask {
|
| // fields pulled in from mixins are replaced with the fields from
|
| // the class definition.
|
|
|
| - // If the class is a native class, we have to add the fields
|
| - // defined in the non-native mixin applications used by the class.
|
| - visitNativeMixins(classElement, (MixinApplicationElement mixin) {
|
| - mixin.forEachInstanceField(
|
| - visitField,
|
| - includeBackendMembers: true,
|
| - includeSuperMembers: false);
|
| - });
|
| -
|
| // If a class is not instantiated then we add the field just so we can
|
| // generate the field getter/setter dynamically. Since this is only
|
| // allowed on fields that are in [classElement] we don't need to visit
|
| @@ -1404,7 +1369,7 @@ class CodeEmitterTask extends CompilerTask {
|
| classElement.implementation.forEachInstanceField(
|
| visitField,
|
| includeBackendMembers: true,
|
| - includeSuperMembers: isInstantiated && !classElement.isNative());
|
| + includeSuperMembers: isInstantiated);
|
| }
|
|
|
| void generateGetter(Element member, String fieldName, String accessorName,
|
| @@ -1589,12 +1554,7 @@ class CodeEmitterTask extends CompilerTask {
|
| needsDefineClass = true;
|
| String className = namer.getName(classElement);
|
|
|
| - // Find the first non-native superclass.
|
| ClassElement superclass = classElement.superclass;
|
| - while (superclass != null && superclass.isNative()) {
|
| - superclass = superclass.superclass;
|
| - }
|
| -
|
| String superName = "";
|
| if (superclass != null) {
|
| superName = namer.getName(superclass);
|
| @@ -1724,17 +1684,6 @@ class CodeEmitterTask extends CompilerTask {
|
| generateInterfacesIsTests(interfaceType.element, emitIsTest,
|
| emitSubstitution, generated);
|
| }
|
| -
|
| - // For native classes, we also have to run through their mixin
|
| - // applications and make sure we deal with 'is' tests correctly
|
| - // for those.
|
| - visitNativeMixins(cls, (MixinApplicationElement mixin) {
|
| - for (DartType interfaceType in mixin.interfaces) {
|
| - ClassElement interfaceElement = interfaceType.element;
|
| - generateInterfacesIsTests(interfaceType.element, emitIsTest,
|
| - emitSubstitution, generated);
|
| - }
|
| - });
|
| }
|
|
|
| /**
|
|
|