diff --git a/pkg/compiler/lib/src/js_backend/namer.dart b/pkg/compiler/lib/src/js_backend/namer.dart index 326841666fb..ab8f0cc4b12 100644 --- a/pkg/compiler/lib/src/js_backend/namer.dart +++ b/pkg/compiler/lib/src/js_backend/namer.dart @@ -636,6 +636,8 @@ class Namer extends ModularNamer { String privateName(Name originalName) { String text = originalName.text; + text = text.replaceAll(_nonIdentifierRE, '_'); + // Public names are easy. if (!originalName.isPrivate) return text; @@ -883,7 +885,8 @@ class Namer extends ModularNamer { if (_closedWorld.isUsedAsMixin(enclosingClass) || _isShadowingSuperField(element) || _isUserClassExtendingNative(enclosingClass)) { - String proposeName() => '${enclosingClass.name}_${element.name}'; + String proposeName() => '${enclosingClass.name}_${element.name}' + .replaceAll(_nonIdentifierRE, '_'); return _disambiguateInternalMember(element, proposeName); }