Bug
The HTML_LOWER_CASE regex used to determine which attributes should be lowercased
can falsely match custom element properties. For example, passing channelId to a
custom element results in channelid because the regex matches the ch prefix
(intended for charSet).
Reproduction
// Code
<my-fragment channelId="abc123" />
// Expected
<my-fragment channelId="abc123" />
// Actual
<my-fragment channelid="abc123" />
Cause
The regex ^(?:accessK|auto[A-Z]|cell|ch|col|...) uses broad prefixes that can
match unrelated property names on custom elements.
Proposed fix
Replace the regex with an explicit Set of known camelCase HTML attribute names
and use .has() instead of .test().
Bug
The
HTML_LOWER_CASEregex used to determine which attributes should be lowercasedcan falsely match custom element properties. For example, passing
channelIdto acustom element results in
channelidbecause the regex matches thechprefix(intended for
charSet).Reproduction
Cause
The regex ^(?:accessK|auto[A-Z]|cell|ch|col|...) uses broad prefixes that can
match unrelated property names on custom elements.
Proposed fix
Replace the regex with an explicit Set of known camelCase HTML attribute names
and use .has() instead of .test().