const isStableFragment =
forNode.source.type === NodeTypes.SIMPLE_EXPRESSION &&
- forNode.source.constType > ConstantTypes.CAN_SKIP_PATCH
+ forNode.source.constType > ConstantTypes.NOT_CONSTANT
const fragmentFlag = isStableFragment
? PatchFlags.STABLE_FRAGMENT
: keyProp
)
if (id.type === 'Identifier') {
let bindingType
- if (
+ const userReactiveBinding = userImportAlias['reactive'] || 'reactive'
+ if (isCallOf(init, userReactiveBinding)) {
+ // treat reactive() calls as let since it's meant to be mutable
+ bindingType = BindingTypes.SETUP_LET
+ } else if (
// if a declaration is a const literal, we can mark it so that
// the generated render fn code doesn't need to unref() it
isDefineCall ||
- (isConst &&
- canNeverBeRef(init!, userImportAlias['reactive'] || 'reactive'))
+ (isConst && canNeverBeRef(init!, userReactiveBinding))
) {
bindingType = BindingTypes.SETUP_CONST
} else if (isConst) {