From de9507b6ffe92aa3f1dc3d5efa41ac1dbaf22c37 Mon Sep 17 00:00:00 2001 From: Andrey Sukhonosov Date: Sat, 5 Oct 2019 22:42:49 +0300 Subject: [PATCH] fix(compiler/codegen): add simple expression node opening bracket for ConditionalExpression (#110) --- .../__tests__/__snapshots__/compile.spec.ts.snap | 4 ++-- .../__tests__/transforms/__snapshots__/vSlot.spec.ts.snap | 2 +- packages/compiler-core/src/codegen.ts | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/compiler-core/__tests__/__snapshots__/compile.spec.ts.snap b/packages/compiler-core/__tests__/__snapshots__/compile.spec.ts.snap index 1aafaf9e..d9ade929 100644 --- a/packages/compiler-core/__tests__/__snapshots__/compile.spec.ts.snap +++ b/packages/compiler-core/__tests__/__snapshots__/compile.spec.ts.snap @@ -35,7 +35,7 @@ return function render() { class: _ctx.bar.baz }, [ toString(_ctx.world.burn()), - (openBlock(), _ctx.ok) + (openBlock(), (_ctx.ok) ? createBlock(\\"div\\", { key: 0 }, \\"yes\\") : createBlock(Fragment, { key: 1 }, [\\"no\\"])), (openBlock(), createBlock(Fragment, null, renderList(_ctx.list, (value, index) => { @@ -57,7 +57,7 @@ export default function render() { class: _ctx.bar.baz }, [ _toString(_ctx.world.burn()), - (openBlock(), _ctx.ok) + (openBlock(), (_ctx.ok) ? createBlock(\\"div\\", { key: 0 }, \\"yes\\") : createBlock(Fragment, { key: 1 }, [\\"no\\"])), (openBlock(), createBlock(Fragment, null, renderList(_ctx.list, (value, index) => { diff --git a/packages/compiler-core/__tests__/transforms/__snapshots__/vSlot.spec.ts.snap b/packages/compiler-core/__tests__/transforms/__snapshots__/vSlot.spec.ts.snap index 2532d053..8bbb14f2 100644 --- a/packages/compiler-core/__tests__/transforms/__snapshots__/vSlot.spec.ts.snap +++ b/packages/compiler-core/__tests__/transforms/__snapshots__/vSlot.spec.ts.snap @@ -71,7 +71,7 @@ return function render() { const _component_Comp = resolveComponent(\\"Comp\\") return (openBlock(), createBlock(_component_Comp, null, createSlots({ _compiled: true }, [ - _ctx.ok) + (_ctx.ok) ? { name: \\"one\\", fn: (props) => [toString(props)] diff --git a/packages/compiler-core/src/codegen.ts b/packages/compiler-core/src/codegen.ts index 4c468e30..27e63eeb 100644 --- a/packages/compiler-core/src/codegen.ts +++ b/packages/compiler-core/src/codegen.ts @@ -528,6 +528,7 @@ function genConditionalExpression( const { push, indent, deindent, newline } = context if (test.type === NodeTypes.SIMPLE_EXPRESSION) { const needsParens = !isSimpleIdentifier(test.content) + needsParens && push(`(`) genExpression(test, context) needsParens && push(`)`) } else {