Make charset lookups more efficient
This commit is contained in:
parent
984a76f0f8
commit
1e0fa95620
1 changed files with 16 additions and 12 deletions
|
@ -96,20 +96,24 @@ toValidFunctionName t =
|
||||||
Nothing -> "_"
|
Nothing -> "_"
|
||||||
where
|
where
|
||||||
setFirstChar c = if firstChar c then c else '_'
|
setFirstChar c = if firstChar c then c else '_'
|
||||||
firstChar c = prefixOK c || any (Set.member c) firstLetterOK
|
firstChar c = prefixOK c || Set.member c firstLetterOK
|
||||||
remainder c = prefixOK c || any (Set.member c) remainderOK
|
remainder c = prefixOK c || Set.member c remainderOK
|
||||||
prefixOK c = c `elem` ['$','_']
|
prefixOK c = c `elem` ['$','_']
|
||||||
firstLetterOK = [ Set.lowercaseLetter
|
firstLetterOK = mconcat
|
||||||
, Set.uppercaseLetter
|
[ Set.lowercaseLetter
|
||||||
, Set.titlecaseLetter
|
, Set.uppercaseLetter
|
||||||
, Set.modifierLetter
|
, Set.titlecaseLetter
|
||||||
, Set.otherLetter
|
, Set.modifierLetter
|
||||||
, Set.letterNumber ]
|
, Set.otherLetter
|
||||||
|
, Set.letterNumber
|
||||||
|
]
|
||||||
remainderOK = firstLetterOK
|
remainderOK = firstLetterOK
|
||||||
<> [ Set.nonSpacingMark
|
<> mconcat
|
||||||
, Set.spacingCombiningMark
|
[ Set.nonSpacingMark
|
||||||
, Set.decimalNumber
|
, Set.spacingCombiningMark
|
||||||
, Set.connectorPunctuation ]
|
, Set.decimalNumber
|
||||||
|
, Set.connectorPunctuation
|
||||||
|
]
|
||||||
|
|
||||||
toJSHeader :: HeaderArg -> Text
|
toJSHeader :: HeaderArg -> Text
|
||||||
toJSHeader (HeaderArg n) = toValidFunctionName ("header" <> n)
|
toJSHeader (HeaderArg n) = toValidFunctionName ("header" <> n)
|
||||||
|
|
Loading…
Add table
Reference in a new issue