diff --git a/lib/propmangle.js b/lib/propmangle.js index 9f8bc7fd..6a0ddc7a 100644 --- a/lib/propmangle.js +++ b/lib/propmangle.js @@ -210,7 +210,7 @@ function mangle_properties(ast, options) { } // either debug mode is off, or it is on and we could not use the mangled name if (!mangled) do { - mangled = base54(++cname); + mangled = nameGenerator(++cname); } while (!can_mangle(mangled)); cache.set(name, mangled); } diff --git a/lib/scope.js b/lib/scope.js index 08c9efd8..b15f9da3 100644 --- a/lib/scope.js +++ b/lib/scope.js @@ -332,14 +332,14 @@ function next_mangled_name(scope, options, def) { }); var name; for (var i = 0; i < holes.length; i++) { - name = base54(holes[i]); + name = nameGenerator(holes[i]); if (names[name]) continue; holes.splice(i, 1); scope.names_in_use[name] = true; return name; } while (true) { - name = base54(++scope.cname); + name = nameGenerator(++scope.cname); if (in_use[name] || RESERVED_WORDS[name] || options.reserved.has[name]) continue; if (!names[name]) break; holes.push(scope.cname); @@ -419,7 +419,7 @@ AST_Toplevel.DEFMETHOD("mangle_names", function(options) { if (node instanceof AST_Label) { var name; do { - name = base54(++lname); + name = nameGenerator(++lname); } while (RESERVED_WORDS[name]); node.mangled_name = name; return true; @@ -476,8 +476,8 @@ AST_Toplevel.DEFMETHOD("find_colliding_names", function(options) { }); AST_Toplevel.DEFMETHOD("expand_names", function(options) { - base54.reset(); - base54.sort(); + nameGenerator.reset(); + nameGenerator.sort(); options = _default_mangler_options(options); var avoid = this.find_colliding_names(options); var cname = 0; @@ -490,7 +490,7 @@ AST_Toplevel.DEFMETHOD("expand_names", function(options) { function next_name() { var name; do { - name = base54(cname++); + name = nameGenerator(cname++); } while (avoid[name] || RESERVED_WORDS[name]); return name; } @@ -517,29 +517,29 @@ AST_Sequence.DEFMETHOD("tail_node", function() { AST_Toplevel.DEFMETHOD("compute_char_frequency", function(options) { options = _default_mangler_options(options); - base54.reset(); + nameGenerator.reset(); try { AST_Node.prototype.print = function(stream, force_parens) { this._print(stream, force_parens); if (this instanceof AST_Symbol && !this.unmangleable(options)) { - base54.consider(this.name, -1); + nameGenerator.consider(this.name, -1); } else if (options.properties) { if (this instanceof AST_Dot) { - base54.consider(this.property, -1); + nameGenerator.consider(this.property, -1); } else if (this instanceof AST_Sub) { skip_string(this.property); } } }; - base54.consider(this.print_to_string(), 1); + nameGenerator.consider(this.print_to_string(), 1); } finally { AST_Node.prototype.print = AST_Node.prototype._print; } - base54.sort(); + nameGenerator.sort(); function skip_string(node) { if (node instanceof AST_String) { - base54.consider(node.value, -1); + nameGenerator.consider(node.value, -1); } else if (node instanceof AST_Conditional) { skip_string(node.consequent); skip_string(node.alternative); @@ -549,7 +549,7 @@ AST_Toplevel.DEFMETHOD("compute_char_frequency", function(options) { } }); -var base54 = (function() { +var nameGenerator = (function() { var freq = Object.create(null); function init(chars) { var array = []; @@ -566,7 +566,7 @@ var base54 = (function() { function reset() { frequency = Object.create(freq); } - base54.consider = function(str, delta) { + nameGenerator.consider = function(str, delta) { for (var i = str.length; --i >= 0;) { frequency[str[i]] += delta; } @@ -574,12 +574,12 @@ var base54 = (function() { function compare(a, b) { return frequency[b] - frequency[a]; } - base54.sort = function() { + nameGenerator.sort = function() { chars = leading.sort(compare).concat(digits.sort(compare)); }; - base54.reset = reset; + nameGenerator.reset = reset; reset(); - function base54(num) { + function nameGenerator(num) { var ret = "", base = 54; num++; do { @@ -590,5 +590,5 @@ var base54 = (function() { } while (num > 0); return ret; } - return base54; + return nameGenerator; })();