Skip to content
This repository was archived by the owner on Jul 19, 2025. It is now read-only.

Commit bb5c31e

Browse files
committed
chore: Merge branch 'main' into minor
2 parents 9a936aa + b4b856b commit bb5c31e

File tree

109 files changed

+2045
-889
lines changed

Some content is hidden

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

109 files changed

+2045
-889
lines changed

.eslintrc.cjs

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,23 @@ module.exports = {
2626
'no-restricted-syntax': [
2727
'error',
2828
banConstEnum,
29-
// since we target ES2015 for baseline support, we need to forbid object
30-
// rest spread usage in destructure as it compiles into a verbose helper.
31-
'ObjectPattern > RestElement',
32-
// tsc compiles assignment spread into Object.assign() calls, but esbuild
33-
// still generates verbose helpers, so spread assignment is also prohiboted
34-
'ObjectExpression > SpreadElement',
35-
'AwaitExpression',
29+
{
30+
selector: 'ObjectPattern > RestElement',
31+
message:
32+
'Our output target is ES2016, and object rest spread results in ' +
33+
'verbose helpers and should be avoided.',
34+
},
35+
{
36+
selector: 'ObjectExpression > SpreadElement',
37+
message:
38+
'esbuild transpiles object spread into very verbose inline helpers.\n' +
39+
'Please use the `extend` helper from @vue/shared instead.',
40+
},
41+
{
42+
selector: 'AwaitExpression',
43+
message:
44+
'Our output target is ES2016, so async/await syntax should be avoided.',
45+
},
3646
],
3747
'sort-imports': ['error', { ignoreDeclarationSort: true }],
3848

.github/workflows/autofix.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
- uses: actions/checkout@v4
1515

1616
- name: Install pnpm
17-
uses: pnpm/action-setup@v2
17+
uses: pnpm/action-setup@v3.0.0
1818

1919
- name: Set node version to 18
2020
uses: actions/setup-node@v4

.github/workflows/canary-minor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
ref: minor
1818

1919
- name: Install pnpm
20-
uses: pnpm/action-setup@v2
20+
uses: pnpm/action-setup@v3.0.0
2121

2222
- name: Set node version to 18
2323
uses: actions/setup-node@v4

.github/workflows/canary.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
- uses: actions/checkout@v4
1616

1717
- name: Install pnpm
18-
uses: pnpm/action-setup@v2
18+
uses: pnpm/action-setup@v3.0.0
1919

2020
- name: Install Node.js
2121
uses: actions/setup-node@v4

.github/workflows/ci.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ on:
66
pull_request:
77
branches:
88
- main
9+
- minor
910

1011
permissions:
1112
contents: read # to fetch code (actions/checkout)
@@ -20,7 +21,7 @@ jobs:
2021
- uses: actions/checkout@v4
2122

2223
- name: Install pnpm
23-
uses: pnpm/action-setup@v2
24+
uses: pnpm/action-setup@v3.0.0
2425

2526
- name: Install Node.js
2627
uses: actions/setup-node@v4
@@ -42,7 +43,7 @@ jobs:
4243
- uses: actions/checkout@v4
4344

4445
- name: Install pnpm
45-
uses: pnpm/action-setup@v2
46+
uses: pnpm/action-setup@v3.0.0
4647

4748
- name: Install Node.js
4849
uses: actions/setup-node@v4
@@ -71,7 +72,7 @@ jobs:
7172
key: chromium-${{ hashFiles('pnpm-lock.yaml') }}
7273

7374
- name: Install pnpm
74-
uses: pnpm/action-setup@v2
75+
uses: pnpm/action-setup@v3.0.0
7576

7677
- name: Install Node.js
7778
uses: actions/setup-node@v4
@@ -97,7 +98,7 @@ jobs:
9798
- uses: actions/checkout@v4
9899

99100
- name: Install pnpm
100-
uses: pnpm/action-setup@v2
101+
uses: pnpm/action-setup@v3.0.0
101102

102103
- name: Install Node.js
103104
uses: actions/setup-node@v4
@@ -125,7 +126,7 @@ jobs:
125126
# - uses: actions/checkout@v4
126127

127128
# - name: Install pnpm
128-
# uses: pnpm/action-setup@v2
129+
# uses: pnpm/action-setup@v3.0.0
129130

130131
# - name: Install Node.js
131132
# uses: actions/setup-node@v4

.github/workflows/size-data.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
pull_request:
88
branches:
99
- main
10+
- minor
1011

1112
permissions:
1213
contents: read
@@ -22,7 +23,7 @@ jobs:
2223
- uses: actions/checkout@v4
2324

2425
- name: Install pnpm
25-
uses: pnpm/action-setup@v2
26+
uses: pnpm/action-setup@v3.0.0
2627

2728
- name: Install Node.js
2829
uses: actions/setup-node@v4

.github/workflows/size-report.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
- uses: actions/checkout@v4
2525

2626
- name: Install pnpm
27-
uses: pnpm/action-setup@v2
27+
uses: pnpm/action-setup@v3.0.0
2828

2929
- name: Install Node.js
3030
uses: actions/setup-node@v4

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ TODOs.md
1010
.eslintcache
1111
dts-build/packages
1212
*.tsbuildinfo
13+
*.tgz

.vscode/launch.json

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,15 @@
55
"version": "0.2.0",
66
"configurations": [
77
{
8-
"name": "Jest",
98
"type": "node",
109
"request": "launch",
11-
"program": "${workspaceFolder}/node_modules/.bin/jest",
12-
"stopOnEntry": false,
13-
"args": ["${fileBasename}", "--runInBand", "--detectOpenHandles"],
14-
"cwd": "${workspaceFolder}",
15-
"preLaunchTask": null,
16-
"runtimeExecutable": null,
17-
"runtimeArgs": ["--nolazy"],
18-
"env": {
19-
"NODE_ENV": "development"
20-
},
21-
"console": "integratedTerminal",
22-
"sourceMaps": true,
23-
"windows": {
24-
"program": "${workspaceFolder}/node_modules/jest/bin/jest"
25-
}
10+
"name": "Vitest - Debug Current Test File",
11+
"autoAttachChildProcesses": true,
12+
"skipFiles": ["<node_internals>/**", "**/node_modules/**"],
13+
"program": "${workspaceRoot}/node_modules/vitest/vitest.mjs",
14+
"args": ["run", "${relativeFile}"],
15+
"smartStep": true,
16+
"console": "integratedTerminal"
2617
}
2718
]
2819
}

