adjust recursion breath and depth

reduce key set to improve collision ratio
This commit is contained in:
alexlamsl 2017-04-03 02:30:41 +08:00
parent 276e91b946
commit dde7223537

View File

@ -573,8 +573,9 @@ function _createExpression(recurmax, noComma, stmtDepth, canThrow) {
} }
function createArrayLiteral(recurmax, noComma, stmtDepth, canThrow) { function createArrayLiteral(recurmax, noComma, stmtDepth, canThrow) {
recurmax--;
var arr = "["; var arr = "[";
for (var i = 0, N = rng(4); i <= N; ++i) { for (var i = 0, N = rng(5); i <= N; ++i) {
// in rare cases produce an array hole element // in rare cases produce an array hole element
var element = rng(20) ? createExpression(recurmax, COMMA_OK, stmtDepth, canThrow) : ""; var element = rng(20) ? createExpression(recurmax, COMMA_OK, stmtDepth, canThrow) : "";
arr += element + ", "; arr += element + ", ";
@ -585,11 +586,9 @@ function createArrayLiteral(recurmax, noComma, stmtDepth, canThrow) {
var SAFE_KEYS = [ var SAFE_KEYS = [
"length", "length",
"foo", "foo",
"bar",
"a", "a",
"b", "b",
"c", "c",
"x",
"undefined", "undefined",
"null", "null",
"NaN", "NaN",
@ -599,19 +598,17 @@ var SAFE_KEYS = [
]; ];
var KEYS = [ var KEYS = [
"''", "''",
"' '", '"\t"',
"'-2'", '"-2"',
"'-1'",
"0", "0",
"1", "1.5",
"2.5",
"3", "3",
"4",
].concat(SAFE_KEYS); ].concat(SAFE_KEYS);
function createObjectLiteral(recurmax, noComma, stmtDepth, canThrow) { function createObjectLiteral(recurmax, noComma, stmtDepth, canThrow) {
recurmax--;
var obj = "({"; var obj = "({";
for (var i = 0, N = rng(3); i <= N; ++i) { for (var i = 0, N = rng(5); i <= N; ++i) {
var key = KEYS[rng(KEYS.length)]; var key = KEYS[rng(KEYS.length)];
obj += key + ":(" + createExpression(recurmax, COMMA_OK, stmtDepth, canThrow) + "), "; obj += key + ":(" + createExpression(recurmax, COMMA_OK, stmtDepth, canThrow) + "), ";
} }