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 0055ba20eda2dcdff45a57b3409f83b7ce296973..f1cd9791094191663ee2a3749d8ec49e798b714f 100644 |
--- a/sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart |
+++ b/sdk/lib/_internal/compiler/implementation/js_backend/emitter.dart |
@@ -731,7 +731,6 @@ $lazyInitializerLogic |
compiler.codegenWorld.instantiatedClasses.contains(classElement); |
void visitField(ClassElement enclosingClass, Element member) { |
- assert(!member.isNative()); |
assert(invariant(classElement, member.isDeclaration)); |
LibraryElement library = member.getLibrary(); |
@@ -756,9 +755,12 @@ $lazyInitializerLogic |
if ((isInstantiated && !enclosingClass.isNative()) |
|| needsGetter |
|| needsSetter) { |
- String fieldName = isShadowed |
+ String accessorName = isShadowed |
? namer.shadowedFieldName(member) |
: namer.getName(member); |
+ String fieldName = member.isNative() |
+ ? member.nativeName() |
+ : accessorName; |
bool needsCheckedSetter = false; |
if (needsSetter && compiler.enableTypeAssertions |
&& canGenerateCheckedSetter(member)) { |
@@ -1253,7 +1255,9 @@ $classesCollector.$mangledName = {'': |
if (member.isGetter()) { |
getter = "this.${namer.getterName(member.getLibrary(), member.name)}()"; |
} else { |
- String name = namer.instanceFieldName(memberLibrary, member.name); |
+ String name = member.isNative() |
+ ? member.nativeName() |
+ : namer.instanceFieldName(memberLibrary, member.name); |
getter = "this.$name"; |
} |
for (Selector selector in selectors) { |