support shorthand property name in object literal (#4263)

This commit is contained in:
Alex Lam S.L
2020-11-08 02:44:44 +00:00
committed by GitHub
parent 4bbeb09f7c
commit b82de04775
2 changed files with 54 additions and 42 deletions

View File

@@ -944,13 +944,16 @@ function createAccessor(recurmax, stmtDepth, canThrow) {
function createObjectLiteral(recurmax, stmtDepth, canThrow) {
recurmax--;
var obj = ["({"];
for (var i = rng(6); --i >= 0;) {
if (rng(20) == 0) {
obj.push(createAccessor(recurmax, stmtDepth, canThrow));
} else {
var key = KEYS[rng(KEYS.length)];
obj.push(key + ":(" + createExpression(recurmax, COMMA_OK, stmtDepth, canThrow) + "),");
}
for (var i = rng(6); --i >= 0;) switch (rng(20)) {
case 0:
obj.push(createAccessor(recurmax, stmtDepth, canThrow));
break;
case 1:
obj.push(getVarName() + ",");
break;
default:
obj.push(KEYS[rng(KEYS.length)] + ":(" + createExpression(recurmax, COMMA_OK, stmtDepth, canThrow) + "),");
break;
}
obj.push("})");
return obj.join("\n");