Skip to content

Commit 7715c49

Browse files
authored
fix(compiler-core): avoid generating useless createVNode helper (#2938)
close #2739
1 parent 2451dd8 commit 7715c49

File tree

17 files changed

+117
-77
lines changed

17 files changed

+117
-77
lines changed

packages/compiler-core/__tests__/__snapshots__/compile.spec.ts.snap

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ exports[`compiler: integration tests function mode 1`] = `
55
66
return function render(_ctx, _cache) {
77
with (_ctx) {
8-
const { toDisplayString: _toDisplayString, createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode, createTextVNode: _createTextVNode, Fragment: _Fragment, renderList: _renderList } = _Vue
8+
const { toDisplayString: _toDisplayString, openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode, createTextVNode: _createTextVNode, Fragment: _Fragment, renderList: _renderList, createVNode: _createVNode } = _Vue
99
1010
return (_openBlock(), _createBlock(\\"div\\", {
1111
id: \\"foo\\",
@@ -28,7 +28,7 @@ return function render(_ctx, _cache) {
2828
`;
2929

3030
exports[`compiler: integration tests function mode w/ prefixIdentifiers: true 1`] = `
31-
"const { toDisplayString: _toDisplayString, createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode, createTextVNode: _createTextVNode, Fragment: _Fragment, renderList: _renderList } = Vue
31+
"const { toDisplayString: _toDisplayString, openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode, createTextVNode: _createTextVNode, Fragment: _Fragment, renderList: _renderList, createVNode: _createVNode } = Vue
3232
3333
return function render(_ctx, _cache) {
3434
return (_openBlock(), _createBlock(\\"div\\", {
@@ -51,7 +51,7 @@ return function render(_ctx, _cache) {
5151
`;
5252

5353
exports[`compiler: integration tests module mode 1`] = `
54-
"import { toDisplayString as _toDisplayString, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, Fragment as _Fragment, renderList as _renderList } from \\"vue\\"
54+
"import { toDisplayString as _toDisplayString, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, Fragment as _Fragment, renderList as _renderList, createVNode as _createVNode } from \\"vue\\"
5555
5656
export function render(_ctx, _cache) {
5757
return (_openBlock(), _createBlock(\\"div\\", {

packages/compiler-core/__tests__/transforms/__snapshots__/hoistStatic.spec.ts.snap

+4-4
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ exports[`compiler: hoistStatic transform prefixIdentifiers should NOT hoist expr
239239
240240
return function render(_ctx, _cache) {
241241
with (_ctx) {
242-
const { toDisplayString: _toDisplayString, createTextVNode: _createTextVNode, resolveComponent: _resolveComponent, withCtx: _withCtx, createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock } = _Vue
242+
const { toDisplayString: _toDisplayString, createTextVNode: _createTextVNode, resolveComponent: _resolveComponent, withCtx: _withCtx, openBlock: _openBlock, createBlock: _createBlock } = _Vue
243243
244244
const _component_Comp = _resolveComponent(\\"Comp\\")
245245
@@ -276,7 +276,7 @@ exports[`compiler: hoistStatic transform prefixIdentifiers should NOT hoist keye
276276
277277
return function render(_ctx, _cache) {
278278
with (_ctx) {
279-
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock, createVNode: _createVNode } = _Vue
279+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock } = _Vue
280280
281281
return (_openBlock(), _createBlock(\\"div\\", null, [
282282
(_openBlock(true), _createBlock(_Fragment, null, _renderList(items, (item) => {
@@ -308,7 +308,7 @@ exports[`compiler: hoistStatic transform should NOT hoist element with dynamic k
308308
309309
return function render(_ctx, _cache) {
310310
with (_ctx) {
311-
const { openBlock: _openBlock, createBlock: _createBlock, createVNode: _createVNode } = _Vue
311+
const { openBlock: _openBlock, createBlock: _createBlock } = _Vue
312312
313313
return (_openBlock(), _createBlock(\\"div\\", null, [
314314
(_openBlock(), _createBlock(\\"div\\", { key: foo }))
@@ -350,7 +350,7 @@ exports[`compiler: hoistStatic transform should NOT hoist root node 1`] = `
350350
351351
return function render(_ctx, _cache) {
352352
with (_ctx) {
353-
const { createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock } = _Vue
353+
const { openBlock: _openBlock, createBlock: _createBlock } = _Vue
354354
355355
return (_openBlock(), _createBlock(\\"div\\"))
356356
}

packages/compiler-core/__tests__/transforms/__snapshots__/transformExpressions.spec.ts.snap

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ exports[`compiler: expression transform bindingMetadata inline mode 1`] = `
77
`;
88

99
exports[`compiler: expression transform bindingMetadata non-inline mode 1`] = `
10-
"const { toDisplayString: _toDisplayString, createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock } = Vue
10+
"const { toDisplayString: _toDisplayString, openBlock: _openBlock, createBlock: _createBlock } = Vue
1111
1212
return function render(_ctx, _cache, $props, $setup, $data, $options) {
1313
return (_openBlock(), _createBlock(\\"div\\", null, _toDisplayString($props.props) + \\" \\" + _toDisplayString($setup.setup) + \\" \\" + _toDisplayString($data.data) + \\" \\" + _toDisplayString($options.options), 1 /* TEXT */))

packages/compiler-core/__tests__/transforms/__snapshots__/vFor.spec.ts.snap

+8-8
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ exports[`compiler: v-for codegen basic v-for 1`] = `
55
66
return function render(_ctx, _cache) {
77
with (_ctx) {
8-
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock, createVNode: _createVNode } = _Vue
8+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock } = _Vue
99
1010
return (_openBlock(true), _createBlock(_Fragment, null, _renderList(items, (item) => {
1111
return (_openBlock(), _createBlock(\\"span\\"))
@@ -50,7 +50,7 @@ exports[`compiler: v-for codegen skipped key 1`] = `
5050
5151
return function render(_ctx, _cache) {
5252
with (_ctx) {
53-
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock, createVNode: _createVNode } = _Vue
53+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock } = _Vue
5454
5555
return (_openBlock(true), _createBlock(_Fragment, null, _renderList(items, (item, __, index) => {
5656
return (_openBlock(), _createBlock(\\"span\\"))
@@ -64,7 +64,7 @@ exports[`compiler: v-for codegen skipped value & key 1`] = `
6464
6565
return function render(_ctx, _cache) {
6666
with (_ctx) {
67-
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock, createVNode: _createVNode } = _Vue
67+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock } = _Vue
6868
6969
return (_openBlock(true), _createBlock(_Fragment, null, _renderList(items, (_, __, index) => {
7070
return (_openBlock(), _createBlock(\\"span\\"))
@@ -78,7 +78,7 @@ exports[`compiler: v-for codegen skipped value 1`] = `
7878
7979
return function render(_ctx, _cache) {
8080
with (_ctx) {
81-
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock, createVNode: _createVNode } = _Vue
81+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock } = _Vue
8282
8383
return (_openBlock(true), _createBlock(_Fragment, null, _renderList(items, (_, key, index) => {
8484
return (_openBlock(), _createBlock(\\"span\\"))
@@ -109,7 +109,7 @@ exports[`compiler: v-for codegen template v-for key injection with single child
109109
110110
return function render(_ctx, _cache) {
111111
with (_ctx) {
112-
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock, createVNode: _createVNode } = _Vue
112+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock } = _Vue
113113
114114
return (_openBlock(true), _createBlock(_Fragment, null, _renderList(items, (item) => {
115115
return (_openBlock(), _createBlock(\\"span\\", {
@@ -154,7 +154,7 @@ exports[`compiler: v-for codegen v-for on element with custom directive 1`] = `
154154
155155
return function render(_ctx, _cache) {
156156
with (_ctx) {
157-
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock, resolveDirective: _resolveDirective, createVNode: _createVNode, withDirectives: _withDirectives } = _Vue
157+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock, resolveDirective: _resolveDirective, withDirectives: _withDirectives } = _Vue
158158
159159
const _directive_foo = _resolveDirective(\\"foo\\")
160160
@@ -186,7 +186,7 @@ exports[`compiler: v-for codegen v-if + v-for 1`] = `
186186
187187
return function render(_ctx, _cache) {
188188
with (_ctx) {
189-
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock, createVNode: _createVNode, createCommentVNode: _createCommentVNode } = _Vue
189+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode } = _Vue
190190
191191
return ok
192192
? (_openBlock(true), _createBlock(_Fragment, { key: 0 }, _renderList(list, (i) => {
@@ -218,7 +218,7 @@ exports[`compiler: v-for codegen value + key + index 1`] = `
218218
219219
return function render(_ctx, _cache) {
220220
with (_ctx) {
221-
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock, createVNode: _createVNode } = _Vue
221+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createBlock: _createBlock } = _Vue
222222
223223
return (_openBlock(true), _createBlock(_Fragment, null, _renderList(items, (item, key, index) => {
224224
return (_openBlock(), _createBlock(\\"span\\"))

packages/compiler-core/__tests__/transforms/__snapshots__/vIf.spec.ts.snap

+6-6
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ exports[`compiler: v-if codegen basic v-if 1`] = `
55
66
return function render(_ctx, _cache) {
77
with (_ctx) {
8-
const { createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode } = _Vue
8+
const { openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode } = _Vue
99
1010
return ok
1111
? (_openBlock(), _createBlock(\\"div\\", { key: 0 }))
@@ -19,7 +19,7 @@ exports[`compiler: v-if codegen increasing key: v-if + v-else-if + v-else 1`] =
1919
2020
return function render(_ctx, _cache) {
2121
with (_ctx) {
22-
const { createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode, Fragment: _Fragment } = _Vue
22+
const { openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode, Fragment: _Fragment } = _Vue
2323
2424
return (_openBlock(), _createBlock(_Fragment, null, [
2525
ok
@@ -40,7 +40,7 @@ exports[`compiler: v-if codegen multiple v-if that are sibling nodes should have
4040
4141
return function render(_ctx, _cache) {
4242
with (_ctx) {
43-
const { createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode, Fragment: _Fragment } = _Vue
43+
const { openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode, Fragment: _Fragment } = _Vue
4444
4545
return (_openBlock(), _createBlock(_Fragment, null, [
4646
ok
@@ -91,7 +91,7 @@ exports[`compiler: v-if codegen v-if + v-else 1`] = `
9191
9292
return function render(_ctx, _cache) {
9393
with (_ctx) {
94-
const { createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode } = _Vue
94+
const { openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode } = _Vue
9595
9696
return ok
9797
? (_openBlock(), _createBlock(\\"div\\", { key: 0 }))
@@ -105,7 +105,7 @@ exports[`compiler: v-if codegen v-if + v-else-if + v-else 1`] = `
105105
106106
return function render(_ctx, _cache) {
107107
with (_ctx) {
108-
const { createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode, Fragment: _Fragment } = _Vue
108+
const { openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode, Fragment: _Fragment } = _Vue
109109
110110
return ok
111111
? (_openBlock(), _createBlock(\\"div\\", { key: 0 }))
@@ -121,7 +121,7 @@ exports[`compiler: v-if codegen v-if + v-else-if 1`] = `
121121
122122
return function render(_ctx, _cache) {
123123
with (_ctx) {
124-
const { createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode } = _Vue
124+
const { openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode } = _Vue
125125
126126
return ok
127127
? (_openBlock(), _createBlock(\\"div\\", { key: 0 }))

packages/compiler-core/__tests__/transforms/__snapshots__/vModel.spec.ts.snap

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

33
exports[`compiler: transform v-model compound expression (with prefixIdentifiers) 1`] = `
4-
"import { createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock } from \\"vue\\"
4+
"import { openBlock as _openBlock, createBlock as _createBlock } from \\"vue\\"
55
66
export function render(_ctx, _cache) {
77
return (_openBlock(), _createBlock(\\"input\\", {
@@ -16,7 +16,7 @@ exports[`compiler: transform v-model compound expression 1`] = `
1616
1717
return function render(_ctx, _cache) {
1818
with (_ctx) {
19-
const { createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock } = _Vue
19+
const { openBlock: _openBlock, createBlock: _createBlock } = _Vue
2020
2121
return (_openBlock(), _createBlock(\\"input\\", {
2222
modelValue: model[index],
@@ -31,7 +31,7 @@ exports[`compiler: transform v-model simple expression (with multilines) 1`] = `
3131
3232
return function render(_ctx, _cache) {
3333
with (_ctx) {
34-
const { createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock } = _Vue
34+
const { openBlock: _openBlock, createBlock: _createBlock } = _Vue
3535
3636
return (_openBlock(), _createBlock(\\"input\\", {
3737
modelValue:
@@ -50,7 +50,7 @@ foo
5050
`;
5151

5252
exports[`compiler: transform v-model simple expression (with prefixIdentifiers) 1`] = `
53-
"import { createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock } from \\"vue\\"
53+
"import { openBlock as _openBlock, createBlock as _createBlock } from \\"vue\\"
5454
5555
export function render(_ctx, _cache) {
5656
return (_openBlock(), _createBlock(\\"input\\", {
@@ -65,7 +65,7 @@ exports[`compiler: transform v-model simple expression 1`] = `
6565
6666
return function render(_ctx, _cache) {
6767
with (_ctx) {
68-
const { createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock } = _Vue
68+
const { openBlock: _openBlock, createBlock: _createBlock } = _Vue
6969
7070
return (_openBlock(), _createBlock(\\"input\\", {
7171
modelValue: model,
@@ -80,7 +80,7 @@ exports[`compiler: transform v-model with argument 1`] = `
8080
8181
return function render(_ctx, _cache) {
8282
with (_ctx) {
83-
const { createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock } = _Vue
83+
const { openBlock: _openBlock, createBlock: _createBlock } = _Vue
8484
8585
return (_openBlock(), _createBlock(\\"input\\", {
8686
value: model,
@@ -91,7 +91,7 @@ return function render(_ctx, _cache) {
9191
`;
9292

9393
exports[`compiler: transform v-model with dynamic argument (with prefixIdentifiers) 1`] = `
94-
"import { createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock } from \\"vue\\"
94+
"import { openBlock as _openBlock, createBlock as _createBlock } from \\"vue\\"
9595
9696
export function render(_ctx, _cache) {
9797
return (_openBlock(), _createBlock(\\"input\\", {
@@ -106,7 +106,7 @@ exports[`compiler: transform v-model with dynamic argument 1`] = `
106106
107107
return function render(_ctx, _cache) {
108108
with (_ctx) {
109-
const { createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock } = _Vue
109+
const { openBlock: _openBlock, createBlock: _createBlock } = _Vue
110110
111111
return (_openBlock(), _createBlock(\\"input\\", {
112112
[value]: model,

packages/compiler-core/__tests__/transforms/__snapshots__/vOnce.spec.ts.snap

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ exports[`compiler: v-once transform on slot outlet 1`] = `
6262
6363
return function render(_ctx, _cache) {
6464
with (_ctx) {
65-
const { setBlockTracking: _setBlockTracking, renderSlot: _renderSlot, createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock } = _Vue
65+
const { setBlockTracking: _setBlockTracking, renderSlot: _renderSlot, openBlock: _openBlock, createBlock: _createBlock } = _Vue
6666
6767
return (_openBlock(), _createBlock(\\"div\\", null, [
6868
_cache[1] || (

0 commit comments

Comments
 (0)