function property(key, value = key, shorthand = key === value) { return { key, value, shorthand };
}
function test() { // Any expression can be spreaded.
assertExpr("({...x})", objExpr([spread(ident("x"))]));
assertExpr("({...f()})", objExpr([spread(callExpr(ident("f"), []))]));
assertExpr("({...123})", objExpr([spread(lit(123))]));
// Spread expression can appear anywhere in an object literal.
assertExpr("({p, ...x})", objExpr([property(ident("p")), spread(ident("x"))]));
assertExpr("({p: a, ...x})", objExpr([property(ident("p"), ident("a")), spread(ident("x"))]));
assertExpr("({...x, p: a})", objExpr([spread(ident("x")), property(ident("p"), ident("a"))]));
// Trailing comma after spread expression is allowed.
assertExpr("({...x,})", objExpr([spread(ident("x"))]));
// __proto__ is not special in spread expressions.
assertExpr("({...__proto__})", objExpr([spread(ident("__proto__"))]));
assertExpr("({...__proto__, ...__proto__})", objExpr([spread(ident("__proto__")), spread(ident("__proto__"))]));
}
runtest(test);
Messung V0.5
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.