From a96507ad0c3fadfafd85b9680821a53db7fe57b6 Mon Sep 17 00:00:00 2001 From: daiwei Date: Wed, 11 Dec 2024 21:01:06 +0800 Subject: [PATCH] chore: avoid cache setup const --- packages/compiler-vapor/src/generators/prop.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/compiler-vapor/src/generators/prop.ts b/packages/compiler-vapor/src/generators/prop.ts index 822ef3db9f..3835a74a02 100644 --- a/packages/compiler-vapor/src/generators/prop.ts +++ b/packages/compiler-vapor/src/generators/prop.ts @@ -247,11 +247,11 @@ function processPropValues( // e.g. _foo === _ctx.foo && (_prev_foo = _setStyle(...)) let shouldWrapInParentheses: boolean = false let prevValueName + const needReturnValue = helpersNeedCachedReturnValue.includes(helperName) if (shouldCacheRenderEffectDeps()) { const { declareNames, operations, identifiers } = processingRenderEffect! // if render effect rely on any reactive object, it should not cache const canCache = identifiers.every(name => canCacheValue(context, name)) - const needReturnValue = helpersNeedCachedReturnValue.includes(helperName) processValues(context, values, canCache) // if the operation needs to cache the return value and has multiple declareNames, // combine them into a single name as the return value name. @@ -261,7 +261,7 @@ function processPropValues( declareNames.size === 1 ? `_prev${names[0]}` : names.join('') if (!canCache) { declareNames.clear() - processingRenderEffect!.earlyCheckExps.splice(0) + processingRenderEffect!.earlyCheckExps = [] } declareNames.add(prevValueName) } @@ -333,5 +333,9 @@ function canCacheValue(context: CodegenContext, name: string): boolean { const { options: { bindingMetadata }, } = context - return bindingMetadata[name] !== BindingTypes.SETUP_REACTIVE_CONST + const bindingType = bindingMetadata[name] + return ( + bindingType !== BindingTypes.SETUP_REACTIVE_CONST && + bindingType !== BindingTypes.SETUP_CONST + ) } -- 2.47.3