The Wire · Showcase
COMPILER FIXES PLUG MEMORY LEAKS IN SLOT RENDERING
By RepoJournal · Filed · About Vue.js
Vue core shipped back-to-back fixes for two critical memory leaks in slot handling that could silently corrupt component state and leak rendering buffers on errors.
Two separate memory leaks landed in the compiler and runtime this cycle. The first [1] separates compiler-injected slot branch keys from user-facing scoped slot props, fixing a bug where conditional slot outlets would corrupt passed arrays by merging internal metadata into the rendered props object. The second [2] unwinds dangling block state when slot content throws during rendering, preventing stale rendering data from being retained after exceptions. Both are edge cases that ship silently in production until they accumulate. A third fix [3] removes a package dependency cycle in the server renderer that could cause build issues in certain module resolution orders. On the maintenance front, conventional-changelog bumped to v8 [4], bringing breaking changes worth reviewing in your changelog generation pipeline. Lock file maintenance across create-vue [5] keeps the scaffolder current.
Action items
- → Pull latest vuejs/core and test slot rendering with conditional v-if and error boundaries vuejs/core [immediate]
- → Review conventional-changelog v8 breaking changes before upgrading changelog tooling vuejs/core [plan]
- → Verify SSR builds complete without import cycle warnings after server-renderer fix vuejs/core [plan]
References
- [1] fix(compiler-core): avoid leaking slot branch keys ↗ vuejs/core
- [2] fix(runtime-core): unwind dangling blocks when slot content throws ↗ vuejs/core
- [3] fix(server-renderer): remove package dependency cycle (#15063) vuejs/core
- [4] chore(deps): update dependency conventional-changelog to v8 ↗ vuejs/core
- [5] chore(deps): lock file maintenance ↗ vuejs/create-vue