@vue/runtime-dom 3.5.11 → 3.5.12

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/runtime-dom v3.5.11
2
+ * @vue/runtime-dom v3.5.12
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -693,16 +693,16 @@ var VueRuntimeDOM = (function (exports) {
693
693
  nextSub.prevSub = prevSub;
694
694
  link.nextSub = void 0;
695
695
  }
696
- if (dep.subs === link) {
697
- dep.subs = prevSub;
698
- }
699
696
  if (dep.subsHead === link) {
700
697
  dep.subsHead = nextSub;
701
698
  }
702
- if (!dep.subs && dep.computed) {
703
- dep.computed.flags &= ~4;
704
- for (let l = dep.computed.deps; l; l = l.nextDep) {
705
- removeSub(l, true);
699
+ if (dep.subs === link) {
700
+ dep.subs = prevSub;
701
+ if (!prevSub && dep.computed) {
702
+ dep.computed.flags &= ~4;
703
+ for (let l = dep.computed.deps; l; l = l.nextDep) {
704
+ removeSub(l, true);
705
+ }
706
706
  }
707
707
  }
708
708
  if (!soft && !--dep.sc && dep.map) {
@@ -962,7 +962,7 @@ var VueRuntimeDOM = (function (exports) {
962
962
  }
963
963
  });
964
964
  } else {
965
- if (key !== void 0) {
965
+ if (key !== void 0 || depsMap.has(void 0)) {
966
966
  run(depsMap.get(key));
967
967
  }
968
968
  if (isArrayIndex) {
@@ -1337,117 +1337,6 @@ var VueRuntimeDOM = (function (exports) {
1337
1337
 
1338
1338
  const toShallow = (value) => value;
1339
1339
  const getProto = (v) => Reflect.getPrototypeOf(v);
1340
- function get(target, key, isReadonly2 = false, isShallow2 = false) {
1341
- target = target["__v_raw"];
1342
- const rawTarget = toRaw(target);
1343
- const rawKey = toRaw(key);
1344
- if (!isReadonly2) {
1345
- if (hasChanged(key, rawKey)) {
1346
- track(rawTarget, "get", key);
1347
- }
1348
- track(rawTarget, "get", rawKey);
1349
- }
1350
- const { has: has2 } = getProto(rawTarget);
1351
- const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
1352
- if (has2.call(rawTarget, key)) {
1353
- return wrap(target.get(key));
1354
- } else if (has2.call(rawTarget, rawKey)) {
1355
- return wrap(target.get(rawKey));
1356
- } else if (target !== rawTarget) {
1357
- target.get(key);
1358
- }
1359
- }
1360
- function has(key, isReadonly2 = false) {
1361
- const target = this["__v_raw"];
1362
- const rawTarget = toRaw(target);
1363
- const rawKey = toRaw(key);
1364
- if (!isReadonly2) {
1365
- if (hasChanged(key, rawKey)) {
1366
- track(rawTarget, "has", key);
1367
- }
1368
- track(rawTarget, "has", rawKey);
1369
- }
1370
- return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
1371
- }
1372
- function size(target, isReadonly2 = false) {
1373
- target = target["__v_raw"];
1374
- !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY);
1375
- return Reflect.get(target, "size", target);
1376
- }
1377
- function add(value, _isShallow = false) {
1378
- if (!_isShallow && !isShallow(value) && !isReadonly(value)) {
1379
- value = toRaw(value);
1380
- }
1381
- const target = toRaw(this);
1382
- const proto = getProto(target);
1383
- const hadKey = proto.has.call(target, value);
1384
- if (!hadKey) {
1385
- target.add(value);
1386
- trigger(target, "add", value, value);
1387
- }
1388
- return this;
1389
- }
1390
- function set(key, value, _isShallow = false) {
1391
- if (!_isShallow && !isShallow(value) && !isReadonly(value)) {
1392
- value = toRaw(value);
1393
- }
1394
- const target = toRaw(this);
1395
- const { has: has2, get: get2 } = getProto(target);
1396
- let hadKey = has2.call(target, key);
1397
- if (!hadKey) {
1398
- key = toRaw(key);
1399
- hadKey = has2.call(target, key);
1400
- } else {
1401
- checkIdentityKeys(target, has2, key);
1402
- }
1403
- const oldValue = get2.call(target, key);
1404
- target.set(key, value);
1405
- if (!hadKey) {
1406
- trigger(target, "add", key, value);
1407
- } else if (hasChanged(value, oldValue)) {
1408
- trigger(target, "set", key, value, oldValue);
1409
- }
1410
- return this;
1411
- }
1412
- function deleteEntry(key) {
1413
- const target = toRaw(this);
1414
- const { has: has2, get: get2 } = getProto(target);
1415
- let hadKey = has2.call(target, key);
1416
- if (!hadKey) {
1417
- key = toRaw(key);
1418
- hadKey = has2.call(target, key);
1419
- } else {
1420
- checkIdentityKeys(target, has2, key);
1421
- }
1422
- const oldValue = get2 ? get2.call(target, key) : void 0;
1423
- const result = target.delete(key);
1424
- if (hadKey) {
1425
- trigger(target, "delete", key, void 0, oldValue);
1426
- }
1427
- return result;
1428
- }
1429
- function clear() {
1430
- const target = toRaw(this);
1431
- const hadItems = target.size !== 0;
1432
- const oldTarget = isMap(target) ? new Map(target) : new Set(target) ;
1433
- const result = target.clear();
1434
- if (hadItems) {
1435
- trigger(target, "clear", void 0, void 0, oldTarget);
1436
- }
1437
- return result;
1438
- }
1439
- function createForEach(isReadonly2, isShallow2) {
1440
- return function forEach(callback, thisArg) {
1441
- const observed = this;
1442
- const target = observed["__v_raw"];
1443
- const rawTarget = toRaw(target);
1444
- const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
1445
- !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY);
1446
- return target.forEach((value, key) => {
1447
- return callback.call(thisArg, wrap(value), wrap(key), observed);
1448
- });
1449
- };
1450
- }
1451
1340
  function createIterableMethod(method, isReadonly2, isShallow2) {
1452
1341
  return function(...args) {
1453
1342
  const target = this["__v_raw"];
@@ -1490,71 +1379,134 @@ var VueRuntimeDOM = (function (exports) {
1490
1379
  return type === "delete" ? false : type === "clear" ? void 0 : this;
1491
1380
  };
1492
1381
  }
1493
- function createInstrumentations() {
1494
- const mutableInstrumentations2 = {
1495
- get(key) {
1496
- return get(this, key);
1497
- },
1498
- get size() {
1499
- return size(this);
1500
- },
1501
- has,
1502
- add,
1503
- set,
1504
- delete: deleteEntry,
1505
- clear,
1506
- forEach: createForEach(false, false)
1507
- };
1508
- const shallowInstrumentations2 = {
1509
- get(key) {
1510
- return get(this, key, false, true);
1511
- },
1512
- get size() {
1513
- return size(this);
1514
- },
1515
- has,
1516
- add(value) {
1517
- return add.call(this, value, true);
1518
- },
1519
- set(key, value) {
1520
- return set.call(this, key, value, true);
1521
- },
1522
- delete: deleteEntry,
1523
- clear,
1524
- forEach: createForEach(false, true)
1525
- };
1526
- const readonlyInstrumentations2 = {
1527
- get(key) {
1528
- return get(this, key, true);
1529
- },
1530
- get size() {
1531
- return size(this, true);
1532
- },
1533
- has(key) {
1534
- return has.call(this, key, true);
1535
- },
1536
- add: createReadonlyMethod("add"),
1537
- set: createReadonlyMethod("set"),
1538
- delete: createReadonlyMethod("delete"),
1539
- clear: createReadonlyMethod("clear"),
1540
- forEach: createForEach(true, false)
1541
- };
1542
- const shallowReadonlyInstrumentations2 = {
1382
+ function createInstrumentations(readonly, shallow) {
1383
+ const instrumentations = {
1543
1384
  get(key) {
1544
- return get(this, key, true, true);
1385
+ const target = this["__v_raw"];
1386
+ const rawTarget = toRaw(target);
1387
+ const rawKey = toRaw(key);
1388
+ if (!readonly) {
1389
+ if (hasChanged(key, rawKey)) {
1390
+ track(rawTarget, "get", key);
1391
+ }
1392
+ track(rawTarget, "get", rawKey);
1393
+ }
1394
+ const { has } = getProto(rawTarget);
1395
+ const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;
1396
+ if (has.call(rawTarget, key)) {
1397
+ return wrap(target.get(key));
1398
+ } else if (has.call(rawTarget, rawKey)) {
1399
+ return wrap(target.get(rawKey));
1400
+ } else if (target !== rawTarget) {
1401
+ target.get(key);
1402
+ }
1545
1403
  },
1546
1404
  get size() {
1547
- return size(this, true);
1405
+ const target = this["__v_raw"];
1406
+ !readonly && track(toRaw(target), "iterate", ITERATE_KEY);
1407
+ return Reflect.get(target, "size", target);
1548
1408
  },
1549
1409
  has(key) {
1550
- return has.call(this, key, true);
1410
+ const target = this["__v_raw"];
1411
+ const rawTarget = toRaw(target);
1412
+ const rawKey = toRaw(key);
1413
+ if (!readonly) {
1414
+ if (hasChanged(key, rawKey)) {
1415
+ track(rawTarget, "has", key);
1416
+ }
1417
+ track(rawTarget, "has", rawKey);
1418
+ }
1419
+ return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
1551
1420
  },
1552
- add: createReadonlyMethod("add"),
1553
- set: createReadonlyMethod("set"),
1554
- delete: createReadonlyMethod("delete"),
1555
- clear: createReadonlyMethod("clear"),
1556
- forEach: createForEach(true, true)
1421
+ forEach(callback, thisArg) {
1422
+ const observed = this;
1423
+ const target = observed["__v_raw"];
1424
+ const rawTarget = toRaw(target);
1425
+ const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;
1426
+ !readonly && track(rawTarget, "iterate", ITERATE_KEY);
1427
+ return target.forEach((value, key) => {
1428
+ return callback.call(thisArg, wrap(value), wrap(key), observed);
1429
+ });
1430
+ }
1557
1431
  };
1432
+ extend(
1433
+ instrumentations,
1434
+ readonly ? {
1435
+ add: createReadonlyMethod("add"),
1436
+ set: createReadonlyMethod("set"),
1437
+ delete: createReadonlyMethod("delete"),
1438
+ clear: createReadonlyMethod("clear")
1439
+ } : {
1440
+ add(value) {
1441
+ if (!shallow && !isShallow(value) && !isReadonly(value)) {
1442
+ value = toRaw(value);
1443
+ }
1444
+ const target = toRaw(this);
1445
+ const proto = getProto(target);
1446
+ const hadKey = proto.has.call(target, value);
1447
+ if (!hadKey) {
1448
+ target.add(value);
1449
+ trigger(target, "add", value, value);
1450
+ }
1451
+ return this;
1452
+ },
1453
+ set(key, value) {
1454
+ if (!shallow && !isShallow(value) && !isReadonly(value)) {
1455
+ value = toRaw(value);
1456
+ }
1457
+ const target = toRaw(this);
1458
+ const { has, get } = getProto(target);
1459
+ let hadKey = has.call(target, key);
1460
+ if (!hadKey) {
1461
+ key = toRaw(key);
1462
+ hadKey = has.call(target, key);
1463
+ } else {
1464
+ checkIdentityKeys(target, has, key);
1465
+ }
1466
+ const oldValue = get.call(target, key);
1467
+ target.set(key, value);
1468
+ if (!hadKey) {
1469
+ trigger(target, "add", key, value);
1470
+ } else if (hasChanged(value, oldValue)) {
1471
+ trigger(target, "set", key, value, oldValue);
1472
+ }
1473
+ return this;
1474
+ },
1475
+ delete(key) {
1476
+ const target = toRaw(this);
1477
+ const { has, get } = getProto(target);
1478
+ let hadKey = has.call(target, key);
1479
+ if (!hadKey) {
1480
+ key = toRaw(key);
1481
+ hadKey = has.call(target, key);
1482
+ } else {
1483
+ checkIdentityKeys(target, has, key);
1484
+ }
1485
+ const oldValue = get ? get.call(target, key) : void 0;
1486
+ const result = target.delete(key);
1487
+ if (hadKey) {
1488
+ trigger(target, "delete", key, void 0, oldValue);
1489
+ }
1490
+ return result;
1491
+ },
1492
+ clear() {
1493
+ const target = toRaw(this);
1494
+ const hadItems = target.size !== 0;
1495
+ const oldTarget = isMap(target) ? new Map(target) : new Set(target) ;
1496
+ const result = target.clear();
1497
+ if (hadItems) {
1498
+ trigger(
1499
+ target,
1500
+ "clear",
1501
+ void 0,
1502
+ void 0,
1503
+ oldTarget
1504
+ );
1505
+ }
1506
+ return result;
1507
+ }
1508
+ }
1509
+ );
1558
1510
  const iteratorMethods = [
1559
1511
  "keys",
1560
1512
  "values",
@@ -1562,30 +1514,12 @@ var VueRuntimeDOM = (function (exports) {
1562
1514
  Symbol.iterator
1563
1515
  ];
1564
1516
  iteratorMethods.forEach((method) => {
1565
- mutableInstrumentations2[method] = createIterableMethod(method, false, false);
1566
- readonlyInstrumentations2[method] = createIterableMethod(method, true, false);
1567
- shallowInstrumentations2[method] = createIterableMethod(method, false, true);
1568
- shallowReadonlyInstrumentations2[method] = createIterableMethod(
1569
- method,
1570
- true,
1571
- true
1572
- );
1517
+ instrumentations[method] = createIterableMethod(method, readonly, shallow);
1573
1518
  });
1574
- return [
1575
- mutableInstrumentations2,
1576
- readonlyInstrumentations2,
1577
- shallowInstrumentations2,
1578
- shallowReadonlyInstrumentations2
1579
- ];
1519
+ return instrumentations;
1580
1520
  }
1581
- const [
1582
- mutableInstrumentations,
1583
- readonlyInstrumentations,
1584
- shallowInstrumentations,
1585
- shallowReadonlyInstrumentations
1586
- ] = /* @__PURE__ */ createInstrumentations();
1587
1521
  function createInstrumentationGetter(isReadonly2, shallow) {
1588
- const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;
1522
+ const instrumentations = createInstrumentations(isReadonly2, shallow);
1589
1523
  return (target, key, receiver) => {
1590
1524
  if (key === "__v_isReactive") {
1591
1525
  return !isReadonly2;
@@ -1613,9 +1547,9 @@ var VueRuntimeDOM = (function (exports) {
1613
1547
  const shallowReadonlyCollectionHandlers = {
1614
1548
  get: /* @__PURE__ */ createInstrumentationGetter(true, true)
1615
1549
  };
1616
- function checkIdentityKeys(target, has2, key) {
1550
+ function checkIdentityKeys(target, has, key) {
1617
1551
  const rawKey = toRaw(key);
1618
- if (rawKey !== key && has2.call(target, rawKey)) {
1552
+ if (rawKey !== key && has.call(target, rawKey)) {
1619
1553
  const type = toRawType(target);
1620
1554
  warn$2(
1621
1555
  `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`
@@ -3041,7 +2975,7 @@ var VueRuntimeDOM = (function (exports) {
3041
2975
  }
3042
2976
  if (!disabled) {
3043
2977
  mount(target, targetAnchor);
3044
- updateCssVars(n2);
2978
+ updateCssVars(n2, false);
3045
2979
  }
3046
2980
  } else if (!disabled) {
3047
2981
  warn$1(
@@ -3053,7 +2987,7 @@ var VueRuntimeDOM = (function (exports) {
3053
2987
  };
3054
2988
  if (disabled) {
3055
2989
  mount(container, mainAnchor);
3056
- updateCssVars(n2);
2990
+ updateCssVars(n2, true);
3057
2991
  }
3058
2992
  if (isTeleportDeferred(n2.props)) {
3059
2993
  queuePostRenderEffect(mountToTarget, parentSuspense);
@@ -3143,7 +3077,7 @@ var VueRuntimeDOM = (function (exports) {
3143
3077
  );
3144
3078
  }
3145
3079
  }
3146
- updateCssVars(n2);
3080
+ updateCssVars(n2, disabled);
3147
3081
  }
3148
3082
  },
3149
3083
  remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {
@@ -3211,9 +3145,10 @@ var VueRuntimeDOM = (function (exports) {
3211
3145
  querySelector
3212
3146
  );
3213
3147
  if (target) {
3148
+ const disabled = isTeleportDisabled(vnode.props);
3214
3149
  const targetNode = target._lpa || target.firstChild;
3215
3150
  if (vnode.shapeFlag & 16) {
3216
- if (isTeleportDisabled(vnode.props)) {
3151
+ if (disabled) {
3217
3152
  vnode.anchor = hydrateChildren(
3218
3153
  nextSibling(node),
3219
3154
  vnode,
@@ -3254,16 +3189,23 @@ var VueRuntimeDOM = (function (exports) {
3254
3189
  );
3255
3190
  }
3256
3191
  }
3257
- updateCssVars(vnode);
3192
+ updateCssVars(vnode, disabled);
3258
3193
  }
3259
3194
  return vnode.anchor && nextSibling(vnode.anchor);
3260
3195
  }
3261
3196
  const Teleport = TeleportImpl;
3262
- function updateCssVars(vnode) {
3197
+ function updateCssVars(vnode, isDisabled) {
3263
3198
  const ctx = vnode.ctx;
3264
3199
  if (ctx && ctx.ut) {
3265
- let node = vnode.targetStart;
3266
- while (node && node !== vnode.targetAnchor) {
3200
+ let node, anchor;
3201
+ if (isDisabled) {
3202
+ node = vnode.el;
3203
+ anchor = vnode.anchor;
3204
+ } else {
3205
+ node = vnode.targetStart;
3206
+ anchor = vnode.targetAnchor;
3207
+ }
3208
+ while (node && node !== anchor) {
3267
3209
  if (node.nodeType === 1) node.setAttribute("data-v-owner", ctx.uid);
3268
3210
  node = node.nextSibling;
3269
3211
  }
@@ -3713,8 +3655,15 @@ var VueRuntimeDOM = (function (exports) {
3713
3655
  const setupState = owner.setupState;
3714
3656
  const rawSetupState = toRaw(setupState);
3715
3657
  const canSetSetupRef = setupState === EMPTY_OBJ ? () => false : (key) => {
3716
- if (knownTemplateRefs.has(rawSetupState[key])) {
3717
- return false;
3658
+ {
3659
+ if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {
3660
+ warn$1(
3661
+ `Template ref "${key}" used on a non-ref value. It will not work in the production build.`
3662
+ );
3663
+ }
3664
+ if (knownTemplateRefs.has(rawSetupState[key])) {
3665
+ return false;
3666
+ }
3718
3667
  }
3719
3668
  return hasOwn(rawSetupState, key);
3720
3669
  };
@@ -4011,7 +3960,11 @@ var VueRuntimeDOM = (function (exports) {
4011
3960
  }
4012
3961
  let needCallTransitionHooks = false;
4013
3962
  if (isTemplateNode(el)) {
4014
- needCallTransitionHooks = needTransition(parentSuspense, transition) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
3963
+ needCallTransitionHooks = needTransition(
3964
+ null,
3965
+ // no need check parentSuspense in hydration
3966
+ transition
3967
+ ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;
4015
3968
  const content = el.content.firstChild;
4016
3969
  if (needCallTransitionHooks) {
4017
3970
  transition.beforeEnter(content);
@@ -4404,6 +4357,8 @@ Server rendered element contains fewer child nodes than client vdom.`
4404
4357
  }
4405
4358
  }
4406
4359
 
4360
+ const requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));
4361
+ const cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));
4407
4362
  const hydrateOnIdle = (timeout = 1e4) => (hydrate) => {
4408
4363
  const id = requestIdleCallback(hydrate, { timeout });
4409
4364
  return () => cancelIdleCallback(id);
@@ -5100,12 +5055,13 @@ If this is a native custom element, make sure to exclude it from component resol
5100
5055
  }
5101
5056
  openBlock();
5102
5057
  const validSlotContent = slot && ensureValidVNode(slot(props));
5058
+ const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch
5059
+ // key attached in the `createSlots` helper, respect that
5060
+ validSlotContent && validSlotContent.key;
5103
5061
  const rendered = createBlock(
5104
5062
  Fragment,
5105
5063
  {
5106
- key: (props.key || // slot content array of a dynamic conditional slot may have a branch
5107
- // key attached in the `createSlots` helper, respect that
5108
- validSlotContent && validSlotContent.key || `_${name}`) + // #7256 force differentiate fallback content from actual content
5064
+ key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
5109
5065
  (!validSlotContent && fallback ? "_fb" : "")
5110
5066
  },
5111
5067
  validSlotContent || (fallback ? fallback() : []),
@@ -6460,6 +6416,7 @@ If you want to remount the same app, move your app creation logic into a factory
6460
6416
  function validateProps(rawProps, props, instance) {
6461
6417
  const resolvedValues = toRaw(props);
6462
6418
  const options = instance.propsOptions[0];
6419
+ const camelizePropsKey = Object.keys(rawProps).map((key) => camelize(key));
6463
6420
  for (const key in options) {
6464
6421
  let opt = options[key];
6465
6422
  if (opt == null) continue;
@@ -6468,7 +6425,7 @@ If you want to remount the same app, move your app creation logic into a factory
6468
6425
  resolvedValues[key],
6469
6426
  opt,
6470
6427
  shallowReadonly(resolvedValues) ,
6471
- !hasOwn(rawProps, key) && !hasOwn(rawProps, hyphenate(key))
6428
+ !camelizePropsKey.includes(key)
6472
6429
  );
6473
6430
  }
6474
6431
  }
@@ -8306,19 +8263,19 @@ If you want to remount the same app, move your app creation logic into a factory
8306
8263
  warn$1(`useModel() called without active instance.`);
8307
8264
  return ref();
8308
8265
  }
8309
- if (!i.propsOptions[0][name]) {
8266
+ const camelizedName = camelize(name);
8267
+ if (!i.propsOptions[0][camelizedName]) {
8310
8268
  warn$1(`useModel() called with prop "${name}" which is not declared.`);
8311
8269
  return ref();
8312
8270
  }
8313
- const camelizedName = camelize(name);
8314
8271
  const hyphenatedName = hyphenate(name);
8315
- const modifiers = getModelModifiers(props, name);
8272
+ const modifiers = getModelModifiers(props, camelizedName);
8316
8273
  const res = customRef((track, trigger) => {
8317
8274
  let localValue;
8318
8275
  let prevSetValue = EMPTY_OBJ;
8319
8276
  let prevEmittedValue;
8320
8277
  watchSyncEffect(() => {
8321
- const propValue = props[name];
8278
+ const propValue = props[camelizedName];
8322
8279
  if (hasChanged(localValue, propValue)) {
8323
8280
  localValue = propValue;
8324
8281
  trigger();
@@ -9933,9 +9890,9 @@ Component that was made reactive: `,
9933
9890
  }
9934
9891
  const { setup } = Component;
9935
9892
  if (setup) {
9893
+ pauseTracking();
9936
9894
  const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
9937
9895
  const reset = setCurrentInstance(instance);
9938
- pauseTracking();
9939
9896
  const setupResult = callWithErrorHandling(
9940
9897
  setup,
9941
9898
  instance,
@@ -9945,10 +9902,13 @@ Component that was made reactive: `,
9945
9902
  setupContext
9946
9903
  ]
9947
9904
  );
9905
+ const isAsyncSetup = isPromise(setupResult);
9948
9906
  resetTracking();
9949
9907
  reset();
9950
- if (isPromise(setupResult)) {
9951
- if (!isAsyncWrapper(instance)) markAsyncBoundary(instance);
9908
+ if ((isAsyncSetup || instance.sp) && !isAsyncWrapper(instance)) {
9909
+ markAsyncBoundary(instance);
9910
+ }
9911
+ if (isAsyncSetup) {
9952
9912
  setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
9953
9913
  if (isSSR) {
9954
9914
  return setupResult.then((resolvedResult) => {
@@ -10409,7 +10369,7 @@ Component that was made reactive: `,
10409
10369
  return true;
10410
10370
  }
10411
10371
 
10412
- const version = "3.5.11";
10372
+ const version = "3.5.12";
10413
10373
  const warn = warn$1 ;
10414
10374
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10415
10375
  const devtools = devtools$1 ;
@@ -11023,7 +10983,7 @@ Component that was made reactive: `,
11023
10983
  }
11024
10984
  }
11025
10985
 
11026
- function patchDOMProp(el, key, value, parentComponent) {
10986
+ function patchDOMProp(el, key, value, parentComponent, attrName) {
11027
10987
  if (key === "innerHTML" || key === "textContent") {
11028
10988
  if (value != null) {
11029
10989
  el[key] = key === "innerHTML" ? unsafeToTrustedHTML(value) : value;
@@ -11071,7 +11031,7 @@ Component that was made reactive: `,
11071
11031
  );
11072
11032
  }
11073
11033
  }
11074
- needRemove && el.removeAttribute(key);
11034
+ needRemove && el.removeAttribute(attrName || key);
11075
11035
  }
11076
11036
 
11077
11037
  function addEventListener(el, event, handler, options) {
@@ -11181,7 +11141,7 @@ Expected function or array of functions, received type ${typeof value}.`
11181
11141
  // #11081 force set props for possible async custom element
11182
11142
  el._isVueCE && (/[A-Z]/.test(key) || !isString(nextValue))
11183
11143
  ) {
11184
- patchDOMProp(el, camelize(key), nextValue);
11144
+ patchDOMProp(el, camelize(key), nextValue, parentComponent, key);
11185
11145
  } else {
11186
11146
  if (key === "true-value") {
11187
11147
  el._trueValue = nextValue;
@@ -11887,7 +11847,7 @@ Expected function or array of functions, received type ${typeof value}.`
11887
11847
  setChecked(el, binding, vnode);
11888
11848
  }
11889
11849
  };
11890
- function setChecked(el, { value }, vnode) {
11850
+ function setChecked(el, { value, oldValue }, vnode) {
11891
11851
  el._modelValue = value;
11892
11852
  let checked;
11893
11853
  if (isArray(value)) {
@@ -11895,6 +11855,7 @@ Expected function or array of functions, received type ${typeof value}.`
11895
11855
  } else if (isSet(value)) {
11896
11856
  checked = value.has(vnode.props.value);
11897
11857
  } else {
11858
+ if (value === oldValue) return;
11898
11859
  checked = looseEqual(value, getCheckboxValue(el, true));
11899
11860
  }
11900
11861
  if (el.checked !== checked) {