aboutsummaryrefslogtreecommitdiffstats
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
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>
-rw-r--r--src/qml/parser/qqmljs.g13
-rw-r--r--tests/auto/qml/ecmascripttests/TestExpectations5
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