@vue/compat 3.5.0-rc.1 → 3.5.0

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.5.0-rc.1
2
+ * @vue/compat v3.5.0
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
@@ -214,6 +214,14 @@ function isRenderableAttrValue(value) {
214
214
  return type === "string" || type === "number" || type === "boolean";
215
215
  }
216
216
 
217
+ const cssVarNameEscapeSymbolsRE = /[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g;
218
+ function getEscapedCssVarName(key, doubleEscape) {
219
+ return key.replace(
220
+ cssVarNameEscapeSymbolsRE,
221
+ (s) => `\\${s}`
222
+ );
223
+ }
224
+
217
225
  function looseCompareArrays(a, b) {
218
226
  if (a.length !== b.length) return false;
219
227
  let equal = true;
@@ -1073,7 +1081,7 @@ function apply(self, method, fn, thisArg, wrappedRetFn, args) {
1073
1081
  const needsWrap = arr !== self && !isShallow(self);
1074
1082
  const methodFn = arr[method];
1075
1083
  if (methodFn !== arrayProto[method]) {
1076
- const result2 = methodFn.apply(arr, args);
1084
+ const result2 = methodFn.apply(self, args);
1077
1085
  return needsWrap ? toReactive(result2) : result2;
1078
1086
  }
1079
1087
  let wrappedFn = fn;
@@ -4535,8 +4543,7 @@ Server rendered element contains more child nodes than client vdom.`
4535
4543
  const isText = vnode.type === Text;
4536
4544
  if (node) {
4537
4545
  if (isText && !optimized) {
4538
- let next = children[i + 1];
4539
- if (next && (next = normalizeVNode(next)).type === Text) {
4546
+ if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {
4540
4547
  insert(
4541
4548
  createText(
4542
4549
  node.data.slice(vnode.children.length)
@@ -4792,7 +4799,10 @@ function resolveCssVars(instance, vnode, expectedMap) {
4792
4799
  if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {
4793
4800
  const cssVars = instance.getCssVars();
4794
4801
  for (const key in cssVars) {
4795
- expectedMap.set(`--${key}`, String(cssVars[key]));
4802
+ expectedMap.set(
4803
+ `--${getEscapedCssVarName(key)}`,
4804
+ String(cssVars[key])
4805
+ );
4796
4806
  }
4797
4807
  }
4798
4808
  if (vnode === root && instance.parent) {
@@ -6975,7 +6985,7 @@ function createCompatVue$1(createApp, createSingletonApp) {
6975
6985
  return vm;
6976
6986
  }
6977
6987
  }
6978
- Vue.version = `2.6.14-compat:${"3.5.0-rc.1"}`;
6988
+ Vue.version = `2.6.14-compat:${"3.5.0"}`;
6979
6989
  Vue.config = singletonApp.config;
6980
6990
  Vue.use = (plugin, ...options) => {
6981
6991
  if (plugin && isFunction(plugin.install)) {
@@ -12111,7 +12121,7 @@ function isMemoSame(cached, memo) {
12111
12121
  return true;
12112
12122
  }
12113
12123
 
12114
- const version = "3.5.0-rc.1";
12124
+ const version = "3.5.0";
12115
12125
  const warn = warn$1 ;
12116
12126
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
12117
12127
  const devtools = devtools$1 ;
@@ -12819,7 +12829,11 @@ function patchDOMProp(el, key, value, parentComponent) {
12819
12829
  if (key === "value" && tag !== "PROGRESS" && // custom elements may use _value internally
12820
12830
  !tag.includes("-")) {
12821
12831
  const oldValue = tag === "OPTION" ? el.getAttribute("value") || "" : el.value;
12822
- const newValue = value == null ? "" : String(value);
12832
+ const newValue = value == null ? (
12833
+ // #11647: value should be set as empty string for null and undefined,
12834
+ // but <input type="checkbox"> should be set as 'on'.
12835
+ el.type === "checkbox" ? "on" : ""
12836
+ ) : String(value);
12823
12837
  if (oldValue !== newValue || !("_value" in el)) {
12824
12838
  el.value = newValue;
12825
12839
  }
@@ -13705,12 +13719,16 @@ const vModelCheckbox = {
13705
13719
  };
13706
13720
  function setChecked(el, { value, oldValue }, vnode) {
13707
13721
  el._modelValue = value;
13722
+ let checked;
13708
13723
  if (isArray(value)) {
13709
- el.checked = looseIndexOf(value, vnode.props.value) > -1;
13724
+ checked = looseIndexOf(value, vnode.props.value) > -1;
13710
13725
  } else if (isSet(value)) {
13711
- el.checked = value.has(vnode.props.value);
13712
- } else if (value !== oldValue) {
13713
- el.checked = looseEqual(value, getCheckboxValue(el, true));
13726
+ checked = value.has(vnode.props.value);
13727
+ } else {
13728
+ checked = looseEqual(value, getCheckboxValue(el, true));
13729
+ }
13730
+ if (el.checked !== checked) {
13731
+ el.checked = checked;
13714
13732
  }
13715
13733
  }
13716
13734
  const vModelRadio = {