return function render(_ctx, _cache) {
with (_ctx) {
- const { createCommentVNode: _createCommentVNode, openBlock: _openBlock, createElementBlock: _createElementBlock, createElementVNode: _createElementVNode, Fragment: _Fragment } = _Vue
+ const { createCommentVNode: _createCommentVNode, openBlock: _openBlock, createElementBlock: _createElementBlock, Fragment: _Fragment } = _Vue
return (_ctx.ok)
? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [
return function render(_ctx, _cache) {
with (_ctx) {
- const { withCtx: _withCtx, resolveComponent: _resolveComponent, resolveSkipComponent: _resolveSkipComponent, openBlock: _openBlock, createBlock: _createBlock } = _Vue
+ const { withCtx: _withCtx, toDisplayString: _toDisplayString, resolveComponent: _resolveComponent, resolveSkipComponent: _resolveSkipComponent, openBlock: _openBlock, createBlock: _createBlock } = _Vue
const _component_Comp = _resolveComponent("Comp")
return (_openBlock(), _createBlock(_resolveSkipComponent(_ctx.ok, _component_Comp), null, {
- [_ctx.foo]: _withCtx(() => ["foo"]),
+ [_ctx.foo]: _withCtx(() => [_toDisplayString(_ctx.foo)]),
_: 2 /* DYNAMIC */
}, 1024 /* DYNAMIC_SLOTS */))
}
return function render(_ctx, _cache) {
with (_ctx) {
- const { withCtx: _withCtx, openBlock: _openBlock, createElementBlock: _createElementBlock, createCommentVNode: _createCommentVNode, createElementVNode: _createElementVNode, resolveComponent: _resolveComponent, Fragment: _Fragment, createBlock: _createBlock } = _Vue
+ const { withCtx: _withCtx, toDisplayString: _toDisplayString, openBlock: _openBlock, createElementBlock: _createElementBlock, createCommentVNode: _createCommentVNode, resolveComponent: _resolveComponent, Fragment: _Fragment, createBlock: _createBlock } = _Vue
const _component_Comp = _resolveComponent("Comp")
return (_ctx.ok)
? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [
(_ctx.yes)
- ? (_openBlock(), _createElementBlock("span", { key: 0 }, "default"))
+ ? (_openBlock(), _createElementBlock("span", { key: 0 }, _toDisplayString(_ctx.default), 1 /* TEXT */))
: _createCommentVNode("v-if", true)
], 2112 /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */))
: (_openBlock(), _createBlock(_component_Comp, { key: 1 }, {
default: _withCtx(() => [
(_ctx.yes)
- ? (_openBlock(), _createElementBlock("span", { key: 0 }, "default"))
+ ? (_openBlock(), _createElementBlock("span", { key: 0 }, _toDisplayString(_ctx.default), 1 /* TEXT */))
: _createCommentVNode("v-if", true)
]),
_: 1 /* STABLE */
return function render(_ctx, _cache) {
with (_ctx) {
- const { withCtx: _withCtx, createElementVNode: _createElementVNode, resolveComponent: _resolveComponent, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock, createBlock: _createBlock } = _Vue
+ const { withCtx: _withCtx, createElementVNode: _createElementVNode, toDisplayString: _toDisplayString, resolveComponent: _resolveComponent, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock, createBlock: _createBlock } = _Vue
const _component_Comp = _resolveComponent("Comp")
_createElementVNode("div")
], 64 /* STABLE_FRAGMENT */))
: (_openBlock(), _createBlock(_component_Comp, { key: 1 }, {
- foo: _withCtx(() => ["foo"]),
+ foo: _withCtx(() => [_toDisplayString(_ctx.foo)]),
default: _withCtx(() => [
_createElementVNode("span"),
_createElementVNode("div")
return function render(_ctx, _cache) {
with (_ctx) {
- const { withCtx: _withCtx, createSlots: _createSlots, resolveComponent: _resolveComponent, resolveSkipComponent: _resolveSkipComponent, openBlock: _openBlock, createBlock: _createBlock } = _Vue
+ const { withCtx: _withCtx, createSlots: _createSlots, toDisplayString: _toDisplayString, resolveComponent: _resolveComponent, resolveSkipComponent: _resolveSkipComponent, openBlock: _openBlock, createBlock: _createBlock } = _Vue
const _component_Comp = _resolveComponent("Comp")
(_ctx.yes)
? {
name: "default",
- fn: _withCtx(() => ["default"]),
+ fn: _withCtx(() => [_toDisplayString(_ctx.default)]),
key: "0"
}
: undefined
return function render(_ctx, _cache) {
with (_ctx) {
- const { resolveComponent: _resolveComponent, createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock, createElementBlock: _createElementBlock } = _Vue
+ const { resolveComponent: _resolveComponent, openBlock: _openBlock, createBlock: _createBlock, createElementBlock: _createElementBlock } = _Vue
const _component_Comp = _resolveComponent("Comp")
return function render(_ctx, _cache) {
with (_ctx) {
- const { createElementVNode: _createElementVNode, openBlock: _openBlock, createElementBlock: _createElementBlock } = _Vue
+ const { openBlock: _openBlock, createElementBlock: _createElementBlock } = _Vue
return (_ctx.ok)
? (_openBlock(), _createElementBlock("span", { key: 0 }))
return function render(_ctx, _cache) {
with (_ctx) {
- const { Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock } = _Vue
+ const { toDisplayString: _toDisplayString, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock } = _Vue
return (_ctx.ok)
- ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, ["foo"], 2112 /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */))
- : (_openBlock(), _createElementBlock("div", { key: 1 }, "foo"))
+ ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [_toDisplayString(_ctx.foo)], 2112 /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */))
+ : (_openBlock(), _createElementBlock("div", { key: 1 }, _toDisplayString(_ctx.foo), 1 /* TEXT */))
}
}"
`;
return function render(_ctx, _cache) {
with (_ctx) {
- const { createElementVNode: _createElementVNode, openBlock: _openBlock, createElementBlock: _createElementBlock, withMemo: _withMemo } = _Vue
+ const { openBlock: _openBlock, createElementBlock: _createElementBlock, withMemo: _withMemo } = _Vue
return (_ctx.ok)
? (_openBlock(), _createElementBlock("span", { key: 0 }))
})
test('with text children', () => {
- expect(compile(`<div v-skip="foo">hello</div>`).code)
+ expect(compile(`<div v-skip="foo">{{hello}}</div>`).code)
.toMatchInlineSnapshot(`
- "const { ssrRenderAttrs: _ssrRenderAttrs } = require("vue/server-renderer")
+ "const { ssrRenderAttrs: _ssrRenderAttrs, ssrInterpolate: _ssrInterpolate } = require("vue/server-renderer")
return function ssrRender(_ctx, _push, _parent, _attrs) {
if (_ctx.foo) {
- _push(\`<!--[-->hello<!--]-->\`)
+ _push(\`<!--[-->\${_ssrInterpolate(_ctx.hello)}<!--]-->\`)
} else {
- _push(\`<div\${_ssrRenderAttrs(_attrs)}>hello</div>\`)
+ _push(\`<div\${
+ _ssrRenderAttrs(_attrs)
+ }>\${
+ _ssrInterpolate(_ctx.hello)
+ }</div>\`)
}
}"
`)
})
test('on component with default slot', () => {
- expect(compile(`<Comp v-skip="ok">foo</Comp>`).code).toMatchInlineSnapshot(`
- "const { withCtx: _withCtx, resolveComponent: _resolveComponent, createTextVNode: _createTextVNode } = require("vue")
- const { ssrRenderComponent: _ssrRenderComponent } = require("vue/server-renderer")
+ expect(compile(`<Comp v-skip="ok">{{foo}}</Comp>`).code)
+ .toMatchInlineSnapshot(`
+ "const { withCtx: _withCtx, resolveComponent: _resolveComponent, toDisplayString: _toDisplayString, createTextVNode: _createTextVNode } = require("vue")
+ const { ssrRenderComponent: _ssrRenderComponent, ssrInterpolate: _ssrInterpolate } = require("vue/server-renderer")
- return function ssrRender(_ctx, _push, _parent, _attrs) {
- const _component_Comp = _resolveComponent("Comp")
+ return function ssrRender(_ctx, _push, _parent, _attrs) {
+ const _component_Comp = _resolveComponent("Comp")
- if (_ctx.ok) {
- _push(\`<!--[-->foo<!--]-->\`)
- } else {
- _push(_ssrRenderComponent(_component_Comp, _attrs, {
- default: _withCtx((_, _push, _parent, _scopeId) => {
- if (_push) {
- _push(\`foo\`)
- } else {
- return [
- _createTextVNode("foo")
- ]
- }
- }),
- _: 1 /* STABLE */
- }, _parent))
- }
- }"
- `)
+ if (_ctx.ok) {
+ _push(\`<!--[-->\${_ssrInterpolate(_ctx.foo)}<!--]-->\`)
+ } else {
+ _push(_ssrRenderComponent(_component_Comp, _attrs, {
+ default: _withCtx((_, _push, _parent, _scopeId) => {
+ if (_push) {
+ _push(\`\${_ssrInterpolate(_ctx.foo)}\`)
+ } else {
+ return [
+ _createTextVNode(_toDisplayString(_ctx.foo), 1 /* TEXT */)
+ ]
+ }
+ }),
+ _: 1 /* STABLE */
+ }, _parent))
+ }
+ }"
+ `)
})
test('on component with multiple named slot', () => {
expect(
compile(
`<Comp v-skip="ok">
- <template #default>default</template>
- <template #foo>foo</template>
+ <template #default>{{default}}</template>
+ <template #foo>{{foo}}</template>
</Comp>`,
).code,
).toMatchInlineSnapshot(`
- "const { withCtx: _withCtx, resolveComponent: _resolveComponent, createTextVNode: _createTextVNode } = require("vue")
- const { ssrRenderComponent: _ssrRenderComponent } = require("vue/server-renderer")
+ "const { withCtx: _withCtx, resolveComponent: _resolveComponent, toDisplayString: _toDisplayString, createTextVNode: _createTextVNode } = require("vue")
+ const { ssrRenderComponent: _ssrRenderComponent, ssrInterpolate: _ssrInterpolate } = require("vue/server-renderer")
return function ssrRender(_ctx, _push, _parent, _attrs) {
const _component_Comp = _resolveComponent("Comp")
if (_ctx.ok) {
- _push(\`<!--[-->default<!--]-->\`)
+ _push(\`<!--[-->\${_ssrInterpolate(_ctx.default)}<!--]-->\`)
} else {
_push(_ssrRenderComponent(_component_Comp, _attrs, {
default: _withCtx((_, _push, _parent, _scopeId) => {
if (_push) {
- _push(\`default\`)
+ _push(\`\${_ssrInterpolate(_ctx.default)}\`)
} else {
return [
- _createTextVNode("default")
+ _createTextVNode(_toDisplayString(_ctx.default), 1 /* TEXT */)
]
}
}),
foo: _withCtx((_, _push, _parent, _scopeId) => {
if (_push) {
- _push(\`foo\`)
+ _push(\`\${_ssrInterpolate(_ctx.foo)}\`)
} else {
return [
- _createTextVNode("foo")
+ _createTextVNode(_toDisplayString(_ctx.foo), 1 /* TEXT */)
]
}
}),
compile(
`<Comp v-skip="ok">
<span/>
- <template #foo>foo</template>
+ <template #foo>{{foo}}</template>
<div/>
</Comp>`,
).code,
).toMatchInlineSnapshot(`
- "const { withCtx: _withCtx, resolveComponent: _resolveComponent, createTextVNode: _createTextVNode, createVNode: _createVNode } = require("vue")
- const { ssrRenderComponent: _ssrRenderComponent } = require("vue/server-renderer")
+ "const { withCtx: _withCtx, resolveComponent: _resolveComponent, toDisplayString: _toDisplayString, createTextVNode: _createTextVNode, createVNode: _createVNode } = require("vue")
+ const { ssrRenderComponent: _ssrRenderComponent, ssrInterpolate: _ssrInterpolate } = require("vue/server-renderer")
return function ssrRender(_ctx, _push, _parent, _attrs) {
const _component_Comp = _resolveComponent("Comp")
_push(_ssrRenderComponent(_component_Comp, _attrs, {
foo: _withCtx((_, _push, _parent, _scopeId) => {
if (_push) {
- _push(\`foo\`)
+ _push(\`\${_ssrInterpolate(_ctx.foo)}\`)
} else {
return [
- _createTextVNode("foo")
+ _createTextVNode(_toDisplayString(_ctx.foo), 1 /* TEXT */)
]
}
}),
expect(
compile(
`<Comp v-skip="ok">
- <template v-if="yes" #default>default</template>
+ <template v-if="yes" #default>{{default}}</template>
</Comp>`,
).code,
).toMatchInlineSnapshot(`
- "const { withCtx: _withCtx, createSlots: _createSlots, resolveComponent: _resolveComponent, createTextVNode: _createTextVNode } = require("vue")
- const { ssrRenderComponent: _ssrRenderComponent, ssrRenderSkipComponent: _ssrRenderSkipComponent } = require("vue/server-renderer")
+ "const { withCtx: _withCtx, createSlots: _createSlots, resolveComponent: _resolveComponent, toDisplayString: _toDisplayString, createTextVNode: _createTextVNode } = require("vue")
+ const { ssrRenderComponent: _ssrRenderComponent, ssrRenderSkipComponent: _ssrRenderSkipComponent, ssrInterpolate: _ssrInterpolate } = require("vue/server-renderer")
return function ssrRender(_ctx, _push, _parent, _attrs) {
const _component_Comp = _resolveComponent("Comp")
name: "default",
fn: _withCtx((_, _push, _parent, _scopeId) => {
if (_push) {
- _push(\`default\`)
+ _push(\`\${_ssrInterpolate(_ctx.default)}\`)
} else {
return [
- _createTextVNode("default")
+ _createTextVNode(_toDisplayString(_ctx.default), 1 /* TEXT */)
]
}
}),
expect(
compile(
`<Comp v-skip="ok">
- <span v-if="yes">default</span>
+ <span v-if="yes">{{default}}</span>
</Comp>`,
).code,
).toMatchInlineSnapshot(`
- "const { withCtx: _withCtx, resolveComponent: _resolveComponent, openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode } = require("vue")
- const { ssrRenderComponent: _ssrRenderComponent } = require("vue/server-renderer")
+ "const { withCtx: _withCtx, resolveComponent: _resolveComponent, toDisplayString: _toDisplayString, openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode } = require("vue")
+ const { ssrRenderComponent: _ssrRenderComponent, ssrInterpolate: _ssrInterpolate } = require("vue/server-renderer")
return function ssrRender(_ctx, _push, _parent, _attrs) {
const _component_Comp = _resolveComponent("Comp")
if (_ctx.ok) {
_push(\`<!--[-->\`)
if (_ctx.yes) {
- _push(\`<span>default</span>\`)
+ _push(\`<span>\${_ssrInterpolate(_ctx.default)}</span>\`)
} else {
_push(\`<!---->\`)
}
default: _withCtx((_, _push, _parent, _scopeId) => {
if (_push) {
if (_ctx.yes) {
- _push(\`<span\${_scopeId}>default</span>\`)
+ _push(\`<span\${
+ _scopeId
+ }>\${
+ _ssrInterpolate(_ctx.default)
+ }</span>\`)
} else {
_push(\`<!---->\`)
}
} else {
return [
(_ctx.yes)
- ? (_openBlock(), _createBlock("span", { key: 0 }, "default"))
+ ? (_openBlock(), _createBlock("span", { key: 0 }, _toDisplayString(_ctx.default), 1 /* TEXT */))
: _createCommentVNode("v-if", true)
]
}
expect(
compile(
`<Comp v-skip="ok">
- <template #[foo]>foo</template>
+ <template #[foo]>{{foo}}</template>
</Comp>`,
).code,
).toMatchInlineSnapshot(`
- "const { withCtx: _withCtx, resolveComponent: _resolveComponent, createTextVNode: _createTextVNode } = require("vue")
- const { ssrRenderComponent: _ssrRenderComponent, ssrRenderSkipComponent: _ssrRenderSkipComponent } = require("vue/server-renderer")
+ "const { withCtx: _withCtx, resolveComponent: _resolveComponent, toDisplayString: _toDisplayString, createTextVNode: _createTextVNode } = require("vue")
+ const { ssrRenderComponent: _ssrRenderComponent, ssrRenderSkipComponent: _ssrRenderSkipComponent, ssrInterpolate: _ssrInterpolate } = require("vue/server-renderer")
return function ssrRender(_ctx, _push, _parent, _attrs) {
const _component_Comp = _resolveComponent("Comp")
_push(_ssrRenderSkipComponent(_push, _ctx.ok, _component_Comp, _attrs, {
[_ctx.foo]: _withCtx((_, _push, _parent, _scopeId) => {
if (_push) {
- _push(\`foo\`)
+ _push(\`\${_ssrInterpolate(_ctx.foo)}\`)
} else {
return [
- _createTextVNode("foo")
+ _createTextVNode(_toDisplayString(_ctx.foo), 1 /* TEXT */)
]
}
}),
expect(
compile(
`<Comp v-skip="ok">
- <template #[foo]>foo</template>
- <template #default>default</template>
+ <template #[foo]>{{foo}}</template>
+ <template #default>{{default}}</template>
</Comp>`,
).code,
).toMatchInlineSnapshot(`
- "const { withCtx: _withCtx, resolveComponent: _resolveComponent, createTextVNode: _createTextVNode } = require("vue")
- const { ssrRenderComponent: _ssrRenderComponent, ssrRenderSkipComponent: _ssrRenderSkipComponent } = require("vue/server-renderer")
+ "const { withCtx: _withCtx, resolveComponent: _resolveComponent, toDisplayString: _toDisplayString, createTextVNode: _createTextVNode } = require("vue")
+ const { ssrRenderComponent: _ssrRenderComponent, ssrRenderSkipComponent: _ssrRenderSkipComponent, ssrInterpolate: _ssrInterpolate } = require("vue/server-renderer")
return function ssrRender(_ctx, _push, _parent, _attrs) {
const _component_Comp = _resolveComponent("Comp")
_push(_ssrRenderSkipComponent(_push, _ctx.ok, _component_Comp, _attrs, {
[_ctx.foo]: _withCtx((_, _push, _parent, _scopeId) => {
if (_push) {
- _push(\`foo\`)
+ _push(\`\${_ssrInterpolate(_ctx.foo)}\`)
} else {
return [
- _createTextVNode("foo")
+ _createTextVNode(_toDisplayString(_ctx.foo), 1 /* TEXT */)
]
}
}),
default: _withCtx((_, _push, _parent, _scopeId) => {
if (_push) {
- _push(\`default\`)
+ _push(\`\${_ssrInterpolate(_ctx.default)}\`)
} else {
return [
- _createTextVNode("default")
+ _createTextVNode(_toDisplayString(_ctx.default), 1 /* TEXT */)
]
}
}),
})
test('on dynamic component with default slot', () => {
- expect(compile(`<component :is="Comp" v-skip="ok">foo</component>`).code)
- .toMatchInlineSnapshot(`
- "const { withCtx: _withCtx, resolveDynamicComponent: _resolveDynamicComponent, createTextVNode: _createTextVNode, createVNode: _createVNode } = require("vue")
- const { ssrRenderVNode: _ssrRenderVNode } = require("vue/server-renderer")
+ expect(
+ compile(`<component :is="Comp" v-skip="ok">{{foo}}</component>`).code,
+ ).toMatchInlineSnapshot(`
+ "const { withCtx: _withCtx, resolveDynamicComponent: _resolveDynamicComponent, toDisplayString: _toDisplayString, createTextVNode: _createTextVNode, createVNode: _createVNode } = require("vue")
+ const { ssrRenderVNode: _ssrRenderVNode, ssrInterpolate: _ssrInterpolate } = require("vue/server-renderer")
- return function ssrRender(_ctx, _push, _parent, _attrs) {
- if (_ctx.ok) {
- _push(\`<!--[-->foo<!--]-->\`)
- } else {
- _ssrRenderVNode(_push, _createVNode(_resolveDynamicComponent(_ctx.Comp), _attrs, {
- default: _withCtx((_, _push, _parent, _scopeId) => {
- if (_push) {
- _push(\`foo\`)
- } else {
- return [
- _createTextVNode("foo")
- ]
- }
- }),
- _: 1 /* STABLE */
- }), _parent)
- }
- }"
- `)
+ return function ssrRender(_ctx, _push, _parent, _attrs) {
+ if (_ctx.ok) {
+ _push(\`<!--[-->\${_ssrInterpolate(_ctx.foo)}<!--]-->\`)
+ } else {
+ _ssrRenderVNode(_push, _createVNode(_resolveDynamicComponent(_ctx.Comp), _attrs, {
+ default: _withCtx((_, _push, _parent, _scopeId) => {
+ if (_push) {
+ _push(\`\${_ssrInterpolate(_ctx.foo)}\`)
+ } else {
+ return [
+ _createTextVNode(_toDisplayString(_ctx.foo), 1 /* TEXT */)
+ ]
+ }
+ }),
+ _: 1 /* STABLE */
+ }), _parent)
+ }
+ }"
+ `)
})
test('on dynamic component with dynamic slot', () => {
expect(
compile(`
- <component :is="Comp" v-skip="ok">
- <template #[foo]>foo</template>
+ <component :is="Comp" v-skip="ok">
+ <template #[foo]>{{foo}}</template>
</component>
`).code,
).toMatchInlineSnapshot(`
- "const { withCtx: _withCtx, resolveDynamicComponent: _resolveDynamicComponent, createTextVNode: _createTextVNode, createVNode: _createVNode } = require("vue")
- const { ssrRenderVNode: _ssrRenderVNode, ssrRenderSkipVNode: _ssrRenderSkipVNode } = require("vue/server-renderer")
+ "const { withCtx: _withCtx, resolveDynamicComponent: _resolveDynamicComponent, toDisplayString: _toDisplayString, createTextVNode: _createTextVNode, createVNode: _createVNode } = require("vue")
+ const { ssrRenderVNode: _ssrRenderVNode, ssrRenderSkipVNode: _ssrRenderSkipVNode, ssrInterpolate: _ssrInterpolate } = require("vue/server-renderer")
return function ssrRender(_ctx, _push, _parent, _attrs) {
_ssrRenderSkipVNode(_ctx.ok, _push, _createVNode(_resolveDynamicComponent(_ctx.Comp), _attrs, {
[_ctx.foo]: _withCtx((_, _push, _parent, _scopeId) => {
if (_push) {
- _push(\`foo\`)
+ _push(\`\${_ssrInterpolate(_ctx.foo)}\`)
} else {
return [
- _createTextVNode("foo")
+ _createTextVNode(_toDisplayString(_ctx.foo), 1 /* TEXT */)
]
}
}),
test('on Teleport', () => {
expect(
- compile(`<teleport to="target" v-skip="ok">
- <div>foo</div>
+ compile(`
+ <teleport to="target" v-skip="ok">
+ <div>{{foo}}</div>
</teleport>`).code,
).toMatchInlineSnapshot(`
"const { withCtx: _withCtx } = require("vue")
- const { ssrRenderTeleport: _ssrRenderTeleport } = require("vue/server-renderer")
+ const { ssrInterpolate: _ssrInterpolate, ssrRenderTeleport: _ssrRenderTeleport } = require("vue/server-renderer")
return function ssrRender(_ctx, _push, _parent, _attrs) {
if (_ctx.ok) {
- _push(\`<div>foo</div>\`)
+ _push(\`<div>\${_ssrInterpolate(_ctx.foo)}</div>\`)
} else {
_ssrRenderTeleport(_push, (_push) => {
- _push(\`<div>foo</div>\`)
+ _push(\`<div>\${_ssrInterpolate(_ctx.foo)}</div>\`)
}, "target", false, _parent)
}
}"