From 1389d7b88c654e9a4a667bb6619d2e6e34603c58 Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 12 Feb 2020 13:45:35 -0500 Subject: [PATCH] refactor(compiler-core): use more concise marker for compiled slots --- .../__snapshots__/scopeId.spec.ts.snap | 6 ++--- .../__snapshots__/hoistStatic.spec.ts.snap | 2 +- .../__snapshots__/vSlot.spec.ts.snap | 22 +++++++++---------- .../transforms/transformElement.spec.ts | 6 ++--- .../__tests__/transforms/vSlot.spec.ts | 12 +++++----- .../compiler-core/src/transforms/vSlot.ts | 2 +- .../__tests__/ssrComponent.spec.ts | 12 +++++----- .../compiler-ssr/__tests__/ssrScopeId.spec.ts | 10 ++++----- packages/runtime-core/src/componentSlots.ts | 4 ++-- .../runtime-core/src/helpers/renderSlot.ts | 2 +- .../__tests__/renderToString.spec.ts | 2 +- 11 files changed, 40 insertions(+), 40 deletions(-) diff --git a/packages/compiler-core/__tests__/__snapshots__/scopeId.spec.ts.snap b/packages/compiler-core/__tests__/__snapshots__/scopeId.spec.ts.snap index 223e7538..8a149785 100644 --- a/packages/compiler-core/__tests__/__snapshots__/scopeId.spec.ts.snap +++ b/packages/compiler-core/__tests__/__snapshots__/scopeId.spec.ts.snap @@ -29,7 +29,7 @@ export const render = _withId(function render(_ctx, _cache) { default: _withId(() => [ _createVNode(\\"div\\") ]), - _compiled: true + _: 1 })) })" `; @@ -41,7 +41,7 @@ const _withId = _withScopeId(\\"test\\") export const render = _withId(function render(_ctx, _cache) { const _component_Child = _resolveComponent(\\"Child\\") - return (_openBlock(), _createBlock(_component_Child, null, _createSlots({ _compiled: true }, [ + return (_openBlock(), _createBlock(_component_Child, null, _createSlots({ _: 1 }, [ (_ctx.ok) ? { name: \\"foo\\", @@ -76,7 +76,7 @@ export const render = _withId(function render(_ctx, _cache) { bar: _withId(() => [ _createVNode(\\"div\\") ]), - _compiled: true + _: 1 })) })" `; diff --git a/packages/compiler-core/__tests__/transforms/__snapshots__/hoistStatic.spec.ts.snap b/packages/compiler-core/__tests__/transforms/__snapshots__/hoistStatic.spec.ts.snap index a6604643..1667d09e 100644 --- a/packages/compiler-core/__tests__/transforms/__snapshots__/hoistStatic.spec.ts.snap +++ b/packages/compiler-core/__tests__/transforms/__snapshots__/hoistStatic.spec.ts.snap @@ -247,7 +247,7 @@ return function render(_ctx, _cache) { default: ({ foo }) => [ _createTextVNode(_toDisplayString(_ctx.foo), 1 /* TEXT */) ], - _compiled: true + _: 1 })) } }" 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 468be393..ab00e2ec 100644 --- a/packages/compiler-core/__tests__/transforms/__snapshots__/vSlot.spec.ts.snap +++ b/packages/compiler-core/__tests__/transforms/__snapshots__/vSlot.spec.ts.snap @@ -9,7 +9,7 @@ return function render(_ctx, _cache) { return (_openBlock(), _createBlock(_component_Comp, null, { [_ctx.one]: ({ foo }) => [_toDisplayString(foo), _toDisplayString(_ctx.bar)], [_ctx.two]: ({ bar }) => [_toDisplayString(_ctx.foo), _toDisplayString(bar)], - _compiled: true + _: 1 }, 512 /* DYNAMIC_SLOTS */)) }" `; @@ -24,7 +24,7 @@ return function render(_ctx, _cache) { default: () => [ _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) { 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) => { return { name: name, @@ -52,7 +52,7 @@ exports[`compiler: transform component slots named slot with v-if + prefixIdenti return function render(_ctx, _cache) { const _component_Comp = _resolveComponent(\\"Comp\\") - return (_openBlock(), _createBlock(_component_Comp, null, _createSlots({ _compiled: true }, [ + return (_openBlock(), _createBlock(_component_Comp, null, _createSlots({ _: 1 }, [ (_ctx.ok) ? { name: \\"one\\", @@ -72,7 +72,7 @@ return function render(_ctx, _cache) { const _component_Comp = _resolveComponent(\\"Comp\\") - return (_openBlock(), _createBlock(_component_Comp, null, _createSlots({ _compiled: true }, [ + return (_openBlock(), _createBlock(_component_Comp, null, _createSlots({ _: 1 }, [ ok ? { name: \\"one\\", @@ -101,7 +101,7 @@ return function render(_ctx, _cache) { const _component_Comp = _resolveComponent(\\"Comp\\") - return (_openBlock(), _createBlock(_component_Comp, null, _createSlots({ _compiled: true }, [ + return (_openBlock(), _createBlock(_component_Comp, null, _createSlots({ _: 1 }, [ ok ? { name: \\"one\\", @@ -122,7 +122,7 @@ return function render(_ctx, _cache) { return (_openBlock(), _createBlock(_component_Comp, null, { one: ({ foo }) => [_toDisplayString(foo), _toDisplayString(_ctx.bar)], two: ({ bar }) => [_toDisplayString(_ctx.foo), _toDisplayString(bar)], - _compiled: true + _: 1 })) }" `; @@ -142,7 +142,7 @@ return function render(_ctx, _cache) { \\"bar\\", _createVNode(\\"span\\") ], - _compiled: true + _: 1 })) } }" @@ -159,14 +159,14 @@ return function render(_ctx, _cache) { default: ({ foo }) => [ _createVNode(_component_Inner, null, { default: ({ bar }) => [_toDisplayString(foo), _toDisplayString(bar), _toDisplayString(_ctx.baz)], - _compiled: true + _: 1 }, 512 /* DYNAMIC_SLOTS */), \\" \\", _toDisplayString(foo), _toDisplayString(_ctx.bar), _toDisplayString(_ctx.baz) ], - _compiled: true + _: 1 })) }" `; @@ -179,7 +179,7 @@ return function render(_ctx, _cache) { return (_openBlock(), _createBlock(_component_Comp, null, { default: ({ foo }) => [_toDisplayString(foo), _toDisplayString(_ctx.bar)], - _compiled: true + _: 1 })) }" `; diff --git a/packages/compiler-core/__tests__/transforms/transformElement.spec.ts b/packages/compiler-core/__tests__/transforms/transformElement.spec.ts index 64f215ff..a7301c2d 100644 --- a/packages/compiler-core/__tests__/transforms/transformElement.spec.ts +++ b/packages/compiler-core/__tests__/transforms/transformElement.spec.ts @@ -321,13 +321,13 @@ describe('compiler: element transform', () => { fallback: { type: NodeTypes.JS_FUNCTION_EXPRESSION }, - _compiled: `[true]` + _: `[1]` }) : createObjectMatcher({ default: { type: NodeTypes.JS_FUNCTION_EXPRESSION }, - _compiled: `[true]` + _: `[1]` }) }) } @@ -381,7 +381,7 @@ describe('compiler: element transform', () => { default: { type: NodeTypes.JS_FUNCTION_EXPRESSION }, - _compiled: `[true]` + _: `[1]` }) }) } diff --git a/packages/compiler-core/__tests__/transforms/vSlot.spec.ts b/packages/compiler-core/__tests__/transforms/vSlot.spec.ts index 3d8f1968..c6c9c832 100644 --- a/packages/compiler-core/__tests__/transforms/vSlot.spec.ts +++ b/packages/compiler-core/__tests__/transforms/vSlot.spec.ts @@ -69,8 +69,8 @@ function createSlotMatcher(obj: Record) { } as any }) .concat({ - key: { content: `_compiled` }, - value: { content: `true` } + key: { content: `_` }, + value: { content: `1`, isStatic: false } }) } } @@ -456,7 +456,7 @@ describe('compiler: transform component slots', () => { callee: CREATE_SLOTS, arguments: [ createObjectMatcher({ - _compiled: `[true]` + _: `[1]` }), { type: NodeTypes.JS_ARRAY_EXPRESSION, @@ -498,7 +498,7 @@ describe('compiler: transform component slots', () => { callee: CREATE_SLOTS, arguments: [ createObjectMatcher({ - _compiled: `[true]` + _: `[1]` }), { type: NodeTypes.JS_ARRAY_EXPRESSION, @@ -547,7 +547,7 @@ describe('compiler: transform component slots', () => { callee: CREATE_SLOTS, arguments: [ createObjectMatcher({ - _compiled: `[true]` + _: `[1]` }), { type: NodeTypes.JS_ARRAY_EXPRESSION, @@ -606,7 +606,7 @@ describe('compiler: transform component slots', () => { callee: CREATE_SLOTS, arguments: [ createObjectMatcher({ - _compiled: `[true]` + _: `[1]` }), { type: NodeTypes.JS_ARRAY_EXPRESSION, diff --git a/packages/compiler-core/src/transforms/vSlot.ts b/packages/compiler-core/src/transforms/vSlot.ts index 00a9b400..0207cd7c 100644 --- a/packages/compiler-core/src/transforms/vSlot.ts +++ b/packages/compiler-core/src/transforms/vSlot.ts @@ -315,7 +315,7 @@ export function buildSlots( let slots = createObjectExpression( slotsProperties.concat( - createObjectProperty(`_compiled`, createSimpleExpression(`true`, false)) + createObjectProperty(`_`, createSimpleExpression(`1`, false)) ), loc ) as SlotsExpression diff --git a/packages/compiler-ssr/__tests__/ssrComponent.spec.ts b/packages/compiler-ssr/__tests__/ssrComponent.spec.ts index 2df79c4e..0cca3cef 100644 --- a/packages/compiler-ssr/__tests__/ssrComponent.spec.ts +++ b/packages/compiler-ssr/__tests__/ssrComponent.spec.ts @@ -61,7 +61,7 @@ describe('ssr: components', () => { ] } }, - _compiled: true + _: 1 }, _parent)) }" `) @@ -86,7 +86,7 @@ describe('ssr: components', () => { ] } }, - _compiled: true + _: 1 }, _parent)) }" `) @@ -124,7 +124,7 @@ describe('ssr: components', () => { ] } }, - _compiled: true + _: 1 }, _parent)) }" `) @@ -142,7 +142,7 @@ describe('ssr: components', () => { return function ssrRender(_ctx, _push, _parent) { const _component_foo = _resolveComponent(\\"foo\\") - _push(_ssrRenderComponent(_component_foo, null, _createSlots({ _compiled: true }, [ + _push(_ssrRenderComponent(_component_foo, null, _createSlots({ _: 1 }, [ (_ctx.ok) ? { name: \\"named\\", @@ -174,7 +174,7 @@ describe('ssr: components', () => { return function ssrRender(_ctx, _push, _parent) { const _component_foo = _resolveComponent(\\"foo\\") - _push(_ssrRenderComponent(_component_foo, null, _createSlots({ _compiled: true }, [ + _push(_ssrRenderComponent(_component_foo, null, _createSlots({ _: 1 }, [ _renderList(_ctx.names, (key) => { return { name: key, @@ -262,7 +262,7 @@ describe('ssr: components', () => { ] } }, - _compiled: true + _: 1 }, _parent)) }" `) diff --git a/packages/compiler-ssr/__tests__/ssrScopeId.spec.ts b/packages/compiler-ssr/__tests__/ssrScopeId.spec.ts index 8aae0ee8..8cb8c1ec 100644 --- a/packages/compiler-ssr/__tests__/ssrScopeId.spec.ts +++ b/packages/compiler-ssr/__tests__/ssrScopeId.spec.ts @@ -39,7 +39,7 @@ describe('ssr: scopeId', () => { ] } }, - _compiled: true + _: 1 }, _parent)) }" `) @@ -67,7 +67,7 @@ describe('ssr: scopeId', () => { ] } }, - _compiled: true + _: 1 }, _parent)) }" `) @@ -100,7 +100,7 @@ describe('ssr: scopeId', () => { ] } }, - _compiled: true + _: 1 }, _parent)) } else { return [ @@ -109,12 +109,12 @@ describe('ssr: scopeId', () => { default: () => [ _createVNode(\\"span\\") ], - _compiled: true + _: 1 }) ] } }, - _compiled: true + _: 1 }, _parent)) }" `) diff --git a/packages/runtime-core/src/componentSlots.ts b/packages/runtime-core/src/componentSlots.ts index ccac9f93..4f7e82a5 100644 --- a/packages/runtime-core/src/componentSlots.ts +++ b/packages/runtime-core/src/componentSlots.ts @@ -23,7 +23,7 @@ export type RawSlots = { // manual render fn hint to skip forced children updates $stable?: boolean // internal, indicates compiler generated slots = can skip normalization - _compiled?: boolean + _?: 1 } const normalizeSlotValue = (value: unknown): VNode[] => @@ -51,7 +51,7 @@ export function resolveSlots( let slots: InternalSlots | void if (instance.vnode.shapeFlag & ShapeFlags.SLOTS_CHILDREN) { const rawSlots = children as RawSlots - if (rawSlots._compiled) { + if (rawSlots._ === 1) { // pre-normalized slots object generated by compiler slots = children as Slots } else { diff --git a/packages/runtime-core/src/helpers/renderSlot.ts b/packages/runtime-core/src/helpers/renderSlot.ts index 32d89268..eb16bc02 100644 --- a/packages/runtime-core/src/helpers/renderSlot.ts +++ b/packages/runtime-core/src/helpers/renderSlot.ts @@ -35,7 +35,7 @@ export function renderSlot( Fragment, { key: props.key }, slot ? slot(props) : fallback || [], - slots._compiled ? 0 : PatchFlags.BAIL + slots._ ? 0 : PatchFlags.BAIL ) ) } diff --git a/packages/server-renderer/__tests__/renderToString.spec.ts b/packages/server-renderer/__tests__/renderToString.spec.ts index 051f59b4..eb27c4b0 100644 --- a/packages/server-renderer/__tests__/renderToString.spec.ts +++ b/packages/server-renderer/__tests__/renderToString.spec.ts @@ -218,7 +218,7 @@ describe('ssr: renderToString', () => { push(`${msg}`) }, // important to avoid slots being normalized - _compiled: true as any + _: 1 as any }, parent )