Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(254)

Unified Diff: frog/world.dart

Issue 10354005: Fix for Issue 2878 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « frog/tests/frog_native/native_field_rename_2_frog_test.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: frog/world.dart
diff --git a/frog/world.dart b/frog/world.dart
index 9fe662c75ca3ab722f9a9e0ec1b487b6a3371254..d4550fb7ecf6dcb8a8b64f7df78e7a54ef6be5ea 100644
--- a/frog/world.dart
+++ b/frog/world.dart
@@ -520,7 +520,6 @@ class World {
if (usedNames.contains(name)) {
var mset = lib._privateMembers[name];
String uniqueName = '_${lib.jsname}${mset.jsname}';
- mset.jsname = uniqueName;
for (var member in mset.members) {
member._jsname = uniqueName;
}
@@ -548,35 +547,18 @@ class World {
* member jsname.
*/
avoidHazardousMemberNames() {
- rename(jsname) {
- if (_hazardousMemberNames.contains(jsname)) {
- jsname = '${jsname}\$_';
- }
- return jsname;
- }
-
for (var name in _members.getKeys()) {
var mset = _members[name];
- bool renamed = false;
for (var member in mset.members) {
if (!member.isNative ||
(member is MethodMember && member.hasNativeBody)) {
- String oldName = member._jsname;
- member._jsname = rename(oldName);
- if (member._jsname != oldName) renamed = true;
+ var jsname = member._jsname;
+ if (_hazardousMemberNames.contains(jsname)) {
+ member._jsnameRoot = jsname;
+ member._jsname = '${jsname}\$_';
+ }
}
}
- // If any of the members where renamed, rename mset.
- //
- // If all members were renamed this makes mset.jsname consistent. If none
- // were renamed that means they are native methods (with names different
- // to the Dart names), so the mset name should not be renamed to stay
- // consistent. If only some were renamed then the mset has no consistent
- // calling convention, and will dispatch via a stub, so the mset name is
- // irrelevant.
- if (renamed) {
- mset.jsname = rename(mset.jsname);
- }
}
}
« no previous file with comments | « frog/tests/frog_native/native_field_rename_2_frog_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698