|
|
@@ -725,29 +725,29 @@ function propHasMismatch(
|
|
|
if (key === 'class') {
|
|
|
// classes might be in different order, but that doesn't affect cascade
|
|
|
// so we just need to check if the class lists contain the same classes.
|
|
|
- actual = toClassSet(el.getAttribute('class') || '')
|
|
|
- expected = toClassSet(normalizeClass(clientValue))
|
|
|
- if (!isSetEqual(actual, expected)) {
|
|
|
+ actual = el.getAttribute('class')
|
|
|
+ expected = normalizeClass(clientValue)
|
|
|
+ if (!isSetEqual(toClassSet(actual || ''), toClassSet(expected))) {
|
|
|
mismatchType = mismatchKey = `class`
|
|
|
}
|
|
|
} else if (key === 'style') {
|
|
|
// style might be in different order, but that doesn't affect cascade
|
|
|
- actual = toStyleMap(el.getAttribute('style') || '')
|
|
|
- expected = toStyleMap(
|
|
|
- isString(clientValue)
|
|
|
- ? clientValue
|
|
|
- : stringifyStyle(normalizeStyle(clientValue)),
|
|
|
- )
|
|
|
+ actual = el.getAttribute('style')
|
|
|
+ expected = isString(clientValue)
|
|
|
+ ? clientValue
|
|
|
+ : stringifyStyle(normalizeStyle(clientValue))
|
|
|
+ const actualMap = toStyleMap(actual)
|
|
|
+ const expectedMap = toStyleMap(expected)
|
|
|
// If `v-show=false`, `display: 'none'` should be added to expected
|
|
|
if (vnode.dirs) {
|
|
|
for (const { dir, value } of vnode.dirs) {
|
|
|
// @ts-expect-error only vShow has this internal name
|
|
|
if (dir.name === 'show' && !value) {
|
|
|
- expected.set('display', 'none')
|
|
|
+ expectedMap.set('display', 'none')
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if (!isMapEqual(actual, expected)) {
|
|
|
+ if (!isMapEqual(actualMap, expectedMap)) {
|
|
|
mismatchType = mismatchKey = 'style'
|
|
|
}
|
|
|
} else if (
|