fix infinite recursion in `ufuzz` code generation (#4592)
authorAlex Lam S.L <alexlamsl@gmail.com>
Sun, 24 Jan 2021 15:37:57 +0000 (15:37 +0000)
committerGitHub <noreply@github.com>
Sun, 24 Jan 2021 15:37:57 +0000 (23:37 +0800)
test/ufuzz/index.js

index a9676fc..f8d648b 100644 (file)
@@ -1587,9 +1587,10 @@ function getVarName(noConst) {
 function createVarName(maybe, dontStore) {
     if (!maybe || rng(2)) {
         var suffix = rng(3);
-        var name;
+        var name, tries = 10;
         do {
             name = VAR_NAMES[rng(VAR_NAMES.length)];
+            if (--tries < 0) suffix++;
             if (suffix) name += "_" + suffix;
         } while (unique_vars.indexOf(name) >= 0 || block_vars.indexOf(name) >= 0 || async && name == "await");
         if (!dontStore) VAR_NAMES.push(name);