[dart2js] Handle injected names from late fields

Change-Id: I5ca6535a282ce8fdf4fba6cd1fa5752bce2921c9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/136714
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
This commit is contained in:
Stephen Adams
2020-02-21 19:31:16 +00:00
committed by commit-bot@chromium.org
parent c09e6c18b7
commit eb29627e9e
+4 -1
View File
@@ -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);
}