refactor(compiler-core): use more concise marker for compiled slots
This commit is contained in:
parent
175f8aae8d
commit
1389d7b88c
@ -29,7 +29,7 @@ export const render = _withId(function render(_ctx, _cache) {
|
|||||||
default: _withId(() => [
|
default: _withId(() => [
|
||||||
_createVNode(\\"div\\")
|
_createVNode(\\"div\\")
|
||||||
]),
|
]),
|
||||||
_compiled: true
|
_: 1
|
||||||
}))
|
}))
|
||||||
})"
|
})"
|
||||||
`;
|
`;
|
||||||
@ -41,7 +41,7 @@ const _withId = _withScopeId(\\"test\\")
|
|||||||
export const render = _withId(function render(_ctx, _cache) {
|
export const render = _withId(function render(_ctx, _cache) {
|
||||||
const _component_Child = _resolveComponent(\\"Child\\")
|
const _component_Child = _resolveComponent(\\"Child\\")
|
||||||
|
|
||||||
return (_openBlock(), _createBlock(_component_Child, null, _createSlots({ _compiled: true }, [
|
return (_openBlock(), _createBlock(_component_Child, null, _createSlots({ _: 1 }, [
|
||||||
(_ctx.ok)
|
(_ctx.ok)
|
||||||
? {
|
? {
|
||||||
name: \\"foo\\",
|
name: \\"foo\\",
|
||||||
@ -76,7 +76,7 @@ export const render = _withId(function render(_ctx, _cache) {
|
|||||||
bar: _withId(() => [
|
bar: _withId(() => [
|
||||||
_createVNode(\\"div\\")
|
_createVNode(\\"div\\")
|
||||||
]),
|
]),
|
||||||
_compiled: true
|
_: 1
|
||||||
}))
|
}))
|
||||||
})"
|
})"
|
||||||
`;
|
`;
|
||||||
|
@ -247,7 +247,7 @@ return function render(_ctx, _cache) {
|
|||||||
default: ({ foo }) => [
|
default: ({ foo }) => [
|
||||||
_createTextVNode(_toDisplayString(_ctx.foo), 1 /* TEXT */)
|
_createTextVNode(_toDisplayString(_ctx.foo), 1 /* TEXT */)
|
||||||
],
|
],
|
||||||
_compiled: true
|
_: 1
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
}"
|
}"
|
||||||
|
@ -9,7 +9,7 @@ return function render(_ctx, _cache) {
|
|||||||
return (_openBlock(), _createBlock(_component_Comp, null, {
|
return (_openBlock(), _createBlock(_component_Comp, null, {
|
||||||
[_ctx.one]: ({ foo }) => [_toDisplayString(foo), _toDisplayString(_ctx.bar)],
|
[_ctx.one]: ({ foo }) => [_toDisplayString(foo), _toDisplayString(_ctx.bar)],
|
||||||
[_ctx.two]: ({ bar }) => [_toDisplayString(_ctx.foo), _toDisplayString(bar)],
|
[_ctx.two]: ({ bar }) => [_toDisplayString(_ctx.foo), _toDisplayString(bar)],
|
||||||
_compiled: true
|
_: 1
|
||||||
}, 512 /* DYNAMIC_SLOTS */))
|
}, 512 /* DYNAMIC_SLOTS */))
|
||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
@ -24,7 +24,7 @@ return function render(_ctx, _cache) {
|
|||||||
default: () => [
|
default: () => [
|
||||||
_createVNode(\\"div\\")
|
_createVNode(\\"div\\")
|
||||||
],
|
],
|
||||||
_compiled: true
|
_: 1
|
||||||
}))
|
}))
|
||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
@ -35,7 +35,7 @@ exports[`compiler: transform component slots named slot with v-for w/ prefixIden
|
|||||||
return function render(_ctx, _cache) {
|
return function render(_ctx, _cache) {
|
||||||
const _component_Comp = _resolveComponent(\\"Comp\\")
|
const _component_Comp = _resolveComponent(\\"Comp\\")
|
||||||
|
|
||||||
return (_openBlock(), _createBlock(_component_Comp, null, _createSlots({ _compiled: true }, [
|
return (_openBlock(), _createBlock(_component_Comp, null, _createSlots({ _: 1 }, [
|
||||||
_renderList(_ctx.list, (name) => {
|
_renderList(_ctx.list, (name) => {
|
||||||
return {
|
return {
|
||||||
name: name,
|
name: name,
|
||||||
@ -52,7 +52,7 @@ exports[`compiler: transform component slots named slot with v-if + prefixIdenti
|
|||||||
return function render(_ctx, _cache) {
|
return function render(_ctx, _cache) {
|
||||||
const _component_Comp = _resolveComponent(\\"Comp\\")
|
const _component_Comp = _resolveComponent(\\"Comp\\")
|
||||||
|
|
||||||
return (_openBlock(), _createBlock(_component_Comp, null, _createSlots({ _compiled: true }, [
|
return (_openBlock(), _createBlock(_component_Comp, null, _createSlots({ _: 1 }, [
|
||||||
(_ctx.ok)
|
(_ctx.ok)
|
||||||
? {
|
? {
|
||||||
name: \\"one\\",
|
name: \\"one\\",
|
||||||
@ -72,7 +72,7 @@ return function render(_ctx, _cache) {
|
|||||||
|
|
||||||
const _component_Comp = _resolveComponent(\\"Comp\\")
|
const _component_Comp = _resolveComponent(\\"Comp\\")
|
||||||
|
|
||||||
return (_openBlock(), _createBlock(_component_Comp, null, _createSlots({ _compiled: true }, [
|
return (_openBlock(), _createBlock(_component_Comp, null, _createSlots({ _: 1 }, [
|
||||||
ok
|
ok
|
||||||
? {
|
? {
|
||||||
name: \\"one\\",
|
name: \\"one\\",
|
||||||
@ -101,7 +101,7 @@ return function render(_ctx, _cache) {
|
|||||||
|
|
||||||
const _component_Comp = _resolveComponent(\\"Comp\\")
|
const _component_Comp = _resolveComponent(\\"Comp\\")
|
||||||
|
|
||||||
return (_openBlock(), _createBlock(_component_Comp, null, _createSlots({ _compiled: true }, [
|
return (_openBlock(), _createBlock(_component_Comp, null, _createSlots({ _: 1 }, [
|
||||||
ok
|
ok
|
||||||
? {
|
? {
|
||||||
name: \\"one\\",
|
name: \\"one\\",
|
||||||
@ -122,7 +122,7 @@ return function render(_ctx, _cache) {
|
|||||||
return (_openBlock(), _createBlock(_component_Comp, null, {
|
return (_openBlock(), _createBlock(_component_Comp, null, {
|
||||||
one: ({ foo }) => [_toDisplayString(foo), _toDisplayString(_ctx.bar)],
|
one: ({ foo }) => [_toDisplayString(foo), _toDisplayString(_ctx.bar)],
|
||||||
two: ({ bar }) => [_toDisplayString(_ctx.foo), _toDisplayString(bar)],
|
two: ({ bar }) => [_toDisplayString(_ctx.foo), _toDisplayString(bar)],
|
||||||
_compiled: true
|
_: 1
|
||||||
}))
|
}))
|
||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
@ -142,7 +142,7 @@ return function render(_ctx, _cache) {
|
|||||||
\\"bar\\",
|
\\"bar\\",
|
||||||
_createVNode(\\"span\\")
|
_createVNode(\\"span\\")
|
||||||
],
|
],
|
||||||
_compiled: true
|
_: 1
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
}"
|
}"
|
||||||
@ -159,14 +159,14 @@ return function render(_ctx, _cache) {
|
|||||||
default: ({ foo }) => [
|
default: ({ foo }) => [
|
||||||
_createVNode(_component_Inner, null, {
|
_createVNode(_component_Inner, null, {
|
||||||
default: ({ bar }) => [_toDisplayString(foo), _toDisplayString(bar), _toDisplayString(_ctx.baz)],
|
default: ({ bar }) => [_toDisplayString(foo), _toDisplayString(bar), _toDisplayString(_ctx.baz)],
|
||||||
_compiled: true
|
_: 1
|
||||||
}, 512 /* DYNAMIC_SLOTS */),
|
}, 512 /* DYNAMIC_SLOTS */),
|
||||||
\\" \\",
|
\\" \\",
|
||||||
_toDisplayString(foo),
|
_toDisplayString(foo),
|
||||||
_toDisplayString(_ctx.bar),
|
_toDisplayString(_ctx.bar),
|
||||||
_toDisplayString(_ctx.baz)
|
_toDisplayString(_ctx.baz)
|
||||||
],
|
],
|
||||||
_compiled: true
|
_: 1
|
||||||
}))
|
}))
|
||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
@ -179,7 +179,7 @@ return function render(_ctx, _cache) {
|
|||||||
|
|
||||||
return (_openBlock(), _createBlock(_component_Comp, null, {
|
return (_openBlock(), _createBlock(_component_Comp, null, {
|
||||||
default: ({ foo }) => [_toDisplayString(foo), _toDisplayString(_ctx.bar)],
|
default: ({ foo }) => [_toDisplayString(foo), _toDisplayString(_ctx.bar)],
|
||||||
_compiled: true
|
_: 1
|
||||||
}))
|
}))
|
||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
|
@ -321,13 +321,13 @@ describe('compiler: element transform', () => {
|
|||||||
fallback: {
|
fallback: {
|
||||||
type: NodeTypes.JS_FUNCTION_EXPRESSION
|
type: NodeTypes.JS_FUNCTION_EXPRESSION
|
||||||
},
|
},
|
||||||
_compiled: `[true]`
|
_: `[1]`
|
||||||
})
|
})
|
||||||
: createObjectMatcher({
|
: createObjectMatcher({
|
||||||
default: {
|
default: {
|
||||||
type: NodeTypes.JS_FUNCTION_EXPRESSION
|
type: NodeTypes.JS_FUNCTION_EXPRESSION
|
||||||
},
|
},
|
||||||
_compiled: `[true]`
|
_: `[1]`
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -381,7 +381,7 @@ describe('compiler: element transform', () => {
|
|||||||
default: {
|
default: {
|
||||||
type: NodeTypes.JS_FUNCTION_EXPRESSION
|
type: NodeTypes.JS_FUNCTION_EXPRESSION
|
||||||
},
|
},
|
||||||
_compiled: `[true]`
|
_: `[1]`
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -69,8 +69,8 @@ function createSlotMatcher(obj: Record<string, any>) {
|
|||||||
} as any
|
} as any
|
||||||
})
|
})
|
||||||
.concat({
|
.concat({
|
||||||
key: { content: `_compiled` },
|
key: { content: `_` },
|
||||||
value: { content: `true` }
|
value: { content: `1`, isStatic: false }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -456,7 +456,7 @@ describe('compiler: transform component slots', () => {
|
|||||||
callee: CREATE_SLOTS,
|
callee: CREATE_SLOTS,
|
||||||
arguments: [
|
arguments: [
|
||||||
createObjectMatcher({
|
createObjectMatcher({
|
||||||
_compiled: `[true]`
|
_: `[1]`
|
||||||
}),
|
}),
|
||||||
{
|
{
|
||||||
type: NodeTypes.JS_ARRAY_EXPRESSION,
|
type: NodeTypes.JS_ARRAY_EXPRESSION,
|
||||||
@ -498,7 +498,7 @@ describe('compiler: transform component slots', () => {
|
|||||||
callee: CREATE_SLOTS,
|
callee: CREATE_SLOTS,
|
||||||
arguments: [
|
arguments: [
|
||||||
createObjectMatcher({
|
createObjectMatcher({
|
||||||
_compiled: `[true]`
|
_: `[1]`
|
||||||
}),
|
}),
|
||||||
{
|
{
|
||||||
type: NodeTypes.JS_ARRAY_EXPRESSION,
|
type: NodeTypes.JS_ARRAY_EXPRESSION,
|
||||||
@ -547,7 +547,7 @@ describe('compiler: transform component slots', () => {
|
|||||||
callee: CREATE_SLOTS,
|
callee: CREATE_SLOTS,
|
||||||
arguments: [
|
arguments: [
|
||||||
createObjectMatcher({
|
createObjectMatcher({
|
||||||
_compiled: `[true]`
|
_: `[1]`
|
||||||
}),
|
}),
|
||||||
{
|
{
|
||||||
type: NodeTypes.JS_ARRAY_EXPRESSION,
|
type: NodeTypes.JS_ARRAY_EXPRESSION,
|
||||||
@ -606,7 +606,7 @@ describe('compiler: transform component slots', () => {
|
|||||||
callee: CREATE_SLOTS,
|
callee: CREATE_SLOTS,
|
||||||
arguments: [
|
arguments: [
|
||||||
createObjectMatcher({
|
createObjectMatcher({
|
||||||
_compiled: `[true]`
|
_: `[1]`
|
||||||
}),
|
}),
|
||||||
{
|
{
|
||||||
type: NodeTypes.JS_ARRAY_EXPRESSION,
|
type: NodeTypes.JS_ARRAY_EXPRESSION,
|
||||||
|
@ -315,7 +315,7 @@ export function buildSlots(
|
|||||||
|
|
||||||
let slots = createObjectExpression(
|
let slots = createObjectExpression(
|
||||||
slotsProperties.concat(
|
slotsProperties.concat(
|
||||||
createObjectProperty(`_compiled`, createSimpleExpression(`true`, false))
|
createObjectProperty(`_`, createSimpleExpression(`1`, false))
|
||||||
),
|
),
|
||||||
loc
|
loc
|
||||||
) as SlotsExpression
|
) as SlotsExpression
|
||||||
|
@ -61,7 +61,7 @@ describe('ssr: components', () => {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_compiled: true
|
_: 1
|
||||||
}, _parent))
|
}, _parent))
|
||||||
}"
|
}"
|
||||||
`)
|
`)
|
||||||
@ -86,7 +86,7 @@ describe('ssr: components', () => {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_compiled: true
|
_: 1
|
||||||
}, _parent))
|
}, _parent))
|
||||||
}"
|
}"
|
||||||
`)
|
`)
|
||||||
@ -124,7 +124,7 @@ describe('ssr: components', () => {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_compiled: true
|
_: 1
|
||||||
}, _parent))
|
}, _parent))
|
||||||
}"
|
}"
|
||||||
`)
|
`)
|
||||||
@ -142,7 +142,7 @@ describe('ssr: components', () => {
|
|||||||
return function ssrRender(_ctx, _push, _parent) {
|
return function ssrRender(_ctx, _push, _parent) {
|
||||||
const _component_foo = _resolveComponent(\\"foo\\")
|
const _component_foo = _resolveComponent(\\"foo\\")
|
||||||
|
|
||||||
_push(_ssrRenderComponent(_component_foo, null, _createSlots({ _compiled: true }, [
|
_push(_ssrRenderComponent(_component_foo, null, _createSlots({ _: 1 }, [
|
||||||
(_ctx.ok)
|
(_ctx.ok)
|
||||||
? {
|
? {
|
||||||
name: \\"named\\",
|
name: \\"named\\",
|
||||||
@ -174,7 +174,7 @@ describe('ssr: components', () => {
|
|||||||
return function ssrRender(_ctx, _push, _parent) {
|
return function ssrRender(_ctx, _push, _parent) {
|
||||||
const _component_foo = _resolveComponent(\\"foo\\")
|
const _component_foo = _resolveComponent(\\"foo\\")
|
||||||
|
|
||||||
_push(_ssrRenderComponent(_component_foo, null, _createSlots({ _compiled: true }, [
|
_push(_ssrRenderComponent(_component_foo, null, _createSlots({ _: 1 }, [
|
||||||
_renderList(_ctx.names, (key) => {
|
_renderList(_ctx.names, (key) => {
|
||||||
return {
|
return {
|
||||||
name: key,
|
name: key,
|
||||||
@ -262,7 +262,7 @@ describe('ssr: components', () => {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_compiled: true
|
_: 1
|
||||||
}, _parent))
|
}, _parent))
|
||||||
}"
|
}"
|
||||||
`)
|
`)
|
||||||
|
@ -39,7 +39,7 @@ describe('ssr: scopeId', () => {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_compiled: true
|
_: 1
|
||||||
}, _parent))
|
}, _parent))
|
||||||
}"
|
}"
|
||||||
`)
|
`)
|
||||||
@ -67,7 +67,7 @@ describe('ssr: scopeId', () => {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_compiled: true
|
_: 1
|
||||||
}, _parent))
|
}, _parent))
|
||||||
}"
|
}"
|
||||||
`)
|
`)
|
||||||
@ -100,7 +100,7 @@ describe('ssr: scopeId', () => {
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_compiled: true
|
_: 1
|
||||||
}, _parent))
|
}, _parent))
|
||||||
} else {
|
} else {
|
||||||
return [
|
return [
|
||||||
@ -109,12 +109,12 @@ describe('ssr: scopeId', () => {
|
|||||||
default: () => [
|
default: () => [
|
||||||
_createVNode(\\"span\\")
|
_createVNode(\\"span\\")
|
||||||
],
|
],
|
||||||
_compiled: true
|
_: 1
|
||||||
})
|
})
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_compiled: true
|
_: 1
|
||||||
}, _parent))
|
}, _parent))
|
||||||
}"
|
}"
|
||||||
`)
|
`)
|
||||||
|
@ -23,7 +23,7 @@ export type RawSlots = {
|
|||||||
// manual render fn hint to skip forced children updates
|
// manual render fn hint to skip forced children updates
|
||||||
$stable?: boolean
|
$stable?: boolean
|
||||||
// internal, indicates compiler generated slots = can skip normalization
|
// internal, indicates compiler generated slots = can skip normalization
|
||||||
_compiled?: boolean
|
_?: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
const normalizeSlotValue = (value: unknown): VNode[] =>
|
const normalizeSlotValue = (value: unknown): VNode[] =>
|
||||||
@ -51,7 +51,7 @@ export function resolveSlots(
|
|||||||
let slots: InternalSlots | void
|
let slots: InternalSlots | void
|
||||||
if (instance.vnode.shapeFlag & ShapeFlags.SLOTS_CHILDREN) {
|
if (instance.vnode.shapeFlag & ShapeFlags.SLOTS_CHILDREN) {
|
||||||
const rawSlots = children as RawSlots
|
const rawSlots = children as RawSlots
|
||||||
if (rawSlots._compiled) {
|
if (rawSlots._ === 1) {
|
||||||
// pre-normalized slots object generated by compiler
|
// pre-normalized slots object generated by compiler
|
||||||
slots = children as Slots
|
slots = children as Slots
|
||||||
} else {
|
} else {
|
||||||
|
@ -35,7 +35,7 @@ export function renderSlot(
|
|||||||
Fragment,
|
Fragment,
|
||||||
{ key: props.key },
|
{ key: props.key },
|
||||||
slot ? slot(props) : fallback || [],
|
slot ? slot(props) : fallback || [],
|
||||||
slots._compiled ? 0 : PatchFlags.BAIL
|
slots._ ? 0 : PatchFlags.BAIL
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -218,7 +218,7 @@ describe('ssr: renderToString', () => {
|
|||||||
push(`<span>${msg}</span>`)
|
push(`<span>${msg}</span>`)
|
||||||
},
|
},
|
||||||
// important to avoid slots being normalized
|
// important to avoid slots being normalized
|
||||||
_compiled: true as any
|
_: 1 as any
|
||||||
},
|
},
|
||||||
parent
|
parent
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user