From c0c976a47c3aeb937f62e531ff3bbdd731cc6411 Mon Sep 17 00:00:00 2001 From: alexlamsl Date: Fri, 21 Apr 2017 18:28:51 +0800 Subject: [PATCH] tweaks to fuzzer - labels to start at 10000 - fix for-in expression - fix `getLabel()` returning `undefined` --- test/ufuzz.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/ufuzz.js b/test/ufuzz.js index bc2c70e0..d6d73435 100644 --- a/test/ufuzz.js +++ b/test/ufuzz.js @@ -352,7 +352,7 @@ function createLabel(canBreak, canContinue) { label = canBreak[canBreak.length - 1] + 1; } else { canBreak = canBreak ? [ "" ] : []; - label = 1; + label = 10000; } canBreak.push(label); if (Array.isArray(canContinue)) { @@ -370,6 +370,7 @@ function createLabel(canBreak, canContinue) { } function getLabel(label) { + if (!Array.isArray(label)) return ""; label = label[rng(label.length)]; return label && " L" + label; } @@ -408,7 +409,7 @@ function createStatement(recurmax, canThrow, canBreak, canContinue, cannotReturn if (rng(5) > 1) { optElementVar = 'var ' + createVarName(MANDATORY) + ' = expr' + loop + '[key' + loop + ']; '; } - return label.target + ' for (var key' + loop + ' in ' + createExpression(recurmax, COMMA_OK, stmtDepth, canThrow) + ') {' + optElementVar + createStatement(recurmax, canThrow, label.break, label.continue, cannotReturn, stmtDepth) + '}'; + return '{var expr' + loop + ' = ' + createExpression(recurmax, COMMA_OK, stmtDepth, canThrow) + '; ' + label.target + ' for (var key' + loop + ' in expr' + loop + ') {' + optElementVar + createStatement(recurmax, canThrow, label.break, label.continue, cannotReturn, stmtDepth) + '}}'; case STMT_SEMI: return ';'; case STMT_EXPR: