@vue/compat 3.4.22 → 3.4.24

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.22
2
+ * @vue/compat v3.4.24
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -2535,11 +2535,6 @@ Details: https://v3-migration.vuejs.org/breaking-changes/migration-build.html`
2535
2535
  warnedInvalidKeys[key] = true;
2536
2536
  }
2537
2537
  }
2538
- if (instance && config["OPTIONS_DATA_MERGE"] != null) {
2539
- warn$1(
2540
- `Deprecation config "${"OPTIONS_DATA_MERGE"}" can only be configured globally.`
2541
- );
2542
- }
2543
2538
  }
2544
2539
  function getCompatConfigForKey(key, instance) {
2545
2540
  const instanceConfig = instance && instance.type.compatConfig;
@@ -2922,21 +2917,21 @@ function renderComponentRoot(instance) {
2922
2917
  vnode,
2923
2918
  proxy,
2924
2919
  withProxy,
2925
- props,
2926
2920
  propsOptions: [propsOptions],
2927
2921
  slots,
2928
2922
  attrs,
2929
2923
  emit,
2930
2924
  render,
2931
2925
  renderCache,
2926
+ props,
2932
2927
  data,
2933
2928
  setupState,
2934
2929
  ctx,
2935
2930
  inheritAttrs
2936
2931
  } = instance;
2932
+ const prev = setCurrentRenderingInstance(instance);
2937
2933
  let result;
2938
2934
  let fallthroughAttrs;
2939
- const prev = setCurrentRenderingInstance(instance);
2940
2935
  {
2941
2936
  accessedAttrs = false;
2942
2937
  }
@@ -2958,7 +2953,7 @@ function renderComponentRoot(instance) {
2958
2953
  thisProxy,
2959
2954
  proxyToUse,
2960
2955
  renderCache,
2961
- props,
2956
+ true ? shallowReadonly(props) : props,
2962
2957
  setupState,
2963
2958
  data,
2964
2959
  ctx
@@ -2972,7 +2967,7 @@ function renderComponentRoot(instance) {
2972
2967
  }
2973
2968
  result = normalizeVNode(
2974
2969
  render2.length > 1 ? render2(
2975
- props,
2970
+ true ? shallowReadonly(props) : props,
2976
2971
  true ? {
2977
2972
  get attrs() {
2978
2973
  markAttrsAccessed();
@@ -2982,9 +2977,8 @@ function renderComponentRoot(instance) {
2982
2977
  emit
2983
2978
  } : { attrs, slots, emit }
2984
2979
  ) : render2(
2985
- props,
2980
+ true ? shallowReadonly(props) : props,
2986
2981
  null
2987
- /* we know it doesn't need it */
2988
2982
  )
2989
2983
  );
2990
2984
  fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);
@@ -4525,11 +4519,19 @@ function emptyPlaceholder(vnode) {
4525
4519
  }
4526
4520
  }
4527
4521
  function getKeepAliveChild(vnode) {
4528
- return isKeepAlive(vnode) ? (
4529
- // #7121 ensure get the child component subtree in case
4530
- // it's been replaced during HMR
4531
- vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0
4532
- ) : vnode;
4522
+ if (!isKeepAlive(vnode)) {
4523
+ return vnode;
4524
+ }
4525
+ if (vnode.component) {
4526
+ return vnode.component.subTree;
4527
+ }
4528
+ const { shapeFlag, children } = vnode;
4529
+ if (shapeFlag & 16) {
4530
+ return children[0];
4531
+ }
4532
+ if (shapeFlag & 32 && isFunction(children.default)) {
4533
+ return children.default();
4534
+ }
4533
4535
  }
4534
4536
  function setTransitionHooks(vnode, hooks) {
4535
4537
  if (vnode.shapeFlag & 6 && vnode.component) {
@@ -5729,7 +5731,7 @@ const PublicInstanceProxyHandlers = {
5729
5731
  let cssModule, globalProperties;
5730
5732
  if (publicGetter) {
5731
5733
  if (key === "$attrs") {
5732
- track(instance, "get", key);
5734
+ track(instance.attrs, "get", "");
5733
5735
  markAttrsAccessed();
5734
5736
  } else if (key === "$slots") {
5735
5737
  track(instance, "get", key);
@@ -6541,7 +6543,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6541
6543
  return vm;
6542
6544
  }
6543
6545
  }
6544
- Vue.version = `2.6.14-compat:${"3.4.22"}`;
6546
+ Vue.version = `2.6.14-compat:${"3.4.24"}`;
6545
6547
  Vue.config = singletonApp.config;
6546
6548
  Vue.use = (p, ...options) => {
6547
6549
  if (p && isFunction(p.install)) {
@@ -7178,10 +7180,13 @@ function shouldSkipAttr(key, instance) {
7178
7180
  return false;
7179
7181
  }
7180
7182
 
7181
- const attrsProto = {};
7183
+ const internalObjectProto = /* @__PURE__ */ Object.create(null);
7184
+ const createInternalObject = () => Object.create(internalObjectProto);
7185
+ const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;
7186
+
7182
7187
  function initProps(instance, rawProps, isStateful, isSSR = false) {
7183
7188
  const props = {};
7184
- const attrs = Object.create(attrsProto);
7189
+ const attrs = createInternalObject();
7185
7190
  instance.propsDefaults = /* @__PURE__ */ Object.create(null);
7186
7191
  setFullProps(instance, rawProps, props, attrs);
7187
7192
  for (const key in instance.propsOptions[0]) {
@@ -7657,23 +7662,17 @@ const normalizeVNodeSlots = (instance, children) => {
7657
7662
  instance.slots.default = () => normalized;
7658
7663
  };
7659
7664
  const initSlots = (instance, children) => {
7665
+ const slots = instance.slots = createInternalObject();
7660
7666
  if (instance.vnode.shapeFlag & 32) {
7661
7667
  const type = children._;
7662
7668
  if (type) {
7663
- instance.slots = toRaw(children);
7664
- def(instance.slots, "_", type);
7669
+ extend(slots, children);
7670
+ def(slots, "_", type);
7665
7671
  } else {
7666
- normalizeObjectSlots(
7667
- children,
7668
- instance.slots = {},
7669
- instance
7670
- );
7671
- }
7672
- } else {
7673
- instance.slots = {};
7674
- if (children) {
7675
- normalizeVNodeSlots(instance, children);
7672
+ normalizeObjectSlots(children, slots, instance);
7676
7673
  }
7674
+ } else if (children) {
7675
+ normalizeVNodeSlots(instance, children);
7677
7676
  }
7678
7677
  };
7679
7678
  const updateSlots = (instance, children, optimized) => {
@@ -10505,7 +10504,7 @@ Component that was made reactive: `,
10505
10504
  function guardReactiveProps(props) {
10506
10505
  if (!props)
10507
10506
  return null;
10508
- return isProxy(props) || Object.getPrototypeOf(props) === attrsProto ? extend({}, props) : props;
10507
+ return isProxy(props) || isInternalObject(props) ? extend({}, props) : props;
10509
10508
  }
10510
10509
  function cloneVNode(vnode, extraProps, mergeRef = false) {
10511
10510
  const { props, ref, patchFlag, children } = vnode;
@@ -10613,7 +10612,7 @@ function normalizeChildren(vnode, children) {
10613
10612
  } else {
10614
10613
  type = 32;
10615
10614
  const slotFlag = children._;
10616
- if (!slotFlag) {
10615
+ if (!slotFlag && !isInternalObject(children)) {
10617
10616
  children._ctx = currentRenderingInstance;
10618
10617
  } else if (slotFlag === 3 && currentRenderingInstance) {
10619
10618
  if (currentRenderingInstance.slots._ === 1) {
@@ -11374,7 +11373,7 @@ function isMemoSame(cached, memo) {
11374
11373
  return true;
11375
11374
  }
11376
11375
 
11377
- const version = "3.4.22";
11376
+ const version = "3.4.24";
11378
11377
  const warn = warn$1 ;
11379
11378
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11380
11379
  const devtools = devtools$1 ;
@@ -11611,8 +11610,8 @@ function resolveTransitionProps(rawProps) {
11611
11610
  if (legacyClassEnabled && legacyLeaveFromClass) {
11612
11611
  addTransitionClass(el, legacyLeaveFromClass);
11613
11612
  }
11614
- forceReflow();
11615
11613
  addTransitionClass(el, leaveActiveClass);
11614
+ forceReflow();
11616
11615
  nextFrame(() => {
11617
11616
  if (!el._isLeaving) {
11618
11617
  return;
@@ -15767,6 +15766,7 @@ function createTransformContext(root, {
15767
15766
  vOnce: 0
15768
15767
  },
15769
15768
  parent: null,
15769
+ grandParent: null,
15770
15770
  currentNode: root,
15771
15771
  childIndex: 0,
15772
15772
  inVOnce: false,
@@ -15913,6 +15913,7 @@ function traverseChildren(parent, context) {
15913
15913
  const child = parent.children[i];
15914
15914
  if (isString(child))
15915
15915
  continue;
15916
+ context.grandParent = context.parent;
15916
15917
  context.parent = parent;
15917
15918
  context.childIndex = i;
15918
15919
  context.onNodeRemoved = nodeRemoved;
@@ -17486,6 +17487,16 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
17486
17487
  if (arg)
17487
17488
  mergeArgs.push(arg);
17488
17489
  };
17490
+ const pushRefVForMarker = () => {
17491
+ if (context.scopes.vFor > 0) {
17492
+ properties.push(
17493
+ createObjectProperty(
17494
+ createSimpleExpression("ref_for", true),
17495
+ createSimpleExpression("true")
17496
+ )
17497
+ );
17498
+ }
17499
+ };
17489
17500
  const analyzePatchFlag = ({ key, value }) => {
17490
17501
  if (isStaticExp(key)) {
17491
17502
  const name = key.content;
@@ -17529,14 +17540,7 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
17529
17540
  let isStatic = true;
17530
17541
  if (name === "ref") {
17531
17542
  hasRef = true;
17532
- if (context.scopes.vFor > 0) {
17533
- properties.push(
17534
- createObjectProperty(
17535
- createSimpleExpression("ref_for", true),
17536
- createSimpleExpression("true")
17537
- )
17538
- );
17539
- }
17543
+ pushRefVForMarker();
17540
17544
  }
17541
17545
  if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || isCompatEnabled(
17542
17546
  "COMPILER_IS_ON_ELEMENT",
@@ -17586,18 +17590,14 @@ function buildProps(node, context, props = node.props, isComponent, isDynamicCom
17586
17590
  ) {
17587
17591
  shouldUseBlock = true;
17588
17592
  }
17589
- if (isVBind && isStaticArgOf(arg, "ref") && context.scopes.vFor > 0) {
17590
- properties.push(
17591
- createObjectProperty(
17592
- createSimpleExpression("ref_for", true),
17593
- createSimpleExpression("true")
17594
- )
17595
- );
17593
+ if (isVBind && isStaticArgOf(arg, "ref")) {
17594
+ pushRefVForMarker();
17596
17595
  }
17597
17596
  if (!arg && (isVBind || isVOn)) {
17598
17597
  hasDynamicKeys = true;
17599
17598
  if (exp) {
17600
17599
  if (isVBind) {
17600
+ pushRefVForMarker();
17601
17601
  pushMergeArg();
17602
17602
  {
17603
17603
  {
@@ -19011,8 +19011,7 @@ ${codeFrame}` : message);
19011
19011
  registerRuntimeCompiler(compileToFunction);
19012
19012
  const Vue = createCompatVue();
19013
19013
  Vue.compile = compileToFunction;
19014
- var Vue$1 = Vue;
19015
19014
 
19016
- const { configureCompat } = Vue$1;
19015
+ const { configureCompat } = Vue;
19017
19016
 
19018
- 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 };
19017
+ 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 };