## vuejs/core — v3.6.0-rc.8…v3.6.0-rc.9

_89 commits._

### Fixes
- **fix(compiler-vapor): stabilize dynamic slot function references (#15564)** (5bcfc4e)
- **fix(runtime-vapor): isolate props of a cached VDOM child in a Vapor KeepAlive (#15560)** (ca300cd)
- **fix(compiler-vapor): preserve special boolean values with .attr** (78f087b)
- **fix(compiler-vapor): preserve raw checkbox values with .attr** (e1a74ba)
- **fix(compiler-vapor): keep raw values on v-model value props** (b3068e0)
- **fix(compiler-vapor): preserve index position when v-for key is omitted** (cadb901)
- **fix(compiler-vapor): process v-for callback parameter defaults** (ab4bed8)
- **fix(compiler-vapor): resolve v-for aliases through their ast** (ba50a84)
- **fix(compiler-vapor): do not count children that render nothing (#15550)** (35b58b5)
- **fix(compiler-sfc): ignore comment delimiters inside strings and url() when parsing css vars (#15548)** (2fde323)
- **fix(reactivity): preserve readonly wrappers in array copy methods (#15469)** (599f35b)
- **fix(types): keep optional props when a runtime prop uses a generic PropType (#15523)** (243aabc)
- **fix(shared): handle circular references in looseEqual (#15499)** (718f782)
- **fix(compiler-sfc): prepend semicolon for await in switch case (#15498)** (9a1df69)
- **fix(compiler-sfc): reuse parsed parent configs across tsconfig walks (fix #15478) (#15480)** (d6febaa)
- **fix(shared): preserve comment-like text in style values (#15471)** (b9456cb)
- **fix(runtime-core): unmount v-once children after parent rerenders (#15435)** (d720338)
- **fix(runtime-vapor): read emit listeners from the current vnode in vdom interop (#15547)** (7b24caa)
- **fix(deps): update dependency jszip to ^3.10.2 (#15502)** (11e3cc9)
- **fix(deps): update compiler (#15247)** (81836f1)
- **fix(compiler-vapor): preserve template text and types during caching** (403b255)
- **fix(compiler-vapor): preserve local bindings in expression caching** (62f16f3)
- **fix(compiler-vapor): replace repeated expressions only at exact AST node ranges** (2ff5ee1)
- **fix(compiler-vapor): preserve number literals on custom element props** (76b72c7)
- **fix(compiler-vapor): keep number literals on slot outlet props (#15539)** (2ff6735)
- **fix(compiler-vapor): do not cache member expressions with unsupported keys (#15540)** (326671c)
- **fix(compiler-vapor): preserve parentheses in cached binary expressions (#15544)** (131e2ad)
- **fix(runtime-vapor): resolve nodes of a vdom child rooted at a slot outlet (#15542)** (9920cd3)
- **fix(compiler-vapor): keep the leading newline of pre and textarea (#15543)** (addc884)
- **fix(runtime-vapor): hydrate missing text among element children** (f5d628c)
- **fix(runtime-vapor): preserve fragment ownership when hydrating empty text** (e08b905)
- **fix(runtime-vapor): hydrate empty text blocks in place** (58984c8)
- **fix(runtime-vapor): do not crash hydrating a null value binding (#15541)** (9f93220)
- **fix(runtime-vapor): apply the client v-show value on allowed hydration mismatches (#15537)** (b20e274)
- **fix(runtime-vapor): ignore v-show on a slot outlet root like vdom (#15535)** (b23175f)
- **fix(runtime-vapor): advance hydration past multi-root async components (#15532)** (90ddc69)
- **fix(runtime-vapor): show v-show element hydrated from hidden SSR output (#15533)** (cdae5cf)
- **fix(compiler-vapor): preserve optional chains in repeated expressions** (d4d127c)
- **fix(compiler-vapor): do not cache the prefix of an optional chain** (d767a4d)
- **fix(runtime-vapor): follow v-show through nested dynamic roots and interop content** (574ac3e)
- **fix(runtime-vapor): keep v-for item order before empty nested branches (#15529)** (052c768)
- **fix(runtime-vapor): keep transition classes when updating class binding (#15528)** (a5f7a2c)
- **fix(runtime-vapor): skip update hooks on deferred teleport children mount (#15527)** (cbb500f)
- **fix(runtime-vapor): unmount KeepAlive component reactivated in a nested branch (#15526)** (ed35682)
- **fix(runtime-vapor): cache current KeepAlive branch when include/exclude changes (#15525)** (b651ddb)
- **fix(runtime-vapor): properly unmount nested vdom content (#15524)** (922a7dd)
- **fix(runtime-vapor): assign to exposed refs through template refs (#15522)** (11392af)
- **fix(runtime-vapor): render empty branch for empty string dynamic component (#15520)** (0e4ff65)
- **fix(runtime-vapor): pass slots to vdom async components (#15513)** (fe309d6)
- **fix(compiler-vapor): only use v-for selector when comparing the key itself (#15510)** (62adf6e)
- **fix(compiler-vapor): ignore key on <template> slots (#15514)** (37b8573)
- **fix(compiler-vapor): set element text for textContent bindings (#15511)** (5276a5b)
- **fix(vapor): apply css vars through vapor root children (#15505)** (423c614)
- **fix(compiler-vapor): ignore key on <template> v-if branches (#15509)** (01dba84)
- **fix(runtime-vapor): mark props as shallow so watching props is not deep (#15506)** (958580b)
- **fix(runtime-vapor): pass attrs as props to functional vdom components (#15494)** (52dc8e7)
- **fix(vapor): pass custom directive arguments as getters (#15490)** (7d7a351)
- **fix(runtime-vapor): warn on vdom object directives in vapor templates (#15489)** (bb5a18f)
- **fix(runtime-vapor): warn instead of applying directives through slot outlet roots (#15488)** (fcf583e)
- **fix(runtime-vapor): warn on lifecycle hooks inside custom directives (#15487)** (4cffa13)
- **fix(runtime-vapor): isolate custom directive errors (#15484)** (fa4cbd6)
- **fix(runtime-vapor): skip reserved props in attrs and dynamic props (#15497)** (ab722d1)
- **fix(runtime-vapor): invoke interop vnode hooks exactly once (#15501)** (3b6b624)
- **fix(compiler-sfc): restore await scope when leaving nested blocks** (5409708)
- **fix(hydration): run leave hooks for hydration placeholders (#15431)** (5dda192)
- **fix(suspense): unmount the DOM an interrupted async component claimed (#15430)** (fb9b45c)
- **fix(suspense): don't drop nested suspense patches during hydration (#15429)** (76d42dc)
- **fix(suspense): keep the boundary pending while its branch is patched (#15411)** (bfcfe9e)
- **fix(suspense): patch a hydrating boundary's pending branch in place (#15432)** (2cde6f7)

### Backend
- **release: v3.6.0-rc.9** (5be2795)
- **release: v3.5.43** (5be58b4)

### Tests
- **test(runtime-vapor): remove numeric indeterminate parity assertion** (d62491d)

### Chore
- **chore: merge branch main into minor** (fd96abe)
- **chore: remove and ignore generated git hooks** (a0b61aa)
- **chore(deps): update pnpm to v12 (#15439)** (55a2b45)
- **chore(deps): update all non-major dependencies (#15244)** (8b44b02)
- **chore(deps): update dependency vitest to v4.1.11 [security] (#15482)** (26cdeb3)
- **chore(deps): update test (#15306)** (9918b73)
- **chore(deps): bump postcss-selector-parser from 6.1.2 to 7.1.5 (#15395)** (60e56a5)
- **chore(deps): update dawidd6/action-download-artifact action to v24 (#15334)** (a4a3216)
- **chore(deps): update lint (#15246)** (eeff32e)
- **chore(deps): update build (#15245)** (2d4e881)
- **refactor(runtime-vapor): keep feature-gated root visitor hooks tree-shakable** (08f3f44)
- **refactor(runtime-vapor): replace key propagation with on-demand resolution (#15516)** (8d70c00)
- **refactor(runtime-vapor): apply css vars as root-inherited state (#15507)** (085ab65)
- **refactor(compiler-vapor): apply custom directives after block effects (#15486)** (80b3a04)
- **refactor(runtime-vapor): resolve directive targets with the root chain visitor (#15483)** (e35e9af)
- **refactor(runtime-vapor): read TransitionGroup tag once and skip the fragment for static slots (#15500)** (b77ad20)
- **chore: fix typos in comments (#15410)** (d105e19)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/vuejs/core?utm_source=github-action)._