@vue/compat 3.4.14 → 3.4.16

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/compat v3.4.14
2
+ * @vue/compat v3.4.16
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -265,6 +265,13 @@ const isKnownHtmlAttr = /* @__PURE__ */ makeMap(
265
265
  const isKnownSvgAttr = /* @__PURE__ */ makeMap(
266
266
  `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`
267
267
  );
268
+ function isRenderableAttrValue(value) {
269
+ if (value == null) {
270
+ return false;
271
+ }
272
+ const type = typeof value;
273
+ return type === "string" || type === "number" || type === "boolean";
274
+ }
268
275
 
269
276
  function looseCompareArrays(a, b) {
270
277
  if (a.length !== b.length)
@@ -465,7 +472,7 @@ class ReactiveEffect {
465
472
  /**
466
473
  * @internal
467
474
  */
468
- this._dirtyLevel = 2;
475
+ this._dirtyLevel = 4;
469
476
  /**
470
477
  * @internal
471
478
  */
@@ -485,26 +492,27 @@ class ReactiveEffect {
485
492
  recordEffectScope(this, scope);
486
493
  }
487
494
  get dirty() {
488
- if (this._dirtyLevel === 1) {
495
+ if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {
496
+ this._dirtyLevel = 1;
489
497
  pauseTracking();
490
498
  for (let i = 0; i < this._depsLength; i++) {
491
499
  const dep = this.deps[i];
492
500
  if (dep.computed) {
493
501
  triggerComputed(dep.computed);
494
- if (this._dirtyLevel >= 2) {
502
+ if (this._dirtyLevel >= 4) {
495
503
  break;
496
504
  }
497
505
  }
498
506
  }
499
- if (this._dirtyLevel < 2) {
507
+ if (this._dirtyLevel === 1) {
500
508
  this._dirtyLevel = 0;
501
509
  }
502
510
  resetTracking();
503
511
  }
504
- return this._dirtyLevel >= 2;
512
+ return this._dirtyLevel >= 4;
505
513
  }
506
514
  set dirty(v) {
507
- this._dirtyLevel = v ? 2 : 0;
515
+ this._dirtyLevel = v ? 4 : 0;
508
516
  }
509
517
  run() {
510
518
  this._dirtyLevel = 0;
@@ -544,7 +552,7 @@ function preCleanupEffect(effect2) {
544
552
  effect2._depsLength = 0;
545
553
  }
546
554
  function postCleanupEffect(effect2) {
547
- if (effect2.deps && effect2.deps.length > effect2._depsLength) {
555
+ if (effect2.deps.length > effect2._depsLength) {
548
556
  for (let i = effect2._depsLength; i < effect2.deps.length; i++) {
549
557
  cleanupDepEffect(effect2.deps[i], effect2);
550
558
  }
@@ -627,24 +635,23 @@ function triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {
627
635
  var _a;
628
636
  pauseScheduling();
629
637
  for (const effect2 of dep.keys()) {
630
- if (dep.get(effect2) !== effect2._trackId) {
631
- continue;
632
- }
633
- if (effect2._dirtyLevel < dirtyLevel && !(effect2._runnings && !effect2.allowRecurse)) {
634
- const lastDirtyLevel = effect2._dirtyLevel;
638
+ let tracking;
639
+ if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
640
+ effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);
635
641
  effect2._dirtyLevel = dirtyLevel;
636
- if (lastDirtyLevel === 0) {
637
- effect2._shouldSchedule = true;
638
- {
639
- (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
642
+ }
643
+ if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {
644
+ {
645
+ (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));
646
+ }
647
+ effect2.trigger();
648
+ if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {
649
+ effect2._shouldSchedule = false;
650
+ if (effect2.scheduler) {
651
+ queueEffectSchedulers.push(effect2.scheduler);
640
652
  }
641
- effect2.trigger();
642
653
  }
643
654
  }
644
- if (effect2.scheduler && effect2._shouldSchedule && (!effect2._runnings || effect2.allowRecurse)) {
645
- effect2._shouldSchedule = false;
646
- queueEffectSchedulers.push(effect2.scheduler);
647
- }
648
655
  }
649
656
  resetScheduling();
650
657
  }
@@ -730,7 +737,7 @@ function trigger(target, type, key, newValue, oldValue, oldTarget) {
730
737
  if (dep) {
731
738
  triggerEffects(
732
739
  dep,
733
- 2,
740
+ 4,
734
741
  {
735
742
  target,
736
743
  type,
@@ -1315,7 +1322,9 @@ function toRaw(observed) {
1315
1322
  return raw ? toRaw(raw) : observed;
1316
1323
  }
1317
1324
  function markRaw(value) {
1318
- def(value, "__v_skip", true);
1325
+ if (Object.isExtensible(value)) {
1326
+ def(value, "__v_skip", true);
1327
+ }
1319
1328
  return value;
1320
1329
  }
1321
1330
  const toReactive = (value) => isObject(value) ? reactive(value) : value;
@@ -1329,7 +1338,10 @@ class ComputedRefImpl {
1329
1338
  this["__v_isReadonly"] = false;
1330
1339
  this.effect = new ReactiveEffect(
1331
1340
  () => getter(this._value),
1332
- () => triggerRefValue(this, 1)
1341
+ () => triggerRefValue(
1342
+ this,
1343
+ this.effect._dirtyLevel === 2 ? 2 : 3
1344
+ )
1333
1345
  );
1334
1346
  this.effect.computed = this;
1335
1347
  this.effect.active = this._cacheable = !isSSR;
@@ -1337,12 +1349,13 @@ class ComputedRefImpl {
1337
1349
  }
1338
1350
  get value() {
1339
1351
  const self = toRaw(this);
1340
- if (!self._cacheable || self.effect.dirty) {
1341
- if (hasChanged(self._value, self._value = self.effect.run())) {
1342
- triggerRefValue(self, 2);
1343
- }
1352
+ if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {
1353
+ triggerRefValue(self, 4);
1344
1354
  }
1345
1355
  trackRefValue(self);
1356
+ if (self.effect._dirtyLevel >= 2) {
1357
+ triggerRefValue(self, 2);
1358
+ }
1346
1359
  return self._value;
1347
1360
  }
1348
1361
  set value(newValue) {
@@ -1379,14 +1392,15 @@ function computed$1(getterOrOptions, debugOptions, isSSR = false) {
1379
1392
  }
1380
1393
 
1381
1394
  function trackRefValue(ref2) {
1395
+ var _a;
1382
1396
  if (shouldTrack && activeEffect) {
1383
1397
  ref2 = toRaw(ref2);
1384
1398
  trackEffect(
1385
1399
  activeEffect,
1386
- ref2.dep || (ref2.dep = createDep(
1400
+ (_a = ref2.dep) != null ? _a : ref2.dep = createDep(
1387
1401
  () => ref2.dep = void 0,
1388
1402
  ref2 instanceof ComputedRefImpl ? ref2 : void 0
1389
- )),
1403
+ ),
1390
1404
  {
1391
1405
  target: ref2,
1392
1406
  type: "get",
@@ -1395,7 +1409,7 @@ function trackRefValue(ref2) {
1395
1409
  );
1396
1410
  }
1397
1411
  }
1398
- function triggerRefValue(ref2, dirtyLevel = 2, newVal) {
1412
+ function triggerRefValue(ref2, dirtyLevel = 4, newVal) {
1399
1413
  ref2 = toRaw(ref2);
1400
1414
  const dep = ref2.dep;
1401
1415
  if (dep) {
@@ -1444,12 +1458,12 @@ class RefImpl {
1444
1458
  if (hasChanged(newVal, this._rawValue)) {
1445
1459
  this._rawValue = newVal;
1446
1460
  this._value = useDirectValue ? newVal : toReactive(newVal);
1447
- triggerRefValue(this, 2, newVal);
1461
+ triggerRefValue(this, 4, newVal);
1448
1462
  }
1449
1463
  }
1450
1464
  }
1451
1465
  function triggerRef(ref2) {
1452
- triggerRefValue(ref2, 2, ref2.value );
1466
+ triggerRefValue(ref2, 4, ref2.value );
1453
1467
  }
1454
1468
  function unref(ref2) {
1455
1469
  return isRef(ref2) ? ref2.value : ref2;
@@ -6488,7 +6502,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6488
6502
  return vm;
6489
6503
  }
6490
6504
  }
6491
- Vue.version = `2.6.14-compat:${"3.4.14"}`;
6505
+ Vue.version = `2.6.14-compat:${"3.4.16"}`;
6492
6506
  Vue.config = singletonApp.config;
6493
6507
  Vue.use = (p, ...options) => {
6494
6508
  if (p && isFunction(p.install)) {
@@ -7033,11 +7047,12 @@ If you want to remount the same app, move your app creation logic into a factory
7033
7047
  return app;
7034
7048
  },
7035
7049
  runWithContext(fn) {
7050
+ const lastApp = currentApp;
7036
7051
  currentApp = app;
7037
7052
  try {
7038
7053
  return fn();
7039
7054
  } finally {
7040
- currentApp = null;
7055
+ currentApp = lastApp;
7041
7056
  }
7042
7057
  }
7043
7058
  };
@@ -7557,7 +7572,7 @@ const normalizeSlot = (key, rawSlot, ctx) => {
7557
7572
  return rawSlot;
7558
7573
  }
7559
7574
  const normalized = withCtx((...args) => {
7560
- if (currentInstance) {
7575
+ if (currentInstance && (!ctx || ctx.root === currentInstance.root)) {
7561
7576
  warn$1(
7562
7577
  `Slot "${key}" invoked outside of the render function: this will not track dependencies used in the slot. Invoke the slot function inside the render function instead.`
7563
7578
  );
@@ -8033,7 +8048,7 @@ Server rendered element contains more child nodes than client vdom.`
8033
8048
  if (props) {
8034
8049
  {
8035
8050
  for (const key in props) {
8036
- if (propHasMismatch(el, key, props[key], vnode)) {
8051
+ if (propHasMismatch(el, key, props[key], vnode, parentComponent)) {
8037
8052
  hasMismatch = true;
8038
8053
  }
8039
8054
  if (forcePatch && (key.endsWith("value") || key === "indeterminate") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers
@@ -8208,7 +8223,8 @@ Server rendered element contains fewer child nodes than client vdom.`
8208
8223
  };
8209
8224
  return [hydrate, hydrateNode];
8210
8225
  }
8211
- function propHasMismatch(el, key, clientValue, vnode) {
8226
+ function propHasMismatch(el, key, clientValue, vnode, instance) {
8227
+ var _a;
8212
8228
  let mismatchType;
8213
8229
  let mismatchKey;
8214
8230
  let actual;
@@ -8231,6 +8247,10 @@ function propHasMismatch(el, key, clientValue, vnode) {
8231
8247
  }
8232
8248
  }
8233
8249
  }
8250
+ const cssVars = (_a = instance == null ? void 0 : instance.getCssVars) == null ? void 0 : _a.call(instance);
8251
+ for (const key2 in cssVars) {
8252
+ expectedMap.set(`--${key2}`, String(cssVars[key2]));
8253
+ }
8234
8254
  if (!isMapEqual(actualMap, expectedMap)) {
8235
8255
  mismatchType = mismatchKey = "style";
8236
8256
  }
@@ -8244,11 +8264,12 @@ function propHasMismatch(el, key, clientValue, vnode) {
8244
8264
  } else {
8245
8265
  if (el.hasAttribute(key)) {
8246
8266
  actual = el.getAttribute(key);
8267
+ } else if (key === "value" && el.tagName === "TEXTAREA") {
8268
+ actual = el.value;
8247
8269
  } else {
8248
- const serverValue = el[key];
8249
- actual = isObject(serverValue) || serverValue == null ? "" : String(serverValue);
8270
+ actual = false;
8250
8271
  }
8251
- expected = isObject(clientValue) || clientValue == null ? "" : String(clientValue);
8272
+ expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;
8252
8273
  }
8253
8274
  if (actual !== expected) {
8254
8275
  mismatchType = `attribute`;
@@ -11303,7 +11324,7 @@ function isMemoSame(cached, memo) {
11303
11324
  return true;
11304
11325
  }
11305
11326
 
11306
- const version = "3.4.14";
11327
+ const version = "3.4.16";
11307
11328
  const warn = warn$1 ;
11308
11329
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
11309
11330
  const devtools = devtools$1 ;
@@ -11724,7 +11745,7 @@ const vShow = {
11724
11745
  }
11725
11746
  },
11726
11747
  updated(el, { value, oldValue }, { transition }) {
11727
- if (!value === !oldValue)
11748
+ if (!value === !oldValue && el.style.display === el[vShowOldKey])
11728
11749
  return;
11729
11750
  if (transition) {
11730
11751
  if (value) {
@@ -11763,6 +11784,9 @@ function useCssVars(getter) {
11763
11784
  document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)
11764
11785
  ).forEach((node) => setVarsOnNode(node, vars));
11765
11786
  };
11787
+ {
11788
+ instance.getCssVars = () => getter(instance.proxy);
11789
+ }
11766
11790
  const setVars = () => {
11767
11791
  const vars = getter(instance.proxy);
11768
11792
  setVarsOnVNode(instance.subTree, vars);
@@ -11843,6 +11867,7 @@ function patchStyle(el, prev, next) {
11843
11867
  }
11844
11868
  }
11845
11869
  if (vShowOldKey in el) {
11870
+ el[vShowOldKey] = style.display;
11846
11871
  style.display = currentDisplay;
11847
11872
  }
11848
11873
  }
@@ -12662,24 +12687,31 @@ const vModelSelect = {
12662
12687
  el[assignKey](
12663
12688
  el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]
12664
12689
  );
12690
+ el._assigning = true;
12691
+ nextTick(() => {
12692
+ el._assigning = false;
12693
+ });
12665
12694
  });
12666
12695
  el[assignKey] = getModelAssigner(vnode);
12667
12696
  },
12668
12697
  // set value in mounted & updated because <select> relies on its children
12669
12698
  // <option>s.
12670
- mounted(el, { value }) {
12671
- setSelected(el, value);
12699
+ mounted(el, { value, oldValue, modifiers: { number } }) {
12700
+ setSelected(el, value, oldValue, number);
12672
12701
  },
12673
12702
  beforeUpdate(el, _binding, vnode) {
12674
12703
  el[assignKey] = getModelAssigner(vnode);
12675
12704
  },
12676
- updated(el, { value }) {
12677
- setSelected(el, value);
12705
+ updated(el, { value, oldValue, modifiers: { number } }) {
12706
+ if (!el._assigning) {
12707
+ setSelected(el, value, oldValue, number);
12708
+ }
12678
12709
  }
12679
12710
  };
12680
- function setSelected(el, value) {
12711
+ function setSelected(el, value, oldValue, number) {
12681
12712
  const isMultiple = el.multiple;
12682
- if (isMultiple && !isArray(value) && !isSet(value)) {
12713
+ const isArrayValue = isArray(value);
12714
+ if (isMultiple && !isArrayValue && !isSet(value)) {
12683
12715
  warn(
12684
12716
  `<select multiple v-model> expects an Array or Set value for its binding, but got ${Object.prototype.toString.call(value).slice(8, -1)}.`
12685
12717
  );
@@ -12689,8 +12721,15 @@ function setSelected(el, value) {
12689
12721
  const option = el.options[i];
12690
12722
  const optionValue = getValue(option);
12691
12723
  if (isMultiple) {
12692
- if (isArray(value)) {
12693
- option.selected = looseIndexOf(value, optionValue) > -1;
12724
+ if (isArrayValue) {
12725
+ const optionType = typeof optionValue;
12726
+ if (optionType === "string" || optionType === "number") {
12727
+ option.selected = value.includes(
12728
+ number ? looseToNumber(optionValue) : optionValue
12729
+ );
12730
+ } else {
12731
+ option.selected = looseIndexOf(value, optionValue) > -1;
12732
+ }
12694
12733
  } else {
12695
12734
  option.selected = value.has(optionValue);
12696
12735
  }
@@ -14322,6 +14361,7 @@ const errorMessages = {
14322
14361
  [32]: `v-for has invalid expression.`,
14323
14362
  [33]: `<template v-for> key should be placed on the <template> tag.`,
14324
14363
  [34]: `v-bind is missing expression.`,
14364
+ [52]: `v-bind with same-name shorthand only allows static argument.`,
14325
14365
  [35]: `v-on is missing expression.`,
14326
14366
  [36]: `Unexpected custom directive on <slot> outlet.`,
14327
14367
  [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`,
@@ -14342,7 +14382,7 @@ Use a v-bind binding combined with a v-on listener that emits update:x event ins
14342
14382
  [49]: `"cacheHandlers" option is only supported when the "prefixIdentifiers" option is enabled.`,
14343
14383
  [50]: `"scopeId" option is only supported in module mode.`,
14344
14384
  // just to fulfill types
14345
- [52]: ``
14385
+ [53]: ``
14346
14386
  };
14347
14387
 
14348
14388
  const isStaticExp = (p) => p.type === 4 && p.isStatic;
@@ -15937,8 +15977,7 @@ function generate(ast, options = {}) {
15937
15977
  const helpers = Array.from(ast.helpers);
15938
15978
  const hasHelpers = helpers.length > 0;
15939
15979
  const useWithBlock = !prefixIdentifiers && mode !== "module";
15940
- const isSetupInlined = false;
15941
- const preambleContext = isSetupInlined ? createCodegenContext(ast, options) : context;
15980
+ const preambleContext = context;
15942
15981
  {
15943
15982
  genFunctionPreamble(ast, preambleContext);
15944
15983
  }
@@ -16006,7 +16045,7 @@ function generate(ast, options = {}) {
16006
16045
  return {
16007
16046
  ast,
16008
16047
  code: context.code,
16009
- preamble: isSetupInlined ? preambleContext.code : ``,
16048
+ preamble: ``,
16010
16049
  map: context.map ? context.map.toJSON() : void 0
16011
16050
  };
16012
16051
  }
@@ -17764,8 +17803,12 @@ function processSlotOutlet(node, context) {
17764
17803
  }
17765
17804
  } else {
17766
17805
  if (p.name === "bind" && isStaticArgOf(p.arg, "name")) {
17767
- if (p.exp)
17806
+ if (p.exp) {
17768
17807
  slotName = p.exp;
17808
+ } else if (p.arg && p.arg.type === 4) {
17809
+ const name = camelize(p.arg.content);
17810
+ slotName = p.exp = createSimpleExpression(name, false, p.arg.loc);
17811
+ }
17769
17812
  } else {
17770
17813
  if (p.name === "bind" && p.arg && isStaticExp(p.arg)) {
17771
17814
  p.arg.content = camelize(p.arg.content);
@@ -17883,7 +17926,25 @@ const transformBind = (dir, _node, context) => {
17883
17926
  const { modifiers, loc } = dir;
17884
17927
  const arg = dir.arg;
17885
17928
  let { exp } = dir;
17886
- if (!exp && arg.type === 4) {
17929
+ if (exp && exp.type === 4 && !exp.content.trim()) {
17930
+ {
17931
+ exp = void 0;
17932
+ }
17933
+ }
17934
+ if (!exp) {
17935
+ if (arg.type !== 4 || !arg.isStatic) {
17936
+ context.onError(
17937
+ createCompilerError(
17938
+ 52,
17939
+ arg.loc
17940
+ )
17941
+ );
17942
+ return {
17943
+ props: [
17944
+ createObjectProperty(arg, createSimpleExpression("", true, loc))
17945
+ ]
17946
+ };
17947
+ }
17887
17948
  const propName = camelize(arg.content);
17888
17949
  exp = dir.exp = createSimpleExpression(propName, false, arg.loc);
17889
17950
  }
@@ -17913,12 +17974,6 @@ const transformBind = (dir, _node, context) => {
17913
17974
  injectPrefix(arg, "^");
17914
17975
  }
17915
17976
  }
17916
- if (!exp || exp.type === 4 && !exp.content.trim()) {
17917
- context.onError(createCompilerError(34, loc));
17918
- return {
17919
- props: [createObjectProperty(arg, createSimpleExpression("", true, loc))]
17920
- };
17921
- }
17922
17977
  return {
17923
17978
  props: [createObjectProperty(arg, exp)]
17924
17979
  };