Skip to content

fix(runtime-vapor): prevent v-for crash on looping through null or undefined array#14328

Merged
edison1105 merged 3 commits intovuejs:minorfrom
steel97:fix/vfor-null
Jan 19, 2026
Merged

fix(runtime-vapor): prevent v-for crash on looping through null or undefined array#14328
edison1105 merged 3 commits intovuejs:minorfrom
steel97:fix/vfor-null

Conversation

@steel97
Copy link
Copy Markdown

@steel97 steel97 commented Jan 16, 2026

When porting my project to vapor, I noticed component crash. After digging into it I find out that v-for crashes with undefined/null input which was not the case for vdom. This PR aims to fix that issue.

repl (not working):
vapor

repl (working):
vdom

repl (working):
vapor this PR

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Jan 16, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

Size Report

Bundles

File Size Gzip Brotli
compiler-dom.global.prod.js 85.5 kB 30 kB 26.4 kB
runtime-dom.global.prod.js 108 kB 40.7 kB 36.6 kB
vue.global.prod.js 167 kB 60.8 kB 54.2 kB

Usages

Name Size Gzip Brotli
createApp (CAPI only) 48.3 kB 18.9 kB 17.3 kB
createApp 57.3 kB 22 kB 20.1 kB
createApp + vaporInteropPlugin 78.5 kB 29 kB 26.4 kB
createVaporApp 27.9 kB 10.7 kB 9.83 kB
createSSRApp 61.6 kB 23.9 kB 21.7 kB
defineCustomElement 63.3 kB 23.9 kB 21.8 kB
overall 72.1 kB 27.3 kB 24.9 kB

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new bot commented Jan 16, 2026

Open in StackBlitz

@vue/compiler-core

pnpm add https://pkg.pr.new/@vue/compiler-core@14328
npm i https://pkg.pr.new/@vue/compiler-core@14328
yarn add https://pkg.pr.new/@vue/compiler-core@14328.tgz

@vue/compiler-dom

pnpm add https://pkg.pr.new/@vue/compiler-dom@14328
npm i https://pkg.pr.new/@vue/compiler-dom@14328
yarn add https://pkg.pr.new/@vue/compiler-dom@14328.tgz

@vue/compiler-sfc

pnpm add https://pkg.pr.new/@vue/compiler-sfc@14328
npm i https://pkg.pr.new/@vue/compiler-sfc@14328
yarn add https://pkg.pr.new/@vue/compiler-sfc@14328.tgz

@vue/compiler-ssr

pnpm add https://pkg.pr.new/@vue/compiler-ssr@14328
npm i https://pkg.pr.new/@vue/compiler-ssr@14328
yarn add https://pkg.pr.new/@vue/compiler-ssr@14328.tgz

@vue/compiler-vapor

pnpm add https://pkg.pr.new/@vue/compiler-vapor@14328
npm i https://pkg.pr.new/@vue/compiler-vapor@14328
yarn add https://pkg.pr.new/@vue/compiler-vapor@14328.tgz

@vue/reactivity

pnpm add https://pkg.pr.new/@vue/reactivity@14328
npm i https://pkg.pr.new/@vue/reactivity@14328
yarn add https://pkg.pr.new/@vue/reactivity@14328.tgz

@vue/runtime-core

pnpm add https://pkg.pr.new/@vue/runtime-core@14328
npm i https://pkg.pr.new/@vue/runtime-core@14328
yarn add https://pkg.pr.new/@vue/runtime-core@14328.tgz

@vue/runtime-dom

pnpm add https://pkg.pr.new/@vue/runtime-dom@14328
npm i https://pkg.pr.new/@vue/runtime-dom@14328
yarn add https://pkg.pr.new/@vue/runtime-dom@14328.tgz

@vue/runtime-vapor

pnpm add https://pkg.pr.new/@vue/runtime-vapor@14328
npm i https://pkg.pr.new/@vue/runtime-vapor@14328
yarn add https://pkg.pr.new/@vue/runtime-vapor@14328.tgz

@vue/server-renderer

pnpm add https://pkg.pr.new/@vue/server-renderer@14328
npm i https://pkg.pr.new/@vue/server-renderer@14328
yarn add https://pkg.pr.new/@vue/server-renderer@14328.tgz

@vue/shared

pnpm add https://pkg.pr.new/@vue/shared@14328
npm i https://pkg.pr.new/@vue/shared@14328
yarn add https://pkg.pr.new/@vue/shared@14328.tgz

vue

pnpm add https://pkg.pr.new/vue@14328
npm i https://pkg.pr.new/vue@14328
yarn add https://pkg.pr.new/vue@14328.tgz

@vue/compat

pnpm add https://pkg.pr.new/@vue/compat@14328
npm i https://pkg.pr.new/@vue/compat@14328
yarn add https://pkg.pr.new/@vue/compat@14328.tgz

commit: 0ebb40a

@edison1105 edison1105 added version: minor scope: vapor related to vapor mode labels Jan 19, 2026
@edison1105 edison1105 merged commit e77b6e1 into vuejs:minor Jan 19, 2026
20 of 21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope: vapor related to vapor mode version: minor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants