refactor(compiler-core): use more concise marker for compiled slots

This commit is contained in:
Evan You 2020-02-12 13:45:35 -05:00
parent 175f8aae8d
commit 1389d7b88c
11 changed files with 40 additions and 40 deletions

View File

@ -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
})) }))
})" })"
`; `;

View File

@ -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
})) }))
} }
}" }"

View File

@ -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
})) }))
}" }"
`; `;

View File

@ -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]`
}) })
}) })
} }

View File

@ -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,

View File

@ -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

View File

@ -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))
}" }"
`) `)

View File

@ -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))
}" }"
`) `)

View File

@ -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 {

View File

@ -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
) )
) )
} }

View File

@ -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
) )