summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Benelli <marco.benelli@qt.io>2017-11-21 10:00:44 +0100
committerMarco Benelli <marco.benelli@qt.io>2018-04-05 06:50:03 +0000
commita874cf581d48b12ccc2380ede5c22da1908fff71 (patch)
tree9b90b871fbddcc8659638b3e8b7e8da3d569a92b
parentbf285af0071bf30730a5d61fa80b7bc890465177 (diff)
downloadqt-creator-a874cf581d48b12ccc2380ede5c22da1908fff71.tar.gz
Qml/js reformatter: use quotes in objects literals
The reformatter used to remove the quotes that wraps the property name in object literals. This causes problem when the name is not a valid identifier, resulting in that valid code become invalid after reformatting. This patch forces wrapping of property's name in quotes: in this way, the reformatted code is consistent and it never get invalidated. However the resulting formatted code is not consisted with the one formatted by previous versions. Task-number: QTCREATORBUG-17455 Change-Id: I1e361102819055de210d6c81020f204c08aaa253 Reviewed-by: Markus Maier <markus.maier.sw@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r--src/libs/qmljs/qmljsreformatter.cpp2
-rw-r--r--tests/auto/qml/reformatter/objectliteral.js14
2 files changed, 9 insertions, 7 deletions
diff --git a/src/libs/qmljs/qmljsreformatter.cpp b/src/libs/qmljs/qmljsreformatter.cpp
index c78f52f5b8..d582c3de94 100644
--- a/src/libs/qmljs/qmljsreformatter.cpp
+++ b/src/libs/qmljs/qmljsreformatter.cpp
@@ -687,7 +687,9 @@ protected:
for (PropertyAssignmentList *it = ast; it; it = it->next) {
PropertyNameAndValue *assignment = AST::cast<PropertyNameAndValue *>(it->assignment);
if (assignment) {
+ out("\"");
accept(assignment->name);
+ out("\"");
out(": ", assignment->colonToken);
accept(assignment->value);
if (it->next) {
diff --git a/tests/auto/qml/reformatter/objectliteral.js b/tests/auto/qml/reformatter/objectliteral.js
index 9c8bfc46f1..37f6863374 100644
--- a/tests/auto/qml/reformatter/objectliteral.js
+++ b/tests/auto/qml/reformatter/objectliteral.js
@@ -1,12 +1,12 @@
var x = {
- x: 12,
- y: {
- x: 12,
- y: "abc",
- z: function (x) {
+ "x": 12,
+ "y": {
+ "x": 12,
+ "y": "abc",
+ "z": function (x) {
return a
},
- abc: 15
+ "abc": 15
},
- z: 12
+ "z": 12
}