@vue/compat 3.4.21 → 3.4.23

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,11 +1,13 @@
1
1
  /**
2
- * @vue/compat v3.4.21
2
+ * @vue/compat v3.4.23
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
6
6
  var Vue = (function () {
7
7
  'use strict';
8
8
 
9
+ /*! #__NO_SIDE_EFFECTS__ */
10
+ // @__NO_SIDE_EFFECTS__
9
11
  function makeMap(str, expectsLowerCase) {
10
12
  const set = new Set(str.split(","));
11
13
  return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);
@@ -357,7 +359,11 @@ var Vue = (function () {
357
359
  };
358
360
  const stringifySymbol = (v, i = "") => {
359
361
  var _a;
360
- return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;
362
+ return (
363
+ // Symbol.description in es2019+ so we need to cast here to pass
364
+ // the lib: es2016 check
365
+ isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v
366
+ );
361
367
  };
362
368
 
363
369
  function warn$2(msg, ...args) {
@@ -793,6 +799,8 @@ var Vue = (function () {
793
799
  return instrumentations;
794
800
  }
795
801
  function hasOwnProperty(key) {
802
+ if (!isSymbol(key))
803
+ key = String(key);
796
804
  const obj = toRaw(this);
797
805
  track(obj, "has", key);
798
806
  return obj.hasOwnProperty(key);
@@ -1145,23 +1153,16 @@ var Vue = (function () {
1145
1153
  clear: createReadonlyMethod("clear"),
1146
1154
  forEach: createForEach(true, true)
1147
1155
  };
1148
- const iteratorMethods = ["keys", "values", "entries", Symbol.iterator];
1156
+ const iteratorMethods = [
1157
+ "keys",
1158
+ "values",
1159
+ "entries",
1160
+ Symbol.iterator
1161
+ ];
1149
1162
  iteratorMethods.forEach((method) => {
1150
- mutableInstrumentations2[method] = createIterableMethod(
1151
- method,
1152
- false,
1153
- false
1154
- );
1155
- readonlyInstrumentations2[method] = createIterableMethod(
1156
- method,
1157
- true,
1158
- false
1159
- );
1160
- shallowInstrumentations2[method] = createIterableMethod(
1161
- method,
1162
- false,
1163
- true
1164
- );
1163
+ mutableInstrumentations2[method] = createIterableMethod(method, false, false);
1164
+ readonlyInstrumentations2[method] = createIterableMethod(method, true, false);
1165
+ shallowInstrumentations2[method] = createIterableMethod(method, false, true);
1165
1166
  shallowReadonlyInstrumentations2[method] = createIterableMethod(
1166
1167
  method,
1167
1168
  true,
@@ -1318,7 +1319,7 @@ var Vue = (function () {
1318
1319
  return !!(value && value["__v_isShallow"]);
1319
1320
  }
1320
1321
  function isProxy(value) {
1321
- return isReactive(value) || isReadonly(value);
1322
+ return value ? !!value["__v_raw"] : false;
1322
1323
  }
1323
1324
  function toRaw(observed) {
1324
1325
  const raw = observed && observed["__v_raw"];
@@ -1780,11 +1781,17 @@ getter: `, this.getter);
1780
1781
  }
1781
1782
  return res;
1782
1783
  }
1783
- const values = [];
1784
- for (let i = 0; i < fn.length; i++) {
1785
- values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));
1784
+ if (isArray(fn)) {
1785
+ const values = [];
1786
+ for (let i = 0; i < fn.length; i++) {
1787
+ values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));
1788
+ }
1789
+ return values;
1790
+ } else {
1791
+ warn$1(
1792
+ `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`
1793
+ );
1786
1794
  }
1787
- return values;
1788
1795
  }
1789
1796
  function handleError(err, instance, type, throwInDev = true) {
1790
1797
  const contextVNode = instance ? instance.vnode : null;
@@ -1805,12 +1812,14 @@ getter: `, this.getter);
1805
1812
  }
1806
1813
  const appErrorHandler = instance.appContext.config.errorHandler;
1807
1814
  if (appErrorHandler) {
1815
+ pauseTracking();
1808
1816
  callWithErrorHandling(
1809
1817
  appErrorHandler,
1810
1818
  null,
1811
1819
  10,
1812
1820
  [err, exposedInstance, errorInfo]
1813
1821
  );
1822
+ resetTracking();
1814
1823
  return;
1815
1824
  }
1816
1825
  }
@@ -2186,6 +2195,8 @@ getter: `, this.getter);
2186
2195
  _devtoolsComponentRemoved(component);
2187
2196
  }
2188
2197
  };
2198
+ /*! #__NO_SIDE_EFFECTS__ */
2199
+ // @__NO_SIDE_EFFECTS__
2189
2200
  function createDevtoolsComponentHook(hook) {
2190
2201
  return (component) => {
2191
2202
  emit$2(
@@ -4831,7 +4842,7 @@ If this is a native custom element, make sure to exclude it from component resol
4831
4842
  return () => {
4832
4843
  pendingCacheKey = null;
4833
4844
  if (!slots.default) {
4834
- return null;
4845
+ return current = null;
4835
4846
  }
4836
4847
  const children = slots.default();
4837
4848
  const rawVNode = children[0];
@@ -5562,47 +5573,74 @@ If this is a native custom element, make sure to exclude it from component resol
5562
5573
  $once: (i) => once.bind(null, i),
5563
5574
  $off: (i) => off.bind(null, i),
5564
5575
  $children: getCompatChildren,
5565
- $listeners: getCompatListeners
5576
+ $listeners: getCompatListeners,
5577
+ // inject additional properties into $options for compat
5578
+ // e.g. vuex needs this.$options.parent
5579
+ $options: (i) => {
5580
+ if (!isCompatEnabled$1("PRIVATE_APIS", i)) {
5581
+ return resolveMergedOptions(i);
5582
+ }
5583
+ if (i.resolvedOptions) {
5584
+ return i.resolvedOptions;
5585
+ }
5586
+ const res = i.resolvedOptions = extend({}, resolveMergedOptions(i));
5587
+ Object.defineProperties(res, {
5588
+ parent: {
5589
+ get() {
5590
+ warnDeprecation$1("PRIVATE_APIS", i, "$options.parent");
5591
+ return i.proxy.$parent;
5592
+ }
5593
+ },
5594
+ propsData: {
5595
+ get() {
5596
+ warnDeprecation$1(
5597
+ "PRIVATE_APIS",
5598
+ i,
5599
+ "$options.propsData"
5600
+ );
5601
+ return i.vnode.props;
5602
+ }
5603
+ }
5604
+ });
5605
+ return res;
5606
+ }
5566
5607
  });
5567
- if (isCompatEnabled$1("PRIVATE_APIS", null)) {
5568
- extend(map, {
5569
- // needed by many libs / render fns
5570
- $vnode: (i) => i.vnode,
5571
- // inject additional properties into $options for compat
5572
- // e.g. vuex needs this.$options.parent
5573
- $options: (i) => {
5574
- const res = extend({}, resolveMergedOptions(i));
5575
- res.parent = i.proxy.$parent;
5576
- res.propsData = i.vnode.props;
5577
- return res;
5578
- },
5579
- // some private properties that are likely accessed...
5580
- _self: (i) => i.proxy,
5581
- _uid: (i) => i.uid,
5582
- _data: (i) => i.data,
5583
- _isMounted: (i) => i.isMounted,
5584
- _isDestroyed: (i) => i.isUnmounted,
5585
- // v2 render helpers
5586
- $createElement: () => compatH,
5587
- _c: () => compatH,
5588
- _o: () => legacyMarkOnce,
5589
- _n: () => looseToNumber,
5590
- _s: () => toDisplayString,
5591
- _l: () => renderList,
5592
- _t: (i) => legacyRenderSlot.bind(null, i),
5593
- _q: () => looseEqual,
5594
- _i: () => looseIndexOf,
5595
- _m: (i) => legacyRenderStatic.bind(null, i),
5596
- _f: () => resolveFilter$1,
5597
- _k: (i) => legacyCheckKeyCodes.bind(null, i),
5598
- _b: () => legacyBindObjectProps,
5599
- _v: () => createTextVNode,
5600
- _e: () => createCommentVNode,
5601
- _u: () => legacyresolveScopedSlots,
5602
- _g: () => legacyBindObjectListeners,
5603
- _d: () => legacyBindDynamicKeys,
5604
- _p: () => legacyPrependModifier
5605
- });
5608
+ const privateAPIs = {
5609
+ // needed by many libs / render fns
5610
+ $vnode: (i) => i.vnode,
5611
+ // some private properties that are likely accessed...
5612
+ _self: (i) => i.proxy,
5613
+ _uid: (i) => i.uid,
5614
+ _data: (i) => i.data,
5615
+ _isMounted: (i) => i.isMounted,
5616
+ _isDestroyed: (i) => i.isUnmounted,
5617
+ // v2 render helpers
5618
+ $createElement: () => compatH,
5619
+ _c: () => compatH,
5620
+ _o: () => legacyMarkOnce,
5621
+ _n: () => looseToNumber,
5622
+ _s: () => toDisplayString,
5623
+ _l: () => renderList,
5624
+ _t: (i) => legacyRenderSlot.bind(null, i),
5625
+ _q: () => looseEqual,
5626
+ _i: () => looseIndexOf,
5627
+ _m: (i) => legacyRenderStatic.bind(null, i),
5628
+ _f: () => resolveFilter$1,
5629
+ _k: (i) => legacyCheckKeyCodes.bind(null, i),
5630
+ _b: () => legacyBindObjectProps,
5631
+ _v: () => createTextVNode,
5632
+ _e: () => createCommentVNode,
5633
+ _u: () => legacyresolveScopedSlots,
5634
+ _g: () => legacyBindObjectListeners,
5635
+ _d: () => legacyBindDynamicKeys,
5636
+ _p: () => legacyPrependModifier
5637
+ };
5638
+ for (const key in privateAPIs) {
5639
+ map[key] = (i) => {
5640
+ if (isCompatEnabled$1("PRIVATE_APIS", i)) {
5641
+ return privateAPIs[key](i);
5642
+ }
5643
+ };
5606
5644
  }
5607
5645
  }
5608
5646
 
@@ -5643,6 +5681,9 @@ If this is a native custom element, make sure to exclude it from component resol
5643
5681
  const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);
5644
5682
  const PublicInstanceProxyHandlers = {
5645
5683
  get({ _: instance }, key) {
5684
+ if (key === "__v_skip") {
5685
+ return true;
5686
+ }
5646
5687
  const { ctx, setupState, data, props, accessCache, type, appContext } = instance;
5647
5688
  if (key === "__isVue") {
5648
5689
  return true;
@@ -5685,7 +5726,7 @@ If this is a native custom element, make sure to exclude it from component resol
5685
5726
  let cssModule, globalProperties;
5686
5727
  if (publicGetter) {
5687
5728
  if (key === "$attrs") {
5688
- track(instance, "get", key);
5729
+ track(instance.attrs, "get", "");
5689
5730
  markAttrsAccessed();
5690
5731
  } else if (key === "$slots") {
5691
5732
  track(instance, "get", key);
@@ -6497,7 +6538,7 @@ If this is a native custom element, make sure to exclude it from component resol
6497
6538
  return vm;
6498
6539
  }
6499
6540
  }
6500
- Vue.version = `2.6.14-compat:${"3.4.21"}`;
6541
+ Vue.version = `2.6.14-compat:${"3.4.23"}`;
6501
6542
  Vue.config = singletonApp.config;
6502
6543
  Vue.use = (p, ...options) => {
6503
6544
  if (p && isFunction(p.install)) {
@@ -6691,15 +6732,14 @@ If this is a native custom element, make sure to exclude it from component resol
6691
6732
  app.config.globalProperties = Object.create(Ctor.prototype);
6692
6733
  }
6693
6734
  let hasPrototypeAugmentations = false;
6694
- const descriptors = Object.getOwnPropertyDescriptors(Ctor.prototype);
6695
- for (const key in descriptors) {
6735
+ for (const key of Object.getOwnPropertyNames(Ctor.prototype)) {
6696
6736
  if (key !== "constructor") {
6697
6737
  hasPrototypeAugmentations = true;
6698
6738
  if (enabled) {
6699
6739
  Object.defineProperty(
6700
6740
  app.config.globalProperties,
6701
6741
  key,
6702
- descriptors[key]
6742
+ Object.getOwnPropertyDescriptor(Ctor.prototype, key)
6703
6743
  );
6704
6744
  }
6705
6745
  }
@@ -7135,10 +7175,13 @@ If you want to remount the same app, move your app creation logic into a factory
7135
7175
  return false;
7136
7176
  }
7137
7177
 
7178
+ const internalObjectProto = /* @__PURE__ */ Object.create(null);
7179
+ const createInternalObject = () => Object.create(internalObjectProto);
7180
+ const isInternalObject = (obj) => Object.getPrototypeOf(obj) === internalObjectProto;
7181
+
7138
7182
  function initProps(instance, rawProps, isStateful, isSSR = false) {
7139
7183
  const props = {};
7140
- const attrs = {};
7141
- def(attrs, InternalObjectKey, 1);
7184
+ const attrs = createInternalObject();
7142
7185
  instance.propsDefaults = /* @__PURE__ */ Object.create(null);
7143
7186
  setFullProps(instance, rawProps, props, attrs);
7144
7187
  for (const key in instance.propsOptions[0]) {
@@ -7260,7 +7303,7 @@ If you want to remount the same app, move your app creation logic into a factory
7260
7303
  }
7261
7304
  }
7262
7305
  if (hasAttrsChanged) {
7263
- trigger(instance, "set", "$attrs");
7306
+ trigger(instance.attrs, "set", "");
7264
7307
  }
7265
7308
  {
7266
7309
  validateProps(rawProps || {}, props, instance);
@@ -7618,21 +7661,20 @@ If you want to remount the same app, move your app creation logic into a factory
7618
7661
  const type = children._;
7619
7662
  if (type) {
7620
7663
  instance.slots = toRaw(children);
7621
- def(children, "_", type);
7664
+ def(instance.slots, "_", type);
7622
7665
  } else {
7623
7666
  normalizeObjectSlots(
7624
7667
  children,
7625
- instance.slots = {},
7668
+ instance.slots = createInternalObject(),
7626
7669
  instance
7627
7670
  );
7628
7671
  }
7629
7672
  } else {
7630
- instance.slots = {};
7673
+ instance.slots = createInternalObject();
7631
7674
  if (children) {
7632
7675
  normalizeVNodeSlots(instance, children);
7633
7676
  }
7634
7677
  }
7635
- def(instance.slots, InternalObjectKey, 1);
7636
7678
  };
7637
7679
  const updateSlots = (instance, children, optimized) => {
7638
7680
  const { vnode, slots } = instance;
@@ -7804,6 +7846,7 @@ If you want to remount the same app, move your app creation logic into a factory
7804
7846
  }
7805
7847
  };
7806
7848
  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
7849
+ optimized = optimized || !!vnode.dynamicChildren;
7807
7850
  const isFragmentStart = isComment(node) && node.data === "[";
7808
7851
  const onMismatch = () => handleMismatch(
7809
7852
  node,
@@ -10323,7 +10366,6 @@ Server rendered element contains fewer child nodes than client vdom.`
10323
10366
  ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args
10324
10367
  );
10325
10368
  };
10326
- const InternalObjectKey = `__vInternal`;
10327
10369
  const normalizeKey = ({ key }) => key != null ? key : null;
10328
10370
  const normalizeRef = ({
10329
10371
  ref,
@@ -10463,7 +10505,7 @@ Component that was made reactive: `,
10463
10505
  function guardReactiveProps(props) {
10464
10506
  if (!props)
10465
10507
  return null;
10466
- return isProxy(props) || InternalObjectKey in props ? extend({}, props) : props;
10508
+ return isProxy(props) || isInternalObject(props) ? extend({}, props) : props;
10467
10509
  }
10468
10510
  function cloneVNode(vnode, extraProps, mergeRef = false) {
10469
10511
  const { props, ref, patchFlag, children } = vnode;
@@ -10571,7 +10613,7 @@ Component that was made reactive: `,
10571
10613
  } else {
10572
10614
  type = 32;
10573
10615
  const slotFlag = children._;
10574
- if (!slotFlag && !(InternalObjectKey in children)) {
10616
+ if (!slotFlag && !isInternalObject(children)) {
10575
10617
  children._ctx = currentRenderingInstance;
10576
10618
  } else if (slotFlag === 3 && currentRenderingInstance) {
10577
10619
  if (currentRenderingInstance.slots._ === 1) {
@@ -10792,7 +10834,7 @@ Component that was made reactive: `,
10792
10834
  }
10793
10835
  }
10794
10836
  instance.accessCache = /* @__PURE__ */ Object.create(null);
10795
- instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));
10837
+ instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);
10796
10838
  {
10797
10839
  exposePropsOnRenderContext(instance);
10798
10840
  }
@@ -10936,26 +10978,21 @@ Component that was made reactive: `,
10936
10978
  }
10937
10979
  }
10938
10980
  }
10939
- function getAttrsProxy(instance) {
10940
- return instance.attrsProxy || (instance.attrsProxy = new Proxy(
10941
- instance.attrs,
10942
- {
10943
- get(target, key) {
10944
- markAttrsAccessed();
10945
- track(instance, "get", "$attrs");
10946
- return target[key];
10947
- },
10948
- set() {
10949
- warn$1(`setupContext.attrs is readonly.`);
10950
- return false;
10951
- },
10952
- deleteProperty() {
10953
- warn$1(`setupContext.attrs is readonly.`);
10954
- return false;
10955
- }
10956
- }
10957
- ));
10958
- }
10981
+ const attrsProxyHandlers = {
10982
+ get(target, key) {
10983
+ markAttrsAccessed();
10984
+ track(target, "get", "");
10985
+ return target[key];
10986
+ },
10987
+ set() {
10988
+ warn$1(`setupContext.attrs is readonly.`);
10989
+ return false;
10990
+ },
10991
+ deleteProperty() {
10992
+ warn$1(`setupContext.attrs is readonly.`);
10993
+ return false;
10994
+ }
10995
+ } ;
10959
10996
  function getSlotsProxy(instance) {
10960
10997
  return instance.slotsProxy || (instance.slotsProxy = new Proxy(instance.slots, {
10961
10998
  get(target, key) {
@@ -10989,9 +11026,10 @@ Component that was made reactive: `,
10989
11026
  instance.exposed = exposed || {};
10990
11027
  };
10991
11028
  {
11029
+ let attrsProxy;
10992
11030
  return Object.freeze({
10993
11031
  get attrs() {
10994
- return getAttrsProxy(instance);
11032
+ return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers));
10995
11033
  },
10996
11034
  get slots() {
10997
11035
  return getSlotsProxy(instance);
@@ -11336,7 +11374,7 @@ Component that was made reactive: `,
11336
11374
  return true;
11337
11375
  }
11338
11376
 
11339
- const version = "3.4.21";
11377
+ const version = "3.4.23";
11340
11378
  const warn = warn$1 ;
11341
11379
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11342
11380
  const devtools = devtools$1 ;
@@ -11806,8 +11844,8 @@ Component that was made reactive: `,
11806
11844
  setVarsOnVNode(instance.subTree, vars);
11807
11845
  updateTeleports(vars);
11808
11846
  };
11809
- watchPostEffect(setVars);
11810
11847
  onMounted(() => {
11848
+ watchPostEffect(setVars);
11811
11849
  const ob = new MutationObserver(setVars);
11812
11850
  ob.observe(instance.subTree.el.parentNode, { childList: true });
11813
11851
  onUnmounted(() => ob.disconnect());
@@ -12073,11 +12111,14 @@ Component that was made reactive: `,
12073
12111
  const invokers = el[veiKey] || (el[veiKey] = {});
12074
12112
  const existingInvoker = invokers[rawName];
12075
12113
  if (nextValue && existingInvoker) {
12076
- existingInvoker.value = nextValue;
12114
+ existingInvoker.value = sanitizeEventValue(nextValue, rawName) ;
12077
12115
  } else {
12078
12116
  const [name, options] = parseName(rawName);
12079
12117
  if (nextValue) {
12080
- const invoker = invokers[rawName] = createInvoker(nextValue, instance);
12118
+ const invoker = invokers[rawName] = createInvoker(
12119
+ sanitizeEventValue(nextValue, rawName) ,
12120
+ instance
12121
+ );
12081
12122
  addEventListener(el, name, invoker, options);
12082
12123
  } else if (existingInvoker) {
12083
12124
  removeEventListener(el, name, existingInvoker, options);
@@ -12120,6 +12161,16 @@ Component that was made reactive: `,
12120
12161
  invoker.attached = getNow();
12121
12162
  return invoker;
12122
12163
  }
12164
+ function sanitizeEventValue(value, propName) {
12165
+ if (isFunction(value) || isArray(value)) {
12166
+ return value;
12167
+ }
12168
+ warn(
12169
+ `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop?
12170
+ Expected function or array of functions, received type ${typeof value}.`
12171
+ );
12172
+ return NOOP;
12173
+ }
12123
12174
  function patchStopImmediatePropagation(e, value) {
12124
12175
  if (isArray(value)) {
12125
12176
  const originalStop = e.stopImmediatePropagation;
@@ -12127,7 +12178,9 @@ Component that was made reactive: `,
12127
12178
  originalStop.call(e);
12128
12179
  e._stopped = true;
12129
12180
  };
12130
- return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));
12181
+ return value.map(
12182
+ (fn) => (e2) => !e2._stopped && fn && fn(e2)
12183
+ );
12131
12184
  } else {
12132
12185
  return value;
12133
12186
  }
@@ -12328,7 +12381,7 @@ Component that was made reactive: `,
12328
12381
  }
12329
12382
  }
12330
12383
  _setAttr(key) {
12331
- let value = this.getAttribute(key);
12384
+ let value = this.hasAttribute(key) ? this.getAttribute(key) : void 0;
12332
12385
  const camelKey = camelize(key);
12333
12386
  if (this._numberProps && this._numberProps[camelKey]) {
12334
12387
  value = toNumber(value);
@@ -12488,7 +12541,28 @@ Component that was made reactive: `,
12488
12541
  )) {
12489
12542
  tag = "span";
12490
12543
  }
12491
- prevChildren = children;
12544
+ prevChildren = [];
12545
+ if (children) {
12546
+ for (let i = 0; i < children.length; i++) {
12547
+ const child = children[i];
12548
+ if (child.el && child.el instanceof Element) {
12549
+ prevChildren.push(child);
12550
+ setTransitionHooks(
12551
+ child,
12552
+ resolveTransitionHooks(
12553
+ child,
12554
+ cssTransitionProps,
12555
+ state,
12556
+ instance
12557
+ )
12558
+ );
12559
+ positionMap.set(
12560
+ child,
12561
+ child.el.getBoundingClientRect()
12562
+ );
12563
+ }
12564
+ }
12565
+ }
12492
12566
  children = slots.default ? getTransitionRawChildren(slots.default()) : [];
12493
12567
  for (let i = 0; i < children.length; i++) {
12494
12568
  const child = children[i];
@@ -12501,16 +12575,6 @@ Component that was made reactive: `,
12501
12575
  warn(`<TransitionGroup> children must be keyed.`);
12502
12576
  }
12503
12577
  }
12504
- if (prevChildren) {
12505
- for (let i = 0; i < prevChildren.length; i++) {
12506
- const child = prevChildren[i];
12507
- setTransitionHooks(
12508
- child,
12509
- resolveTransitionHooks(child, cssTransitionProps, state, instance)
12510
- );
12511
- positionMap.set(child, child.el.getBoundingClientRect());
12512
- }
12513
- }
12514
12578
  return createVNode(tag, null, children);
12515
12579
  };
12516
12580
  }
@@ -12612,7 +12676,7 @@ Component that was made reactive: `,
12612
12676
  el[assignKey] = getModelAssigner(vnode);
12613
12677
  if (el.composing)
12614
12678
  return;
12615
- const elValue = number || el.type === "number" ? looseToNumber(el.value) : el.value;
12679
+ const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value;
12616
12680
  const newValue = value == null ? "" : value;
12617
12681
  if (elValue === newValue) {
12618
12682
  return;
@@ -12715,14 +12779,14 @@ Component that was made reactive: `,
12715
12779
  // set value in mounted & updated because <select> relies on its children
12716
12780
  // <option>s.
12717
12781
  mounted(el, { value, modifiers: { number } }) {
12718
- setSelected(el, value, number);
12782
+ setSelected(el, value);
12719
12783
  },
12720
12784
  beforeUpdate(el, _binding, vnode) {
12721
12785
  el[assignKey] = getModelAssigner(vnode);
12722
12786
  },
12723
12787
  updated(el, { value, modifiers: { number } }) {
12724
12788
  if (!el._assigning) {
12725
- setSelected(el, value, number);
12789
+ setSelected(el, value);
12726
12790
  }
12727
12791
  }
12728
12792
  };
@@ -12742,9 +12806,7 @@ Component that was made reactive: `,
12742
12806
  if (isArrayValue) {
12743
12807
  const optionType = typeof optionValue;
12744
12808
  if (optionType === "string" || optionType === "number") {
12745
- option.selected = value.includes(
12746
- number ? looseToNumber(optionValue) : optionValue
12747
- );
12809
+ option.selected = value.some((v) => String(v) === String(optionValue));
12748
12810
  } else {
12749
12811
  option.selected = looseIndexOf(value, optionValue) > -1;
12750
12812
  }
@@ -15065,7 +15127,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
15065
15127
  if (isImplied) {
15066
15128
  setLocEnd(el.loc, backTrack(end, 60));
15067
15129
  } else {
15068
- setLocEnd(el.loc, end + 1);
15130
+ setLocEnd(el.loc, lookAhead(end, 62) + 1);
15069
15131
  }
15070
15132
  if (tokenizer.inSFCRoot) {
15071
15133
  if (el.children.length) {
@@ -15160,6 +15222,12 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
15160
15222
  }
15161
15223
  }
15162
15224
  }
15225
+ function lookAhead(index, c) {
15226
+ let i = index;
15227
+ while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1)
15228
+ i++;
15229
+ return i;
15230
+ }
15163
15231
  function backTrack(index, c) {
15164
15232
  let i = index;
15165
15233
  while (currentInput.charCodeAt(i) !== c && i >= 0)
@@ -17341,13 +17409,27 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
17341
17409
  function resolveComponentType(node, context, ssr = false) {
17342
17410
  let { tag } = node;
17343
17411
  const isExplicitDynamic = isComponentTag(tag);
17344
- const isProp = findProp(node, "is");
17412
+ const isProp = findProp(
17413
+ node,
17414
+ "is",
17415
+ false,
17416
+ true
17417
+ /* allow empty */
17418
+ );
17345
17419
  if (isProp) {
17346
17420
  if (isExplicitDynamic || isCompatEnabled(
17347
17421
  "COMPILER_IS_ON_ELEMENT",
17348
17422
  context
17349
17423
  )) {
17350
- const exp = isProp.type === 6 ? isProp.value && createSimpleExpression(isProp.value.content, true) : isProp.exp;
17424
+ let exp;
17425
+ if (isProp.type === 6) {
17426
+ exp = isProp.value && createSimpleExpression(isProp.value.content, true);
17427
+ } else {
17428
+ exp = isProp.exp;
17429
+ if (!exp) {
17430
+ exp = createSimpleExpression(`is`, false, isProp.loc);
17431
+ }
17432
+ }
17351
17433
  if (exp) {
17352
17434
  return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [
17353
17435
  exp