From 3e2b34ada6f31d4d5e9a282d6ebc07544b20efa5 Mon Sep 17 00:00:00 2001 From: daiwei Date: Thu, 30 Jan 2025 22:37:00 +0800 Subject: [PATCH] test(compiler-sfc): handling function parameters with same name as destructured props --- .../definePropsDestructure.spec.ts.snap | 19 +++++++++++++++++++ .../definePropsDestructure.spec.ts | 16 ++++++++++++++++ .../src/script/definePropsDestructure.ts | 3 ++- 3 files changed, 37 insertions(+), 1 deletion(-) 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(`