Mangle character sets taken from options (#3436).

This commit is contained in:
jameswilddev 2019-07-20 23:21:26 +01:00
parent 0d97291ba2
commit 2d95c1f5b7

View File

@ -552,21 +552,20 @@ AST_Toplevel.DEFMETHOD("compute_char_frequency", function(options) {
});
var nameGenerator = (function() {
var freq = Object.create(null);
function init(chars) {
var array = [];
for (var i = 0; i < chars.length; i++) {
var ch = chars[i];
array.push(ch);
freq[ch] = -1e-2 * i;
frequency[ch] = -1e-2 * i;
}
return array;
}
var trailing = init("0123456789");
var leading = init("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_");
var chars, frequency;
var chars, frequency, trailing, leading;
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) {
for (var i = str.length; --i >= 0;) {
@ -581,13 +580,13 @@ var nameGenerator = (function() {
};
nameGenerator.reset = reset;
function nameGenerator(num) {
var ret = "", base = 54;
var ret = "", base = leading.length;
num++;
do {
num--;
ret += chars[num % base];
num = Math.floor(num / base);
base = 64;
base = leading.length + trailing.length;
} while (num > 0);
return ret;
}