Skip to content

Commit 3810368

Browse files
committed
more fixes to universal cbi
1 parent 0e9eaa9 commit 3810368

3 files changed

Lines changed: 26 additions & 49 deletions

File tree

lang/libs/page/src/page.ch

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,8 @@ public struct HtmlPage {
334334
if(c == '`') pageJs.append_view("\\`")
335335
else if(c == '$' && i + 1 < delta_size && delta[i+1] == '{') pageJs.append_view("\\$")
336336
else if(c == '\\') pageJs.append_view("\\\\")
337+
else if(c == '\n') pageJs.append_view("\\n")
338+
else if(c == '\r') pageJs.append_view("\\r")
337339
else pageJs.append(c)
338340
}
339341
pageHtml.resize(index);

lang/libs/universal_cbi/src/converter/converter_core.ch

Lines changed: 7 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,7 @@ func (converter : &mut JsConverter) convertJsNode(node : *mut JsNode) {
9797
converter.str.append_view(" ");
9898
converter.str.append_view(&bin.op);
9999
converter.str.append_view(" ");
100-
if(bin.right != null && bin.right.kind == JsNodeKind.Ternary) {
101-
converter.str.append_view("(");
102-
converter.convertJsNode(bin.right);
103-
converter.str.append_view(")");
104-
} else {
105-
converter.convertJsNode(bin.right);
106-
}
100+
converter.convertJsNode(bin.right);
107101
converter.skip_reactive_deref = false;
108102
return;
109103
}
@@ -115,13 +109,7 @@ func (converter : &mut JsConverter) convertJsNode(node : *mut JsNode) {
115109
converter.str.append_view(" ");
116110
converter.str.append_view(&bin.op);
117111
converter.str.append_view(" ");
118-
if(bin.right != null && bin.right.kind == JsNodeKind.Ternary) {
119-
converter.str.append_view("(");
120-
converter.convertJsNode(bin.right);
121-
converter.str.append_view(")");
122-
} else {
123-
converter.convertJsNode(bin.right);
124-
}
112+
converter.convertJsNode(bin.right);
125113
return;
126114
}
127115
if(bin.left != null && bin.left.kind == JsNodeKind.Identifier) {
@@ -133,50 +121,20 @@ func (converter : &mut JsConverter) convertJsNode(node : *mut JsNode) {
133121
converter.str.append_view(" ");
134122
converter.str.append_view(&bin.op);
135123
converter.str.append_view(" ");
136-
if(bin.right != null && bin.right.kind == JsNodeKind.Ternary) {
137-
converter.str.append_view("(");
138-
converter.convertJsNode(bin.right);
139-
converter.str.append_view(")");
140-
} else {
141-
converter.convertJsNode(bin.right);
142-
}
124+
converter.convertJsNode(bin.right);
143125
} else {
144-
if(bin.left != null && bin.left.kind == JsNodeKind.Ternary) {
145-
converter.str.append_view("(");
146-
converter.convertJsNode(bin.left);
147-
converter.str.append_view(")");
148-
} else {
149-
converter.convertJsNode(bin.left);
150-
}
126+
converter.convertJsNode(bin.left);
151127
converter.str.append_view(" ");
152128
converter.str.append_view(&bin.op);
153129
converter.str.append_view(" ");
154-
if(bin.right != null && bin.right.kind == JsNodeKind.Ternary) {
155-
converter.str.append_view("(");
156-
converter.convertJsNode(bin.right);
157-
converter.str.append_view(")");
158-
} else {
159-
converter.convertJsNode(bin.right);
160-
}
130+
converter.convertJsNode(bin.right);
161131
}
162132
} else {
163-
if(bin.left != null && bin.left.kind == JsNodeKind.Ternary) {
164-
converter.str.append_view("(");
165-
converter.convertJsNode(bin.left);
166-
converter.str.append_view(")");
167-
} else {
168-
converter.convertJsNode(bin.left);
169-
}
133+
converter.convertJsNode(bin.left);
170134
converter.str.append_view(" ");
171135
converter.str.append_view(&bin.op);
172136
converter.str.append_view(" ");
173-
if(bin.right != null && bin.right.kind == JsNodeKind.Ternary) {
174-
converter.str.append_view("(");
175-
converter.convertJsNode(bin.right);
176-
converter.str.append_view(")");
177-
} else {
178-
converter.convertJsNode(bin.right);
179-
}
137+
converter.convertJsNode(bin.right);
180138
}
181139
}
182140
JsNodeKind.Ternary => {

lang/libs/universal_cbi/src/converter/converter_utils.ch

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,23 @@ func (converter : &mut JsConverter) escapeJs(text : std::string_view) {
2323
if (c1 < 0x80) {
2424
if (c1 == '`' as uint) {
2525
str.append_view("\\`");
26+
} else if (c1 == '\\' as uint) {
27+
str.append_view("\\\\");
28+
} else if (c1 == '\n' as uint) {
29+
str.append_view("\\n");
30+
} else if (c1 == '\r' as uint) {
31+
str.append_view("\\r");
32+
} else if (c1 == '\t' as uint) {
33+
str.append_view("\\t");
34+
} else if (c1 == '\"' as uint) {
35+
str.append_view("\\\"");
36+
} else if (c1 == '\'' as uint) {
37+
str.append_view("\\'");
38+
} else if (c1 == '$' as uint && i + 1 < text.size() && ((text.data()[i+1] as uint) & 0xFF) == '{' as uint) {
39+
str.append_view("\\$");
40+
str.append('{');
41+
i += 2;
42+
continue;
2643
} else {
2744
str.append(c1 as char);
2845
}

0 commit comments

Comments
 (0)