@vue/compat 3.5.39 → 3.5.40

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.39
2
+ * @vue/compat v3.5.40
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -502,8 +502,9 @@ class EffectScope {
502
502
  this._isPaused = true;
503
503
  let i, l;
504
504
  if (this.scopes) {
505
- for (i = 0, l = this.scopes.length; i < l; i++) {
506
- this.scopes[i].pause();
505
+ const scopes = this.scopes.slice();
506
+ for (i = 0, l = scopes.length; i < l; i++) {
507
+ scopes[i].pause();
507
508
  }
508
509
  }
509
510
  for (i = 0, l = this.effects.length; i < l; i++) {
@@ -520,12 +521,14 @@ class EffectScope {
520
521
  this._isPaused = false;
521
522
  let i, l;
522
523
  if (this.scopes) {
523
- for (i = 0, l = this.scopes.length; i < l; i++) {
524
- this.scopes[i].resume();
524
+ const scopes = this.scopes.slice();
525
+ for (i = 0, l = scopes.length; i < l; i++) {
526
+ scopes[i].resume();
525
527
  }
526
528
  }
527
- for (i = 0, l = this.effects.length; i < l; i++) {
528
- this.effects[i].resume();
529
+ const effects = this.effects.slice();
530
+ for (i = 0, l = effects.length; i < l; i++) {
531
+ effects[i].resume();
529
532
  }
530
533
  }
531
534
  }
@@ -587,8 +590,9 @@ class EffectScope {
587
590
  }
588
591
  this.cleanups.length = 0;
589
592
  if (this.scopes) {
590
- for (i = 0, l = this.scopes.length; i < l; i++) {
591
- this.scopes[i].stop(true);
593
+ const scopes = this.scopes.slice();
594
+ for (i = 0, l = scopes.length; i < l; i++) {
595
+ scopes[i].stop(true);
592
596
  }
593
597
  this.scopes.length = 0;
594
598
  }
@@ -3510,10 +3514,12 @@ function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
3510
3514
  setBlockTracking(-1);
3511
3515
  }
3512
3516
  const prevInstance = setCurrentRenderingInstance(ctx);
3517
+ const prevStackSize = blockStack.length;
3513
3518
  let res;
3514
3519
  try {
3515
3520
  res = fn(...args);
3516
3521
  } finally {
3522
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
3517
3523
  setCurrentRenderingInstance(prevInstance);
3518
3524
  if (renderFnWithContext._d) {
3519
3525
  setBlockTracking(1);
@@ -4674,12 +4680,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
4674
4680
  }
4675
4681
  }
4676
4682
  if (isFunction(ref)) {
4677
- pauseTracking();
4678
- try {
4679
- callWithErrorHandling(ref, owner, 12, [value, refs]);
4680
- } finally {
4681
- resetTracking();
4682
- }
4683
+ callWithErrorHandling(ref, owner, 12, [value, refs]);
4683
4684
  } else {
4684
4685
  const _isString = isString(ref);
4685
4686
  const _isRef = isRef(ref);
@@ -5050,6 +5051,7 @@ Server rendered element contains more child nodes than client vdom.`
5050
5051
  if (props) {
5051
5052
  {
5052
5053
  const isCustomElement = el.tagName.includes("-");
5054
+ const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
5053
5055
  for (const key in props) {
5054
5056
  if (// #11189 skip if this node has directives that have created hooks
5055
5057
  // as it could have mutated the DOM in any possible way
@@ -5058,7 +5060,7 @@ Server rendered element contains more child nodes than client vdom.`
5058
5060
  }
5059
5061
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
5060
5062
  key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
5061
- patchProp(el, key, null, props[key], void 0, parentComponent);
5063
+ patchProp(el, key, null, props[key], namespace, parentComponent);
5062
5064
  }
5063
5065
  }
5064
5066
  }
@@ -5561,6 +5563,7 @@ function defineAsyncComponent(source) {
5561
5563
  name: "AsyncComponentWrapper",
5562
5564
  __asyncLoader: load,
5563
5565
  __asyncHydrate(el, instance, hydrate) {
5566
+ const wasConnected = el.isConnected;
5564
5567
  let patched = false;
5565
5568
  (instance.bu || (instance.bu = [])).push(() => patched = true);
5566
5569
  const performHydrate = () => {
@@ -5572,6 +5575,7 @@ function defineAsyncComponent(source) {
5572
5575
  }
5573
5576
  return;
5574
5577
  }
5578
+ if (!el.parentNode || wasConnected && !el.isConnected) return;
5575
5579
  hydrate();
5576
5580
  };
5577
5581
  const doHydrate = hydrateStrategy ? () => {
@@ -6418,14 +6422,15 @@ function createSlots(slots, dynamicSlots) {
6418
6422
  return slots;
6419
6423
  }
6420
6424
 
6421
- function renderSlot(slots, name, props = {}, fallback, noSlotted) {
6425
+ function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
6422
6426
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
6423
- const hasProps = Object.keys(props).length > 0;
6424
- if (name !== "default") props.name = name;
6427
+ const slotProps = branchKey != null && props.key == null ? extend({}, props, { key: branchKey }) : props;
6428
+ const hasProps = Object.keys(slotProps).length > 0;
6429
+ if (name !== "default") slotProps.name = name;
6425
6430
  return openBlock(), createBlock(
6426
6431
  Fragment,
6427
6432
  null,
6428
- [createVNode("slot", props, fallback && fallback())],
6433
+ [createVNode("slot", slotProps, fallback && fallback())],
6429
6434
  hasProps ? -2 : 64
6430
6435
  );
6431
6436
  }
@@ -6439,26 +6444,34 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted) {
6439
6444
  if (slot && slot._c) {
6440
6445
  slot._d = false;
6441
6446
  }
6447
+ const prevStackSize = blockStack.length;
6442
6448
  openBlock();
6443
- const validSlotContent = slot && ensureValidVNode(slot(props));
6444
- const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch
6445
- // key attached in the `createSlots` helper, respect that
6446
- validSlotContent && validSlotContent.key;
6447
- const rendered = createBlock(
6448
- Fragment,
6449
- {
6450
- key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
6451
- (!validSlotContent && fallback ? "_fb" : "")
6452
- },
6453
- validSlotContent || (fallback ? fallback() : []),
6454
- validSlotContent && slots._ === 1 ? 64 : -2
6455
- );
6449
+ let rendered;
6450
+ try {
6451
+ const validSlotContent = slot && ensureValidVNode(slot(props));
6452
+ const slotKey = props.key || branchKey || // slot content array of a dynamic conditional slot may have a branch
6453
+ // key attached in the `createSlots` helper, respect that
6454
+ validSlotContent && validSlotContent.key;
6455
+ rendered = createBlock(
6456
+ Fragment,
6457
+ {
6458
+ key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
6459
+ (!validSlotContent && fallback ? "_fb" : "")
6460
+ },
6461
+ validSlotContent || (fallback ? fallback() : []),
6462
+ validSlotContent && slots._ === 1 ? 64 : -2
6463
+ );
6464
+ } catch (err) {
6465
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
6466
+ throw err;
6467
+ } finally {
6468
+ if (slot && slot._c) {
6469
+ slot._d = true;
6470
+ }
6471
+ }
6456
6472
  if (!noSlotted && rendered.scopeId) {
6457
6473
  rendered.slotScopeIds = [rendered.scopeId + "-s"];
6458
6474
  }
6459
- if (slot && slot._c) {
6460
- slot._d = true;
6461
- }
6462
6475
  return rendered;
6463
6476
  }
6464
6477
  function ensureValidVNode(vnodes) {
@@ -7636,7 +7649,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
7636
7649
  return vm;
7637
7650
  }
7638
7651
  }
7639
- Vue.version = `2.6.14-compat:${"3.5.39"}`;
7652
+ Vue.version = `2.6.14-compat:${"3.5.40"}`;
7640
7653
  Vue.config = singletonApp.config;
7641
7654
  Vue.use = (plugin, ...options) => {
7642
7655
  if (plugin && isFunction(plugin.install)) {
@@ -12788,7 +12801,7 @@ function isMemoSame(cached, memo) {
12788
12801
  return true;
12789
12802
  }
12790
12803
 
12791
- const version = "3.5.39";
12804
+ const version = "3.5.40";
12792
12805
  const warn = warn$1 ;
12793
12806
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12794
12807
  const devtools = devtools$1 ;
@@ -14520,13 +14533,13 @@ const vModelSelect = {
14520
14533
  // <select multiple> value need to be deep traversed
14521
14534
  deep: true,
14522
14535
  created(el, { value, modifiers: { number } }, vnode) {
14523
- const isSetModel = isSet(value);
14536
+ el._modelValue = value;
14524
14537
  addEventListener(el, "change", () => {
14525
14538
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(
14526
14539
  (o) => number ? looseToNumber(getValue(o)) : getValue(o)
14527
14540
  );
14528
14541
  el[assignKey](
14529
- el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
14542
+ el.multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0]
14530
14543
  );
14531
14544
  el._assigning = true;
14532
14545
  nextTick(() => {
@@ -14540,7 +14553,8 @@ const vModelSelect = {
14540
14553
  mounted(el, { value }) {
14541
14554
  setSelected(el, value);
14542
14555
  },
14543
- beforeUpdate(el, _binding, vnode) {
14556
+ beforeUpdate(el, { value }, vnode) {
14557
+ el._modelValue = value;
14544
14558
  el[assignKey] = getModelAssigner(vnode);
14545
14559
  },
14546
14560
  updated(el, { value }) {
@@ -16908,6 +16922,9 @@ function getUnnormalizedProps(props, callPath = []) {
16908
16922
  return [props, callPath];
16909
16923
  }
16910
16924
  function injectProp(node, prop, context) {
16925
+ if (node.type !== 13 && injectSlotKey(node, prop)) {
16926
+ return;
16927
+ }
16911
16928
  let propsWithInjection;
16912
16929
  let props = node.type === 13 ? node.props : node.arguments[2];
16913
16930
  let callPath = [];
@@ -16965,6 +16982,24 @@ function injectProp(node, prop, context) {
16965
16982
  }
16966
16983
  }
16967
16984
  }
16985
+ function injectSlotKey(node, prop) {
16986
+ var _a, _b, _c;
16987
+ if (prop.key.type !== 4 || prop.key.content !== "key") {
16988
+ return false;
16989
+ }
16990
+ const props = node.arguments[2];
16991
+ if (props && !isString(props)) {
16992
+ const [unnormalizedProps] = getUnnormalizedProps(props);
16993
+ if (unnormalizedProps && !isString(unnormalizedProps) && unnormalizedProps.type === 15 && hasProp(prop, unnormalizedProps)) {
16994
+ return true;
16995
+ }
16996
+ }
16997
+ (_a = node.arguments)[2] || (_a[2] = "{}");
16998
+ (_b = node.arguments)[3] || (_b[3] = "undefined");
16999
+ (_c = node.arguments)[4] || (_c[4] = "undefined");
17000
+ node.arguments[5] = prop.value;
17001
+ return true;
17002
+ }
16968
17003
  function hasProp(prop, props) {
16969
17004
  let result = false;
16970
17005
  if (prop.key.type === 4) {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @vue/compat v3.5.39
2
+ * @vue/compat v3.5.40
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -401,8 +401,9 @@ class EffectScope {
401
401
  this._isPaused = true;
402
402
  let i, l;
403
403
  if (this.scopes) {
404
- for (i = 0, l = this.scopes.length; i < l; i++) {
405
- this.scopes[i].pause();
404
+ const scopes = this.scopes.slice();
405
+ for (i = 0, l = scopes.length; i < l; i++) {
406
+ scopes[i].pause();
406
407
  }
407
408
  }
408
409
  for (i = 0, l = this.effects.length; i < l; i++) {
@@ -419,12 +420,14 @@ class EffectScope {
419
420
  this._isPaused = false;
420
421
  let i, l;
421
422
  if (this.scopes) {
422
- for (i = 0, l = this.scopes.length; i < l; i++) {
423
- this.scopes[i].resume();
423
+ const scopes = this.scopes.slice();
424
+ for (i = 0, l = scopes.length; i < l; i++) {
425
+ scopes[i].resume();
424
426
  }
425
427
  }
426
- for (i = 0, l = this.effects.length; i < l; i++) {
427
- this.effects[i].resume();
428
+ const effects = this.effects.slice();
429
+ for (i = 0, l = effects.length; i < l; i++) {
430
+ effects[i].resume();
428
431
  }
429
432
  }
430
433
  }
@@ -484,8 +487,9 @@ class EffectScope {
484
487
  }
485
488
  this.cleanups.length = 0;
486
489
  if (this.scopes) {
487
- for (i = 0, l = this.scopes.length; i < l; i++) {
488
- this.scopes[i].stop(true);
490
+ const scopes = this.scopes.slice();
491
+ for (i = 0, l = scopes.length; i < l; i++) {
492
+ scopes[i].stop(true);
489
493
  }
490
494
  this.scopes.length = 0;
491
495
  }
@@ -2611,10 +2615,12 @@ function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
2611
2615
  setBlockTracking(-1);
2612
2616
  }
2613
2617
  const prevInstance = setCurrentRenderingInstance(ctx);
2618
+ const prevStackSize = blockStack.length;
2614
2619
  let res;
2615
2620
  try {
2616
2621
  res = fn(...args);
2617
2622
  } finally {
2623
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
2618
2624
  setCurrentRenderingInstance(prevInstance);
2619
2625
  if (renderFnWithContext._d) {
2620
2626
  setBlockTracking(1);
@@ -3663,12 +3669,7 @@ function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
3663
3669
  }
3664
3670
  }
3665
3671
  if (isFunction(ref)) {
3666
- pauseTracking();
3667
- try {
3668
- callWithErrorHandling(ref, owner, 12, [value, refs]);
3669
- } finally {
3670
- resetTracking();
3671
- }
3672
+ callWithErrorHandling(ref, owner, 12, [value, refs]);
3672
3673
  } else {
3673
3674
  const _isString = isString(ref);
3674
3675
  const _isRef = isRef(ref);
@@ -4005,10 +4006,11 @@ function createHydrationFunctions(rendererInternals) {
4005
4006
  if (props) {
4006
4007
  if (forcePatch || hasDynamicProps || !optimized || patchFlag & (16 | 32)) {
4007
4008
  const isCustomElement = el.tagName.includes("-");
4009
+ const namespace = el.namespaceURI.includes("svg") ? "svg" : el.namespaceURI.includes("MathML") ? "mathml" : void 0;
4008
4010
  for (const key in props) {
4009
4011
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
4010
4012
  key[0] === "." || isCustomElement && !isReservedProp(key) || dynamicProps && dynamicProps.includes(key)) {
4011
- patchProp(el, key, null, props[key], void 0, parentComponent);
4013
+ patchProp(el, key, null, props[key], namespace, parentComponent);
4012
4014
  }
4013
4015
  }
4014
4016
  } else if (props.onClick) {
@@ -4376,12 +4378,14 @@ function defineAsyncComponent(source) {
4376
4378
  name: "AsyncComponentWrapper",
4377
4379
  __asyncLoader: load,
4378
4380
  __asyncHydrate(el, instance, hydrate) {
4381
+ const wasConnected = el.isConnected;
4379
4382
  let patched = false;
4380
4383
  (instance.bu || (instance.bu = [])).push(() => patched = true);
4381
4384
  const performHydrate = () => {
4382
4385
  if (patched) {
4383
4386
  return;
4384
4387
  }
4388
+ if (!el.parentNode || wasConnected && !el.isConnected) return;
4385
4389
  hydrate();
4386
4390
  };
4387
4391
  const doHydrate = hydrateStrategy ? () => {
@@ -5197,14 +5201,15 @@ function createSlots(slots, dynamicSlots) {
5197
5201
  return slots;
5198
5202
  }
5199
5203
 
5200
- function renderSlot(slots, name, props = {}, fallback, noSlotted) {
5204
+ function renderSlot(slots, name, props = {}, fallback, noSlotted, branchKey) {
5201
5205
  if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {
5202
- const hasProps = Object.keys(props).length > 0;
5203
- if (name !== "default") props.name = name;
5206
+ const slotProps = branchKey != null && props.key == null ? extend$1({}, props, { key: branchKey }) : props;
5207
+ const hasProps = Object.keys(slotProps).length > 0;
5208
+ if (name !== "default") slotProps.name = name;
5204
5209
  return openBlock(), createBlock(
5205
5210
  Fragment,
5206
5211
  null,
5207
- [createVNode("slot", props, fallback && fallback())],
5212
+ [createVNode("slot", slotProps, fallback && fallback())],
5208
5213
  hasProps ? -2 : 64
5209
5214
  );
5210
5215
  }
@@ -5212,26 +5217,34 @@ function renderSlot(slots, name, props = {}, fallback, noSlotted) {
5212
5217
  if (slot && slot._c) {
5213
5218
  slot._d = false;
5214
5219
  }
5220
+ const prevStackSize = blockStack.length;
5215
5221
  openBlock();
5216
- const validSlotContent = slot && ensureValidVNode(slot(props));
5217
- const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch
5218
- // key attached in the `createSlots` helper, respect that
5219
- validSlotContent && validSlotContent.key;
5220
- const rendered = createBlock(
5221
- Fragment,
5222
- {
5223
- key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
5224
- (!validSlotContent && fallback ? "_fb" : "")
5225
- },
5226
- validSlotContent || (fallback ? fallback() : []),
5227
- validSlotContent && slots._ === 1 ? 64 : -2
5228
- );
5222
+ let rendered;
5223
+ try {
5224
+ const validSlotContent = slot && ensureValidVNode(slot(props));
5225
+ const slotKey = props.key || branchKey || // slot content array of a dynamic conditional slot may have a branch
5226
+ // key attached in the `createSlots` helper, respect that
5227
+ validSlotContent && validSlotContent.key;
5228
+ rendered = createBlock(
5229
+ Fragment,
5230
+ {
5231
+ key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content
5232
+ (!validSlotContent && fallback ? "_fb" : "")
5233
+ },
5234
+ validSlotContent || (fallback ? fallback() : []),
5235
+ validSlotContent && slots._ === 1 ? 64 : -2
5236
+ );
5237
+ } catch (err) {
5238
+ for (let i = blockStack.length; i > prevStackSize; i--) closeBlock();
5239
+ throw err;
5240
+ } finally {
5241
+ if (slot && slot._c) {
5242
+ slot._d = true;
5243
+ }
5244
+ }
5229
5245
  if (!noSlotted && rendered.scopeId) {
5230
5246
  rendered.slotScopeIds = [rendered.scopeId + "-s"];
5231
5247
  }
5232
- if (slot && slot._c) {
5233
- slot._d = true;
5234
- }
5235
5248
  return rendered;
5236
5249
  }
5237
5250
  function ensureValidVNode(vnodes) {
@@ -6156,7 +6169,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6156
6169
  return vm;
6157
6170
  }
6158
6171
  }
6159
- Vue.version = `2.6.14-compat:${"3.5.39"}`;
6172
+ Vue.version = `2.6.14-compat:${"3.5.40"}`;
6160
6173
  Vue.config = singletonApp.config;
6161
6174
  Vue.use = (plugin, ...options) => {
6162
6175
  if (plugin && isFunction(plugin.install)) {
@@ -10324,7 +10337,7 @@ function isMemoSame(cached, memo) {
10324
10337
  return true;
10325
10338
  }
10326
10339
 
10327
- const version = "3.5.39";
10340
+ const version = "3.5.40";
10328
10341
  const warn$1 = NOOP;
10329
10342
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
10330
10343
  const devtools = void 0;
@@ -11957,13 +11970,13 @@ const vModelSelect = {
11957
11970
  // <select multiple> value need to be deep traversed
11958
11971
  deep: true,
11959
11972
  created(el, { value, modifiers: { number } }, vnode) {
11960
- const isSetModel = isSet(value);
11973
+ el._modelValue = value;
11961
11974
  addEventListener(el, "change", () => {
11962
11975
  const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map(
11963
11976
  (o) => number ? looseToNumber(getValue(o)) : getValue(o)
11964
11977
  );
11965
11978
  el[assignKey](
11966
- el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
11979
+ el.multiple ? isSet(el._modelValue) ? new Set(selectedVal) : selectedVal : selectedVal[0]
11967
11980
  );
11968
11981
  el._assigning = true;
11969
11982
  nextTick(() => {
@@ -11977,7 +11990,8 @@ const vModelSelect = {
11977
11990
  mounted(el, { value }) {
11978
11991
  setSelected(el, value);
11979
11992
  },
11980
- beforeUpdate(el, _binding, vnode) {
11993
+ beforeUpdate(el, { value }, vnode) {
11994
+ el._modelValue = value;
11981
11995
  el[assignKey] = getModelAssigner(vnode);
11982
11996
  },
11983
11997
  updated(el, { value }) {
@@ -14216,6 +14230,9 @@ function getUnnormalizedProps(props, callPath = []) {
14216
14230
  return [props, callPath];
14217
14231
  }
14218
14232
  function injectProp(node, prop, context) {
14233
+ if (node.type !== 13 && injectSlotKey(node, prop)) {
14234
+ return;
14235
+ }
14219
14236
  let propsWithInjection;
14220
14237
  let props = node.type === 13 ? node.props : node.arguments[2];
14221
14238
  let callPath = [];
@@ -14273,6 +14290,24 @@ function injectProp(node, prop, context) {
14273
14290
  }
14274
14291
  }
14275
14292
  }
14293
+ function injectSlotKey(node, prop) {
14294
+ var _a, _b, _c;
14295
+ if (prop.key.type !== 4 || prop.key.content !== "key") {
14296
+ return false;
14297
+ }
14298
+ const props = node.arguments[2];
14299
+ if (props && !isString(props)) {
14300
+ const [unnormalizedProps] = getUnnormalizedProps(props);
14301
+ if (unnormalizedProps && !isString(unnormalizedProps) && unnormalizedProps.type === 15 && hasProp(prop, unnormalizedProps)) {
14302
+ return true;
14303
+ }
14304
+ }
14305
+ (_a = node.arguments)[2] || (_a[2] = "{}");
14306
+ (_b = node.arguments)[3] || (_b[3] = "undefined");
14307
+ (_c = node.arguments)[4] || (_c[4] = "undefined");
14308
+ node.arguments[5] = prop.value;
14309
+ return true;
14310
+ }
14276
14311
  function hasProp(prop, props) {
14277
14312
  let result = false;
14278
14313
  if (prop.key.type === 4) {