suppress invalid test generation in `ufuzz` (#4551)
authorAlex Lam S.L <alexlamsl@gmail.com>
Tue, 12 Jan 2021 20:29:39 +0000 (20:29 +0000)
committerGitHub <noreply@github.com>
Tue, 12 Jan 2021 20:29:39 +0000 (04:29 +0800)
test/ufuzz/index.js

index edb98aa..73e00ef 100644 (file)
@@ -1485,18 +1485,26 @@ function _createSimpleBinaryExpr(recurmax, noComma, stmtDepth, canThrow) {
 function createTypeofExpr(recurmax, stmtDepth, canThrow) {
     switch (rng(8)) {
       case 0:
-        return "(typeof " + createVarName(MANDATORY, DONT_STORE) + ' === "' + TYPEOF_OUTCOMES[rng(TYPEOF_OUTCOMES.length)] + '")';
+        return "(typeof " + createVar() + ' === "' + TYPEOF_OUTCOMES[rng(TYPEOF_OUTCOMES.length)] + '")';
       case 1:
-        return "(typeof " + createVarName(MANDATORY, DONT_STORE) + ' !== "' + TYPEOF_OUTCOMES[rng(TYPEOF_OUTCOMES.length)] + '")';
+        return "(typeof " + createVar() + ' !== "' + TYPEOF_OUTCOMES[rng(TYPEOF_OUTCOMES.length)] + '")';
       case 2:
-        return "(typeof " + createVarName(MANDATORY, DONT_STORE) + ' == "' + TYPEOF_OUTCOMES[rng(TYPEOF_OUTCOMES.length)] + '")';
+        return "(typeof " + createVar() + ' == "' + TYPEOF_OUTCOMES[rng(TYPEOF_OUTCOMES.length)] + '")';
       case 3:
-        return "(typeof " + createVarName(MANDATORY, DONT_STORE) + ' != "' + TYPEOF_OUTCOMES[rng(TYPEOF_OUTCOMES.length)] + '")';
+        return "(typeof " + createVar() + ' != "' + TYPEOF_OUTCOMES[rng(TYPEOF_OUTCOMES.length)] + '")';
       case 4:
-        return "(typeof " + createVarName(MANDATORY, DONT_STORE) + ")";
+        return "(typeof " + createVar() + ")";
       default:
         return "(typeof " + createExpression(recurmax, COMMA_OK, stmtDepth, canThrow) + ")";
     }
+
+    function createVar() {
+        var save_async = async;
+        if (!async && avoid_vars.indexOf("await") >= 0) async = true;
+        var name = createVarName(MANDATORY, DONT_STORE);
+        async = save_async;
+        return name;
+    }
 }
 
 function createValue() {