diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-03-16 18:24:23 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-04-26 21:37:19 +0000 |
commit | f034d7c36906fedcc6e2846445ae5bf6c23e8ee5 (patch) | |
tree | 5b84fb1af2e3f7f32ae302426055dd77d95fe01b /src/qml/parser | |
parent | 35ecc40091455631c5f3b6b8724dcdab91068411 (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.g | 13 |
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; } ./ |