diff options
author | Marco Benelli <marco.benelli@qt.io> | 2017-11-21 10:00:44 +0100 |
---|---|---|
committer | Marco Benelli <marco.benelli@qt.io> | 2018-04-05 06:50:03 +0000 |
commit | a874cf581d48b12ccc2380ede5c22da1908fff71 (patch) | |
tree | 9b90b871fbddcc8659638b3e8b7e8da3d569a92b | |
parent | bf285af0071bf30730a5d61fa80b7bc890465177 (diff) | |
download | qt-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.cpp | 2 | ||||
-rw-r--r-- | tests/auto/qml/reformatter/objectliteral.js | 14 |
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 } |