Skip to content

Commit 2dfb685

Browse files
author
tonicli
committed
Merge branch 'main' into fix/teleport-comment
2 parents 8e82e54 + 2f8cd66 commit 2dfb685

File tree

68 files changed

+1688
-846
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+1688
-846
lines changed

.github/workflows/release-tag.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,5 @@ jobs:
2424
with:
2525
tag_name: ${{ github.ref }}
2626
body: |
27-
Please refer to [CHANGELOG.md](https://github.com/vuejs/core/blob/main/CHANGELOG.md) for details.
27+
For stable releases, please refer to [CHANGELOG.md](https://github.com/vuejs/core/blob/main/CHANGELOG.md) for details.
28+
For pre-releases, please refer to [CHANGELOG.md](https://github.com/vuejs/core/blob/minor/CHANGELOG.md) of the `minor` branch.

CHANGELOG.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,59 @@
1+
## [3.4.27](https://github.com/vuejs/core/compare/v3.4.26...v3.4.27) (2024-05-06)
2+
3+
4+
### Bug Fixes
5+
6+
* **compat:** include legacy scoped slots ([#10868](https://github.com/vuejs/core/issues/10868)) ([8366126](https://github.com/vuejs/core/commit/83661264a4ced3cb2ff6800904a86dd9e82bbfe2)), closes [#8869](https://github.com/vuejs/core/issues/8869)
7+
* **compiler-core:** add support for arrow aysnc function with unbracketed ([#5789](https://github.com/vuejs/core/issues/5789)) ([ca7d421](https://github.com/vuejs/core/commit/ca7d421e8775f6813f8943d32ab485e0c542f98b)), closes [#5788](https://github.com/vuejs/core/issues/5788)
8+
* **compiler-dom:** restrict createStaticVNode usage with option elements ([#10846](https://github.com/vuejs/core/issues/10846)) ([0e3d617](https://github.com/vuejs/core/commit/0e3d6178b02d0386d779720ae2cc4eac1d1ec990)), closes [#6568](https://github.com/vuejs/core/issues/6568) [#7434](https://github.com/vuejs/core/issues/7434)
9+
* **compiler-sfc:** handle keyof operator ([#10874](https://github.com/vuejs/core/issues/10874)) ([10d34a5](https://github.com/vuejs/core/commit/10d34a5624775f20437ccad074a97270ef74c3fb)), closes [#10871](https://github.com/vuejs/core/issues/10871)
10+
* **hydration:** handle edge case of style mismatch without style attribute ([f2c1412](https://github.com/vuejs/core/commit/f2c1412e46a8fad3e13403bfa78335c4f704f21c)), closes [#10786](https://github.com/vuejs/core/issues/10786)
11+
12+
13+
14+
## [3.4.26](https://github.com/vuejs/core/compare/v3.4.25...v3.4.26) (2024-04-29)
15+
16+
17+
### Bug Fixes
18+
19+
* **compiler-core:** fix bail constant for globals ([fefce06](https://github.com/vuejs/core/commit/fefce06b41e3b75de3d748dc6399628ec5056e78))
20+
* **compiler-core:** remove unnecessary constant bail check ([09b4df8](https://github.com/vuejs/core/commit/09b4df809e59ef5f4bc91acfc56dc8f82a8e243a)), closes [#10807](https://github.com/vuejs/core/issues/10807)
21+
* **runtime-core:** attrs should be readonly in functional components ([#10767](https://github.com/vuejs/core/issues/10767)) ([e8fd644](https://github.com/vuejs/core/commit/e8fd6446d14a6899e5e8ab1ee394d90088e01844))
22+
* **runtime-core:** ensure slot compiler marker writable ([#10825](https://github.com/vuejs/core/issues/10825)) ([9c2de62](https://github.com/vuejs/core/commit/9c2de6244cd44bc5fbfd82b5850c710ce725044f)), closes [#10818](https://github.com/vuejs/core/issues/10818)
23+
* **runtime-core:** properly handle inherit transition during clone VNode ([#10809](https://github.com/vuejs/core/issues/10809)) ([638a79f](https://github.com/vuejs/core/commit/638a79f64a7e184f2a2c65e21d764703f4bda561)), closes [#3716](https://github.com/vuejs/core/issues/3716) [#10497](https://github.com/vuejs/core/issues/10497) [#4091](https://github.com/vuejs/core/issues/4091)
24+
* **Transition:** re-fix [#10620](https://github.com/vuejs/core/issues/10620) ([#10832](https://github.com/vuejs/core/issues/10832)) ([accf839](https://github.com/vuejs/core/commit/accf8396ae1c9dd49759ba0546483f1d2c70c9bc)), closes [#10632](https://github.com/vuejs/core/issues/10632) [#10827](https://github.com/vuejs/core/issues/10827)
25+
26+
27+
28+
## [3.4.25](https://github.com/vuejs/core/compare/v3.4.24...v3.4.25) (2024-04-24)
29+
30+
31+
### Bug Fixes
32+
33+
* **defineModel:** align prod mode runtime type generation with defineProps ([4253a57](https://github.com/vuejs/core/commit/4253a57f1703a7f1ac701d77e0a235689203461d)), closes [#10769](https://github.com/vuejs/core/issues/10769)
34+
* **runtime-core:** properly get keepAlive child ([#10772](https://github.com/vuejs/core/issues/10772)) ([3724693](https://github.com/vuejs/core/commit/3724693a25c3f2dd13d70a8a1af760b03a4fb783)), closes [#10771](https://github.com/vuejs/core/issues/10771)
35+
* **runtime-core:** use normal object as internal prototype for attrs and slots ([064e82f](https://github.com/vuejs/core/commit/064e82f5855f30fe0b77fe9b5e4dd22700fd634d)), closes [/github.com/vuejs/core/commit/6df53d85a207986128159d88565e6e7045db2add#r141304923](https://github.com//github.com/vuejs/core/commit/6df53d85a207986128159d88565e6e7045db2add/issues/r141304923)
36+
37+
38+
39+
## [3.4.24](https://github.com/vuejs/core/compare/v3.4.23...v3.4.24) (2024-04-22)
40+
41+
42+
### Bug Fixes
43+
44+
* **compiler-core:** handle template ref bound via v-bind object on v-for ([#10706](https://github.com/vuejs/core/issues/10706)) ([da7adef](https://github.com/vuejs/core/commit/da7adefa844265eecc9c336abfc727bc05b4f16e)), closes [#10696](https://github.com/vuejs/core/issues/10696)
45+
* **compiler-core:** properly parse await expressions in edge cases ([b92c25f](https://github.com/vuejs/core/commit/b92c25f53dff0fc1687f57ca4033d0ac25218940)), closes [#10754](https://github.com/vuejs/core/issues/10754)
46+
* **compiler-sfc:** handle readonly operator and ReadonlyArray/Map/Set types ([5cef52a](https://github.com/vuejs/core/commit/5cef52a5c23ba8ba3239e6def03b8ff008d3cc72)), closes [#10726](https://github.com/vuejs/core/issues/10726)
47+
* **compiler-ssr:** fix hydration mismatch for conditional slot in transition ([f12c81e](https://github.com/vuejs/core/commit/f12c81efca3fcf9a7ce478af2261ad6ab9b0bfd7)), closes [#10743](https://github.com/vuejs/core/issues/10743)
48+
* **compiler-ssr:** fix v-html SSR for nullish values ([1ff4076](https://github.com/vuejs/core/commit/1ff407676f9495883b459779a9b0370d7588b51f)), closes [#10725](https://github.com/vuejs/core/issues/10725)
49+
* **deps:** update compiler ([#10760](https://github.com/vuejs/core/issues/10760)) ([15df5c1](https://github.com/vuejs/core/commit/15df5c1b261b9b471eb811fd47ab7b3cfc41cf83))
50+
* **runtime-core:** fix edge case of KeepAlive inside Transition with slot children ([#10719](https://github.com/vuejs/core/issues/10719)) ([e51ca61](https://github.com/vuejs/core/commit/e51ca61ca060b2772e967d169548fc2f58fce6d1)), closes [#10708](https://github.com/vuejs/core/issues/10708)
51+
* **runtime-core:** further fix slots _ctx check ([cde7f05](https://github.com/vuejs/core/commit/cde7f05787d16dbb93d9419ef5331adf992816fd)), closes [#10724](https://github.com/vuejs/core/issues/10724)
52+
* **runtime-core:** props should be readonly via direct template access ([b93f264](https://github.com/vuejs/core/commit/b93f26464785de227b88c51a88328ae80e80d804)), closes [#8216](https://github.com/vuejs/core/issues/8216) [#10736](https://github.com/vuejs/core/issues/10736)
53+
* **transition:** transition is breaking/flickering when enter is canceled ([#10688](https://github.com/vuejs/core/issues/10688)) ([65109a7](https://github.com/vuejs/core/commit/65109a70f187473edae8cf4df11af3c33345e6f6))
54+
55+
56+
157
## [3.4.23](https://github.com/vuejs/core/compare/v3.4.22...v3.4.23) (2024-04-16)
258

359

package.json

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"private": true,
3-
"version": "3.4.23",
4-
"packageManager": "pnpm@9.0.1",
3+
"version": "3.4.27",
4+
"packageManager": "pnpm@9.1.1",
55
"type": "module",
66
"scripts": {
77
"dev": "node scripts/dev.js",
@@ -59,8 +59,8 @@
5959
"node": ">=18.12.0"
6060
},
6161
"devDependencies": {
62-
"@babel/parser": "^7.24.1",
63-
"@babel/types": "^7.24.0",
62+
"@babel/parser": "^7.24.5",
63+
"@babel/types": "^7.24.5",
6464
"@codspeed/vitest-plugin": "^3.1.0",
6565
"@rollup/plugin-alias": "^5.1.0",
6666
"@rollup/plugin-commonjs": "^25.0.7",
@@ -70,48 +70,48 @@
7070
"@rollup/plugin-terser": "^0.4.4",
7171
"@types/hash-sum": "^1.0.2",
7272
"@types/minimist": "^1.2.5",
73-
"@types/node": "^20.12.5",
73+
"@types/node": "^20.12.11",
7474
"@types/semver": "^7.5.8",
75-
"@vitest/coverage-istanbul": "^1.4.0",
75+
"@vitest/coverage-istanbul": "^1.5.2",
7676
"@vue/consolidate": "1.0.0",
7777
"conventional-changelog-cli": "^4.1.0",
7878
"enquirer": "^2.4.1",
7979
"esbuild": "^0.20.2",
8080
"esbuild-plugin-polyfill-node": "^0.3.0",
81-
"eslint": "^9.0.0",
81+
"eslint": "^9.2.0",
8282
"eslint-plugin-import-x": "^0.5.0",
83-
"eslint-plugin-vitest": "^0.5.3",
83+
"eslint-plugin-vitest": "^0.5.4",
8484
"estree-walker": "^2.0.2",
8585
"execa": "^8.0.1",
8686
"jsdom": "^24.0.0",
8787
"lint-staged": "^15.2.2",
8888
"lodash": "^4.17.21",
89-
"magic-string": "^0.30.8",
89+
"magic-string": "^0.30.10",
9090
"markdown-table": "^3.0.3",
91-
"marked": "^12.0.1",
91+
"marked": "^12.0.2",
9292
"minimist": "^1.2.8",
9393
"npm-run-all2": "^6.1.2",
9494
"picocolors": "^1.0.0",
9595
"prettier": "^3.2.5",
9696
"pretty-bytes": "^6.1.1",
9797
"pug": "^3.0.2",
98-
"puppeteer": "~22.6.3",
99-
"rimraf": "^5.0.5",
100-
"rollup": "^4.13.2",
98+
"puppeteer": "~22.7.1",
99+
"rimraf": "^5.0.7",
100+
"rollup": "^4.17.2",
101101
"rollup-plugin-dts": "^6.1.0",
102102
"rollup-plugin-esbuild": "^6.1.1",
103103
"rollup-plugin-polyfill-node": "^0.13.0",
104-
"semver": "^7.6.0",
105-
"serve": "^14.2.1",
104+
"semver": "^7.6.2",
105+
"serve": "^14.2.3",
106106
"simple-git-hooks": "^2.11.1",
107-
"terser": "^5.30.1",
107+
"terser": "^5.31.0",
108108
"todomvc-app-css": "^2.4.3",
109109
"tslib": "^2.6.2",
110-
"tsx": "^4.7.2",
110+
"tsx": "^4.10.1",
111111
"typescript": "~5.4.5",
112-
"typescript-eslint": "^7.6.0",
113-
"vite": "^5.2.7",
114-
"vitest": "^1.4.0"
112+
"typescript-eslint": "^7.8.0",
113+
"vite": "^5.2.11",
114+
"vitest": "^1.5.2"
115115
},
116116
"pnpm": {
117117
"peerDependencyRules": {
Lines changed: 228 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,228 @@
1+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2+
3+
exports[`compiler: v-for > codegen > basic v-for 1`] = `
4+
"const _Vue = Vue
5+
6+
return function render(_ctx, _cache) {
7+
with (_ctx) {
8+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock } = _Vue
9+
10+
return (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(items, (item) => {
11+
return (_openBlock(), _createElementBlock("span"))
12+
}), 256 /* UNKEYED_FRAGMENT */))
13+
}
14+
}"
15+
`;
16+
17+
exports[`compiler: v-for > codegen > keyed template v-for 1`] = `
18+
"const _Vue = Vue
19+
20+
return function render(_ctx, _cache) {
21+
with (_ctx) {
22+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock, createElementVNode: _createElementVNode } = _Vue
23+
24+
return (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(items, (item) => {
25+
return (_openBlock(), _createElementBlock(_Fragment, { key: item }, [
26+
"hello",
27+
_createElementVNode("span")
28+
], 64 /* STABLE_FRAGMENT */))
29+
}), 128 /* KEYED_FRAGMENT */))
30+
}
31+
}"
32+
`;
33+
34+
exports[`compiler: v-for > codegen > keyed v-for 1`] = `
35+
"const _Vue = Vue
36+
37+
return function render(_ctx, _cache) {
38+
with (_ctx) {
39+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock } = _Vue
40+
41+
return (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(items, (item) => {
42+
return (_openBlock(), _createElementBlock("span", { key: item }))
43+
}), 128 /* KEYED_FRAGMENT */))
44+
}
45+
}"
46+
`;
47+
48+
exports[`compiler: v-for > codegen > skipped key 1`] = `
49+
"const _Vue = Vue
50+
51+
return function render(_ctx, _cache) {
52+
with (_ctx) {
53+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock } = _Vue
54+
55+
return (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(items, (item, __, index) => {
56+
return (_openBlock(), _createElementBlock("span"))
57+
}), 256 /* UNKEYED_FRAGMENT */))
58+
}
59+
}"
60+
`;
61+
62+
exports[`compiler: v-for > codegen > skipped value & key 1`] = `
63+
"const _Vue = Vue
64+
65+
return function render(_ctx, _cache) {
66+
with (_ctx) {
67+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock } = _Vue
68+
69+
return (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(items, (_, __, index) => {
70+
return (_openBlock(), _createElementBlock("span"))
71+
}), 256 /* UNKEYED_FRAGMENT */))
72+
}
73+
}"
74+
`;
75+
76+
exports[`compiler: v-for > codegen > skipped value 1`] = `
77+
"const _Vue = Vue
78+
79+
return function render(_ctx, _cache) {
80+
with (_ctx) {
81+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock } = _Vue
82+
83+
return (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(items, (_, key, index) => {
84+
return (_openBlock(), _createElementBlock("span"))
85+
}), 256 /* UNKEYED_FRAGMENT */))
86+
}
87+
}"
88+
`;
89+
90+
exports[`compiler: v-for > codegen > template v-for 1`] = `
91+
"const _Vue = Vue
92+
93+
return function render(_ctx, _cache) {
94+
with (_ctx) {
95+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock, createElementVNode: _createElementVNode } = _Vue
96+
97+
return (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(items, (item) => {
98+
return (_openBlock(), _createElementBlock(_Fragment, null, [
99+
"hello",
100+
_createElementVNode("span")
101+
], 64 /* STABLE_FRAGMENT */))
102+
}), 256 /* UNKEYED_FRAGMENT */))
103+
}
104+
}"
105+
`;
106+
107+
exports[`compiler: v-for > codegen > template v-for key injection with single child 1`] = `
108+
"const _Vue = Vue
109+
110+
return function render(_ctx, _cache) {
111+
with (_ctx) {
112+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock } = _Vue
113+
114+
return (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(items, (item) => {
115+
return (_openBlock(), _createElementBlock("span", {
116+
key: item.id,
117+
id: item.id
118+
}, null, 8 /* PROPS */, ["id"]))
119+
}), 128 /* KEYED_FRAGMENT */))
120+
}
121+
}"
122+
`;
123+
124+
exports[`compiler: v-for > codegen > template v-for w/ <slot/> 1`] = `
125+
"const _Vue = Vue
126+
127+
return function render(_ctx, _cache) {
128+
with (_ctx) {
129+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock, renderSlot: _renderSlot } = _Vue
130+
131+
return (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(items, (item) => {
132+
return _renderSlot($slots, "default")
133+
}), 256 /* UNKEYED_FRAGMENT */))
134+
}
135+
}"
136+
`;
137+
138+
exports[`compiler: v-for > codegen > v-for on <slot/> 1`] = `
139+
"const _Vue = Vue
140+
141+
return function render(_ctx, _cache) {
142+
with (_ctx) {
143+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock, renderSlot: _renderSlot } = _Vue
144+
145+
return (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(items, (item) => {
146+
return _renderSlot($slots, "default")
147+
}), 256 /* UNKEYED_FRAGMENT */))
148+
}
149+
}"
150+
`;
151+
152+
exports[`compiler: v-for > codegen > v-for on element with custom directive 1`] = `
153+
"const _Vue = Vue
154+
155+
return function render(_ctx, _cache) {
156+
with (_ctx) {
157+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock, resolveDirective: _resolveDirective, withDirectives: _withDirectives } = _Vue
158+
159+
const _directive_foo = _resolveDirective("foo")
160+
161+
return (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(list, (i) => {
162+
return _withDirectives((_openBlock(), _createElementBlock("div", null, null, 512 /* NEED_PATCH */)), [
163+
[_directive_foo]
164+
])
165+
}), 256 /* UNKEYED_FRAGMENT */))
166+
}
167+
}"
168+
`;
169+
170+
exports[`compiler: v-for > codegen > v-for with constant expression 1`] = `
171+
"const _Vue = Vue
172+
173+
return function render(_ctx, _cache) {
174+
with (_ctx) {
175+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock, toDisplayString: _toDisplayString, createElementVNode: _createElementVNode } = _Vue
176+
177+
return (_openBlock(), _createElementBlock(_Fragment, null, _renderList(10, (item) => {
178+
return _createElementVNode("p", null, _toDisplayString(item), 1 /* TEXT */)
179+
}), 64 /* STABLE_FRAGMENT */))
180+
}
181+
}"
182+
`;
183+
184+
exports[`compiler: v-for > codegen > v-if + v-for 1`] = `
185+
"const _Vue = Vue
186+
187+
return function render(_ctx, _cache) {
188+
with (_ctx) {
189+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock, createCommentVNode: _createCommentVNode } = _Vue
190+
191+
return ok
192+
? (_openBlock(true), _createElementBlock(_Fragment, { key: 0 }, _renderList(list, (i) => {
193+
return (_openBlock(), _createElementBlock("div"))
194+
}), 256 /* UNKEYED_FRAGMENT */))
195+
: _createCommentVNode("v-if", true)
196+
}
197+
}"
198+
`;
199+
200+
exports[`compiler: v-for > codegen > v-if + v-for on <template> 1`] = `
201+
"const _Vue = Vue
202+
203+
return function render(_ctx, _cache) {
204+
with (_ctx) {
205+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock, createCommentVNode: _createCommentVNode } = _Vue
206+
207+
return ok
208+
? (_openBlock(true), _createElementBlock(_Fragment, { key: 0 }, _renderList(list, (i) => {
209+
return (_openBlock(), _createElementBlock(_Fragment, null, [], 64 /* STABLE_FRAGMENT */))
210+
}), 256 /* UNKEYED_FRAGMENT */))
211+
: _createCommentVNode("v-if", true)
212+
}
213+
}"
214+
`;
215+
216+
exports[`compiler: v-for > codegen > value + key + index 1`] = `
217+
"const _Vue = Vue
218+
219+
return function render(_ctx, _cache) {
220+
with (_ctx) {
221+
const { renderList: _renderList, Fragment: _Fragment, openBlock: _openBlock, createElementBlock: _createElementBlock } = _Vue
222+
223+
return (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(items, (item, key, index) => {
224+
return (_openBlock(), _createElementBlock("span"))
225+
}), 256 /* UNKEYED_FRAGMENT */))
226+
}
227+
}"
228+
`;

0 commit comments

Comments
 (0)