@vue/compat 3.4.23 → 3.4.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.4.23
2
+ * @vue/compat v3.4.25
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -2542,11 +2542,6 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2542
2542
  warnedInvalidKeys[key] = true;
2543
2543
  }
2544
2544
  }
2545
- if (instance && config["OPTIONS_DATA_MERGE"] != null) {
2546
- warn$1(
2547
- `Deprecation config "${"OPTIONS_DATA_MERGE"}" can only be configured globally.`
2548
- );
2549
- }
2550
2545
  }
2551
2546
  function getCompatConfigForKey(key, instance) {
2552
2547
  const instanceConfig = instance && instance.type.compatConfig;
@@ -2929,21 +2924,21 @@ function renderComponentRoot(instance) {
2929
2924
  vnode,
2930
2925
  proxy,
2931
2926
  withProxy,
2932
- props,
2933
2927
  propsOptions: [propsOptions],
2934
2928
  slots,
2935
2929
  attrs,
2936
2930
  emit,
2937
2931
  render,
2938
2932
  renderCache,
2933
+ props,
2939
2934
  data,
2940
2935
  setupState,
2941
2936
  ctx,
2942
2937
  inheritAttrs
2943
2938
  } = instance;
2939
+ const prev = setCurrentRenderingInstance(instance);
2944
2940
  let result;
2945
2941
  let fallthroughAttrs;
2946
- const prev = setCurrentRenderingInstance(instance);
2947
2942
  if (!!(process.env.NODE_ENV !== "production")) {
2948
2943
  accessedAttrs = false;
2949
2944
  }
@@ -2965,7 +2960,7 @@ function renderComponentRoot(instance) {
2965
2960
  thisProxy,
2966
2961
  proxyToUse,
2967
2962
  renderCache,
2968
- props,
2963
+ !!(process.env.NODE_ENV !== "production") ? shallowReadonly(props) : props,
2969
2964
  setupState,
2970
2965
  data,
2971
2966
  ctx
@@ -2979,7 +2974,7 @@ function renderComponentRoot(instance) {
2979
2974
  }
2980
2975
  result = normalizeVNode(
2981
2976
  render2.length > 1 ? render2(
2982
- props,
2977
+ !!(process.env.NODE_ENV !== "production") ? shallowReadonly(props) : props,
2983
2978
  !!(process.env.NODE_ENV !== "production") ? {
2984
2979
  get attrs() {
2985
2980
  markAttrsAccessed();
@@ -2989,9 +2984,8 @@ function renderComponentRoot(instance) {
2989
2984
  emit
2990
2985
  } : { attrs, slots, emit }
2991
2986
  ) : render2(
2992
- props,
2987
+ !!(process.env.NODE_ENV !== "production") ? shallowReadonly(props) : props,
2993
2988
  null
2994
- /* we know it doesn't need it */
2995
2989
  )
2996
2990
  );
2997
2991
  fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);
@@ -4555,11 +4549,21 @@ function emptyPlaceholder(vnode) {
4555
4549
  }
4556
4550
  }
4557
4551
  function getKeepAliveChild(vnode) {
4558
- return isKeepAlive(vnode) ? (
4559
- // #7121 ensure get the child component subtree in case
4560
- // it's been replaced during HMR
4561
- !!(process.env.NODE_ENV !== "production") && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0
4562
- ) : vnode;
4552
+ if (!isKeepAlive(vnode)) {
4553
+ return vnode;
4554
+ }
4555
+ if (!!(process.env.NODE_ENV !== "production") && vnode.component) {
4556
+ return vnode.component.subTree;
4557
+ }
4558
+ const { shapeFlag, children } = vnode;
4559
+ if (children) {
4560
+ if (shapeFlag & 16) {
4561
+ return children[0];
4562
+ }
4563
+ if (shapeFlag & 32 && isFunction(children.default)) {
4564
+ return children.default();
4565
+ }
4566
+ }
4563
4567
  }
4564
4568
  function setTransitionHooks(vnode, hooks) {
4565
4569
  if (vnode.shapeFlag & 6 && vnode.component) {
@@ -6579,7 +6583,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6579
6583
  return vm;
6580
6584
  }
6581
6585
  }
6582
- Vue.version = `2.6.14-compat:${"3.4.23"}`;
6586
+ Vue.version = `2.6.14-compat:${"3.4.25"}`;
6583
6587
  Vue.config = singletonApp.config;
6584
6588
  Vue.use = (p, ...options) => {
6585
6589
  if (p && isFunction(p.install)) {
@@ -7219,7 +7223,7 @@ function shouldSkipAttr(key, instance) {
7219
7223
  return false;
7220
7224
  }
7221
7225
 
7222
- const internalObjectProto = /* @__PURE__ */ Object.create(null);
7226
+ const internalObjectProto = {};
7223
7227
  const createInternalObject = () => Object.create(internalObjectProto);
7224
7228
  const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;
7225
7229
 
@@ -7701,23 +7705,17 @@ const normalizeVNodeSlots = (instance, children) => {
7701
7705
  instance.slots.default = () => normalized;
7702
7706
  };
7703
7707
  const initSlots = (instance, children) => {
7708
+ const slots = instance.slots = createInternalObject();
7704
7709
  if (instance.vnode.shapeFlag & 32) {
7705
7710
  const type = children._;
7706
7711
  if (type) {
7707
- instance.slots = toRaw(children);
7708
- def(instance.slots, "_", type);
7712
+ extend(slots, children);
7713
+ def(slots, "_", type);
7709
7714
  } else {
7710
- normalizeObjectSlots(
7711
- children,
7712
- instance.slots = createInternalObject(),
7713
- instance
7714
- );
7715
- }
7716
- } else {
7717
- instance.slots = createInternalObject();
7718
- if (children) {
7719
- normalizeVNodeSlots(instance, children);
7715
+ normalizeObjectSlots(children, slots, instance);
7720
7716
  }
7717
+ } else if (children) {
7718
+ normalizeVNodeSlots(instance, children);
7721
7719
  }
7722
7720
  };
7723
7721
  const updateSlots = (instance, children, optimized) => {
@@ -11497,7 +11495,7 @@ function isMemoSame(cached, memo) {
11497
11495
  return true;
11498
11496
  }
11499
11497
 
11500
- const version = "3.4.23";
11498
+ const version = "3.4.25";
11501
11499
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
11502
11500
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11503
11501
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
@@ -11742,8 +11740,8 @@ function resolveTransitionProps(rawProps) {
11742
11740
  if (legacyClassEnabled && legacyLeaveFromClass) {
11743
11741
  addTransitionClass(el, legacyLeaveFromClass);
11744
11742
  }
11745
- forceReflow();
11746
11743
  addTransitionClass(el, leaveActiveClass);
11744
+ forceReflow();
11747
11745
  nextFrame(() => {
11748
11746
  if (!el._isLeaving) {
11749
11747
  return;
@@ -15941,6 +15939,7 @@ function createTransformContext(root, {
15941
15939
  vOnce: 0
15942
15940
  },
15943
15941
  parent: null,
15942
+ grandParent: null,
15944
15943
  currentNode: root,
15945
15944
  childIndex: 0,
15946
15945
  inVOnce: false,
@@ -16087,6 +16086,7 @@ function traverseChildren(parent, context) {
16087
16086
  const child = parent.children[i];
16088
16087
  if (isString(child))
16089
16088
  continue;
16089
+ context.grandParent = context.parent;
16090
16090
  context.parent = parent;
16091
16091
  context.childIndex = i;
16092
16092
  context.onNodeRemoved = nodeRemoved;
@@ -17662,6 +17662,16 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
17662
17662
  if (arg)
17663
17663
  mergeArgs.push(arg);
17664
17664
  };
17665
+ const pushRefVForMarker = () => {
17666
+ if (context.scopes.vFor > 0) {
17667
+ properties.push(
17668
+ createObjectProperty(
17669
+ createSimpleExpression("ref_for", true),
17670
+ createSimpleExpression("true")
17671
+ )
17672
+ );
17673
+ }
17674
+ };
17665
17675
  const analyzePatchFlag = ({ key, value }) => {
17666
17676
  if (isStaticExp(key)) {
17667
17677
  const name = key.content;
@@ -17705,14 +17715,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
17705
17715
  let isStatic = true;
17706
17716
  if (name === "ref") {
17707
17717
  hasRef = true;
17708
- if (context.scopes.vFor > 0) {
17709
- properties.push(
17710
- createObjectProperty(
17711
- createSimpleExpression("ref_for", true),
17712
- createSimpleExpression("true")
17713
- )
17714
- );
17715
- }
17718
+ pushRefVForMarker();
17716
17719
  }
17717
17720
  if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || isCompatEnabled(
17718
17721
  "COMPILER_IS_ON_ELEMENT",
@@ -17762,18 +17765,14 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
17762
17765
  ) {
17763
17766
  shouldUseBlock = true;
17764
17767
  }
17765
- if (isVBind && isStaticArgOf(arg, "ref") && context.scopes.vFor > 0) {
17766
- properties.push(
17767
- createObjectProperty(
17768
- createSimpleExpression("ref_for", true),
17769
- createSimpleExpression("true")
17770
- )
17771
- );
17768
+ if (isVBind && isStaticArgOf(arg, "ref")) {
17769
+ pushRefVForMarker();
17772
17770
  }
17773
17771
  if (!arg && (isVBind || isVOn)) {
17774
17772
  hasDynamicKeys = true;
17775
17773
  if (exp) {
17776
17774
  if (isVBind) {
17775
+ pushRefVForMarker();
17777
17776
  pushMergeArg();
17778
17777
  {
17779
17778
  if (!!(process.env.NODE_ENV !== "production")) {
@@ -19187,8 +19186,7 @@ ${codeFrame}` : message);
19187
19186
  registerRuntimeCompiler(compileToFunction);
19188
19187
  const Vue = createCompatVue();
19189
19188
  Vue.compile = compileToFunction;
19190
- var Vue$1 = Vue;
19191
19189
 
19192
- const { configureCompat } = Vue$1;
19190
+ const { configureCompat } = Vue;
19193
19191
 
19194
- export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TriggerOpTypes, VueElement, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed, configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, Vue$1 as default, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useModel, useSSRContext, useSlots, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };
19192
+ export { BaseTransition, BaseTransitionPropsValidators, Comment, DeprecationTypes, EffectScope, ErrorCodes, ErrorTypeStrings, Fragment, KeepAlive, ReactiveEffect, Static, Suspense, Teleport, Text, TrackOpTypes, Transition, TransitionGroup, TriggerOpTypes, VueElement, assertNumber, callWithAsyncErrorHandling, callWithErrorHandling, camelize, capitalize, cloneVNode, compatUtils, computed, configureCompat, createApp, createBlock, createCommentVNode, createElementBlock, createBaseVNode as createElementVNode, createHydrationRenderer, createPropsRestProxy, createRenderer, createSSRApp, createSlots, createStaticVNode, createTextVNode, createVNode, customRef, Vue as default, defineAsyncComponent, defineComponent, defineCustomElement, defineEmits, defineExpose, defineModel, defineOptions, defineProps, defineSSRCustomElement, defineSlots, devtools, effect, effectScope, getCurrentInstance, getCurrentScope, getTransitionRawChildren, guardReactiveProps, h, handleError, hasInjectionContext, hydrate, initCustomFormatter, initDirectivesForSSR, inject, isMemoSame, isProxy, isReactive, isReadonly, isRef, isRuntimeOnly, isShallow, isVNode, markRaw, mergeDefaults, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, openBlock, popScopeId, provide, proxyRefs, pushScopeId, queuePostFlushCb, reactive, readonly, ref, registerRuntimeCompiler, render, renderList, renderSlot, resolveComponent, resolveDirective, resolveDynamicComponent, resolveFilter, resolveTransitionHooks, setBlockTracking, setDevtoolsHook, setTransitionHooks, shallowReactive, shallowReadonly, shallowRef, ssrContextKey, ssrUtils, stop, toDisplayString, toHandlerKey, toHandlers, toRaw, toRef, toRefs, toValue, transformVNodeArgs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useModel, useSSRContext, useSlots, useTransitionState, vModelCheckbox, vModelDynamic, vModelRadio, vModelSelect, vModelText, vShow, version, warn, watch, watchEffect, watchPostEffect, watchSyncEffect, withAsyncContext, withCtx, withDefaults, withDirectives, withKeys, withMemo, withModifiers, withScopeId };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.4.23
2
+ * @vue/compat v3.4.25
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -2538,11 +2538,6 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2538
2538
  warnedInvalidKeys[key] = true;
2539
2539
  }
2540
2540
  }
2541
- if (instance && config["OPTIONS_DATA_MERGE"] != null) {
2542
- warn$1(
2543
- `Deprecation config "${"OPTIONS_DATA_MERGE"}" can only be configured globally.`
2544
- );
2545
- }
2546
2541
  }
2547
2542
  function getCompatConfigForKey(key, instance) {
2548
2543
  const instanceConfig = instance && instance.type.compatConfig;
@@ -2925,21 +2920,21 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2925
2920
  vnode,
2926
2921
  proxy,
2927
2922
  withProxy,
2928
- props,
2929
2923
  propsOptions: [propsOptions],
2930
2924
  slots,
2931
2925
  attrs,
2932
2926
  emit,
2933
2927
  render,
2934
2928
  renderCache,
2929
+ props,
2935
2930
  data,
2936
2931
  setupState,
2937
2932
  ctx,
2938
2933
  inheritAttrs
2939
2934
  } = instance;
2935
+ const prev = setCurrentRenderingInstance(instance);
2940
2936
  let result;
2941
2937
  let fallthroughAttrs;
2942
- const prev = setCurrentRenderingInstance(instance);
2943
2938
  {
2944
2939
  accessedAttrs = false;
2945
2940
  }
@@ -2961,7 +2956,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2961
2956
  thisProxy,
2962
2957
  proxyToUse,
2963
2958
  renderCache,
2964
- props,
2959
+ true ? shallowReadonly(props) : props,
2965
2960
  setupState,
2966
2961
  data,
2967
2962
  ctx
@@ -2975,7 +2970,7 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2975
2970
  }
2976
2971
  result = normalizeVNode(
2977
2972
  render2.length > 1 ? render2(
2978
- props,
2973
+ true ? shallowReadonly(props) : props,
2979
2974
  true ? {
2980
2975
  get attrs() {
2981
2976
  markAttrsAccessed();
@@ -2985,9 +2980,8 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2985
2980
  emit
2986
2981
  } : { attrs, slots, emit }
2987
2982
  ) : render2(
2988
- props,
2983
+ true ? shallowReadonly(props) : props,
2989
2984
  null
2990
- /* we know it doesn't need it */
2991
2985
  )
2992
2986
  );
2993
2987
  fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);
@@ -4522,11 +4516,21 @@ If this is a native custom element, make sure to exclude it from component resol
4522
4516
  }
4523
4517
  }
4524
4518
  function getKeepAliveChild(vnode) {
4525
- return isKeepAlive(vnode) ? (
4526
- // #7121 ensure get the child component subtree in case
4527
- // it's been replaced during HMR
4528
- vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0
4529
- ) : vnode;
4519
+ if (!isKeepAlive(vnode)) {
4520
+ return vnode;
4521
+ }
4522
+ if (vnode.component) {
4523
+ return vnode.component.subTree;
4524
+ }
4525
+ const { shapeFlag, children } = vnode;
4526
+ if (children) {
4527
+ if (shapeFlag & 16) {
4528
+ return children[0];
4529
+ }
4530
+ if (shapeFlag & 32 && isFunction(children.default)) {
4531
+ return children.default();
4532
+ }
4533
+ }
4530
4534
  }
4531
4535
  function setTransitionHooks(vnode, hooks) {
4532
4536
  if (vnode.shapeFlag & 6 && vnode.component) {
@@ -6538,7 +6542,7 @@ If this is a native custom element, make sure to exclude it from component resol
6538
6542
  return vm;
6539
6543
  }
6540
6544
  }
6541
- Vue.version = `2.6.14-compat:${"3.4.23"}`;
6545
+ Vue.version = `2.6.14-compat:${"3.4.25"}`;
6542
6546
  Vue.config = singletonApp.config;
6543
6547
  Vue.use = (p, ...options) => {
6544
6548
  if (p && isFunction(p.install)) {
@@ -7175,7 +7179,7 @@ If you want to remount the same app, move your app creation logic into a factory
7175
7179
  return false;
7176
7180
  }
7177
7181
 
7178
- const internalObjectProto = /* @__PURE__ */ Object.create(null);
7182
+ const internalObjectProto = {};
7179
7183
  const createInternalObject = () => Object.create(internalObjectProto);
7180
7184
  const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;
7181
7185
 
@@ -7657,23 +7661,17 @@ If you want to remount the same app, move your app creation logic into a factory
7657
7661
  instance.slots.default = () => normalized;
7658
7662
  };
7659
7663
  const initSlots = (instance, children) => {
7664
+ const slots = instance.slots = createInternalObject();
7660
7665
  if (instance.vnode.shapeFlag & 32) {
7661
7666
  const type = children._;
7662
7667
  if (type) {
7663
- instance.slots = toRaw(children);
7664
- def(instance.slots, "_", type);
7668
+ extend(slots, children);
7669
+ def(slots, "_", type);
7665
7670
  } else {
7666
- normalizeObjectSlots(
7667
- children,
7668
- instance.slots = createInternalObject(),
7669
- instance
7670
- );
7671
- }
7672
- } else {
7673
- instance.slots = createInternalObject();
7674
- if (children) {
7675
- normalizeVNodeSlots(instance, children);
7671
+ normalizeObjectSlots(children, slots, instance);
7676
7672
  }
7673
+ } else if (children) {
7674
+ normalizeVNodeSlots(instance, children);
7677
7675
  }
7678
7676
  };
7679
7677
  const updateSlots = (instance, children, optimized) => {
@@ -11374,7 +11372,7 @@ Component that was made reactive: `,
11374
11372
  return true;
11375
11373
  }
11376
11374
 
11377
- const version = "3.4.23";
11375
+ const version = "3.4.25";
11378
11376
  const warn = warn$1 ;
11379
11377
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11380
11378
  const devtools = devtools$1 ;
@@ -11611,8 +11609,8 @@ Component that was made reactive: `,
11611
11609
  if (legacyClassEnabled && legacyLeaveFromClass) {
11612
11610
  addTransitionClass(el, legacyLeaveFromClass);
11613
11611
  }
11614
- forceReflow();
11615
11612
  addTransitionClass(el, leaveActiveClass);
11613
+ forceReflow();
11616
11614
  nextFrame(() => {
11617
11615
  if (!el._isLeaving) {
11618
11616
  return;
@@ -15755,6 +15753,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
15755
15753
  vOnce: 0
15756
15754
  },
15757
15755
  parent: null,
15756
+ grandParent: null,
15758
15757
  currentNode: root,
15759
15758
  childIndex: 0,
15760
15759
  inVOnce: false,
@@ -15901,6 +15900,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
15901
15900
  const child = parent.children[i];
15902
15901
  if (isString(child))
15903
15902
  continue;
15903
+ context.grandParent = context.parent;
15904
15904
  context.parent = parent;
15905
15905
  context.childIndex = i;
15906
15906
  context.onNodeRemoved = nodeRemoved;
@@ -17474,6 +17474,16 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
17474
17474
  if (arg)
17475
17475
  mergeArgs.push(arg);
17476
17476
  };
17477
+ const pushRefVForMarker = () => {
17478
+ if (context.scopes.vFor > 0) {
17479
+ properties.push(
17480
+ createObjectProperty(
17481
+ createSimpleExpression("ref_for", true),
17482
+ createSimpleExpression("true")
17483
+ )
17484
+ );
17485
+ }
17486
+ };
17477
17487
  const analyzePatchFlag = ({ key, value }) => {
17478
17488
  if (isStaticExp(key)) {
17479
17489
  const name = key.content;
@@ -17517,14 +17527,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
17517
17527
  let isStatic = true;
17518
17528
  if (name === "ref") {
17519
17529
  hasRef = true;
17520
- if (context.scopes.vFor > 0) {
17521
- properties.push(
17522
- createObjectProperty(
17523
- createSimpleExpression("ref_for", true),
17524
- createSimpleExpression("true")
17525
- )
17526
- );
17527
- }
17530
+ pushRefVForMarker();
17528
17531
  }
17529
17532
  if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || isCompatEnabled(
17530
17533
  "COMPILER_IS_ON_ELEMENT",
@@ -17574,18 +17577,14 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
17574
17577
  ) {
17575
17578
  shouldUseBlock = true;
17576
17579
  }
17577
- if (isVBind && isStaticArgOf(arg, "ref") && context.scopes.vFor > 0) {
17578
- properties.push(
17579
- createObjectProperty(
17580
- createSimpleExpression("ref_for", true),
17581
- createSimpleExpression("true")
17582
- )
17583
- );
17580
+ if (isVBind && isStaticArgOf(arg, "ref")) {
17581
+ pushRefVForMarker();
17584
17582
  }
17585
17583
  if (!arg && (isVBind || isVOn)) {
17586
17584
  hasDynamicKeys = true;
17587
17585
  if (exp) {
17588
17586
  if (isVBind) {
17587
+ pushRefVForMarker();
17589
17588
  pushMergeArg();
17590
17589
  {
17591
17590
  {