Visitar URL original
fix(compiler-vapor): ignore cached member expressions nested in another one by ValentinYoushkevich · Pull Request #15751 · vuejs/core · GitHub
Skip to content

fix(compiler-vapor): ignore cached member expressions nested in another one - #15751

Merged
edison1105 merged 2 commits into
vuejs:minorfrom
ValentinYoushkevich:fix/vapor-nested-member-expression-cache
Oct 2, 2026
Merged

edison1105 merged 2 commits into
vuejs:minorfrom
ValentinYoushkevich:fix/vapor-nested-member-expression-cache

Conversation

@ValentinYoushkevich

Copy link
Copy Markdown
Contributor

When a template repeats a member expression whose key is itself a member expression, like levels[rungs[i].level].color next to levels[rungs[i].level].label, Vapor caches both and then applies the inner replacement at offsets the outer one has already rewritten. The generated code reads _ctx.levels_rungs_i_levelcolor, so the value is undefined in dev and a ReferenceError with an inlined template, while VDOM renders it (playground).

vuetify0's docs have this exact shape in DocsGraduation.vue. The file is not Vapor yet, but vuetify0 lists Vapor as a compatibility target; under vapor the color compiles to levels_rungs_index_1_levellor.

This drops a replacement nested inside another one, since the outer replacement already covers it.

@coderabbitai

coderabbitai Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

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.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 77ef7bbe-e554-43df-90dd-b84bc757c817

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

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


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.

@pkg-pr-new

pkg-pr-new Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

@vue/compiler-core

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

@vue/compiler-dom

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

@vue/compiler-sfc

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

@vue/compiler-ssr

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

@vue/compiler-vapor

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

@vue/reactivity

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

@vue/runtime-core

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

@vue/runtime-dom

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

@vue/runtime-vapor

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

@vue/server-renderer

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

@vue/shared

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

vue

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

@vue/compat

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

commit: 2cc068b

@github-actions

github-actions Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Size Report

Bundles

File Size Gzip Brotli
compiler-dom.global.prod.js 87.2 kB 30.6 kB 26.9 kB
runtime-dom.global.prod.js 117 kB 43.9 kB 39.3 kB
vue.global.prod.js 177 kB 64 kB 57 kB

Usages

Name Size Gzip Brotli
createApp (CAPI only) 53.2 kB 20.7 kB 18.9 kB
createApp 62 kB 23.9 kB 21.8 kB
createApp + vaporInteropPlugin 129 kB 46.6 kB 41.9 kB
createVaporApp 34.1 kB 13.1 kB 12 kB
createSSRApp 67 kB 26 kB 23.6 kB
createVaporSSRApp 40.8 kB 15.5 kB 14.2 kB
defineCustomElement 68.5 kB 25.9 kB 23.6 kB
defineVaporCustomElement 48.6 kB 17.7 kB 16.3 kB
overall 77.5 kB 29.5 kB 26.7 kB

@edison1105
edison1105 merged commit 92cedd9 into vuejs:minor Oct 2, 2026
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants