chore: tweaks
ci / test (push) Has been cancelled Details
ci / continuous-release (push) Has been cancelled Details

This commit is contained in:
daiwei 2025-07-26 16:37:28 +08:00
parent e2f84fc075
commit 4fcc7393f3
1 changed files with 12 additions and 12 deletions

View File

@ -170,32 +170,33 @@ function getRuntimeHelper(
): HelperConfig { ): HelperConfig {
const tagName = tag.toUpperCase() const tagName = tag.toUpperCase()
const isSVG = isSVGTag(tag) const isSVG = isSVGTag(tag)
// 1. SVG: always attribute
if (isSVG) {
// TODO pass svg flag
return helpers.setAttr
}
if (modifier) { if (modifier) {
if (modifier === '.') { if (modifier === '.') {
return getSpecialHelper(key, tagName, isSVG) || helpers.setDOMProp return getSpecialHelper(key, tagName) || helpers.setDOMProp
} else { } else {
return helpers.setAttr return helpers.setAttr
} }
} }
// 1. special handling for value / style / class / textContent / innerHTML // 2. special handling for value / style / class / textContent / innerHTML
const helper = getSpecialHelper(key, tagName, isSVG) const helper = getSpecialHelper(key, tagName)
if (helper) { if (helper) {
return helper return helper
} }
// 2. Aria DOM properties shared between all Elements in // 3. Aria DOM properties shared between all Elements in
// https://developer.mozilla.org/en-US/docs/Web/API/Element // https://developer.mozilla.org/en-US/docs/Web/API/Element
if (/aria[A-Z]/.test(key)) { if (/aria[A-Z]/.test(key)) {
return helpers.setDOMProp return helpers.setDOMProp
} }
// 3. SVG: always attribute
if (isSVG) {
// TODO pass svg flag
return helpers.setAttr
}
// 4. respect shouldSetAsAttr used in vdom and setDynamicProp for consistency // 4. respect shouldSetAsAttr used in vdom and setDynamicProp for consistency
// also fast path for presence of hyphen (covers data-* and aria-*) // also fast path for presence of hyphen (covers data-* and aria-*)
if (shouldSetAsAttr(tagName, key) || key.includes('-')) { if (shouldSetAsAttr(tagName, key) || key.includes('-')) {
@ -210,13 +211,12 @@ function getRuntimeHelper(
function getSpecialHelper( function getSpecialHelper(
keyName: string, keyName: string,
tagName: string, tagName: string,
isSVG: boolean,
): HelperConfig | undefined { ): HelperConfig | undefined {
// special case for 'value' property // special case for 'value' property
if (keyName === 'value' && canSetValueDirectly(tagName)) { if (keyName === 'value' && canSetValueDirectly(tagName)) {
return helpers.setValue return helpers.setValue
} else if (keyName === 'class') { } else if (keyName === 'class') {
return isSVG ? helpers.setAttr : helpers.setClass return helpers.setClass
} else if (keyName === 'style') { } else if (keyName === 'style') {
return helpers.setStyle return helpers.setStyle
} else if (keyName === 'innerHTML') { } else if (keyName === 'innerHTML') {