diff --git a/src/compile/render-dom/index.ts b/src/compile/render-dom/index.ts index 763e13abc1..c86ad1c5e7 100644 --- a/src/compile/render-dom/index.ts +++ b/src/compile/render-dom/index.ts @@ -163,7 +163,7 @@ export default function dom( } }, - leave(node) { + leave(node, parent) { if (map.has(node)) { scope = scope.parent; } @@ -211,6 +211,9 @@ export default function dom( } else { code.prependRight(node.start, `${insert}; `); } + } else if (parent && /(If|For(In|Of)?|While)Statement/.test(parent.type) && node.type !== 'BlockStatement') { + code.prependRight(node.start, '{ '); + code.appendLeft(node.end, `${code.original[node.end - 1] === ';' ? '' : ';'} ${insert}; }`); } else { code.appendLeft(node.end, `${code.original[node.end - 1] === ';' ? '' : ';'} ${insert};`); }