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 | |
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>
-rw-r--r-- | src/qml/parser/qqmljs.g | 13 | ||||
-rw-r--r-- | tests/auto/qml/ecmascripttests/TestExpectations | 5 |
2 files changed, 12 insertions, 6 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; } ./ diff --git a/tests/auto/qml/ecmascripttests/TestExpectations b/tests/auto/qml/ecmascripttests/TestExpectations index 5673f3f8a3..c2b3a8cde7 100644 --- a/tests/auto/qml/ecmascripttests/TestExpectations +++ b/tests/auto/qml/ecmascripttests/TestExpectations @@ -6361,11 +6361,8 @@ language/expressions/object/method-definition/yield-as-yield-operand language/expressions/object/method-definition/yield-newline language/expressions/object/method-definition/yield-return language/expressions/object/method-definition/yield-star-before-newline -language/expressions/object/not-defined language/expressions/object/prop-def-id-eval-error language/expressions/object/prop-def-id-eval-error-2 -language/expressions/object/prop-def-id-get-error -language/expressions/object/prop-def-id-valid language/expressions/object/prop-dup-data-set language/expressions/object/prop-dup-get-data language/expressions/object/prop-dup-get-get @@ -6394,8 +6391,6 @@ language/expressions/object/scope-setter-body-lex-distinc language/expressions/object/scope-setter-paramsbody-var-open language/expressions/object/setter-length-dflt language/expressions/object/setter-super-prop -language/expressions/object/yield-non-strict-access -language/expressions/object/yield-non-strict-syntax language/expressions/postfix-decrement/S11.3.2_A5_T1 language/expressions/postfix-decrement/S11.3.2_A5_T2 language/expressions/postfix-decrement/S11.3.2_A5_T3 |