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); |
- } |
- }); |
} |
/** |