Skip to content

Commit ac5f635

Browse files
committed
Fix parsing of default properties
Merging a5b4f4d
1 parent 90b95e8 commit ac5f635

7 files changed

+31
-16
lines changed

Diff for: package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "qmlweb-parser",
3-
"version": "0.3.4",
3+
"version": "0.3.5",
44
"description": "QML parser in JavaScript",
55
"license": "BSD-2-Clause",
66
"repository": "qmlweb/qmlweb-parser",

Diff for: src/api.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -252,21 +252,23 @@ function qmlweb_parse($TEXT, document_type, exigent_mode) {
252252
var propName = S.token.value;
253253
next();
254254
}
255-
return as("qmlaliasdef", name, objName, propName);
255+
return as("qmlaliasdef", name, false, objName, propName);
256256
}
257257
if (is("punc", ":")) {
258258
next();
259259
statement.in_qmlprop = true;
260-
return as_statement("qmlpropdef", name, type);
260+
return as_statement("qmlpropdef", name, false, type);
261261
} else if (is("punc", ";"))
262262
next();
263-
return as("qmlpropdef", name, type);
263+
return as("qmlpropdef", name, false, type);
264264
}
265265

266266
function qmldefaultprop() {
267267
next();
268268
expect_token("name", "property");
269-
return as("qmldefaultprop", qmlpropdef());
269+
const tree = qmlpropdef();
270+
tree[2] = true;
271+
return tree;
270272
}
271273

272274
function qmlsignaldef() {

Diff for: tests/qml/Alias.qml.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
[
1818
"qmlaliasdef",
1919
"childX",
20+
false,
2021
"child",
2122
"x"
2223
],
@@ -53,4 +54,4 @@
5354
]
5455
]
5556
]
56-
]
57+
]

Diff for: tests/qml/DefaultProperty.qml.json

+5-7
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,10 @@
1515
null,
1616
[
1717
[
18-
"qmldefaultprop",
19-
[
20-
"qmlpropdef",
21-
"defaultProperty",
22-
"var"
23-
]
18+
"qmlpropdef",
19+
"defaultProperty",
20+
true,
21+
"var"
2422
],
2523
[
2624
"qmlprop",
@@ -48,4 +46,4 @@
4846
]
4947
]
5048
]
51-
]
49+
]

Diff for: tests/qml/MultilineString.qml.json

+4-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
[
1818
"qmlpropdef",
1919
"foo",
20+
false,
2021
"string",
2122
[
2223
"stat",
@@ -30,6 +31,7 @@
3031
[
3132
"qmlpropdef",
3233
"bar",
34+
false,
3335
"string",
3436
[
3537
"stat",
@@ -43,6 +45,7 @@
4345
[
4446
"qmlpropdef",
4547
"test",
48+
false,
4649
"string",
4750
[
4851
"stat",
@@ -55,4 +58,4 @@
5558
]
5659
]
5760
]
58-
]
61+
]

Diff for: tests/qml/ParseFunctionVar.qml.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
[
1818
"qmlpropdef",
1919
"aFunction",
20+
false,
2021
"var",
2122
[
2223
"function",
@@ -29,6 +30,7 @@
2930
[
3031
"qmlpropdef",
3132
"bFunction",
33+
false,
3234
"var",
3335
[
3436
"function",
@@ -104,4 +106,4 @@
104106
]
105107
]
106108
]
107-
]
109+
]

Diff for: tests/qml/Properties.qml.json

+10-1
Original file line numberDiff line numberDiff line change
@@ -88,16 +88,19 @@
8888
[
8989
"qmlpropdef",
9090
"flag",
91+
false,
9192
"bool"
9293
],
9394
[
9495
"qmlpropdef",
9596
"integer",
97+
false,
9698
"int"
9799
],
98100
[
99101
"qmlpropdef",
100102
"number",
103+
false,
101104
"int",
102105
[
103106
"stat",
@@ -111,6 +114,7 @@
111114
[
112115
"qmlpropdef",
113116
"number2",
117+
false,
114118
"int",
115119
[
116120
"stat",
@@ -124,6 +128,7 @@
124128
[
125129
"qmlpropdef",
126130
"foo",
131+
false,
127132
"var",
128133
[
129134
"block",
@@ -134,6 +139,7 @@
134139
[
135140
"qmlpropdef",
136141
"bar",
142+
false,
137143
"var",
138144
[
139145
"stat",
@@ -148,6 +154,7 @@
148154
[
149155
"qmlpropdef",
150156
"item",
157+
false,
151158
"Item",
152159
[
153160
"stat",
@@ -163,11 +170,13 @@
163170
[
164171
"qmlpropdef",
165172
"items",
173+
false,
166174
"list"
167175
],
168176
[
169177
"qmlpropdef",
170178
"domDiv",
179+
false,
171180
"var",
172181
[
173182
"stat",
@@ -186,4 +195,4 @@
186195
]
187196
]
188197
]
189-
]
198+
]

0 commit comments

Comments
 (0)