@vue/runtime-core 3.4.0-beta.3 → 3.4.0-rc.1

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.
@@ -412,8 +412,10 @@ function checkRecursiveUpdates(seen, fn) {
412
412
  if (count > RECURSION_LIMIT) {
413
413
  const instance = fn.ownerInstance;
414
414
  const componentName = instance && getComponentName(instance.type);
415
- warn(
416
- `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`
415
+ handleError(
416
+ `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,
417
+ null,
418
+ 10
417
419
  );
418
420
  return true;
419
421
  } else {
@@ -5053,9 +5055,9 @@ function propHasMismatch(el, key, clientValue) {
5053
5055
  let actual;
5054
5056
  let expected;
5055
5057
  if (key === "class") {
5056
- actual = el.className;
5057
- expected = shared.normalizeClass(clientValue);
5058
- if (actual !== expected) {
5058
+ actual = toClassSet(el.getAttribute("class") || "");
5059
+ expected = toClassSet(shared.normalizeClass(clientValue));
5060
+ if (!isSetEqual(actual, expected)) {
5059
5061
  mismatchType = mismatchKey = `class`;
5060
5062
  }
5061
5063
  } else if (key === "style") {
@@ -5087,6 +5089,20 @@ function propHasMismatch(el, key, clientValue) {
5087
5089
  }
5088
5090
  return false;
5089
5091
  }
5092
+ function toClassSet(str) {
5093
+ return new Set(str.trim().split(/\s+/));
5094
+ }
5095
+ function isSetEqual(a, b) {
5096
+ if (a.size !== b.size) {
5097
+ return false;
5098
+ }
5099
+ for (const s of a) {
5100
+ if (!b.has(s)) {
5101
+ return false;
5102
+ }
5103
+ }
5104
+ return true;
5105
+ }
5090
5106
 
5091
5107
  let supported;
5092
5108
  let perf;
@@ -7943,7 +7959,7 @@ function isMemoSame(cached, memo) {
7943
7959
  return true;
7944
7960
  }
7945
7961
 
7946
- const version = "3.4.0-beta.3";
7962
+ const version = "3.4.0-rc.1";
7947
7963
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
7948
7964
  const _ssrUtils = {
7949
7965
  createComponentInstance,
@@ -6232,7 +6232,7 @@ function isMemoSame(cached, memo) {
6232
6232
  return true;
6233
6233
  }
6234
6234
 
6235
- const version = "3.4.0-beta.3";
6235
+ const version = "3.4.0-rc.1";
6236
6236
  const ErrorTypeStrings = null;
6237
6237
  const _ssrUtils = {
6238
6238
  createComponentInstance,
@@ -416,8 +416,10 @@ function checkRecursiveUpdates(seen, fn) {
416
416
  if (count > RECURSION_LIMIT) {
417
417
  const instance = fn.ownerInstance;
418
418
  const componentName = instance && getComponentName(instance.type);
419
- warn(
420
- `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`
419
+ handleError(
420
+ `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,
421
+ null,
422
+ 10
421
423
  );
422
424
  return true;
423
425
  } else {
@@ -5073,9 +5075,9 @@ function propHasMismatch(el, key, clientValue) {
5073
5075
  let actual;
5074
5076
  let expected;
5075
5077
  if (key === "class") {
5076
- actual = el.className;
5077
- expected = normalizeClass(clientValue);
5078
- if (actual !== expected) {
5078
+ actual = toClassSet(el.getAttribute("class") || "");
5079
+ expected = toClassSet(normalizeClass(clientValue));
5080
+ if (!isSetEqual(actual, expected)) {
5079
5081
  mismatchType = mismatchKey = `class`;
5080
5082
  }
5081
5083
  } else if (key === "style") {
@@ -5107,6 +5109,20 @@ function propHasMismatch(el, key, clientValue) {
5107
5109
  }
5108
5110
  return false;
5109
5111
  }
5112
+ function toClassSet(str) {
5113
+ return new Set(str.trim().split(/\s+/));
5114
+ }
5115
+ function isSetEqual(a, b) {
5116
+ if (a.size !== b.size) {
5117
+ return false;
5118
+ }
5119
+ for (const s of a) {
5120
+ if (!b.has(s)) {
5121
+ return false;
5122
+ }
5123
+ }
5124
+ return true;
5125
+ }
5110
5126
 
5111
5127
  let supported;
5112
5128
  let perf;
@@ -8017,7 +8033,7 @@ function isMemoSame(cached, memo) {
8017
8033
  return true;
8018
8034
  }
8019
8035
 
8020
- const version = "3.4.0-beta.3";
8036
+ const version = "3.4.0-rc.1";
8021
8037
  const ErrorTypeStrings = ErrorTypeStrings$1 ;
8022
8038
  const _ssrUtils = {
8023
8039
  createComponentInstance,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vue/runtime-core",
3
- "version": "3.4.0-beta.3",
3
+ "version": "3.4.0-rc.1",
4
4
  "description": "@vue/runtime-core",
5
5
  "main": "index.js",
6
6
  "module": "dist/runtime-core.esm-bundler.js",
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "homepage": "https://github.com/vuejs/core/tree/main/packages/runtime-core#readme",
34
34
  "dependencies": {
35
- "@vue/reactivity": "3.4.0-beta.3",
36
- "@vue/shared": "3.4.0-beta.3"
35
+ "@vue/shared": "3.4.0-rc.1",
36
+ "@vue/reactivity": "3.4.0-rc.1"
37
37
  }
38
38
  }