vue 3.3.0-beta.4 → 3.3.0-beta.5

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.
@@ -2607,7 +2607,7 @@ function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense
2607
2607
  );
2608
2608
  setActiveBranch(suspense, vnode.ssFallback);
2609
2609
  } else {
2610
- suspense.resolve();
2610
+ suspense.resolve(false, true);
2611
2611
  }
2612
2612
  }
2613
2613
  function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {
@@ -2766,7 +2766,6 @@ function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotSc
2766
2766
  }
2767
2767
  let hasWarned = false;
2768
2768
  function createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {
2769
- var _a;
2770
2769
  if (!hasWarned) {
2771
2770
  hasWarned = true;
2772
2771
  console[console.info ? "info" : "log"](
@@ -2781,10 +2780,10 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
2781
2780
  o: { parentNode, remove }
2782
2781
  } = rendererInternals;
2783
2782
  let parentSuspenseId;
2784
- const isSuspensible = ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;
2783
+ const isSuspensible = isVNodeSuspensible(vnode);
2785
2784
  if (isSuspensible) {
2786
2785
  if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {
2787
- parentSuspenseId = parentSuspense == null ? void 0 : parentSuspense.pendingId;
2786
+ parentSuspenseId = parentSuspense.pendingId;
2788
2787
  parentSuspense.deps++;
2789
2788
  }
2790
2789
  }
@@ -2809,7 +2808,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
2809
2808
  isHydrating,
2810
2809
  isUnmounted: false,
2811
2810
  effects: [],
2812
- resolve(resume = false) {
2811
+ resolve(resume = false, sync = false) {
2813
2812
  {
2814
2813
  if (!resume && !suspense.pendingBranch) {
2815
2814
  throw new Error(
@@ -2871,7 +2870,7 @@ function createSuspenseBoundary(vnode, parentSuspense, parentComponent, containe
2871
2870
  if (isSuspensible) {
2872
2871
  if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {
2873
2872
  parentSuspense.deps--;
2874
- if (parentSuspense.deps === 0) {
2873
+ if (parentSuspense.deps === 0 && !sync) {
2875
2874
  parentSuspense.resolve();
2876
2875
  }
2877
2876
  }
@@ -3081,6 +3080,10 @@ function setActiveBranch(suspense, branch) {
3081
3080
  updateHOCHostEl(parentComponent, el);
3082
3081
  }
3083
3082
  }
3083
+ function isVNodeSuspensible(vnode) {
3084
+ var _a;
3085
+ return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;
3086
+ }
3084
3087
 
3085
3088
  function watchEffect(effect, options) {
3086
3089
  return doWatch(effect, null, options);
@@ -3691,7 +3694,11 @@ function getTransitionRawChildren(children, keepComment = false, parentKey) {
3691
3694
  }
3692
3695
 
3693
3696
  function defineComponent(options, extraOptions) {
3694
- return isFunction(options) ? extend({}, extraOptions, { setup: options, name: options.name }) : options;
3697
+ return isFunction(options) ? (
3698
+ // #8326: extend call and options.name access are considered side-effects
3699
+ // by Rollup, so we have to wrap it in a pure-annotated IIFE.
3700
+ /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()
3701
+ ) : options;
3695
3702
  }
3696
3703
 
3697
3704
  const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
@@ -9086,7 +9093,7 @@ function isMemoSame(cached, memo) {
9086
9093
  return true;
9087
9094
  }
9088
9095
 
9089
- const version = "3.3.0-beta.4";
9096
+ const version = "3.3.0-beta.5";
9090
9097
  const ssrUtils = null;
9091
9098
  const resolveFilter = null;
9092
9099
  const compatUtils = null;
@@ -9278,14 +9285,13 @@ function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspe
9278
9285
  el[key] = value == null ? "" : value;
9279
9286
  return;
9280
9287
  }
9281
- if (key === "value" && el.tagName !== "PROGRESS" && // custom elements may use _value internally
9282
- !el.tagName.includes("-")) {
9288
+ const tag = el.tagName;
9289
+ if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
9290
+ !tag.includes("-")) {
9283
9291
  el._value = value;
9292
+ const oldValue = tag === "OPTION" ? el.getAttribute("value") : el.value;
9284
9293
  const newValue = value == null ? "" : value;
9285
- if (el.value !== newValue || // #4956: always set for OPTION elements because its value falls back to
9286
- // textContent if no value attribute is present. And setting .value for
9287
- // OPTION has no side effect
9288
- el.tagName === "OPTION") {
9294
+ if (oldValue !== newValue) {
9289
9295
  el.value = newValue;
9290
9296
  }
9291
9297
  if (value == null) {
@@ -9311,7 +9317,7 @@ function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspe
9311
9317
  } catch (e) {
9312
9318
  if (!needRemove) {
9313
9319
  warn(
9314
- `Failed setting prop "${key}" on <${el.tagName.toLowerCase()}>: value ${value} is invalid.`,
9320
+ `Failed setting prop "${key}" on <${tag.toLowerCase()}>: value ${value} is invalid.`,
9315
9321
  e
9316
9322
  );
9317
9323
  }
@@ -10524,7 +10530,7 @@ function injectCompilerOptionsCheck(app) {
10524
10530
  const msg = `The \`compilerOptions\` config option is only respected when using a build of Vue.js that includes the runtime compiler (aka "full build"). Since you are using the runtime-only build, \`compilerOptions\` must be passed to \`@vue/compiler-dom\` in the build setup instead.
10525
10531
  - For vue-loader: pass it via vue-loader's \`compilerOptions\` loader option.
10526
10532
  - For vue-cli: see https://cli.vuejs.org/guide/webpack.html#modifying-options-of-a-loader
10527
- - For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-dom`;
10533
+ - For vite: pass it via @vitejs/plugin-vue options. See https://github.com/vitejs/vite-plugin-vue/tree/main/packages/plugin-vue#example-for-passing-options-to-vuecompiler-sfc`;
10528
10534
  Object.defineProperty(app.config, "compilerOptions", {
10529
10535
  get() {
10530
10536
  warn(msg);