$ the-wire · showcase
looseEqual handles cycles, v-once children unmount correctly
By RepoJournal · Filed · About Vue.js · Composed from the cited sources · methodology
Two Vue core bug fixes close out stack overflows and leaked v-once children, alongside a security bump to vitest 4.1.11 and grouped dependency updates.
fix(shared): handle circular references in looseEqual vuejs/core
Since the Map and Set recursion landed in looseEqual, a <select v-model> whose option values are Sets of mutually referencing objects threw "RangeError: Maximum call stack size exceeded" during mount. looseEqual now threads a stack of object pairs through the recursion and treats a revisited pair as equal, so cyclic structures no longer recurse forever.
fix(runtime-core): unmount v-once children after parent rerenders vuejs/core
Unmounting a parent after it rerendered could skip a component nested inside v-once; the fix preserves the block's hasOnce marker across updates and the cache index when cloning vnodes. Teardown now clears only the current component's cache, so removing one slot instance cannot invalidate another, which is the failure reported in nuxt/nuxt#32154.
chore(deps): update dependency vitest to v4.1.11 [security] vuejs/core
Renovate's flagged security update moves vitest from 4.1.10 to 4.1.11 in the test toolchain. It affects the repo's own test runs, not the published Vue packages, but worth taking on your next dependency sync if you mirror the core setup.
chore(deps): update pnpm to v12 vuejs/core
The package manager pinned for the repo jumps from pnpm 11.19.0 to 12.4.2, the largest of three dependency PRs open against core. Contributor checkouts and CI both ride on the same lockstep bump.
chore(deps): update all non-major dependencies vuejs/core
The routine non-major sweep rounds out the queue, touching @types/node and friends; nothing there changes runtime behavior for consumers of the published packages.