@vue/runtime-core 3.4.26 → 3.5.0-alpha.1

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-core v3.4.26
2
+ * @vue/runtime-core v3.5.0-alpha.1
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -290,7 +290,7 @@ function findInsertionIndex(id) {
290
290
  const middle = start + end >>> 1;
291
291
  const middleJob = queue[middle];
292
292
  const middleJobId = getId(middleJob);
293
- if (middleJobId < id || middleJobId === id && middleJob.pre) {
293
+ if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {
294
294
  start = middle + 1;
295
295
  } else {
296
296
  end = middle;
@@ -299,15 +299,21 @@ function findInsertionIndex(id) {
299
299
  return start;
300
300
  }
301
301
  function queueJob(job) {
302
- if (!queue.length || !queue.includes(
303
- job,
304
- isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex
305
- )) {
302
+ var _a;
303
+ if (!(job.flags & 1)) {
306
304
  if (job.id == null) {
307
305
  queue.push(job);
306
+ } else if (
307
+ // fast path when the job id is larger than the tail
308
+ !(job.flags & 2) && job.id >= (((_a = queue[queue.length - 1]) == null ? void 0 : _a.id) || 0)
309
+ ) {
310
+ queue.push(job);
308
311
  } else {
309
312
  queue.splice(findInsertionIndex(job.id), 0, job);
310
313
  }
314
+ if (!(job.flags & 4)) {
315
+ job.flags |= 1;
316
+ }
311
317
  queueFlush();
312
318
  }
313
319
  }
@@ -325,11 +331,11 @@ function invalidateJob(job) {
325
331
  }
326
332
  function queuePostFlushCb(cb) {
327
333
  if (!shared.isArray(cb)) {
328
- if (!activePostFlushCbs || !activePostFlushCbs.includes(
329
- cb,
330
- cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex
331
- )) {
334
+ if (!(cb.flags & 1)) {
332
335
  pendingPostFlushCbs.push(cb);
336
+ if (!(cb.flags & 4)) {
337
+ cb.flags |= 1;
338
+ }
333
339
  }
334
340
  } else {
335
341
  pendingPostFlushCbs.push(...cb);
@@ -342,7 +348,7 @@ function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
342
348
  }
343
349
  for (; i < queue.length; i++) {
344
350
  const cb = queue[i];
345
- if (cb && cb.pre) {
351
+ if (cb && cb.flags & 2) {
346
352
  if (instance && cb.id !== instance.uid) {
347
353
  continue;
348
354
  }
@@ -352,6 +358,7 @@ function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
352
358
  queue.splice(i, 1);
353
359
  i--;
354
360
  cb();
361
+ cb.flags &= ~1;
355
362
  }
356
363
  }
357
364
  }
@@ -374,6 +381,7 @@ function flushPostFlushCbs(seen) {
374
381
  continue;
375
382
  }
376
383
  activePostFlushCbs[postFlushIndex]();
384
+ activePostFlushCbs[postFlushIndex].flags &= ~1;
377
385
  }
378
386
  activePostFlushCbs = null;
379
387
  postFlushIndex = 0;
@@ -383,9 +391,11 @@ const getId = (job) => job.id == null ? Infinity : job.id;
383
391
  const comparator = (a, b) => {
384
392
  const diff = getId(a) - getId(b);
385
393
  if (diff === 0) {
386
- if (a.pre && !b.pre)
394
+ const isAPre = a.flags & 2;
395
+ const isBPre = b.flags & 2;
396
+ if (isAPre && !isBPre)
387
397
  return -1;
388
- if (b.pre && !a.pre)
398
+ if (isBPre && !isAPre)
389
399
  return 1;
390
400
  }
391
401
  return diff;
@@ -401,11 +411,12 @@ function flushJobs(seen) {
401
411
  try {
402
412
  for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {
403
413
  const job = queue[flushIndex];
404
- if (job && job.active !== false) {
414
+ if (job && !(job.flags & 8)) {
405
415
  if (check(job)) {
406
416
  continue;
407
417
  }
408
418
  callWithErrorHandling(job, null, 14);
419
+ job.flags &= ~1;
409
420
  }
410
421
  }
411
422
  } finally {
@@ -487,7 +498,6 @@ function rerender(id, newRender) {
487
498
  }
488
499
  instance.renderCache = [];
489
500
  isHmrUpdating = true;
490
- instance.effect.dirty = true;
491
501
  instance.update();
492
502
  isHmrUpdating = false;
493
503
  });
@@ -515,7 +525,6 @@ function reload(id, newComp) {
515
525
  instance.ceReload(newComp.styles);
516
526
  hmrDirtyComponents.delete(oldComp);
517
527
  } else if (instance.parent) {
518
- instance.parent.effect.dirty = true;
519
528
  queueJob(instance.parent.update);
520
529
  } else if (instance.appContext.reload) {
521
530
  instance.appContext.reload();
@@ -904,7 +913,7 @@ function renderComponentRoot(instance) {
904
913
  true ? {
905
914
  get attrs() {
906
915
  markAttrsAccessed();
907
- return reactivity.shallowReadonly(attrs);
916
+ return attrs;
908
917
  },
909
918
  slots,
910
919
  emit
@@ -937,7 +946,7 @@ function renderComponentRoot(instance) {
937
946
  propsOptions
938
947
  );
939
948
  }
940
- root = cloneVNode(root, fallthroughAttrs, false, true);
949
+ root = cloneVNode(root, fallthroughAttrs);
941
950
  } else if (!accessedAttrs && root.type !== Comment) {
942
951
  const allAttrs = Object.keys(attrs);
943
952
  const eventAttrs = [];
@@ -971,7 +980,7 @@ function renderComponentRoot(instance) {
971
980
  `Runtime directive used on component with non-element root node. The directives will not function as intended.`
972
981
  );
973
982
  }
974
- root = cloneVNode(root, null, false, true);
983
+ root = cloneVNode(root);
975
984
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
976
985
  }
977
986
  if (vnode.transition) {
@@ -1462,7 +1471,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
1462
1471
  let parentSuspenseId;
1463
1472
  const isSuspensible = isVNodeSuspensible(vnode);
1464
1473
  if (isSuspensible) {
1465
- if (parentSuspense && parentSuspense.pendingBranch) {
1474
+ if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {
1466
1475
  parentSuspenseId = parentSuspense.pendingId;
1467
1476
  parentSuspense.deps++;
1468
1477
  }
@@ -1774,8 +1783,8 @@ function setActiveBranch(suspense, branch) {
1774
1783
  }
1775
1784
  }
1776
1785
  function isVNodeSuspensible(vnode) {
1777
- const suspensible = vnode.props && vnode.props.suspensible;
1778
- return suspensible != null && suspensible !== false;
1786
+ var _a;
1787
+ return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;
1779
1788
  }
1780
1789
 
1781
1790
  const ssrContextKey = Symbol.for("v-scx");
@@ -1940,8 +1949,8 @@ function doWatch(source, cb, {
1940
1949
  }
1941
1950
  }
1942
1951
  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
1943
- const job = () => {
1944
- if (!effect.active || !effect.dirty) {
1952
+ const job = (immediateFirstRun) => {
1953
+ if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {
1945
1954
  return;
1946
1955
  }
1947
1956
  if (cb) {
@@ -1962,19 +1971,22 @@ function doWatch(source, cb, {
1962
1971
  effect.run();
1963
1972
  }
1964
1973
  };
1965
- job.allowRecurse = !!cb;
1974
+ if (cb)
1975
+ job.flags |= 4;
1976
+ const effect = new reactivity.ReactiveEffect(getter);
1966
1977
  let scheduler;
1967
1978
  if (flush === "sync") {
1979
+ effect.flags |= 64;
1968
1980
  scheduler = job;
1969
1981
  } else if (flush === "post") {
1970
1982
  scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);
1971
1983
  } else {
1972
- job.pre = true;
1984
+ job.flags |= 2;
1973
1985
  if (instance)
1974
1986
  job.id = instance.uid;
1975
1987
  scheduler = () => queueJob(job);
1976
1988
  }
1977
- const effect = new reactivity.ReactiveEffect(getter, shared.NOOP, scheduler);
1989
+ effect.scheduler = scheduler;
1978
1990
  const scope = reactivity.getCurrentScope();
1979
1991
  const unwatch = () => {
1980
1992
  effect.stop();
@@ -1988,7 +2000,7 @@ function doWatch(source, cb, {
1988
2000
  }
1989
2001
  if (cb) {
1990
2002
  if (immediate) {
1991
- job();
2003
+ job(true);
1992
2004
  } else {
1993
2005
  oldValue = effect.run();
1994
2006
  }
@@ -2029,29 +2041,34 @@ function createPathGetter(ctx, path) {
2029
2041
  return cur;
2030
2042
  };
2031
2043
  }
2032
- function traverse(value, depth = Infinity, seen) {
2033
- if (depth <= 0 || !shared.isObject(value) || value["__v_skip"]) {
2044
+ function traverse(value, depth, currentDepth = 0, seen) {
2045
+ if (!shared.isObject(value) || value["__v_skip"]) {
2034
2046
  return value;
2035
2047
  }
2048
+ if (depth && depth > 0) {
2049
+ if (currentDepth >= depth) {
2050
+ return value;
2051
+ }
2052
+ currentDepth++;
2053
+ }
2036
2054
  seen = seen || /* @__PURE__ */ new Set();
2037
2055
  if (seen.has(value)) {
2038
2056
  return value;
2039
2057
  }
2040
2058
  seen.add(value);
2041
- depth--;
2042
2059
  if (reactivity.isRef(value)) {
2043
- traverse(value.value, depth, seen);
2060
+ traverse(value.value, depth, currentDepth, seen);
2044
2061
  } else if (shared.isArray(value)) {
2045
2062
  for (let i = 0; i < value.length; i++) {
2046
- traverse(value[i], depth, seen);
2063
+ traverse(value[i], depth, currentDepth, seen);
2047
2064
  }
2048
2065
  } else if (shared.isSet(value) || shared.isMap(value)) {
2049
2066
  value.forEach((v) => {
2050
- traverse(v, depth, seen);
2067
+ traverse(v, depth, currentDepth, seen);
2051
2068
  });
2052
2069
  } else if (shared.isPlainObject(value)) {
2053
2070
  for (const key in value) {
2054
- traverse(value[key], depth, seen);
2071
+ traverse(value[key], depth, currentDepth, seen);
2055
2072
  }
2056
2073
  }
2057
2074
  return value;
@@ -2164,22 +2181,7 @@ const BaseTransitionImpl = {
2164
2181
  if (!children || !children.length) {
2165
2182
  return;
2166
2183
  }
2167
- let child = children[0];
2168
- if (children.length > 1) {
2169
- let hasFound = false;
2170
- for (const c of children) {
2171
- if (c.type !== Comment) {
2172
- if (hasFound) {
2173
- warn$1(
2174
- "<transition> can only be used on a single element or component. Use <transition-group> for lists."
2175
- );
2176
- break;
2177
- }
2178
- child = c;
2179
- hasFound = true;
2180
- }
2181
- }
2182
- }
2184
+ const child = findNonCommentChild(children);
2183
2185
  const rawProps = reactivity.toRaw(props);
2184
2186
  const { mode } = rawProps;
2185
2187
  if (mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") {
@@ -2188,7 +2190,7 @@ const BaseTransitionImpl = {
2188
2190
  if (state.isLeaving) {
2189
2191
  return emptyPlaceholder(child);
2190
2192
  }
2191
- const innerChild = getKeepAliveChild(child);
2193
+ const innerChild = getInnerChild$1(child);
2192
2194
  if (!innerChild) {
2193
2195
  return emptyPlaceholder(child);
2194
2196
  }
@@ -2200,7 +2202,7 @@ const BaseTransitionImpl = {
2200
2202
  );
2201
2203
  setTransitionHooks(innerChild, enterHooks);
2202
2204
  const oldChild = instance.subTree;
2203
- const oldInnerChild = oldChild && getKeepAliveChild(oldChild);
2205
+ const oldInnerChild = oldChild && getInnerChild$1(oldChild);
2204
2206
  if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild)) {
2205
2207
  const leavingHooks = resolveTransitionHooks(
2206
2208
  oldInnerChild,
@@ -2209,12 +2211,11 @@ const BaseTransitionImpl = {
2209
2211
  instance
2210
2212
  );
2211
2213
  setTransitionHooks(oldInnerChild, leavingHooks);
2212
- if (mode === "out-in" && innerChild.type !== Comment) {
2214
+ if (mode === "out-in") {
2213
2215
  state.isLeaving = true;
2214
2216
  leavingHooks.afterLeave = () => {
2215
2217
  state.isLeaving = false;
2216
- if (instance.update.active !== false) {
2217
- instance.effect.dirty = true;
2218
+ if (!(instance.job.flags & 8)) {
2218
2219
  instance.update();
2219
2220
  }
2220
2221
  };
@@ -2239,6 +2240,25 @@ const BaseTransitionImpl = {
2239
2240
  };
2240
2241
  }
2241
2242
  };
2243
+ function findNonCommentChild(children) {
2244
+ let child = children[0];
2245
+ if (children.length > 1) {
2246
+ let hasFound = false;
2247
+ for (const c of children) {
2248
+ if (c.type !== Comment) {
2249
+ if (hasFound) {
2250
+ warn$1(
2251
+ "<transition> can only be used on a single element or component. Use <transition-group> for lists."
2252
+ );
2253
+ break;
2254
+ }
2255
+ child = c;
2256
+ hasFound = true;
2257
+ }
2258
+ }
2259
+ }
2260
+ return child;
2261
+ }
2242
2262
  const BaseTransition = BaseTransitionImpl;
2243
2263
  function getLeavingNodesForType(state, vnode) {
2244
2264
  const { leavingVNodes } = state;
@@ -2393,8 +2413,11 @@ function emptyPlaceholder(vnode) {
2393
2413
  return vnode;
2394
2414
  }
2395
2415
  }
2396
- function getKeepAliveChild(vnode) {
2416
+ function getInnerChild$1(vnode) {
2397
2417
  if (!isKeepAlive(vnode)) {
2418
+ if (isTeleport(vnode.type) && vnode.children) {
2419
+ return findNonCommentChild(vnode.children);
2420
+ }
2398
2421
  return vnode;
2399
2422
  }
2400
2423
  if (vnode.component) {
@@ -2563,7 +2586,6 @@ function defineAsyncComponent(source) {
2563
2586
  load().then(() => {
2564
2587
  loaded.value = true;
2565
2588
  if (instance.parent && isKeepAlive(instance.parent.vnode)) {
2566
- instance.parent.effect.dirty = true;
2567
2589
  queueJob(instance.parent.update);
2568
2590
  }
2569
2591
  }).catch((err) => {
@@ -2730,7 +2752,7 @@ const KeepAliveImpl = {
2730
2752
  return () => {
2731
2753
  pendingCacheKey = null;
2732
2754
  if (!slots.default) {
2733
- return null;
2755
+ return current = null;
2734
2756
  }
2735
2757
  const children = slots.default();
2736
2758
  const rawVNode = children[0];
@@ -2894,10 +2916,20 @@ function onErrorCaptured(hook, target = currentInstance) {
2894
2916
  function renderList(source, renderItem, cache, index) {
2895
2917
  let ret;
2896
2918
  const cached = cache && cache[index];
2897
- if (shared.isArray(source) || shared.isString(source)) {
2919
+ const sourceIsArray = shared.isArray(source);
2920
+ const sourceIsReactiveArray = sourceIsArray && reactivity.isReactive(source);
2921
+ if (sourceIsArray || shared.isString(source)) {
2922
+ if (sourceIsReactiveArray) {
2923
+ source = reactivity.shallowReadArray(source);
2924
+ }
2898
2925
  ret = new Array(source.length);
2899
2926
  for (let i = 0, l = source.length; i < l; i++) {
2900
- ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);
2927
+ ret[i] = renderItem(
2928
+ sourceIsReactiveArray ? reactivity.toReactive(source[i]) : source[i],
2929
+ i,
2930
+ void 0,
2931
+ cached && cached[i]
2932
+ );
2901
2933
  }
2902
2934
  } else if (typeof source === "number") {
2903
2935
  if (!Number.isInteger(source)) {
@@ -3032,7 +3064,6 @@ const publicPropertiesMap = (
3032
3064
  $emit: (i) => i.emit,
3033
3065
  $options: (i) => resolveMergedOptions(i) ,
3034
3066
  $forceUpdate: (i) => i.f || (i.f = () => {
3035
- i.effect.dirty = true;
3036
3067
  queueJob(i.update);
3037
3068
  }),
3038
3069
  $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),
@@ -4365,7 +4396,9 @@ const isSimpleType = /* @__PURE__ */ shared.makeMap(
4365
4396
  function assertType(value, type) {
4366
4397
  let valid;
4367
4398
  const expectedType = getType(type);
4368
- if (isSimpleType(expectedType)) {
4399
+ if (expectedType === "null") {
4400
+ valid = value === null;
4401
+ } else if (isSimpleType(expectedType)) {
4369
4402
  const t = typeof value;
4370
4403
  valid = t === expectedType.toLowerCase();
4371
4404
  if (!valid && t === "object") {
@@ -4375,8 +4408,6 @@ function assertType(value, type) {
4375
4408
  valid = shared.isObject(value);
4376
4409
  } else if (expectedType === "Array") {
4377
4410
  valid = shared.isArray(value);
4378
- } else if (expectedType === "null") {
4379
- valid = value === null;
4380
4411
  } else {
4381
4412
  valid = value instanceof type;
4382
4413
  }
@@ -4471,7 +4502,7 @@ const initSlots = (instance, children) => {
4471
4502
  const type = children._;
4472
4503
  if (type) {
4473
4504
  shared.extend(slots, children);
4474
- shared.def(slots, "_", type, true);
4505
+ shared.def(slots, "_", type);
4475
4506
  } else {
4476
4507
  normalizeObjectSlots(children, slots);
4477
4508
  }
@@ -5900,7 +5931,6 @@ function baseCreateRenderer(options, createHydrationFns) {
5900
5931
  } else {
5901
5932
  instance.next = n2;
5902
5933
  invalidateJob(instance.update);
5903
- instance.effect.dirty = true;
5904
5934
  instance.update();
5905
5935
  }
5906
5936
  } else {
@@ -6083,24 +6113,18 @@ function baseCreateRenderer(options, createHydrationFns) {
6083
6113
  }
6084
6114
  }
6085
6115
  };
6086
- const effect = instance.effect = new reactivity.ReactiveEffect(
6087
- componentUpdateFn,
6088
- shared.NOOP,
6089
- () => queueJob(update),
6090
- instance.scope
6091
- // track it in component's effect scope
6092
- );
6093
- const update = instance.update = () => {
6094
- if (effect.dirty) {
6095
- effect.run();
6096
- }
6097
- };
6098
- update.id = instance.uid;
6116
+ instance.scope.on();
6117
+ const effect = instance.effect = new reactivity.ReactiveEffect(componentUpdateFn);
6118
+ instance.scope.off();
6119
+ const update = instance.update = effect.run.bind(effect);
6120
+ const job = instance.job = effect.runIfDirty.bind(effect);
6121
+ job.id = instance.uid;
6122
+ effect.scheduler = () => queueJob(job);
6099
6123
  toggleRecurse(instance, true);
6100
6124
  {
6101
6125
  effect.onTrack = instance.rtc ? (e) => shared.invokeArrayFns(instance.rtc, e) : void 0;
6102
6126
  effect.onTrigger = instance.rtg ? (e) => shared.invokeArrayFns(instance.rtg, e) : void 0;
6103
- update.ownerInstance = instance;
6127
+ job.ownerInstance = instance;
6104
6128
  }
6105
6129
  update();
6106
6130
  };
@@ -6567,13 +6591,13 @@ function baseCreateRenderer(options, createHydrationFns) {
6567
6591
  if (instance.type.__hmrId) {
6568
6592
  unregisterHMR(instance);
6569
6593
  }
6570
- const { bum, scope, update, subTree, um } = instance;
6594
+ const { bum, scope, job, subTree, um } = instance;
6571
6595
  if (bum) {
6572
6596
  shared.invokeArrayFns(bum);
6573
6597
  }
6574
6598
  scope.stop();
6575
- if (update) {
6576
- update.active = false;
6599
+ if (job) {
6600
+ job.flags |= 8;
6577
6601
  unmount(subTree, instance, parentSuspense, doRemove);
6578
6602
  }
6579
6603
  if (um) {
@@ -6659,8 +6683,14 @@ function baseCreateRenderer(options, createHydrationFns) {
6659
6683
  function resolveChildrenNamespace({ type, props }, currentNamespace) {
6660
6684
  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
6661
6685
  }
6662
- function toggleRecurse({ effect, update }, allowed) {
6663
- effect.allowRecurse = update.allowRecurse = allowed;
6686
+ function toggleRecurse({ effect, job }, allowed) {
6687
+ if (allowed) {
6688
+ effect.flags |= 32;
6689
+ job.flags |= 4;
6690
+ } else {
6691
+ effect.flags &= ~32;
6692
+ job.flags &= ~4;
6693
+ }
6664
6694
  }
6665
6695
  function needTransition(parentSuspense, transition) {
6666
6696
  return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;
@@ -7218,8 +7248,8 @@ function guardReactiveProps(props) {
7218
7248
  return null;
7219
7249
  return reactivity.isProxy(props) || isInternalObject(props) ? shared.extend({}, props) : props;
7220
7250
  }
7221
- function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {
7222
- const { props, ref, patchFlag, children, transition } = vnode;
7251
+ function cloneVNode(vnode, extraProps, mergeRef = false) {
7252
+ const { props, ref, patchFlag, children } = vnode;
7223
7253
  const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;
7224
7254
  const cloned = {
7225
7255
  __v_isVNode: true,
@@ -7249,7 +7279,7 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
7249
7279
  dynamicChildren: vnode.dynamicChildren,
7250
7280
  appContext: vnode.appContext,
7251
7281
  dirs: vnode.dirs,
7252
- transition,
7282
+ transition: vnode.transition,
7253
7283
  // These should technically only be non-null on mounted VNodes. However,
7254
7284
  // they *should* be copied for kept-alive vnodes. So we just always copy
7255
7285
  // them since them being non-null during a mount doesn't affect the logic as
@@ -7263,9 +7293,6 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
7263
7293
  ctx: vnode.ctx,
7264
7294
  ce: vnode.ce
7265
7295
  };
7266
- if (transition && cloneTransition) {
7267
- cloned.transition = transition.clone(cloned);
7268
- }
7269
7296
  return cloned;
7270
7297
  }
7271
7298
  function deepCloneVNode(vnode) {
@@ -7400,6 +7427,7 @@ function createComponentInstance(vnode, parent, suspense) {
7400
7427
  effect: null,
7401
7428
  update: null,
7402
7429
  // will be set synchronously right after creation
7430
+ job: null,
7403
7431
  scope: new reactivity.EffectScope(
7404
7432
  true
7405
7433
  /* detached */
@@ -7910,7 +7938,8 @@ function initCustomFormatter() {
7910
7938
  {},
7911
7939
  ["span", vueStyle, genRefFlag(obj)],
7912
7940
  "<",
7913
- formatValue(obj.value),
7941
+ // avoid debugger accessing value affecting behavior
7942
+ formatValue("_value" in obj ? obj._value : obj),
7914
7943
  `>`
7915
7944
  ];
7916
7945
  } else if (reactivity.isReactive(obj)) {
@@ -8090,7 +8119,7 @@ function isMemoSame(cached, memo) {
8090
8119
  return true;
8091
8120
  }
8092
8121
 
8093
- const version = "3.4.26";
8122
+ const version = "3.5.0-alpha.1";
8094
8123
  const warn = warn$1 ;
8095
8124
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8096
8125
  const devtools = devtools$1 ;