@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,9 +1,9 @@
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
  **/
6
- import { pauseTracking, resetTracking, isRef, toRaw, shallowReadonly, isShallow, isReactive, ReactiveEffect, getCurrentScope, ref, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, customRef, isReadonly } from '@vue/reactivity';
6
+ import { pauseTracking, resetTracking, isRef, toRaw, shallowReadonly, isShallow, isReactive, ReactiveEffect, getCurrentScope, ref, shallowReadArray, toReactive, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, customRef, isReadonly } from '@vue/reactivity';
7
7
  export { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';
8
8
  import { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, isReservedProp, EMPTY_ARR, toRawType, makeMap, def, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue } from '@vue/shared';
9
9
  export { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';
@@ -292,7 +292,7 @@ function findInsertionIndex(id) {
292
292
  const middle = start + end >>> 1;
293
293
  const middleJob = queue[middle];
294
294
  const middleJobId = getId(middleJob);
295
- if (middleJobId < id || middleJobId === id && middleJob.pre) {
295
+ if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {
296
296
  start = middle + 1;
297
297
  } else {
298
298
  end = middle;
@@ -301,15 +301,21 @@ function findInsertionIndex(id) {
301
301
  return start;
302
302
  }
303
303
  function queueJob(job) {
304
- if (!queue.length || !queue.includes(
305
- job,
306
- isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex
307
- )) {
304
+ var _a;
305
+ if (!(job.flags & 1)) {
308
306
  if (job.id == null) {
309
307
  queue.push(job);
308
+ } else if (
309
+ // fast path when the job id is larger than the tail
310
+ !(job.flags & 2) && job.id >= (((_a = queue[queue.length - 1]) == null ? void 0 : _a.id) || 0)
311
+ ) {
312
+ queue.push(job);
310
313
  } else {
311
314
  queue.splice(findInsertionIndex(job.id), 0, job);
312
315
  }
316
+ if (!(job.flags & 4)) {
317
+ job.flags |= 1;
318
+ }
313
319
  queueFlush();
314
320
  }
315
321
  }
@@ -327,11 +333,11 @@ function invalidateJob(job) {
327
333
  }
328
334
  function queuePostFlushCb(cb) {
329
335
  if (!isArray(cb)) {
330
- if (!activePostFlushCbs || !activePostFlushCbs.includes(
331
- cb,
332
- cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex
333
- )) {
336
+ if (!(cb.flags & 1)) {
334
337
  pendingPostFlushCbs.push(cb);
338
+ if (!(cb.flags & 4)) {
339
+ cb.flags |= 1;
340
+ }
335
341
  }
336
342
  } else {
337
343
  pendingPostFlushCbs.push(...cb);
@@ -344,7 +350,7 @@ function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
344
350
  }
345
351
  for (; i < queue.length; i++) {
346
352
  const cb = queue[i];
347
- if (cb && cb.pre) {
353
+ if (cb && cb.flags & 2) {
348
354
  if (instance && cb.id !== instance.uid) {
349
355
  continue;
350
356
  }
@@ -354,6 +360,7 @@ function flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {
354
360
  queue.splice(i, 1);
355
361
  i--;
356
362
  cb();
363
+ cb.flags &= ~1;
357
364
  }
358
365
  }
359
366
  }
@@ -376,6 +383,7 @@ function flushPostFlushCbs(seen) {
376
383
  continue;
377
384
  }
378
385
  activePostFlushCbs[postFlushIndex]();
386
+ activePostFlushCbs[postFlushIndex].flags &= ~1;
379
387
  }
380
388
  activePostFlushCbs = null;
381
389
  postFlushIndex = 0;
@@ -385,9 +393,11 @@ const getId = (job) => job.id == null ? Infinity : job.id;
385
393
  const comparator = (a, b) => {
386
394
  const diff = getId(a) - getId(b);
387
395
  if (diff === 0) {
388
- if (a.pre && !b.pre)
396
+ const isAPre = a.flags & 2;
397
+ const isBPre = b.flags & 2;
398
+ if (isAPre && !isBPre)
389
399
  return -1;
390
- if (b.pre && !a.pre)
400
+ if (isBPre && !isAPre)
391
401
  return 1;
392
402
  }
393
403
  return diff;
@@ -403,11 +413,12 @@ function flushJobs(seen) {
403
413
  try {
404
414
  for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {
405
415
  const job = queue[flushIndex];
406
- if (job && job.active !== false) {
416
+ if (job && !(job.flags & 8)) {
407
417
  if (!!(process.env.NODE_ENV !== "production") && check(job)) {
408
418
  continue;
409
419
  }
410
420
  callWithErrorHandling(job, null, 14);
421
+ job.flags &= ~1;
411
422
  }
412
423
  }
413
424
  } finally {
@@ -489,7 +500,6 @@ function rerender(id, newRender) {
489
500
  }
490
501
  instance.renderCache = [];
491
502
  isHmrUpdating = true;
492
- instance.effect.dirty = true;
493
503
  instance.update();
494
504
  isHmrUpdating = false;
495
505
  });
@@ -517,7 +527,6 @@ function reload(id, newComp) {
517
527
  instance.ceReload(newComp.styles);
518
528
  hmrDirtyComponents.delete(oldComp);
519
529
  } else if (instance.parent) {
520
- instance.parent.effect.dirty = true;
521
530
  queueJob(instance.parent.update);
522
531
  } else if (instance.appContext.reload) {
523
532
  instance.appContext.reload();
@@ -906,7 +915,7 @@ function renderComponentRoot(instance) {
906
915
  !!(process.env.NODE_ENV !== "production") ? {
907
916
  get attrs() {
908
917
  markAttrsAccessed();
909
- return shallowReadonly(attrs);
918
+ return attrs;
910
919
  },
911
920
  slots,
912
921
  emit
@@ -939,7 +948,7 @@ function renderComponentRoot(instance) {
939
948
  propsOptions
940
949
  );
941
950
  }
942
- root = cloneVNode(root, fallthroughAttrs, false, true);
951
+ root = cloneVNode(root, fallthroughAttrs);
943
952
  } else if (!!(process.env.NODE_ENV !== "production") && !accessedAttrs && root.type !== Comment) {
944
953
  const allAttrs = Object.keys(attrs);
945
954
  const eventAttrs = [];
@@ -973,7 +982,7 @@ function renderComponentRoot(instance) {
973
982
  `Runtime directive used on component with non-element root node. The directives will not function as intended.`
974
983
  );
975
984
  }
976
- root = cloneVNode(root, null, false, true);
985
+ root = cloneVNode(root);
977
986
  root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
978
987
  }
979
988
  if (vnode.transition) {
@@ -1464,7 +1473,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
1464
1473
  let parentSuspenseId;
1465
1474
  const isSuspensible = isVNodeSuspensible(vnode);
1466
1475
  if (isSuspensible) {
1467
- if (parentSuspense && parentSuspense.pendingBranch) {
1476
+ if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {
1468
1477
  parentSuspenseId = parentSuspense.pendingId;
1469
1478
  parentSuspense.deps++;
1470
1479
  }
@@ -1776,8 +1785,8 @@ function setActiveBranch(suspense, branch) {
1776
1785
  }
1777
1786
  }
1778
1787
  function isVNodeSuspensible(vnode) {
1779
- const suspensible = vnode.props && vnode.props.suspensible;
1780
- return suspensible != null && suspensible !== false;
1788
+ var _a;
1789
+ return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;
1781
1790
  }
1782
1791
 
1783
1792
  const ssrContextKey = Symbol.for("v-scx");
@@ -1942,8 +1951,8 @@ function doWatch(source, cb, {
1942
1951
  }
1943
1952
  }
1944
1953
  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
1945
- const job = () => {
1946
- if (!effect.active || !effect.dirty) {
1954
+ const job = (immediateFirstRun) => {
1955
+ if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {
1947
1956
  return;
1948
1957
  }
1949
1958
  if (cb) {
@@ -1964,19 +1973,22 @@ function doWatch(source, cb, {
1964
1973
  effect.run();
1965
1974
  }
1966
1975
  };
1967
- job.allowRecurse = !!cb;
1976
+ if (cb)
1977
+ job.flags |= 4;
1978
+ const effect = new ReactiveEffect(getter);
1968
1979
  let scheduler;
1969
1980
  if (flush === "sync") {
1981
+ effect.flags |= 64;
1970
1982
  scheduler = job;
1971
1983
  } else if (flush === "post") {
1972
1984
  scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);
1973
1985
  } else {
1974
- job.pre = true;
1986
+ job.flags |= 2;
1975
1987
  if (instance)
1976
1988
  job.id = instance.uid;
1977
1989
  scheduler = () => queueJob(job);
1978
1990
  }
1979
- const effect = new ReactiveEffect(getter, NOOP, scheduler);
1991
+ effect.scheduler = scheduler;
1980
1992
  const scope = getCurrentScope();
1981
1993
  const unwatch = () => {
1982
1994
  effect.stop();
@@ -1990,7 +2002,7 @@ function doWatch(source, cb, {
1990
2002
  }
1991
2003
  if (cb) {
1992
2004
  if (immediate) {
1993
- job();
2005
+ job(true);
1994
2006
  } else {
1995
2007
  oldValue = effect.run();
1996
2008
  }
@@ -2031,29 +2043,34 @@ function createPathGetter(ctx, path) {
2031
2043
  return cur;
2032
2044
  };
2033
2045
  }
2034
- function traverse(value, depth = Infinity, seen) {
2035
- if (depth <= 0 || !isObject(value) || value["__v_skip"]) {
2046
+ function traverse(value, depth, currentDepth = 0, seen) {
2047
+ if (!isObject(value) || value["__v_skip"]) {
2036
2048
  return value;
2037
2049
  }
2050
+ if (depth && depth > 0) {
2051
+ if (currentDepth >= depth) {
2052
+ return value;
2053
+ }
2054
+ currentDepth++;
2055
+ }
2038
2056
  seen = seen || /* @__PURE__ */ new Set();
2039
2057
  if (seen.has(value)) {
2040
2058
  return value;
2041
2059
  }
2042
2060
  seen.add(value);
2043
- depth--;
2044
2061
  if (isRef(value)) {
2045
- traverse(value.value, depth, seen);
2062
+ traverse(value.value, depth, currentDepth, seen);
2046
2063
  } else if (isArray(value)) {
2047
2064
  for (let i = 0; i < value.length; i++) {
2048
- traverse(value[i], depth, seen);
2065
+ traverse(value[i], depth, currentDepth, seen);
2049
2066
  }
2050
2067
  } else if (isSet(value) || isMap(value)) {
2051
2068
  value.forEach((v) => {
2052
- traverse(v, depth, seen);
2069
+ traverse(v, depth, currentDepth, seen);
2053
2070
  });
2054
2071
  } else if (isPlainObject(value)) {
2055
2072
  for (const key in value) {
2056
- traverse(value[key], depth, seen);
2073
+ traverse(value[key], depth, currentDepth, seen);
2057
2074
  }
2058
2075
  }
2059
2076
  return value;
@@ -2166,24 +2183,7 @@ const BaseTransitionImpl = {
2166
2183
  if (!children || !children.length) {
2167
2184
  return;
2168
2185
  }
2169
- let child = children[0];
2170
- if (children.length > 1) {
2171
- let hasFound = false;
2172
- for (const c of children) {
2173
- if (c.type !== Comment) {
2174
- if (!!(process.env.NODE_ENV !== "production") && hasFound) {
2175
- warn$1(
2176
- "<transition> can only be used on a single element or component. Use <transition-group> for lists."
2177
- );
2178
- break;
2179
- }
2180
- child = c;
2181
- hasFound = true;
2182
- if (!!!(process.env.NODE_ENV !== "production"))
2183
- break;
2184
- }
2185
- }
2186
- }
2186
+ const child = findNonCommentChild(children);
2187
2187
  const rawProps = toRaw(props);
2188
2188
  const { mode } = rawProps;
2189
2189
  if (!!(process.env.NODE_ENV !== "production") && mode && mode !== "in-out" && mode !== "out-in" && mode !== "default") {
@@ -2192,7 +2192,7 @@ const BaseTransitionImpl = {
2192
2192
  if (state.isLeaving) {
2193
2193
  return emptyPlaceholder(child);
2194
2194
  }
2195
- const innerChild = getKeepAliveChild(child);
2195
+ const innerChild = getInnerChild$1(child);
2196
2196
  if (!innerChild) {
2197
2197
  return emptyPlaceholder(child);
2198
2198
  }
@@ -2204,7 +2204,7 @@ const BaseTransitionImpl = {
2204
2204
  );
2205
2205
  setTransitionHooks(innerChild, enterHooks);
2206
2206
  const oldChild = instance.subTree;
2207
- const oldInnerChild = oldChild && getKeepAliveChild(oldChild);
2207
+ const oldInnerChild = oldChild && getInnerChild$1(oldChild);
2208
2208
  if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild)) {
2209
2209
  const leavingHooks = resolveTransitionHooks(
2210
2210
  oldInnerChild,
@@ -2213,12 +2213,11 @@ const BaseTransitionImpl = {
2213
2213
  instance
2214
2214
  );
2215
2215
  setTransitionHooks(oldInnerChild, leavingHooks);
2216
- if (mode === "out-in" && innerChild.type !== Comment) {
2216
+ if (mode === "out-in") {
2217
2217
  state.isLeaving = true;
2218
2218
  leavingHooks.afterLeave = () => {
2219
2219
  state.isLeaving = false;
2220
- if (instance.update.active !== false) {
2221
- instance.effect.dirty = true;
2220
+ if (!(instance.job.flags & 8)) {
2222
2221
  instance.update();
2223
2222
  }
2224
2223
  };
@@ -2243,6 +2242,27 @@ const BaseTransitionImpl = {
2243
2242
  };
2244
2243
  }
2245
2244
  };
2245
+ function findNonCommentChild(children) {
2246
+ let child = children[0];
2247
+ if (children.length > 1) {
2248
+ let hasFound = false;
2249
+ for (const c of children) {
2250
+ if (c.type !== Comment) {
2251
+ if (!!(process.env.NODE_ENV !== "production") && hasFound) {
2252
+ warn$1(
2253
+ "<transition> can only be used on a single element or component. Use <transition-group> for lists."
2254
+ );
2255
+ break;
2256
+ }
2257
+ child = c;
2258
+ hasFound = true;
2259
+ if (!!!(process.env.NODE_ENV !== "production"))
2260
+ break;
2261
+ }
2262
+ }
2263
+ }
2264
+ return child;
2265
+ }
2246
2266
  const BaseTransition = BaseTransitionImpl;
2247
2267
  function getLeavingNodesForType(state, vnode) {
2248
2268
  const { leavingVNodes } = state;
@@ -2397,8 +2417,11 @@ function emptyPlaceholder(vnode) {
2397
2417
  return vnode;
2398
2418
  }
2399
2419
  }
2400
- function getKeepAliveChild(vnode) {
2420
+ function getInnerChild$1(vnode) {
2401
2421
  if (!isKeepAlive(vnode)) {
2422
+ if (isTeleport(vnode.type) && vnode.children) {
2423
+ return findNonCommentChild(vnode.children);
2424
+ }
2402
2425
  return vnode;
2403
2426
  }
2404
2427
  if (!!(process.env.NODE_ENV !== "production") && vnode.component) {
@@ -2567,7 +2590,6 @@ function defineAsyncComponent(source) {
2567
2590
  load().then(() => {
2568
2591
  loaded.value = true;
2569
2592
  if (instance.parent && isKeepAlive(instance.parent.vnode)) {
2570
- instance.parent.effect.dirty = true;
2571
2593
  queueJob(instance.parent.update);
2572
2594
  }
2573
2595
  }).catch((err) => {
@@ -2734,7 +2756,7 @@ const KeepAliveImpl = {
2734
2756
  return () => {
2735
2757
  pendingCacheKey = null;
2736
2758
  if (!slots.default) {
2737
- return null;
2759
+ return current = null;
2738
2760
  }
2739
2761
  const children = slots.default();
2740
2762
  const rawVNode = children[0];
@@ -2898,10 +2920,20 @@ function onErrorCaptured(hook, target = currentInstance) {
2898
2920
  function renderList(source, renderItem, cache, index) {
2899
2921
  let ret;
2900
2922
  const cached = cache && cache[index];
2901
- if (isArray(source) || isString(source)) {
2923
+ const sourceIsArray = isArray(source);
2924
+ const sourceIsReactiveArray = sourceIsArray && isReactive(source);
2925
+ if (sourceIsArray || isString(source)) {
2926
+ if (sourceIsReactiveArray) {
2927
+ source = shallowReadArray(source);
2928
+ }
2902
2929
  ret = new Array(source.length);
2903
2930
  for (let i = 0, l = source.length; i < l; i++) {
2904
- ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);
2931
+ ret[i] = renderItem(
2932
+ sourceIsReactiveArray ? toReactive(source[i]) : source[i],
2933
+ i,
2934
+ void 0,
2935
+ cached && cached[i]
2936
+ );
2905
2937
  }
2906
2938
  } else if (typeof source === "number") {
2907
2939
  if (!!(process.env.NODE_ENV !== "production") && !Number.isInteger(source)) {
@@ -3036,7 +3068,6 @@ const publicPropertiesMap = (
3036
3068
  $emit: (i) => i.emit,
3037
3069
  $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,
3038
3070
  $forceUpdate: (i) => i.f || (i.f = () => {
3039
- i.effect.dirty = true;
3040
3071
  queueJob(i.update);
3041
3072
  }),
3042
3073
  $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),
@@ -4373,7 +4404,9 @@ const isSimpleType = /* @__PURE__ */ makeMap(
4373
4404
  function assertType(value, type) {
4374
4405
  let valid;
4375
4406
  const expectedType = getType(type);
4376
- if (isSimpleType(expectedType)) {
4407
+ if (expectedType === "null") {
4408
+ valid = value === null;
4409
+ } else if (isSimpleType(expectedType)) {
4377
4410
  const t = typeof value;
4378
4411
  valid = t === expectedType.toLowerCase();
4379
4412
  if (!valid && t === "object") {
@@ -4383,8 +4416,6 @@ function assertType(value, type) {
4383
4416
  valid = isObject(value);
4384
4417
  } else if (expectedType === "Array") {
4385
4418
  valid = isArray(value);
4386
- } else if (expectedType === "null") {
4387
- valid = value === null;
4388
4419
  } else {
4389
4420
  valid = value instanceof type;
4390
4421
  }
@@ -4479,7 +4510,7 @@ const initSlots = (instance, children) => {
4479
4510
  const type = children._;
4480
4511
  if (type) {
4481
4512
  extend(slots, children);
4482
- def(slots, "_", type, true);
4513
+ def(slots, "_", type);
4483
4514
  } else {
4484
4515
  normalizeObjectSlots(children, slots);
4485
4516
  }
@@ -5956,7 +5987,6 @@ function baseCreateRenderer(options, createHydrationFns) {
5956
5987
  } else {
5957
5988
  instance.next = n2;
5958
5989
  invalidateJob(instance.update);
5959
- instance.effect.dirty = true;
5960
5990
  instance.update();
5961
5991
  }
5962
5992
  } else {
@@ -6139,24 +6169,18 @@ function baseCreateRenderer(options, createHydrationFns) {
6139
6169
  }
6140
6170
  }
6141
6171
  };
6142
- const effect = instance.effect = new ReactiveEffect(
6143
- componentUpdateFn,
6144
- NOOP,
6145
- () => queueJob(update),
6146
- instance.scope
6147
- // track it in component's effect scope
6148
- );
6149
- const update = instance.update = () => {
6150
- if (effect.dirty) {
6151
- effect.run();
6152
- }
6153
- };
6154
- update.id = instance.uid;
6172
+ instance.scope.on();
6173
+ const effect = instance.effect = new ReactiveEffect(componentUpdateFn);
6174
+ instance.scope.off();
6175
+ const update = instance.update = effect.run.bind(effect);
6176
+ const job = instance.job = effect.runIfDirty.bind(effect);
6177
+ job.id = instance.uid;
6178
+ effect.scheduler = () => queueJob(job);
6155
6179
  toggleRecurse(instance, true);
6156
6180
  if (!!(process.env.NODE_ENV !== "production")) {
6157
6181
  effect.onTrack = instance.rtc ? (e) => invokeArrayFns(instance.rtc, e) : void 0;
6158
6182
  effect.onTrigger = instance.rtg ? (e) => invokeArrayFns(instance.rtg, e) : void 0;
6159
- update.ownerInstance = instance;
6183
+ job.ownerInstance = instance;
6160
6184
  }
6161
6185
  update();
6162
6186
  };
@@ -6623,13 +6647,13 @@ function baseCreateRenderer(options, createHydrationFns) {
6623
6647
  if (!!(process.env.NODE_ENV !== "production") && instance.type.__hmrId) {
6624
6648
  unregisterHMR(instance);
6625
6649
  }
6626
- const { bum, scope, update, subTree, um } = instance;
6650
+ const { bum, scope, job, subTree, um } = instance;
6627
6651
  if (bum) {
6628
6652
  invokeArrayFns(bum);
6629
6653
  }
6630
6654
  scope.stop();
6631
- if (update) {
6632
- update.active = false;
6655
+ if (job) {
6656
+ job.flags |= 8;
6633
6657
  unmount(subTree, instance, parentSuspense, doRemove);
6634
6658
  }
6635
6659
  if (um) {
@@ -6715,8 +6739,14 @@ function baseCreateRenderer(options, createHydrationFns) {
6715
6739
  function resolveChildrenNamespace({ type, props }, currentNamespace) {
6716
6740
  return currentNamespace === "svg" && type === "foreignObject" || currentNamespace === "mathml" && type === "annotation-xml" && props && props.encoding && props.encoding.includes("html") ? void 0 : currentNamespace;
6717
6741
  }
6718
- function toggleRecurse({ effect, update }, allowed) {
6719
- effect.allowRecurse = update.allowRecurse = allowed;
6742
+ function toggleRecurse({ effect, job }, allowed) {
6743
+ if (allowed) {
6744
+ effect.flags |= 32;
6745
+ job.flags |= 4;
6746
+ } else {
6747
+ effect.flags &= ~32;
6748
+ job.flags &= ~4;
6749
+ }
6720
6750
  }
6721
6751
  function needTransition(parentSuspense, transition) {
6722
6752
  return (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;
@@ -7274,8 +7304,8 @@ function guardReactiveProps(props) {
7274
7304
  return null;
7275
7305
  return isProxy(props) || isInternalObject(props) ? extend({}, props) : props;
7276
7306
  }
7277
- function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false) {
7278
- const { props, ref, patchFlag, children, transition } = vnode;
7307
+ function cloneVNode(vnode, extraProps, mergeRef = false) {
7308
+ const { props, ref, patchFlag, children } = vnode;
7279
7309
  const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;
7280
7310
  const cloned = {
7281
7311
  __v_isVNode: true,
@@ -7305,7 +7335,7 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
7305
7335
  dynamicChildren: vnode.dynamicChildren,
7306
7336
  appContext: vnode.appContext,
7307
7337
  dirs: vnode.dirs,
7308
- transition,
7338
+ transition: vnode.transition,
7309
7339
  // These should technically only be non-null on mounted VNodes. However,
7310
7340
  // they *should* be copied for kept-alive vnodes. So we just always copy
7311
7341
  // them since them being non-null during a mount doesn't affect the logic as
@@ -7319,9 +7349,6 @@ function cloneVNode(vnode, extraProps, mergeRef = false, cloneTransition = false
7319
7349
  ctx: vnode.ctx,
7320
7350
  ce: vnode.ce
7321
7351
  };
7322
- if (transition && cloneTransition) {
7323
- cloned.transition = transition.clone(cloned);
7324
- }
7325
7352
  return cloned;
7326
7353
  }
7327
7354
  function deepCloneVNode(vnode) {
@@ -7456,6 +7483,7 @@ function createComponentInstance(vnode, parent, suspense) {
7456
7483
  effect: null,
7457
7484
  update: null,
7458
7485
  // will be set synchronously right after creation
7486
+ job: null,
7459
7487
  scope: new EffectScope(
7460
7488
  true
7461
7489
  /* detached */
@@ -7980,7 +8008,8 @@ function initCustomFormatter() {
7980
8008
  {},
7981
8009
  ["span", vueStyle, genRefFlag(obj)],
7982
8010
  "<",
7983
- formatValue(obj.value),
8011
+ // avoid debugger accessing value affecting behavior
8012
+ formatValue("_value" in obj ? obj._value : obj),
7984
8013
  `>`
7985
8014
  ];
7986
8015
  } else if (isReactive(obj)) {
@@ -8160,7 +8189,7 @@ function isMemoSame(cached, memo) {
8160
8189
  return true;
8161
8190
  }
8162
8191
 
8163
- const version = "3.4.26";
8192
+ const version = "3.5.0-alpha.1";
8164
8193
  const warn = !!(process.env.NODE_ENV !== "production") ? warn$1 : NOOP;
8165
8194
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8166
8195
  const devtools = !!(process.env.NODE_ENV !== "production") || true ? devtools$1 : void 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue/runtime-core",
3
- "version": "3.4.26",
3
+ "version": "3.5.0-alpha.1",
4
4
  "description": "@vue/runtime-core",
5
5
  "main": "index.js",
6
6
  "module": "dist/runtime-core.esm-bundler.js",
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme",
48
48
  "dependencies": {
49
- "@vue/shared": "3.4.26",
50
- "@vue/reactivity": "3.4.26"
49
+ "@vue/shared": "3.5.0-alpha.1",
50
+ "@vue/reactivity": "3.5.0-alpha.1"
51
51
  }
52
52
  }