JavaScript setTimeout infinite loop without recursion
See original GitHub issueI cannot use Obfuscator.io(https://obfuscator.io/) to uglify my JS script because it contains a setTimeout within a function that calls itself. MCVE:
function repeater() {
// DO SOME STUFF...
setTimeout(repeater, 100);
}
repeater();
Custom obfuscation settings required to reproduce:
- Identifier Names Generator: Mangled
- Reserved Names: $ - jQuery
Obfuscator.io’s error message:
Error: @postConstruct error in class t: @postConstruct error in class t: Maximum call stack size exceeded
I’ve read a few other Stack Overflow questions about this. I understand that calling setTimeout(func) inside func is not actually recursion.
But still, Obfuscator.io’s algorithm can’t handle a self-invoking setTimeout delay.
How do I make a repeatedly-executing function using setTimeout without calling it in the function itself? I don’t want to use setInterval because I want the delay to begin each time after the function’s code has run. setInterval ignores that.
Issue Analytics
- State:
- Created 5 years ago
- Comments:11 (8 by maintainers)
Top GitHub Comments
@zamotkin Done. Thank you for your fixes!
@sanex3339 yes, thank you, I have now a time to help this project.