File tree Expand file tree Collapse file tree 1 file changed +24
-2
lines changed Expand file tree Collapse file tree 1 file changed +24
-2
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * @template T
3+ * @param {T } fn
4+ * @returns {T }
5+ */
6+ function memoize ( fn ) {
7+ const cache = new Map ( ) ;
8+ return ( arg ) => {
9+ let res = cache . get ( arg ) ;
10+ if ( ! res ) {
11+ res = fn ( arg ) ;
12+ cache . set ( arg , res ) ;
13+ }
14+ return res ;
15+ } ;
16+ }
17+
118// DOM properties that should NOT have "px" added when numeric
219export const IS_NON_DIMENSIONAL = / a c i t | e x (?: s | g | n | p | $ ) | r p h | g r i d | o w s | m n c | n t w | i n e [ c h ] | z o o | ^ o r d | ^ - - / i;
320
@@ -9,10 +26,15 @@ const tagsToReplace = {
926 '"' : '"'
1027} ;
1128const replaceTag = ( tag ) => tagsToReplace [ tag ] || tag ;
12- export function encodeEntities ( s ) {
29+
30+ /**
31+ * @param {any } s
32+ * @returns {string }
33+ */
34+ export const encodeEntities = memoize ( ( s ) => {
1335 if ( typeof s !== 'string' ) s = String ( s ) ;
1436 return s . replace ( HTML_ENTITY_REG , replaceTag ) ;
15- }
37+ } ) ;
1638
1739export let indent = ( s , char ) =>
1840 String ( s ) . replace ( / ( \n + ) / g, '$1' + ( char || '\t' ) ) ;
You can’t perform that action at this time.
0 commit comments