[FIX] compiler: escape backticks in attributes

Before this commit, the generated code crashed if an attribute in
the template contained backticks. The compiler output something
like

```js
   let block1 = createBlock(`<div foo="`bar`"/>`);
```

The backticks are now properly escaped.
This commit is contained in:
Aaron Bohy
2022-06-22 10:12:55 +02:00
committed by Sam Degueldre
parent 9c4c3e3b83
commit c16d7d52b1
3 changed files with 40 additions and 0 deletions
+1
View File
@@ -282,6 +282,7 @@ export class CodeGenerator {
for (let block of this.blocks) {
if (block.dom) {
let xmlString = block.asXmlString();
xmlString = xmlString.replace(/`/g, "\\`");
if (block.dynamicTagName) {
xmlString = xmlString.replace(/^<\w+/, `<\${tag || '${block.dom.nodeName}'}`);
xmlString = xmlString.replace(/\w+>$/, `\${tag || '${block.dom.nodeName}'}>`);