diff --git a/packages/compiler-sfc/__tests__/compileScript/__snapshots__/definePropsDestructure.spec.ts.snap b/packages/compiler-sfc/__tests__/compileScript/__snapshots__/definePropsDestructure.spec.ts.snap
index 1044b0e167c..9306d31da97 100644
--- a/packages/compiler-sfc/__tests__/compileScript/__snapshots__/definePropsDestructure.spec.ts.snap
+++ b/packages/compiler-sfc/__tests__/compileScript/__snapshots__/definePropsDestructure.spec.ts.snap
@@ -192,6 +192,25 @@ return () => {}
}"
`;
+exports[`sfc reactive props destructure > handle function parameters with same name as destructured props 1`] = `
+"
+export default {
+ setup(__props) {
+
+
+ function test(value) {
+ try {
+ } catch {
+ }
+ }
+ console.log(__props.value)
+
+return () => {}
+}
+
+}"
+`;
+
exports[`sfc reactive props destructure > multi-variable declaration 1`] = `
"
export default {
diff --git a/packages/compiler-sfc/__tests__/compileScript/definePropsDestructure.spec.ts b/packages/compiler-sfc/__tests__/compileScript/definePropsDestructure.spec.ts
index 50602eb59bc..25dd817bbe5 100644
--- a/packages/compiler-sfc/__tests__/compileScript/definePropsDestructure.spec.ts
+++ b/packages/compiler-sfc/__tests__/compileScript/definePropsDestructure.spec.ts
@@ -358,6 +358,22 @@ describe('sfc reactive props destructure', () => {
expect(content).toMatch(`props: ['item'],`)
})
+ test('handle function parameters with same name as destructured props', () => {
+ const { content } = compile(`
+
+ `)
+ assertCode(content)
+ expect(content).toMatch(`console.log(__props.value)`)
+ })
+
test('defineProps/defineEmits in multi-variable declaration (full removal)', () => {
const { content } = compile(`