patchEvent(el, key, prevValue, nextValue, parentComponent)
}
} else if (
- isSVG
+ // spellcheck and draggable are numerated attrs, however their
+ // corresponding DOM properties are actually booleans - this leads to
+ // setting it with a string "false" value leading it to be coerced to
+ // `true`, so we need to always treat them as attributes.
+ // Note that `contentEditable` doesn't have this problem: its DOM
+ // property is also enumerated string values.
+ key !== 'spellcheck' &&
+ key !== 'draggable' &&
+ (isSVG
? // most keys must be set as attribute on svg elements to work
// ...except innerHTML
key === 'innerHTML' ||
: // for normal html elements, set as a property if it exists
key in el &&
// except native onclick with string values
- !(nativeOnRE.test(key) && isString(nextValue))
+ !(nativeOnRE.test(key) && isString(nextValue)))
) {
patchDOMProp(
el,