Renamed "base54" to "nameGenerator" (#3436).
This is because its character set will soon be configurable, and it may therefore return non-base-54 strings.
This commit is contained in:
parent
70bb304a0a
commit
a8fc48eea6
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
36
lib/scope.js
36
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;
|
||||
})();
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user