@vue/compat 3.4.20 → 3.4.22

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.20
2
+ * @vue/compat v3.4.22
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"];
@@ -1601,7 +1602,10 @@ getter: `, this.getter);
1601
1602
  instance,
1602
1603
  11,
1603
1604
  [
1604
- msg + args.join(""),
1605
+ msg + args.map((a) => {
1606
+ var _a, _b;
1607
+ return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);
1608
+ }).join(""),
1605
1609
  instance && instance.proxy,
1606
1610
  trace.map(
1607
1611
  ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`
@@ -1777,11 +1781,17 @@ getter: `, this.getter);
1777
1781
  }
1778
1782
  return res;
1779
1783
  }
1780
- const values = [];
1781
- for (let i = 0; i < fn.length; i++) {
1782
- 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
+ );
1783
1794
  }
1784
- return values;
1785
1795
  }
1786
1796
  function handleError(err, instance, type, throwInDev = true) {
1787
1797
  const contextVNode = instance ? instance.vnode : null;
@@ -1802,12 +1812,14 @@ getter: `, this.getter);
1802
1812
  }
1803
1813
  const appErrorHandler = instance.appContext.config.errorHandler;
1804
1814
  if (appErrorHandler) {
1815
+ pauseTracking();
1805
1816
  callWithErrorHandling(
1806
1817
  appErrorHandler,
1807
1818
  null,
1808
1819
  10,
1809
1820
  [err, exposedInstance, errorInfo]
1810
1821
  );
1822
+ resetTracking();
1811
1823
  return;
1812
1824
  }
1813
1825
  }
