aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/parser
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2018-03-16 18:24:23 +0100
committerLars Knoll <lars.knoll@qt.io>2018-04-26 21:37:19 +0000
commitf034d7c36906fedcc6e2846445ae5bf6c23e8ee5 (patch)
tree5b84fb1af2e3f7f32ae302426055dd77d95fe01b /src/qml/parser
parent35ecc40091455631c5f3b6b8724dcdab91068411 (diff)
Add support for shorthand property names in object literals
"var x = 20; var o = {x}" works now. Change-Id: I8dd64bea0bc6191590592c80883716810052773f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/parser')
-rw-r--r--src/qml/parser/qqmljs.g13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/qml/parser/qqmljs.g b/src/qml/parser/qqmljs.g
index ecab053b4a..efa4257aca 100644
--- a/src/qml/parser/qqmljs.g
+++ b/src/qml/parser/qqmljs.g
@@ -1746,8 +1746,19 @@ PropertyDefinitionList: PropertyDefinitionList T_COMMA PropertyDefinition;
./
PropertyDefinition: IdentifierReference;
-/. case $rule_number: { UNIMPLEMENTED; } ./
+/.
+ case $rule_number: {
+ AST::IdentifierPropertyName *name = new (pool) AST::IdentifierPropertyName(stringRef(1));
+ name->propertyNameToken = loc(1);
+ AST::IdentifierExpression *expr = new (pool) AST::IdentifierExpression(stringRef(1));
+ expr->identifierToken = loc(1);
+ AST::PropertyNameAndValue *node = new (pool) AST::PropertyNameAndValue(name, expr);
+ node->colonToken = loc(2);
+ sym(1).Node = node;
+ } break;
+./
+-- ### using this production should result in a syntax error when used in an ObjectLiteral
PropertyDefinition: CoverInitializedName;
/. case $rule_number: { UNIMPLEMENTED; } ./