refactor: remove outdated slot ctx wrapper codegen

This commit is contained in:
Evan You 2021-07-14 18:12:38 -04:00
parent 2a310df753
commit a8edf2bdff
4 changed files with 17 additions and 22 deletions

View File

@ -24,7 +24,7 @@ export function render(_ctx, _cache) {
const _component_Child = _resolveComponent(\\"Child\\") const _component_Child = _resolveComponent(\\"Child\\")
return (_openBlock(), _createBlock(_component_Child, null, { return (_openBlock(), _createBlock(_component_Child, null, {
default: _withId(() => [ default: _withCtx(() => [
_createElementVNode(\\"div\\") _createElementVNode(\\"div\\")
]), ]),
_: 1 /* STABLE */ _: 1 /* STABLE */
@ -42,7 +42,7 @@ export function render(_ctx, _cache) {
(_ctx.ok) (_ctx.ok)
? { ? {
name: \\"foo\\", name: \\"foo\\",
fn: _withId(() => [ fn: _withCtx(() => [
_createElementVNode(\\"div\\") _createElementVNode(\\"div\\")
]) ])
} }
@ -50,7 +50,7 @@ export function render(_ctx, _cache) {
_renderList(_ctx.list, (i) => { _renderList(_ctx.list, (i) => {
return { return {
name: i, name: i,
fn: _withId(() => [ fn: _withCtx(() => [
_createElementVNode(\\"div\\") _createElementVNode(\\"div\\")
]) ])
} }
@ -66,10 +66,10 @@ export function render(_ctx, _cache) {
const _component_Child = _resolveComponent(\\"Child\\") const _component_Child = _resolveComponent(\\"Child\\")
return (_openBlock(), _createBlock(_component_Child, null, { return (_openBlock(), _createBlock(_component_Child, null, {
foo: _withId(({ msg }) => [ foo: _withCtx(({ msg }) => [
_createTextVNode(_toDisplayString(msg), 1 /* TEXT */) _createTextVNode(_toDisplayString(msg), 1 /* TEXT */)
]), ]),
bar: _withId(() => [ bar: _withCtx(() => [
_createElementVNode(\\"div\\") _createElementVNode(\\"div\\")
]), ]),
_: 1 /* STABLE */ _: 1 /* STABLE */

View File

@ -20,7 +20,7 @@ describe('scopeId compiler support', () => {
mode: 'module', mode: 'module',
scopeId: 'test' scopeId: 'test'
}) })
expect(code).toMatch(`default: _withId(() => [`) expect(code).toMatch(`default: _withCtx(() => [`)
expect(code).toMatchSnapshot() expect(code).toMatchSnapshot()
}) })
@ -36,8 +36,8 @@ describe('scopeId compiler support', () => {
scopeId: 'test' scopeId: 'test'
} }
) )
expect(code).toMatch(`foo: _withId(({ msg }) => [`) expect(code).toMatch(`foo: _withCtx(({ msg }) => [`)
expect(code).toMatch(`bar: _withId(() => [`) expect(code).toMatch(`bar: _withCtx(() => [`)
expect(code).toMatchSnapshot() expect(code).toMatchSnapshot()
}) })
@ -53,8 +53,8 @@ describe('scopeId compiler support', () => {
scopeId: 'test' scopeId: 'test'
} }
) )
expect(code).toMatch(/name: "foo",\s+fn: _withId\(/) expect(code).toMatch(/name: "foo",\s+fn: _withCtx\(/)
expect(code).toMatch(/name: i,\s+fn: _withId\(/) expect(code).toMatch(/name: i,\s+fn: _withCtx\(/)
expect(code).toMatchSnapshot() expect(code).toMatchSnapshot()
}) })

View File

@ -58,7 +58,6 @@ import {
import { ImportItem } from './transform' import { ImportItem } from './transform'
const PURE_ANNOTATION = `/*#__PURE__*/` const PURE_ANNOTATION = `/*#__PURE__*/`
const WITH_ID = `_withId`
type CodegenNode = TemplateChildNode | JSChildNode | SSRCodegenNode type CodegenNode = TemplateChildNode | JSChildNode | SSRCodegenNode
@ -821,15 +820,11 @@ function genFunctionExpression(
node: FunctionExpression, node: FunctionExpression,
context: CodegenContext context: CodegenContext
) { ) {
const { push, indent, deindent, scopeId, mode } = context const { push, indent, deindent } = context
const { params, returns, body, newline, isSlot } = node const { params, returns, body, newline, isSlot } = node
// slot functions also need to push scopeId before rendering its content
const genScopeId =
!__BROWSER__ && isSlot && scopeId != null && mode !== 'function'
if (isSlot) { if (isSlot) {
// wrap slot functions with owner context // wrap slot functions with owner context
push(genScopeId ? `${WITH_ID}(` : `_${helperNameMap[WITH_CTX]}(`) push(`_${helperNameMap[WITH_CTX]}(`)
} }
push(`(`, node) push(`(`, node)
if (isArray(params)) { if (isArray(params)) {

View File

@ -34,7 +34,7 @@ describe('ssr: scopeId', () => {
const _component_foo = _resolveComponent(\\"foo\\") const _component_foo = _resolveComponent(\\"foo\\")
_push(_ssrRenderComponent(_component_foo, _attrs, { _push(_ssrRenderComponent(_component_foo, _attrs, {
default: _withId((_, _push, _parent, _scopeId) => { default: _withCtx((_, _push, _parent, _scopeId) => {
if (_push) { if (_push) {
_push(\`foo\`) _push(\`foo\`)
} else { } else {
@ -63,7 +63,7 @@ describe('ssr: scopeId', () => {
const _component_foo = _resolveComponent(\\"foo\\") const _component_foo = _resolveComponent(\\"foo\\")
_push(_ssrRenderComponent(_component_foo, _attrs, { _push(_ssrRenderComponent(_component_foo, _attrs, {
default: _withId((_, _push, _parent, _scopeId) => { default: _withCtx((_, _push, _parent, _scopeId) => {
if (_push) { if (_push) {
_push(\`<span data-v-xxxxxxx\${_scopeId}>hello</span>\`) _push(\`<span data-v-xxxxxxx\${_scopeId}>hello</span>\`)
} else { } else {
@ -93,11 +93,11 @@ describe('ssr: scopeId', () => {
const _component_bar = _resolveComponent(\\"bar\\") const _component_bar = _resolveComponent(\\"bar\\")
_push(_ssrRenderComponent(_component_foo, _attrs, { _push(_ssrRenderComponent(_component_foo, _attrs, {
default: _withId((_, _push, _parent, _scopeId) => { default: _withCtx((_, _push, _parent, _scopeId) => {
if (_push) { if (_push) {
_push(\`<span data-v-xxxxxxx\${_scopeId}>hello</span>\`) _push(\`<span data-v-xxxxxxx\${_scopeId}>hello</span>\`)
_push(_ssrRenderComponent(_component_bar, null, { _push(_ssrRenderComponent(_component_bar, null, {
default: _withId((_, _push, _parent, _scopeId) => { default: _withCtx((_, _push, _parent, _scopeId) => {
if (_push) { if (_push) {
_push(\`<span data-v-xxxxxxx\${_scopeId}></span>\`) _push(\`<span data-v-xxxxxxx\${_scopeId}></span>\`)
} else { } else {
@ -112,7 +112,7 @@ describe('ssr: scopeId', () => {
return [ return [
_createVNode(\\"span\\", null, \\"hello\\"), _createVNode(\\"span\\", null, \\"hello\\"),
_createVNode(_component_bar, null, { _createVNode(_component_bar, null, {
default: _withId(() => [ default: _withCtx(() => [
_createVNode(\\"span\\") _createVNode(\\"span\\")
]), ]),
_: 1 /* STABLE */ _: 1 /* STABLE */