js-confuser
Version:
JavaScript Obfuscation Tool.
34 lines (27 loc) • 870 B
text/typescript
export class IntGen {
private min: number;
private max: number;
private generatedInts: Set<number>;
constructor(min: number = -250, max: number = 250) {
this.min = min;
this.max = max;
this.generatedInts = new Set<number>();
}
private getRandomInt(min: number, max: number): number {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
generate(): number {
let randomInt: number;
// Keep generating until we find a unique integer
do {
randomInt = this.getRandomInt(this.min, this.max);
// Expand the range if most integers in the current range are exhausted
if (this.generatedInts.size >= 0.8 * (this.max - this.min)) {
this.min -= 100;
this.max += 100;
}
} while (this.generatedInts.has(randomInt));
this.generatedInts.add(randomInt);
return randomInt;
}
}