| Index: frog/minfrog
|
| diff --git a/frog/minfrog b/frog/minfrog
|
| index e9f39338d2c675fa2d580dae38e334cf4907e4a6..a1bb7ba34a4d32317b0933727b583424a94904a8 100755
|
| --- a/frog/minfrog
|
| +++ b/frog/minfrog
|
| @@ -5583,34 +5583,12 @@ Library.prototype._addMember = function(member) {
|
| else {
|
| members.add(member);
|
| }
|
| - this._makePrivateMembersUnique(member, members);
|
| }
|
| }
|
| else {
|
| $globals.world._addMember(member);
|
| }
|
| }
|
| -Library.prototype._makePrivateMembersUnique = function(member, members) {
|
| - if (members.jsnameUnique) {
|
| - member._jsname = members.jsname;
|
| - return;
|
| - }
|
| - var name = members.name;
|
| - var $$list = $globals.world.libraries.getValues();
|
| - for (var $$i = $$list.iterator(); $$i.hasNext(); ) {
|
| - var lib = $$i.next();
|
| - if ((null == lib ? null != (this) : lib !== this) && lib.get$_privateMembers().containsKey(name)) {
|
| - var uniqueName = ("_" + this.get$jsname() + members.jsname);
|
| - members.jsname = uniqueName;
|
| - members.jsnameUnique = true;
|
| - members.members.forEach((function (uniqueName, each) {
|
| - each.set$_jsname(uniqueName);
|
| - }).bind(null, uniqueName)
|
| - );
|
| - return;
|
| - }
|
| - }
|
| -}
|
| Library.prototype.getOrAddFunctionType = function(enclosingElement, name, func, data) {
|
| var def = new FunctionTypeDefinition(func, null, func.span);
|
| var type = new DefinedType(name, this, def, false);
|
| @@ -6908,7 +6886,6 @@ function MemberSet(member, isVar) {
|
| this.jsname = member.get$jsname();
|
| this.name = member.name;
|
| this._preparedForSet = false;
|
| - this.jsnameUnique = false;
|
| this.isVar = isVar;
|
| this.members = [member];
|
| }
|
| @@ -6916,6 +6893,7 @@ MemberSet.prototype.get$name = function() { return this.name; };
|
| MemberSet.prototype.get$members = function() { return this.members; };
|
| MemberSet.prototype.get$isVar = function() { return this.isVar; };
|
| MemberSet.prototype.get$jsname = function() { return this.jsname; };
|
| +MemberSet.prototype.set$jsname = function(value) { return this.jsname = value; };
|
| MemberSet.prototype.toString = function() {
|
| return ("" + this.name + ":" + this.members.get$length());
|
| }
|
| @@ -14188,6 +14166,10 @@ World.prototype.runCompilationPhases = function() {
|
| })
|
| );
|
| this.withTiming("resolve top level", this.get$resolveAll());
|
| + this.withTiming("privatization", (function () {
|
| + $this.makePrivateMembersUnique(lib);
|
| + })
|
| + );
|
| if ($globals.experimentalAwaitPhase != null) {
|
| this.withTiming("await translation", to$call$0($globals.experimentalAwaitPhase));
|
| }
|
| @@ -14273,6 +14255,40 @@ World.prototype.resolveAll = function() {
|
| World.prototype.get$resolveAll = function() {
|
| return this.resolveAll.bind(this);
|
| }
|
| +World.prototype.makePrivateMembersUnique = function(rootLib) {
|
| + var usedNames = new HashSetImplementation_dart_core_String();
|
| + function process(lib) {
|
| + var $$list = lib.get$_privateMembers().getKeys();
|
| + for (var $$i = $$list.iterator(); $$i.hasNext(); ) {
|
| + var name = $$i.next();
|
| + if (usedNames.contains$1(name)) {
|
| + var members = lib.get$_privateMembers().$index(name);
|
| + var uniqueName = ("_" + lib.get$jsname() + members.get$jsname());
|
| + members.set$jsname(uniqueName);
|
| + var $list0 = members.get$members();
|
| + for (var $i0 = $list0.iterator(); $i0.hasNext(); ) {
|
| + var member = $i0.next();
|
| + member.set$_jsname(uniqueName);
|
| + }
|
| + }
|
| + else {
|
| + usedNames.add(name);
|
| + }
|
| + }
|
| + }
|
| + var visited = new HashSetImplementation_Library();
|
| + function visit(lib) {
|
| + if (visited.contains$1(lib)) return;
|
| + visited.add(lib);
|
| + process(lib);
|
| + var $$list = lib.get$imports();
|
| + for (var $$i = $$list.iterator(); $$i.hasNext(); ) {
|
| + var import_ = $$i.next();
|
| + visit(import_.get$library());
|
| + }
|
| + }
|
| + visit(rootLib);
|
| +}
|
| World.prototype.findMainMethod = function(lib) {
|
| var main = lib.lookup("main", lib.get$span());
|
| if ($eq$(main)) {
|
|
|