CHANGELOG.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,55 @@
1+
## [3.4.22](https://github.com/vuejs/core/compare/v3.4.21...v3.4.22) (2024-04-15)
2+
3+
4+
### Bug Fixes
5+
6+
* **compat:** fix $options mutation + adjust private API initialization ([d58d133](https://github.com/vuejs/core/commit/d58d133b1cde5085cc5ab0012d544cafd62a6ee6)), closes [#10626](https://github.com/vuejs/core/issues/10626) [#10636](https://github.com/vuejs/core/issues/10636)
7+
* **compile-sfc:** analyze v-bind shorthand usage in template ([#10518](https://github.com/vuejs/core/issues/10518)) ([e5919d4](https://github.com/vuejs/core/commit/e5919d4658cfe0bb18c76611dd3c3432c57f94ab)), closes [#10515](https://github.com/vuejs/core/issues/10515)
8+
* **compiler-core:** fix loc.source for end tags with whitespace before > ([16174da](https://github.com/vuejs/core/commit/16174da21d6c8ac0aae027dd964fc35e221ded0a)), closes [#10694](https://github.com/vuejs/core/issues/10694) [#10695](https://github.com/vuejs/core/issues/10695)
9+
* **compiler-core:** fix v-bind shorthand for component :is ([04af950](https://github.com/vuejs/core/commit/04af9504a720c8e6de26c04b1282cf14fa1bcee3)), closes [#10469](https://github.com/vuejs/core/issues/10469) [#10471](https://github.com/vuejs/core/issues/10471)
10+
* **compiler-sfc:** :is() and :where() in compound selectors ([#10522](https://github.com/vuejs/core/issues/10522)) ([660cadc](https://github.com/vuejs/core/commit/660cadc7aadb909ef33a6055c4374902a82607a4)), closes [#10511](https://github.com/vuejs/core/issues/10511)
11+
* **compiler-sfc:** also search for `.tsx` when type import's extension is omitted ([#10637](https://github.com/vuejs/core/issues/10637)) ([34106bc](https://github.com/vuejs/core/commit/34106bc9c715247211273bb9c64712f04bd4879d)), closes [#10635](https://github.com/vuejs/core/issues/10635)
12+
* **compiler-sfc:** fix defineModel coercion for boolean + string union types ([#9603](https://github.com/vuejs/core/issues/9603)) ([0cef65c](https://github.com/vuejs/core/commit/0cef65cee411356e721bbc90d731fc52fc8fce94)), closes [#9587](https://github.com/vuejs/core/issues/9587) [#10676](https://github.com/vuejs/core/issues/10676)
13+
* **compiler-sfc:** fix universal selector scope ([#10551](https://github.com/vuejs/core/issues/10551)) ([54a6afa](https://github.com/vuejs/core/commit/54a6afa75a546078e901ce0882da53b97420fe94)), closes [#10548](https://github.com/vuejs/core/issues/10548)
14+
* **compiler-sfc:** use options module name if options provide runtimeModuleName options ([#10457](https://github.com/vuejs/core/issues/10457)) ([e76d743](https://github.com/vuejs/core/commit/e76d7430aa7470342f3fe263145a0fa92f5898ca)), closes [#10454](https://github.com/vuejs/core/issues/10454)
15+
* **custom-element:** avoid setting attr to null if it is removed ([#9012](https://github.com/vuejs/core/issues/9012)) ([b49306a](https://github.com/vuejs/core/commit/b49306adff4572d90a42ccd231387f16eb966bbe)), closes [#9006](https://github.com/vuejs/core/issues/9006) [#10324](https://github.com/vuejs/core/issues/10324)
16+
* **hydration:** properly handle optimized mode during hydrate node ([#10638](https://github.com/vuejs/core/issues/10638)) ([2ec06fd](https://github.com/vuejs/core/commit/2ec06fd6c8383e11cdf4efcab1707f973bd6a54c)), closes [#10607](https://github.com/vuejs/core/issues/10607)
17+
* **reactivity:** computed should not be detected as true by isProxy ([#10401](https://github.com/vuejs/core/issues/10401)) ([9da34d7](https://github.com/vuejs/core/commit/9da34d7af81607fddd1f32f21b3b4002402ff1cc))
18+
* **reactivity:** fix hasOwnProperty key coercion edge cases ([969c5fb](https://github.com/vuejs/core/commit/969c5fb30f4c725757c7385abfc74772514eae4b))
19+
* **reactivity:** fix tracking when hasOwnProperty is called with non-string value ([c3c5dc9](https://github.com/vuejs/core/commit/c3c5dc93fbccc196771458f0b43cd5b7ad1863f4)), closes [#10455](https://github.com/vuejs/core/issues/10455) [#10464](https://github.com/vuejs/core/issues/10464)
20+
* **runtime-core:** fix errorHandler causes an infinite loop during execution ([#9575](https://github.com/vuejs/core/issues/9575)) ([ab59bed](https://github.com/vuejs/core/commit/ab59bedae4e5e40b28804d88a51305b236d4a873))
21+
* **runtime-core:** handle invalid values in callWithAsyncErrorHandling ([53d15d3](https://github.com/vuejs/core/commit/53d15d3f76184eed67a18d35e43d9a2062f8e121))
22+
* **runtime-core:** show hydration mismatch details for non-rectified mismatches too when __PROD_HYDRATION_MISMATCH_DETAILS__ is set ([#10599](https://github.com/vuejs/core/issues/10599)) ([0dea7f9](https://github.com/vuejs/core/commit/0dea7f9a260d93eb6c39aabac8c94c2c9b2042dd))
23+
* **runtime-dom:** `v-model` string/number coercion for multiselect options ([#10576](https://github.com/vuejs/core/issues/10576)) ([db374e5](https://github.com/vuejs/core/commit/db374e54c9f5e07324728b85c74eca84e28dd352))
24+
* **runtime-dom:** fix css v-bind for suspensed components ([#8523](https://github.com/vuejs/core/issues/8523)) ([67722ba](https://github.com/vuejs/core/commit/67722ba23b7c36ab8f3fa2d2b4df08e4ddc322e1)), closes [#8520](https://github.com/vuejs/core/issues/8520)
25+
* **runtime-dom:** force update v-model number with leading 0 ([#10506](https://github.com/vuejs/core/issues/10506)) ([15ffe8f](https://github.com/vuejs/core/commit/15ffe8f2c954359770c57e4d9e589b0b622e4a60)), closes [#10503](https://github.com/vuejs/core/issues/10503) [#10615](https://github.com/vuejs/core/issues/10615)
26+
* **runtime-dom:** sanitize wrongly passed string value as event handler ([#8953](https://github.com/vuejs/core/issues/8953)) ([7ccd453](https://github.com/vuejs/core/commit/7ccd453dd004076cad49ec9f56cd5fe97b7b6ed8)), closes [#8818](https://github.com/vuejs/core/issues/8818)
27+
* **ssr:** don't render v-if comments in TransitionGroup ([#6732](https://github.com/vuejs/core/issues/6732)) ([5a96267](https://github.com/vuejs/core/commit/5a9626708e970c6fc0b6f786e3c80c22273d126f)), closes [#6715](https://github.com/vuejs/core/issues/6715)
28+
* **Transition:** ensure the KeepAlive children unmount w/ out-in mode ([#10632](https://github.com/vuejs/core/issues/10632)) ([fc99e4d](https://github.com/vuejs/core/commit/fc99e4d3f01b190ef9fd3c218a668ba9124a32bc)), closes [#10620](https://github.com/vuejs/core/issues/10620)
29+
* **TransitionGroup:** avoid set transition hooks for comment nodes and text nodes ([#9421](https://github.com/vuejs/core/issues/9421)) ([140a768](https://github.com/vuejs/core/commit/140a7681cc3bba22f55d97fd85a5eafe97a1230f)), closes [#4621](https://github.com/vuejs/core/issues/4621) [#4622](https://github.com/vuejs/core/issues/4622) [#5153](https://github.com/vuejs/core/issues/5153) [#5168](https://github.com/vuejs/core/issues/5168) [#7898](https://github.com/vuejs/core/issues/7898) [#9067](https://github.com/vuejs/core/issues/9067)
30+
* **types:** avoid merging object union types when using withDefaults ([#10596](https://github.com/vuejs/core/issues/10596)) ([37ba93c](https://github.com/vuejs/core/commit/37ba93c213a81f99a68a99ef5d4065d61b150ba3)), closes [#10594](https://github.com/vuejs/core/issues/10594)
31+
32+
33+
### Performance Improvements
34+
35+
* add `__NO_SIDE_EFFECTS__` comments ([#9053](https://github.com/vuejs/core/issues/9053)) ([d46df6b](https://github.com/vuejs/core/commit/d46df6bdb14b0509eb2134b3f85297a306821c61))
36+
* optimize component props/slots internal object checks ([6af733d](https://github.com/vuejs/core/commit/6af733d68eb400a3d2c5ef5f465fff32b72a324e))
37+
* **ssr:** avoid calling markRaw on component instance proxy ([4bc9f39](https://github.com/vuejs/core/commit/4bc9f39f028af7313e5cf24c16915a1985d27bf8))
38+
* **ssr:** optimize setup context creation for ssr in v8 ([ca84316](https://github.com/vuejs/core/commit/ca84316bfb3410efe21333670a6ad5cd21857396))
39+
40+
41+
42+
## [3.4.21](https://github.com/vuejs/core/compare/v3.4.20...v3.4.21) (2024-02-28)
43+
44+
45+
### Bug Fixes
46+
47+
* **runtime-dom:** avoid unset option's value ([#10416](https://github.com/vuejs/core/issues/10416)) ([b3f8b5a](https://github.com/vuejs/core/commit/b3f8b5a4e700d4c47a146b6040882287d180f6cb)), closes [#10412](https://github.com/vuejs/core/issues/10412) [#10396](https://github.com/vuejs/core/issues/10396)
48+
* **suspense:** ensure nested suspense patching if in fallback state ([#10417](https://github.com/vuejs/core/issues/10417)) ([7c97778](https://github.com/vuejs/core/commit/7c97778aec1e3513035e5df265e1b8a7801f6106)), closes [#10415](https://github.com/vuejs/core/issues/10415)
49+
* **warning:** stringify args in warn handler ([#10414](https://github.com/vuejs/core/issues/10414)) ([bc37258](https://github.com/vuejs/core/commit/bc37258caa2f6f67f4554ab8587aca3798d92124)), closes [#10409](https://github.com/vuejs/core/issues/10409)
50+
51+
52+
153
## [3.4.20](https://github.com/vuejs/core/compare/v3.4.19...v3.4.20) (2024-02-26)
254

355

0 commit comments

Comments
 (0)