@@ -2183,6 +2195,8 @@ getter: `, this.getter);
2183
2195
  _devtoolsComponentRemoved(component);
2184
2196
  }
2185
2197
  };
2198
+ /*! #__NO_SIDE_EFFECTS__ */
2199
+ // @__NO_SIDE_EFFECTS__
2186
2200
  function createDevtoolsComponentHook(hook) {
2187
2201
  return (component) => {
2188
2202
  emit$2(
@@ -3289,7 +3303,7 @@ If this is a native custom element, make sure to exclude it from component resol
3289
3303
  rendererInternals
3290
3304
  );
3291
3305
  } else {
3292
- if (parentSuspense && parentSuspense.deps > 0) {
3306
+ if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {
3293
3307
  n2.suspense = n1.suspense;
3294
3308
  n2.suspense.vnode = n2;
3295
3309
  n2.el = n1.el;
@@ -4828,7 +4842,7 @@ If this is a native custom element, make sure to exclude it from component resol
4828
4842
  return () => {
4829
4843
  pendingCacheKey = null;
4830
4844
  if (!slots.default) {
4831
- return null;
4845
+ return current = null;
4832
4846
  }
4833
4847
  const children = slots.default();
4834
4848
  const rawVNode = children[0];
@@ -5559,47 +5573,74 @@ If this is a native custom element, make sure to exclude it from component resol
5559
5573
  $once: (i) => once.bind(null, i),
5560
5574
  $off: (i) => off.bind(null, i),
5561
5575
  $children: getCompatChildren,
5562
- $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
+ }
5563
5607
  });
5564
- if (isCompatEnabled$1("PRIVATE_APIS", null)) {
5565
- extend(map, {
5566
- // needed by many libs / render fns
5567
- $vnode: (i) => i.vnode,
5568
- // inject additional properties into $options for compat
5569
- // e.g. vuex needs this.$options.parent
5570
- $options: (i) => {
5571
- const res = extend({}, resolveMergedOptions(i));
5572
- res.parent = i.proxy.$parent;
5573
- res.propsData = i.vnode.props;
5574
- return res;
5575
- },
5576
- // some private properties that are likely accessed...
5577
- _self: (i) => i.proxy,
5578
- _uid: (i) => i.uid,
5579
- _data: (i) => i.data,
5580
- _isMounted: (i) => i.isMounted,
5581
- _isDestroyed: (i) => i.isUnmounted,
5582
- // v2 render helpers
5583
- $createElement: () => compatH,
5584
- _c: () => compatH,
5585
- _o: () => legacyMarkOnce,
5586
- _n: () => looseToNumber,
5587
- _s: () => toDisplayString,
5588
- _l: () => renderList,
5589
- _t: (i) => legacyRenderSlot.bind(null, i),
5590
- _q: () => looseEqual,
5591
- _i: () => looseIndexOf,
5592
- _m: (i) => legacyRenderStatic.bind(null, i),
5593
- _f: () => resolveFilter$1,
5594
- _k: (i) => legacyCheckKeyCodes.bind(null, i),
5595
- _b: () => legacyBindObjectProps,
5596
- _v: () => createTextVNode,
5597
- _e: () => createCommentVNode,
5598
- _u: () => legacyresolveScopedSlots,
5599
- _g: () => legacyBindObjectListeners,
5600
- _d: () => legacyBindDynamicKeys,
5601
- _p: () => legacyPrependModifier
5602
- });
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
+ };
5603
5644
  }
5604
5645
  }
5605
5646
 
@@ -5640,6 +5681,9 @@ If this is a native custom element, make sure to exclude it from component resol
5640
5681
  const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);
5641
5682
  const PublicInstanceProxyHandlers = {
5642
5683
  get({ _: instance }, key) {
5684
+ if (key === "__v_skip") {
5685
+ return true;
5686
+ }
5643
5687
  const { ctx, setupState, data, props, accessCache, type, appContext } = instance;
5644
5688
  if (key === "__isVue") {
5645
5689
  return true;
@@ -6494,7 +6538,7 @@ If this is a native custom element, make sure to exclude it from component resol
6494
6538
  return vm;
6495
6539
  }
6496
6540
  }
6497
- Vue.version = `2.6.14-compat:${"3.4.20"}`;
6541
+ Vue.version = `2.6.14-compat:${"3.4.22"}`;
6498
6542
  Vue.config = singletonApp.config;
6499
6543
  Vue.use = (p, ...options) => {
6500
6544
  if (p && isFunction(p.install)) {
@@ -6688,15 +6732,14 @@ If this is a native custom element, make sure to exclude it from component resol
6688
6732
  app.config.globalProperties = Object.create(Ctor.prototype);
6689
6733
  }
6690
6734
  let hasPrototypeAugmentations = false;
6691
- const descriptors = Object.getOwnPropertyDescriptors(Ctor.prototype);
6692
- for (const key in descriptors) {
6735
+ for (const key of Object.getOwnPropertyNames(Ctor.prototype)) {
6693
6736
  if (key !== "constructor") {
6694
6737
  hasPrototypeAugmentations = true;
6695
6738
  if (enabled) {
6696
6739
  Object.defineProperty(
6697
6740
  app.config.globalProperties,
6698
6741
  key,
6699
- descriptors[key]
6742
+ Object.getOwnPropertyDescriptor(Ctor.prototype, key)
6700
6743
  );
6701
6744
  }
6702
6745
  }
@@ -7132,10 +7175,10 @@ If you want to remount the same app, move your app creation logic into a factory
7132
7175
  return false;
7133
7176
  }
7134
7177
 
7178
+ const attrsProto = {};
7135
7179
  function initProps(instance, rawProps, isStateful, isSSR = false) {
7136
7180
  const props = {};
7137
- const attrs = {};
7138
- def(attrs, InternalObjectKey, 1);
7181
+ const attrs = Object.create(attrsProto);
7139
7182
  instance.propsDefaults = /* @__PURE__ */ Object.create(null);
7140
7183
  setFullProps(instance, rawProps, props, attrs);
7141
7184
  for (const key in instance.propsOptions[0]) {
@@ -7257,7 +7300,7 @@ If you want to remount the same app, move your app creation logic into a factory
7257
7300
  }
7258
7301
  }
7259
7302
  if (hasAttrsChanged) {
7260
- trigger(instance, "set", "$attrs");
7303
+ trigger(instance.attrs, "set", "");
7261
7304
  }
7262
7305
  {
7263
7306
  validateProps(rawProps || {}, props, instance);
@@ -7615,7 +7658,7 @@ If you want to remount the same app, move your app creation logic into a factory
7615
7658
  const type = children._;
7616
7659
  if (type) {
7617
7660
  instance.slots = toRaw(children);
7618
- def(children, "_", type);
7661
+ def(instance.slots, "_", type);
7619
7662
  } else {
7620
7663
  normalizeObjectSlots(
7621
7664
  children,
@@ -7629,7 +7672,6 @@ If you want to remount the same app, move your app creation logic into a factory
7629
7672
  normalizeVNodeSlots(instance, children);
7630
7673
  }
7631
7674
  }
7632
- def(instance.slots, InternalObjectKey, 1);
7633
7675
  };
7634
7676
  const updateSlots = (instance, children, optimized) => {
7635
7677
  const { vnode, slots } = instance;
@@ -7801,6 +7843,7 @@ If you want to remount the same app, move your app creation logic into a factory
7801
7843
  }
7802
7844
  };
7803
7845
  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
7846
+ optimized = optimized || !!vnode.dynamicChildren;
7804
7847
  const isFragmentStart = isComment(node) && node.data === "[";
7805
7848
  const onMismatch = () => handleMismatch(
7806
7849
  node,
@@ -10320,7 +10363,6 @@ Server rendered element contains fewer child nodes than client vdom.`
10320
10363
  ...vnodeArgsTransformer ? vnodeArgsTransformer(args, currentRenderingInstance) : args
