wip(compiler): adjust renderSlot() signature
This commit is contained in:
@@ -277,8 +277,7 @@ describe('compiler: transform', () => {
|
||||
expect(ast.codegenNode).toMatchObject({
|
||||
codegenNode: {
|
||||
type: NodeTypes.JS_CALL_EXPRESSION,
|
||||
callee: `_${RENDER_SLOT}`,
|
||||
arguments: ['$slots.default']
|
||||
callee: `_${RENDER_SLOT}`
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
@@ -112,7 +112,7 @@ return function render() {
|
||||
const { renderList: _renderList, openBlock: _openBlock, createBlock: _createBlock, Fragment: _Fragment, renderSlot: _renderSlot } = _Vue
|
||||
|
||||
return (_openBlock(), _createBlock(_Fragment, null, _renderList(items, (item) => {
|
||||
return _renderSlot($slots.default)
|
||||
return _renderSlot($slots, \\"default\\")
|
||||
}), 128 /* UNKEYED_FRAGMENT */))
|
||||
}
|
||||
}"
|
||||
@@ -126,7 +126,7 @@ return function render() {
|
||||
const { renderList: _renderList, openBlock: _openBlock, createBlock: _createBlock, Fragment: _Fragment, renderSlot: _renderSlot } = _Vue
|
||||
|
||||
return (_openBlock(), _createBlock(_Fragment, null, _renderList(items, (item) => {
|
||||
return _renderSlot($slots.default)
|
||||
return _renderSlot($slots, \\"default\\")
|
||||
}), 128 /* UNKEYED_FRAGMENT */))
|
||||
}
|
||||
}"
|
||||
|
||||
@@ -40,7 +40,7 @@ return function render() {
|
||||
const { openBlock: _openBlock, renderSlot: _renderSlot, createBlock: _createBlock, Empty: _Empty } = _Vue
|
||||
|
||||
return (_openBlock(), ok
|
||||
? _renderSlot($slots.default, { key: 0 })
|
||||
? _renderSlot($slots, \\"default\\", { key: 0 })
|
||||
: _createBlock(_Empty))
|
||||
}
|
||||
}"
|
||||
@@ -91,3 +91,17 @@ return function render() {
|
||||
}
|
||||
}"
|
||||
`;
|
||||
|
||||
exports[`compiler: v-if codegen v-if on <slot/> 1`] = `
|
||||
"const _Vue = Vue
|
||||
|
||||
return function render() {
|
||||
with (this) {
|
||||
const { openBlock: _openBlock, renderSlot: _renderSlot, createBlock: _createBlock, Empty: _Empty } = _Vue
|
||||
|
||||
return (_openBlock(), ok
|
||||
? _renderSlot($slots, \\"default\\", { key: 0 })
|
||||
: _createBlock(_Empty))
|
||||
}
|
||||
}"
|
||||
`;
|
||||
|
||||
@@ -36,7 +36,7 @@ describe('compiler: transform <slot> outlets', () => {
|
||||
expect((ast.children[0] as ElementNode).codegenNode).toMatchObject({
|
||||
type: NodeTypes.JS_CALL_EXPRESSION,
|
||||
callee: `_${RENDER_SLOT}`,
|
||||
arguments: [`$slots.default`]
|
||||
arguments: [`$slots`, `"default"`]
|
||||
})
|
||||
})
|
||||
|
||||
@@ -45,16 +45,7 @@ describe('compiler: transform <slot> outlets', () => {
|
||||
expect((ast.children[0] as ElementNode).codegenNode).toMatchObject({
|
||||
type: NodeTypes.JS_CALL_EXPRESSION,
|
||||
callee: `_${RENDER_SLOT}`,
|
||||
arguments: [`$slots.foo`]
|
||||
})
|
||||
})
|
||||
|
||||
test('statically named slot outlet w/ name that needs quotes', () => {
|
||||
const ast = parseWithSlots(`<slot name="foo-bar" />`)
|
||||
expect((ast.children[0] as ElementNode).codegenNode).toMatchObject({
|
||||
type: NodeTypes.JS_CALL_EXPRESSION,
|
||||
callee: `_${RENDER_SLOT}`,
|
||||
arguments: [`$slots["foo-bar"]`]
|
||||
arguments: [`$slots`, `"foo"`]
|
||||
})
|
||||
})
|
||||
|
||||
@@ -64,17 +55,11 @@ describe('compiler: transform <slot> outlets', () => {
|
||||
type: NodeTypes.JS_CALL_EXPRESSION,
|
||||
callee: `_${RENDER_SLOT}`,
|
||||
arguments: [
|
||||
`$slots`,
|
||||
{
|
||||
type: NodeTypes.COMPOUND_EXPRESSION,
|
||||
children: [
|
||||
`$slots[`,
|
||||
{
|
||||
type: NodeTypes.SIMPLE_EXPRESSION,
|
||||
content: `foo`,
|
||||
isStatic: false
|
||||
},
|
||||
`]`
|
||||
]
|
||||
type: NodeTypes.SIMPLE_EXPRESSION,
|
||||
content: `foo`,
|
||||
isStatic: false
|
||||
}
|
||||
]
|
||||
})
|
||||
@@ -88,10 +73,10 @@ describe('compiler: transform <slot> outlets', () => {
|
||||
type: NodeTypes.JS_CALL_EXPRESSION,
|
||||
callee: RENDER_SLOT,
|
||||
arguments: [
|
||||
`_ctx.$slots`,
|
||||
{
|
||||
type: NodeTypes.COMPOUND_EXPRESSION,
|
||||
children: [
|
||||
`_ctx.$slots[`,
|
||||
{
|
||||
type: NodeTypes.SIMPLE_EXPRESSION,
|
||||
content: `_ctx.foo`,
|
||||
@@ -102,8 +87,7 @@ describe('compiler: transform <slot> outlets', () => {
|
||||
type: NodeTypes.SIMPLE_EXPRESSION,
|
||||
content: `_ctx.bar`,
|
||||
isStatic: false
|
||||
},
|
||||
`]`
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -116,7 +100,8 @@ describe('compiler: transform <slot> outlets', () => {
|
||||
type: NodeTypes.JS_CALL_EXPRESSION,
|
||||
callee: `_${RENDER_SLOT}`,
|
||||
arguments: [
|
||||
`$slots.default`,
|
||||
`$slots`,
|
||||
`"default"`,
|
||||
{
|
||||
type: NodeTypes.JS_OBJECT_EXPRESSION,
|
||||
properties: [
|
||||
@@ -152,7 +137,8 @@ describe('compiler: transform <slot> outlets', () => {
|
||||
type: NodeTypes.JS_CALL_EXPRESSION,
|
||||
callee: `_${RENDER_SLOT}`,
|
||||
arguments: [
|
||||
`$slots.foo`,
|
||||
`$slots`,
|
||||
`"foo"`,
|
||||
{
|
||||
type: NodeTypes.JS_OBJECT_EXPRESSION,
|
||||
// props should not include name
|
||||
@@ -189,10 +175,8 @@ describe('compiler: transform <slot> outlets', () => {
|
||||
type: NodeTypes.JS_CALL_EXPRESSION,
|
||||
callee: `_${RENDER_SLOT}`,
|
||||
arguments: [
|
||||
{
|
||||
type: NodeTypes.COMPOUND_EXPRESSION,
|
||||
children: [`$slots[`, { content: `foo` }, `]`]
|
||||
},
|
||||
`$slots`,
|
||||
{ content: `foo`, isStatic: false },
|
||||
{
|
||||
type: NodeTypes.JS_OBJECT_EXPRESSION,
|
||||
// props should not include name
|
||||
@@ -229,7 +213,8 @@ describe('compiler: transform <slot> outlets', () => {
|
||||
type: NodeTypes.JS_CALL_EXPRESSION,
|
||||
callee: `_${RENDER_SLOT}`,
|
||||
arguments: [
|
||||
`$slots.default`,
|
||||
`$slots`,
|
||||
`"default"`,
|
||||
`{}`,
|
||||
[
|
||||
{
|
||||
@@ -247,7 +232,8 @@ describe('compiler: transform <slot> outlets', () => {
|
||||
type: NodeTypes.JS_CALL_EXPRESSION,
|
||||
callee: `_${RENDER_SLOT}`,
|
||||
arguments: [
|
||||
`$slots.foo`,
|
||||
`$slots`,
|
||||
`"foo"`,
|
||||
`{}`,
|
||||
[
|
||||
{
|
||||
@@ -265,7 +251,8 @@ describe('compiler: transform <slot> outlets', () => {
|
||||
type: NodeTypes.JS_CALL_EXPRESSION,
|
||||
callee: `_${RENDER_SLOT}`,
|
||||
arguments: [
|
||||
`$slots.default`,
|
||||
`$slots`,
|
||||
`"default"`,
|
||||
{
|
||||
type: NodeTypes.JS_OBJECT_EXPRESSION,
|
||||
properties: [
|
||||
@@ -297,7 +284,8 @@ describe('compiler: transform <slot> outlets', () => {
|
||||
type: NodeTypes.JS_CALL_EXPRESSION,
|
||||
callee: `_${RENDER_SLOT}`,
|
||||
arguments: [
|
||||
`$slots.foo`,
|
||||
`$slots`,
|
||||
`"foo"`,
|
||||
{
|
||||
type: NodeTypes.JS_OBJECT_EXPRESSION,
|
||||
properties: [
|
||||
|
||||
@@ -360,7 +360,23 @@ describe('compiler: v-if', () => {
|
||||
expect(branch1).toMatchObject({
|
||||
type: NodeTypes.JS_CALL_EXPRESSION,
|
||||
callee: `_${RENDER_SLOT}`,
|
||||
arguments: ['$slots.default', createObjectMatcher({ key: `[0]` })]
|
||||
arguments: ['$slots', '"default"', createObjectMatcher({ key: `[0]` })]
|
||||
})
|
||||
expect(generate(root).code).toMatchSnapshot()
|
||||
})
|
||||
|
||||
test('v-if on <slot/>', () => {
|
||||
const {
|
||||
root,
|
||||
node: { codegenNode }
|
||||
} = parseWithIfTransform(`<slot v-if="ok"></slot>`)
|
||||
// assertSharedCodegen(codegenNode)
|
||||
const branch1 = (codegenNode.expressions[1] as ConditionalExpression)
|
||||
.consequent as CallExpression
|
||||
expect(branch1).toMatchObject({
|
||||
type: NodeTypes.JS_CALL_EXPRESSION,
|
||||
callee: `_${RENDER_SLOT}`,
|
||||
arguments: ['$slots', '"default"', createObjectMatcher({ key: `[0]` })]
|
||||
})
|
||||
expect(generate(root).code).toMatchSnapshot()
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user