From 94a97d18ea7fd17d52d6d20b08eccfa2e1bace9b Mon Sep 17 00:00:00 2001 From: Simon He <57086651+Simon-He95@users.noreply.github.com> Date: Sat, 21 Oct 2023 21:45:03 +0800 Subject: [PATCH 1/2] perf(compiler-sfc): defineOptions avoid redundant conditional judgments --- packages/compiler-sfc/src/script/defineOptions.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/compiler-sfc/src/script/defineOptions.ts b/packages/compiler-sfc/src/script/defineOptions.ts index 8da3dbc0b4d..5f81c200507 100644 --- a/packages/compiler-sfc/src/script/defineOptions.ts +++ b/packages/compiler-sfc/src/script/defineOptions.ts @@ -37,9 +37,9 @@ export function processDefineOptions( prop.key.type === 'Identifier' ) { if (prop.key.name === 'props') propsOption = prop - if (prop.key.name === 'emits') emitsOption = prop - if (prop.key.name === 'expose') exposeOption = prop - if (prop.key.name === 'slots') slotsOption = prop + else if (prop.key.name === 'emits') emitsOption = prop + else if (prop.key.name === 'expose') exposeOption = prop + else if (prop.key.name === 'slots') slotsOption = prop } } } From 2a1cce68cd06606a3301d9bbc5c131b29db9a5df Mon Sep 17 00:00:00 2001 From: Simon He <57086651+Simon-He95@users.noreply.github.com> Date: Mon, 23 Oct 2023 09:51:01 +0800 Subject: [PATCH 2/2] refactor: with switch syntax --- .../compiler-sfc/src/script/defineOptions.ts | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/packages/compiler-sfc/src/script/defineOptions.ts b/packages/compiler-sfc/src/script/defineOptions.ts index 5f81c200507..6748e5b4e6d 100644 --- a/packages/compiler-sfc/src/script/defineOptions.ts +++ b/packages/compiler-sfc/src/script/defineOptions.ts @@ -36,10 +36,23 @@ export function processDefineOptions( (prop.type === 'ObjectProperty' || prop.type === 'ObjectMethod') && prop.key.type === 'Identifier' ) { - if (prop.key.name === 'props') propsOption = prop - else if (prop.key.name === 'emits') emitsOption = prop - else if (prop.key.name === 'expose') exposeOption = prop - else if (prop.key.name === 'slots') slotsOption = prop + switch (prop.key.name) { + case 'props': + propsOption = prop + break + + case 'emits': + emitsOption = prop + break + + case 'expose': + exposeOption = prop + break + + case 'slots': + slotsOption = prop + break + } } } }