Mangle character sets taken from options (#3436).
This commit is contained in:
parent
0d97291ba2
commit
2d95c1f5b7
15
lib/scope.js
15
lib/scope.js
|
|
@ -552,21 +552,20 @@ AST_Toplevel.DEFMETHOD("compute_char_frequency", function(options) {
|
||||||
});
|
});
|
||||||
|
|
||||||
var nameGenerator = (function() {
|
var nameGenerator = (function() {
|
||||||
var freq = Object.create(null);
|
|
||||||
function init(chars) {
|
function init(chars) {
|
||||||
var array = [];
|
var array = [];
|
||||||
for (var i = 0; i < chars.length; i++) {
|
for (var i = 0; i < chars.length; i++) {
|
||||||
var ch = chars[i];
|
var ch = chars[i];
|
||||||
array.push(ch);
|
array.push(ch);
|
||||||
freq[ch] = -1e-2 * i;
|
frequency[ch] = -1e-2 * i;
|
||||||
}
|
}
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
var trailing = init("0123456789");
|
var chars, frequency, trailing, leading;
|
||||||
var leading = init("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_");
|
|
||||||
var chars, frequency;
|
|
||||||
function reset(options) {
|
function reset(options) {
|
||||||
frequency = Object.create(freq);
|
frequency = Object.create(null);
|
||||||
|
trailing = init(options.trailing_character_set);
|
||||||
|
leading = init(options.leading_character_set);
|
||||||
}
|
}
|
||||||
nameGenerator.consider = function(str, delta) {
|
nameGenerator.consider = function(str, delta) {
|
||||||
for (var i = str.length; --i >= 0;) {
|
for (var i = str.length; --i >= 0;) {
|
||||||
|
|
@ -581,13 +580,13 @@ var nameGenerator = (function() {
|
||||||
};
|
};
|
||||||
nameGenerator.reset = reset;
|
nameGenerator.reset = reset;
|
||||||
function nameGenerator(num) {
|
function nameGenerator(num) {
|
||||||
var ret = "", base = 54;
|
var ret = "", base = leading.length;
|
||||||
num++;
|
num++;
|
||||||
do {
|
do {
|
||||||
num--;
|
num--;
|
||||||
ret += chars[num % base];
|
ret += chars[num % base];
|
||||||
num = Math.floor(num / base);
|
num = Math.floor(num / base);
|
||||||
base = 64;
|
base = leading.length + trailing.length;
|
||||||
} while (num > 0);
|
} while (num > 0);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user