@vue/compat 3.5.30 → 3.5.31

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.
package/dist/vue.cjs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.30
2
+ * @vue/compat v3.5.31
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -2005,16 +2005,16 @@ function toRefs(object) {
2005
2005
  return ret;
2006
2006
  }
2007
2007
  class ObjectRefImpl {
2008
- constructor(_object, _key, _defaultValue) {
2008
+ constructor(_object, key, _defaultValue) {
2009
2009
  this._object = _object;
2010
- this._key = _key;
2011
2010
  this._defaultValue = _defaultValue;
2012
2011
  this["__v_isRef"] = true;
2013
2012
  this._value = void 0;
2013
+ this._key = isSymbol(key) ? key : String(key);
2014
2014
  this._raw = toRaw(_object);
2015
2015
  let shallow = true;
2016
2016
  let obj = _object;
2017
- if (!isArray(_object) || !isIntegerKey(String(_key))) {
2017
+ if (!isArray(_object) || isSymbol(this._key) || !isIntegerKey(this._key)) {
2018
2018
  do {
2019
2019
  shallow = !isProxy(obj) || isShallow(obj);
2020
2020
  } while (shallow && (obj = obj["__v_raw"]));
@@ -2814,6 +2814,13 @@ function checkRecursiveUpdates(seen, fn) {
2814
2814
  }
2815
2815
 
2816
2816
  let isHmrUpdating = false;
2817
+ const setHmrUpdating = (v) => {
2818
+ try {
2819
+ return isHmrUpdating;
2820
+ } finally {
2821
+ isHmrUpdating = v;
2822
+ }
2823
+ };
2817
2824
  const hmrDirtyComponents = /* @__PURE__ */ new Map();
2818
2825
  {
2819
2826
  getGlobalThis().__VUE_HMR_RUNTIME__ = {
@@ -3869,9 +3876,10 @@ const TeleportImpl = {
3869
3876
  mount(container, mainAnchor);
3870
3877
  updateCssVars(n2, true);
3871
3878
  }
3872
- if (isTeleportDeferred(n2.props)) {
3879
+ if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {
3873
3880
  n2.el.__isMounted = false;
3874
3881
  queuePostRenderEffect(() => {
3882
+ if (n2.el.__isMounted !== false) return;
3875
3883
  mountToTarget();
3876
3884
  delete n2.el.__isMounted;
3877
3885
  }, parentSuspense);
@@ -3879,7 +3887,12 @@ const TeleportImpl = {
3879
3887
  mountToTarget();
3880
3888
  }
3881
3889
  } else {
3882
- if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) {
3890
+ n2.el = n1.el;
3891
+ n2.targetStart = n1.targetStart;
3892
+ const mainAnchor = n2.anchor = n1.anchor;
3893
+ const target = n2.target = n1.target;
3894
+ const targetAnchor = n2.targetAnchor = n1.targetAnchor;
3895
+ if (n1.el.__isMounted === false) {
3883
3896
  queuePostRenderEffect(() => {
3884
3897
  TeleportImpl.process(
3885
3898
  n1,
@@ -3896,11 +3909,6 @@ const TeleportImpl = {
3896
3909
  }, parentSuspense);
3897
3910
  return;
3898
3911
  }
3899
- n2.el = n1.el;
3900
- n2.targetStart = n1.targetStart;
3901
- const mainAnchor = n2.anchor = n1.anchor;
3902
- const target = n2.target = n1.target;
3903
- const targetAnchor = n2.targetAnchor = n1.targetAnchor;
3904
3912
  const wasDisabled = isTeleportDisabled(n1.props);
3905
3913
  const currentContainer = wasDisabled ? container : target;
3906
3914
  const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
@@ -4366,7 +4374,7 @@ function resolveTransitionHooks(vnode, props, state, instance, postClone) {
4366
4374
  callHook(hook, [el]);
4367
4375
  },
4368
4376
  enter(el) {
4369
- if (leavingVNodesCache[key] === vnode) return;
4377
+ if (!isHmrUpdating && leavingVNodesCache[key] === vnode) return;
4370
4378
  let hook = onEnter;
4371
4379
  let afterHook = onAfterEnter;
4372
4380
  let cancelHook = onEnterCancelled;
@@ -7561,7 +7569,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7561
7569
  return vm;
7562
7570
  }
7563
7571
  }
7564
- Vue.version = `2.6.14-compat:${"3.5.30"}`;
7572
+ Vue.version = `2.6.14-compat:${"3.5.31"}`;
7565
7573
  Vue.config = singletonApp.config;
7566
7574
  Vue.use = (plugin, ...options) => {
7567
7575
  if (plugin && isFunction(plugin.install)) {
@@ -8720,11 +8728,12 @@ function hasPropValueChanged(nextProps, prevProps, key) {
8720
8728
  }
8721
8729
  return nextProp !== prevProp;
8722
8730
  }
8723
- function updateHOCHostEl({ vnode, parent }, el) {
8731
+ function updateHOCHostEl({ vnode, parent, suspense }, el) {
8724
8732
  while (parent) {
8725
8733
  const root = parent.subTree;
8726
8734
  if (root.suspense && root.suspense.activeBranch === vnode) {
8727
- root.el = vnode.el;
8735
+ root.suspense.vnode.el = root.el = el;
8736
+ vnode = root;
8728
8737
  }
8729
8738
  if (root === vnode) {
8730
8739
  (vnode = parent.vnode).el = el;
@@ -8733,6 +8742,9 @@ function updateHOCHostEl({ vnode, parent }, el) {
8733
8742
  break;
8734
8743
  }
8735
8744
  }
8745
+ if (suspense && suspense.activeBranch === vnode) {
8746
+ suspense.vnode.el = el;
8747
+ }
8736
8748
  }
8737
8749
 
8738
8750
  function createPropsDefaultThis(instance, rawProps, propKey) {
@@ -9646,10 +9658,17 @@ function baseCreateRenderer(options, createHydrationFns) {
9646
9658
  }
9647
9659
  hostInsert(el, container, anchor);
9648
9660
  if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {
9661
+ const isHmr = isHmrUpdating;
9649
9662
  queuePostRenderEffect(() => {
9650
- vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
9651
- needCallTransitionHooks && transition.enter(el);
9652
- dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
9663
+ let prev;
9664
+ prev = setHmrUpdating(isHmr);
9665
+ try {
9666
+ vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
9667
+ needCallTransitionHooks && transition.enter(el);
9668
+ dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
9669
+ } finally {
9670
+ setHmrUpdating(prev);
9671
+ }
9653
9672
  }, parentSuspense);
9654
9673
  }
9655
9674
  };
@@ -10595,7 +10614,8 @@ function baseCreateRenderer(options, createHydrationFns) {
10595
10614
  shapeFlag,
10596
10615
  patchFlag,
10597
10616
  dirs,
10598
- cacheIndex
10617
+ cacheIndex,
10618
+ memo
10599
10619
  } = vnode;
10600
10620
  if (patchFlag === -2) {
10601
10621
  optimized = false;
@@ -10657,10 +10677,14 @@ function baseCreateRenderer(options, createHydrationFns) {
10657
10677
  remove(vnode);
10658
10678
  }
10659
10679
  }
10660
- if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {
10680
+ const shouldInvalidateMemo = memo != null && cacheIndex == null;
10681
+ if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs || shouldInvalidateMemo) {
10661
10682
  queuePostRenderEffect(() => {
10662
10683
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
10663
10684
  shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
10685
+ if (shouldInvalidateMemo) {
10686
+ vnode.el = null;
10687
+ }
10664
10688
  }, parentSuspense);
10665
10689
  }
10666
10690
  };
@@ -11223,6 +11247,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11223
11247
  pendingId: suspenseId++,
11224
11248
  timeout: typeof timeout === "number" ? timeout : -1,
11225
11249
  activeBranch: null,
11250
+ isFallbackMountPending: false,
11226
11251
  pendingBranch: null,
11227
11252
  isInFallback: !isHydrating,
11228
11253
  isHydrating,
@@ -11272,7 +11297,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11272
11297
  }
11273
11298
  };
11274
11299
  }
11275
- if (activeBranch) {
11300
+ if (activeBranch && !suspense.isFallbackMountPending) {
11276
11301
  if (parentNode(activeBranch.el) === container2) {
11277
11302
  anchor = next(activeBranch);
11278
11303
  }
@@ -11285,6 +11310,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11285
11310
  move(pendingBranch, container2, anchor, 0);
11286
11311
  }
11287
11312
  }
11313
+ suspense.isFallbackMountPending = false;
11288
11314
  setActiveBranch(suspense, pendingBranch);
11289
11315
  suspense.pendingBranch = null;
11290
11316
  suspense.isInFallback = false;
@@ -11320,6 +11346,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11320
11346
  triggerEvent(vnode2, "onFallback");
11321
11347
  const anchor2 = next(activeBranch);
11322
11348
  const mountFallback = () => {
11349
+ suspense.isFallbackMountPending = false;
11323
11350
  if (!suspense.isInFallback) {
11324
11351
  return;
11325
11352
  }
@@ -11339,6 +11366,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
11339
11366
  };
11340
11367
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
11341
11368
  if (delayEnter) {
11369
+ suspense.isFallbackMountPending = true;
11342
11370
  activeBranch.transition.afterLeave = mountFallback;
11343
11371
  }
11344
11372
  suspense.isInFallback = true;
@@ -11956,6 +11984,10 @@ function mergeProps(...args) {
11956
11984
  const incoming = toMerge[key];
11957
11985
  if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {
11958
11986
  ret[key] = existing ? [].concat(existing, incoming) : incoming;
11987
+ } else if (incoming == null && existing == null && // mergeProps({ 'onUpdate:modelValue': undefined }) should not retain
11988
+ // the model listener.
11989
+ !isModelListener(key)) {
11990
+ ret[key] = incoming;
11959
11991
  }
11960
11992
  } else if (key !== "") {
11961
11993
  ret[key] = toMerge[key];
@@ -12652,7 +12684,7 @@ function isMemoSame(cached, memo) {
12652
12684
  return true;
12653
12685
  }
12654
12686
 
12655
- const version = "3.5.30";
12687
+ const version = "3.5.31";
12656
12688
  const warn = warn$1 ;
12657
12689
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12658
12690
  const devtools = devtools$1 ;
@@ -14272,7 +14304,8 @@ const vModelText = {
14272
14304
  if (elValue === newValue) {
14273
14305
  return;
14274
14306
  }
14275
- if (document.activeElement === el && el.type !== "range") {
14307
+ const rootNode = el.getRootNode();
14308
+ if ((rootNode instanceof Document || rootNode instanceof ShadowRoot) && rootNode.activeElement === el && el.type !== "range") {
14276
14309
  if (lazy && value === oldValue) {
14277
14310
  return;
14278
14311
  }
@@ -19604,7 +19637,7 @@ const transformFor = createStructuralDirectiveTransform(
19604
19637
  loop.body = createBlockStatement([
19605
19638
  createCompoundExpression([`const _memo = (`, memo.exp, `)`]),
19606
19639
  createCompoundExpression([
19607
- `if (_cached`,
19640
+ `if (_cached && _cached.el`,
19608
19641
  ...keyExp ? [` && _cached.key === `, keyExp] : [],
19609
19642
  ` && ${context.helperString(
19610
19643
  IS_MEMO_SAME
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.30
2
+ * @vue/compat v3.5.31
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -1784,16 +1784,16 @@ function toRefs(object) {
1784
1784
  return ret;
1785
1785
  }
1786
1786
  class ObjectRefImpl {
1787
- constructor(_object, _key, _defaultValue) {
1787
+ constructor(_object, key, _defaultValue) {
1788
1788
  this._object = _object;
1789
- this._key = _key;
1790
1789
  this._defaultValue = _defaultValue;
1791
1790
  this["__v_isRef"] = true;
1792
1791
  this._value = void 0;
1792
+ this._key = isSymbol(key) ? key : String(key);
1793
1793
  this._raw = toRaw(_object);
1794
1794
  let shallow = true;
1795
1795
  let obj = _object;
1796
- if (!isArray(_object) || !isIntegerKey(String(_key))) {
1796
+ if (!isArray(_object) || isSymbol(this._key) || !isIntegerKey(this._key)) {
1797
1797
  do {
1798
1798
  shallow = !isProxy(obj) || isShallow(obj);
1799
1799
  } while (shallow && (obj = obj["__v_raw"]));
@@ -2910,9 +2910,10 @@ const TeleportImpl = {
2910
2910
  mount(container, mainAnchor);
2911
2911
  updateCssVars(n2, true);
2912
2912
  }
2913
- if (isTeleportDeferred(n2.props)) {
2913
+ if (isTeleportDeferred(n2.props) || parentSuspense && parentSuspense.pendingBranch) {
2914
2914
  n2.el.__isMounted = false;
2915
2915
  queuePostRenderEffect(() => {
2916
+ if (n2.el.__isMounted !== false) return;
2916
2917
  mountToTarget();
2917
2918
  delete n2.el.__isMounted;
2918
2919
  }, parentSuspense);
@@ -2920,7 +2921,12 @@ const TeleportImpl = {
2920
2921
  mountToTarget();
2921
2922
  }
2922
2923
  } else {
2923
- if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) {
2924
+ n2.el = n1.el;
2925
+ n2.targetStart = n1.targetStart;
2926
+ const mainAnchor = n2.anchor = n1.anchor;
2927
+ const target = n2.target = n1.target;
2928
+ const targetAnchor = n2.targetAnchor = n1.targetAnchor;
2929
+ if (n1.el.__isMounted === false) {
2924
2930
  queuePostRenderEffect(() => {
2925
2931
  TeleportImpl.process(
2926
2932
  n1,
@@ -2937,11 +2943,6 @@ const TeleportImpl = {
2937
2943
  }, parentSuspense);
2938
2944
  return;
2939
2945
  }
2940
- n2.el = n1.el;
2941
- n2.targetStart = n1.targetStart;
2942
- const mainAnchor = n2.anchor = n1.anchor;
2943
- const target = n2.target = n1.target;
2944
- const targetAnchor = n2.targetAnchor = n1.targetAnchor;
2945
2946
  const wasDisabled = isTeleportDisabled(n1.props);
2946
2947
  const currentContainer = wasDisabled ? container : target;
2947
2948
  const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
@@ -6075,7 +6076,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6075
6076
  return vm;
6076
6077
  }
6077
6078
  }
6078
- Vue.version = `2.6.14-compat:${"3.5.30"}`;
6079
+ Vue.version = `2.6.14-compat:${"3.5.31"}`;
6079
6080
  Vue.config = singletonApp.config;
6080
6081
  Vue.use = (plugin, ...options) => {
6081
6082
  if (plugin && isFunction(plugin.install)) {
@@ -6975,11 +6976,12 @@ function hasPropValueChanged(nextProps, prevProps, key) {
6975
6976
  }
6976
6977
  return nextProp !== prevProp;
6977
6978
  }
6978
- function updateHOCHostEl({ vnode, parent }, el) {
6979
+ function updateHOCHostEl({ vnode, parent, suspense }, el) {
6979
6980
  while (parent) {
6980
6981
  const root = parent.subTree;
6981
6982
  if (root.suspense && root.suspense.activeBranch === vnode) {
6982
- root.el = vnode.el;
6983
+ root.suspense.vnode.el = root.el = el;
6984
+ vnode = root;
6983
6985
  }
6984
6986
  if (root === vnode) {
6985
6987
  (vnode = parent.vnode).el = el;
@@ -6988,6 +6990,9 @@ function updateHOCHostEl({ vnode, parent }, el) {
6988
6990
  break;
6989
6991
  }
6990
6992
  }
6993
+ if (suspense && suspense.activeBranch === vnode) {
6994
+ suspense.vnode.el = el;
6995
+ }
6991
6996
  }
6992
6997
 
6993
6998
  function createPropsDefaultThis(instance, rawProps, propKey) {
@@ -7685,9 +7690,12 @@ function baseCreateRenderer(options, createHydrationFns) {
7685
7690
  hostInsert(el, container, anchor);
7686
7691
  if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {
7687
7692
  queuePostRenderEffect(() => {
7688
- vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
7689
- needCallTransitionHooks && transition.enter(el);
7690
- dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
7693
+ try {
7694
+ vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
7695
+ needCallTransitionHooks && transition.enter(el);
7696
+ dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
7697
+ } finally {
7698
+ }
7691
7699
  }, parentSuspense);
7692
7700
  }
7693
7701
  };
@@ -8539,7 +8547,8 @@ function baseCreateRenderer(options, createHydrationFns) {
8539
8547
  shapeFlag,
8540
8548
  patchFlag,
8541
8549
  dirs,
8542
- cacheIndex
8550
+ cacheIndex,
8551
+ memo
8543
8552
  } = vnode;
8544
8553
  if (patchFlag === -2) {
8545
8554
  optimized = false;
@@ -8601,10 +8610,14 @@ function baseCreateRenderer(options, createHydrationFns) {
8601
8610
  remove(vnode);
8602
8611
  }
8603
8612
  }
8604
- if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {
8613
+ const shouldInvalidateMemo = memo != null && cacheIndex == null;
8614
+ if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs || shouldInvalidateMemo) {
8605
8615
  queuePostRenderEffect(() => {
8606
8616
  vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
8607
8617
  shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
8618
+ if (shouldInvalidateMemo) {
8619
+ vnode.el = null;
8620
+ }
8608
8621
  }, parentSuspense);
8609
8622
  }
8610
8623
  };
@@ -9140,6 +9153,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9140
9153
  pendingId: suspenseId++,
9141
9154
  timeout: typeof timeout === "number" ? timeout : -1,
9142
9155
  activeBranch: null,
9156
+ isFallbackMountPending: false,
9143
9157
  pendingBranch: null,
9144
9158
  isInFallback: !isHydrating,
9145
9159
  isHydrating,
@@ -9177,7 +9191,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9177
9191
  }
9178
9192
  };
9179
9193
  }
9180
- if (activeBranch) {
9194
+ if (activeBranch && !suspense.isFallbackMountPending) {
9181
9195
  if (parentNode(activeBranch.el) === container2) {
9182
9196
  anchor = next(activeBranch);
9183
9197
  }
@@ -9190,6 +9204,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9190
9204
  move(pendingBranch, container2, anchor, 0);
9191
9205
  }
9192
9206
  }
9207
+ suspense.isFallbackMountPending = false;
9193
9208
  setActiveBranch(suspense, pendingBranch);
9194
9209
  suspense.pendingBranch = null;
9195
9210
  suspense.isInFallback = false;
@@ -9225,6 +9240,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9225
9240
  triggerEvent(vnode2, "onFallback");
9226
9241
  const anchor2 = next(activeBranch);
9227
9242
  const mountFallback = () => {
9243
+ suspense.isFallbackMountPending = false;
9228
9244
  if (!suspense.isInFallback) {
9229
9245
  return;
9230
9246
  }
@@ -9244,6 +9260,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
9244
9260
  };
9245
9261
  const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
9246
9262
  if (delayEnter) {
9263
+ suspense.isFallbackMountPending = true;
9247
9264
  activeBranch.transition.afterLeave = mountFallback;
9248
9265
  }
9249
9266
  suspense.isInFallback = true;
@@ -9815,6 +9832,10 @@ function mergeProps(...args) {
9815
9832
  const incoming = toMerge[key];
9816
9833
  if (incoming && existing !== incoming && !(isArray(existing) && existing.includes(incoming))) {
9817
9834
  ret[key] = existing ? [].concat(existing, incoming) : incoming;
9835
+ } else if (incoming == null && existing == null && // mergeProps({ 'onUpdate:modelValue': undefined }) should not retain
9836
+ // the model listener.
9837
+ !isModelListener(key)) {
9838
+ ret[key] = incoming;
9818
9839
  }
9819
9840
  } else if (key !== "") {
9820
9841
  ret[key] = toMerge[key];
@@ -10190,7 +10211,7 @@ function isMemoSame(cached, memo) {
10190
10211
  return true;
10191
10212
  }
10192
10213
 
10193
- const version = "3.5.30";
10214
+ const version = "3.5.31";
10194
10215
  const warn$1 = NOOP;
10195
10216
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10196
10217
  const devtools = void 0;
@@ -11711,7 +11732,8 @@ const vModelText = {
11711
11732
  if (elValue === newValue) {
11712
11733
  return;
11713
11734
  }
11714
- if (document.activeElement === el && el.type !== "range") {
11735
+ const rootNode = el.getRootNode();
11736
+ if ((rootNode instanceof Document || rootNode instanceof ShadowRoot) && rootNode.activeElement === el && el.type !== "range") {
11715
11737
  if (lazy && value === oldValue) {
11716
11738
  return;
11717
11739
  }
@@ -16831,7 +16853,7 @@ const transformFor = createStructuralDirectiveTransform(
16831
16853
  loop.body = createBlockStatement([
16832
16854
  createCompoundExpression([`const _memo = (`, memo.exp, `)`]),
16833
16855
  createCompoundExpression([
16834
- `if (_cached`,
16856
+ `if (_cached && _cached.el`,
16835
16857
  ...keyExp ? [` && _cached.key === `, keyExp] : [],
16836
16858
  ` && ${context.helperString(
16837
16859
  IS_MEMO_SAME