10321
10364
  );
10322
10365
  };
10323
- const InternalObjectKey = `__vInternal`;
10324
10366
  const normalizeKey = ({ key }) => key != null ? key : null;
10325
10367
  const normalizeRef = ({
10326
10368
  ref,
@@ -10460,7 +10502,7 @@ Component that was made reactive: `,
10460
10502
  function guardReactiveProps(props) {
10461
10503
  if (!props)
10462
10504
  return null;
10463
- return isProxy(props) || InternalObjectKey in props ? extend({}, props) : props;
10505
+ return isProxy(props) || Object.getPrototypeOf(props) === attrsProto ? extend({}, props) : props;
10464
10506
  }
10465
10507
  function cloneVNode(vnode, extraProps, mergeRef = false) {
10466
10508
  const { props, ref, patchFlag, children } = vnode;
@@ -10568,7 +10610,7 @@ Component that was made reactive: `,
10568
10610
  } else {
10569
10611
  type = 32;
10570
10612
  const slotFlag = children._;
10571
- if (!slotFlag && !(InternalObjectKey in children)) {
10613
+ if (!slotFlag) {
10572
10614
  children._ctx = currentRenderingInstance;
10573
10615
  } else if (slotFlag === 3 && currentRenderingInstance) {
10574
10616
  if (currentRenderingInstance.slots._ === 1) {
@@ -10789,7 +10831,7 @@ Component that was made reactive: `,
10789
10831
  }
10790
10832
  }
10791
10833
  instance.accessCache = /* @__PURE__ */ Object.create(null);
10792
- instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));
10834
+ instance.proxy = new Proxy(instance.ctx, PublicInstanceProxyHandlers);
10793
10835
  {
10794
10836
  exposePropsOnRenderContext(instance);
10795
10837
  }
@@ -10933,26 +10975,21 @@ Component that was made reactive: `,
10933
10975
  }
10934
10976
  }
10935
10977
  }
10936
- function getAttrsProxy(instance) {
10937
- return instance.attrsProxy || (instance.attrsProxy = new Proxy(
10938
- instance.attrs,
10939
- {
10940
- get(target, key) {
10941
- markAttrsAccessed();
10942
- track(instance, "get", "$attrs");
10943
- return target[key];
10944
- },
10945
- set() {
10946
- warn$1(`setupContext.attrs is readonly.`);
10947
- return false;
10948
- },
10949
- deleteProperty() {
10950
- warn$1(`setupContext.attrs is readonly.`);
10951
- return false;
10952
- }
10953
- }
10954
- ));
10955
- }
10978
+ const attrsProxyHandlers = {
10979
+ get(target, key) {
10980
+ markAttrsAccessed();
10981
+ track(target, "get", "");
10982
+ return target[key];
10983
+ },
10984
+ set() {
10985
+ warn$1(`setupContext.attrs is readonly.`);
10986
+ return false;
10987
+ },
10988
+ deleteProperty() {
10989
+ warn$1(`setupContext.attrs is readonly.`);
10990
+ return false;
10991
+ }
10992
+ } ;
10956
10993
  function getSlotsProxy(instance) {
10957
10994
  return instance.slotsProxy || (instance.slotsProxy = new Proxy(instance.slots, {
10958
10995
  get(target, key) {
@@ -10986,9 +11023,10 @@ Component that was made reactive: `,
10986
11023
  instance.exposed = exposed || {};
10987
11024
  };
10988
11025
  {
11026
+ let attrsProxy;
10989
11027
  return Object.freeze({
10990
11028
  get attrs() {
10991
- return getAttrsProxy(instance);
11029
+ return attrsProxy || (attrsProxy = new Proxy(instance.attrs, attrsProxyHandlers));
10992
11030
  },
10993
11031
  get slots() {
10994
11032
  return getSlotsProxy(instance);
@@ -11333,7 +11371,7 @@ Component that was made reactive: `,
11333
11371
  return true;
11334
11372
  }
11335
11373
 
11336
- const version = "3.4.20";
11374
+ const version = "3.4.22";
11337
11375
  const warn = warn$1 ;
11338
11376
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11339
11377
  const devtools = devtools$1 ;
@@ -11803,8 +11841,8 @@ Component that was made reactive: `,
11803
11841
  setVarsOnVNode(instance.subTree, vars);
11804
11842
  updateTeleports(vars);
11805
11843
  };
11806
- watchPostEffect(setVars);
11807
11844
  onMounted(() => {
11845
+ watchPostEffect(setVars);
11808
11846
  const ob = new MutationObserver(setVars);
11809
11847
  ob.observe(instance.subTree.el.parentNode, { childList: true });
11810
11848
  onUnmounted(() => ob.disconnect());
@@ -12006,15 +12044,15 @@ Component that was made reactive: `,
12006
12044
  const tag = el.tagName;
12007
12045
  if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
12008
12046
  !tag.includes("-")) {
12009
- el._value = value;
12010
12047
  const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
12011
12048
  const newValue = value == null ? "" : value;
12012
- if (oldValue !== newValue) {
12049
+ if (oldValue !== newValue || !("_value" in el)) {
12013
12050
  el.value = newValue;
12014
12051
  }
12015
12052
  if (value == null) {
12016
12053
  el.removeAttribute(key);
12017
12054
  }
12055
+ el._value = value;
12018
12056
  return;
12019
12057
  }
12020
12058
  let needRemove = false;
@@ -12070,11 +12108,14 @@ Component that was made reactive: `,
12070
12108
  const invokers = el[veiKey] || (el[veiKey] = {});
12071
12109
  const existingInvoker = invokers[rawName];
12072
12110
  if (nextValue && existingInvoker) {
12073
- existingInvoker.value = nextValue;
12111
+ existingInvoker.value = sanitizeEventValue(nextValue, rawName) ;
12074
12112
  } else {
12075
12113
  const [name, options] = parseName(rawName);
12076
12114
  if (nextValue) {
12077
- const invoker = invokers[rawName] = createInvoker(nextValue, instance);
12115
+ const invoker = invokers[rawName] = createInvoker(
12116
+ sanitizeEventValue(nextValue, rawName) ,
12117
+ instance
12118
+ );
12078
12119
  addEventListener(el, name, invoker, options);
12079
12120
  } else if (existingInvoker) {
12080
12121
  removeEventListener(el, name, existingInvoker, options);
@@ -12117,6 +12158,16 @@ Component that was made reactive: `,
12117
12158
  invoker.attached = getNow();
12118
12159
  return invoker;
12119
12160
  }
12161
+ function sanitizeEventValue(value, propName) {
12162
+ if (isFunction(value) || isArray(value)) {
12163
+ return value;
12164
+ }
12165
+ warn(
12166
+ `Wrong type passed as event handler to ${propName} - did you forget @ or : in front of your prop?
12167
+ Expected function or array of functions, received type ${typeof value}.`
12168
+ );
12169
+ return NOOP;
12170
+ }
12120
12171
  function patchStopImmediatePropagation(e, value) {
12121
12172
  if (isArray(value)) {
12122
12173
  const originalStop = e.stopImmediatePropagation;
@@ -12124,7 +12175,9 @@ Component that was made reactive: `,
12124
12175
  originalStop.call(e);
12125
12176
  e._stopped = true;
12126
12177
  };
12127
- return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));
12178
+ return value.map(
12179
+ (fn) => (e2) => !e2._stopped && fn && fn(e2)
12180
+ );
12128
12181
  } else {
12129
12182
  return value;
12130
12183
  }
@@ -12325,7 +12378,7 @@ Component that was made reactive: `,
12325
12378
  }
12326
12379
  }
12327
12380
  _setAttr(key) {
12328
- let value = this.getAttribute(key);
12381
+ let value = this.hasAttribute(key) ? this.getAttribute(key) : void 0;
12329
12382
  const camelKey = camelize(key);
12330
12383
  if (this._numberProps && this._numberProps[camelKey]) {
12331
12384
  value = toNumber(value);
@@ -12485,7 +12538,28 @@ Component that was made reactive: `,
12485
12538
  )) {
12486
12539
  tag = "span";
12487
12540
  }
12488
- prevChildren = children;
12541
+ prevChildren = [];
12542
+ if (children) {
12543
+ for (let i = 0; i < children.length; i++) {
12544
+ const child = children[i];
12545
+ if (child.el && child.el instanceof Element) {
12546
+ prevChildren.push(child);
12547
+ setTransitionHooks(
12548
+ child,
12549
+ resolveTransitionHooks(
12550
+ child,
12551
+ cssTransitionProps,
12552
+ state,
12553
+ instance
12554
+ )
12555
+ );
12556
+ positionMap.set(
12557
+ child,
12558
+ child.el.getBoundingClientRect()
12559
+ );
12560
+ }
12561
+ }
12562
+ }
12489
12563
  children = slots.default ? getTransitionRawChildren(slots.default()) : [];
12490
12564
  for (let i = 0; i < children.length; i++) {
12491
12565
  const child = children[i];
@@ -12498,16 +12572,6 @@ Component that was made reactive: `,
12498
12572
  warn(`<TransitionGroup> children must be keyed.`);
12499
12573
  }
12500
12574
  }
12501
- if (prevChildren) {
12502
- for (let i = 0; i < prevChildren.length; i++) {
12503
- const child = prevChildren[i];
12504
- setTransitionHooks(
12505
- child,
12506
- resolveTransitionHooks(child, cssTransitionProps, state, instance)
12507
- );
12508
- positionMap.set(child, child.el.getBoundingClientRect());
12509
- }
12510
- }
12511
12575
  return createVNode(tag, null, children);
12512
12576
  };
12513
12577
  }
@@ -12609,7 +12673,7 @@ Component that was made reactive: `,
12609
12673
  el[assignKey] = getModelAssigner(vnode);
12610
12674
  if (el.composing)
12611
12675
  return;
12612
- const elValue = number || el.type === "number" ? looseToNumber(el.value) : el.value;
12676
+ const elValue = (number || el.type === "number") && !/^0\d/.test(el.value) ? looseToNumber(el.value) : el.value;
12613
12677
  const newValue = value == null ? "" : value;
12614
12678
  if (elValue === newValue) {
12615
12679
  return;
@@ -12712,14 +12776,14 @@ Component that was made reactive: `,
12712
12776
  // set value in mounted & updated because <select> relies on its children
12713
12777
  // <option>s.
12714
12778
  mounted(el, { value, modifiers: { number } }) {
12715
- setSelected(el, value, number);
12779
+ setSelected(el, value);
12716
12780
  },
12717
12781
  beforeUpdate(el, _binding, vnode) {
12718
12782
  el[assignKey] = getModelAssigner(vnode);
12719
12783
  },
12720
12784
  updated(el, { value, modifiers: { number } }) {
12721
12785
  if (!el._assigning) {
12722
- setSelected(el, value, number);
12786
+ setSelected(el, value);
12723
12787
  }
12724
12788
  }
12725
12789
  };
@@ -12739,9 +12803,7 @@ Component that was made reactive: `,
12739
12803
  if (isArrayValue) {
12740
12804
  const optionType = typeof optionValue;
12741
12805
  if (optionType === "string" || optionType === "number") {
12742
- option.selected = value.includes(
12743
- number ? looseToNumber(optionValue) : optionValue
12744
- );
12806
+ option.selected = value.some((v) => String(v) === String(optionValue));
12745
12807
  } else {
12746
12808
  option.selected = looseIndexOf(value, optionValue) > -1;
12747
12809
  }
@@ -15062,7 +15124,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
15062
15124
  if (isImplied) {
15063
15125
  setLocEnd(el.loc, backTrack(end, 60));
15064
15126
  } else {
15065
- setLocEnd(el.loc, end + 1);
15127
+ setLocEnd(el.loc, lookAhead(end, 62) + 1);
15066
15128
  }
15067
15129
  if (tokenizer.inSFCRoot) {
15068
15130
  if (el.children.length) {
@@ -15157,6 +15219,12 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
15157
15219
  }
15158
15220
  }
15159
15221
  }
15222
+ function lookAhead(index, c) {
15223
+ let i = index;
15224
+ while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1)
15225
+ i++;
15226
+ return i;
15227
+ }
15160
15228
  function backTrack(index, c) {
15161
15229
  let i = index;
15162
15230
  while (currentInput.charCodeAt(i) !== c && i >= 0)
@@ -17338,13 +17406,27 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
17338
17406
  function resolveComponentType(node, context, ssr = false) {
17339
17407
  let { tag } = node;
17340
17408
  const isExplicitDynamic = isComponentTag(tag);
17341
- const isProp = findProp(node, "is");
17409
+ const isProp = findProp(
17410
+ node,
17411
+ "is",
17412
+ false,
17413
+ true
17414
+ /* allow empty */
17415
+ );
17342
17416
  if (isProp) {
17343
17417
  if (isExplicitDynamic || isCompatEnabled(
17344
17418
  "COMPILER_IS_ON_ELEMENT",
17345
17419
  context
17346
17420
  )) {
17347
- const exp = isProp.type === 6 ? isProp.value && createSimpleExpression(isProp.value.content, true) : isProp.exp;
17421
+ let exp;
17422
+ if (isProp.type === 6) {
17423
+ exp = isProp.value && createSimpleExpression(isProp.value.content, true);
17424
+ } else {
17425
+ exp = isProp.exp;
17426
+ if (!exp) {
17427
+ exp = createSimpleExpression(`is`, false, isProp.loc);
17428
+ }
17429
+ }
17348
17430
  if (exp) {
17349
17431
  return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [
17350
17432
  exp