nl_tokens: / * there needs to be support for Unicode here unless we pretend that we can redefine the MD - 5 algorithm for multi - byte characters ( perhaps by adding every four 16 - bit characters and shortening the sum to 32 bits ) . Otherwise I suggest performing MD - 5 as if every character was two bytes -- e . g . 0040 0025 =
pl_tokens: function ( s ) { /* I figured global was faster.   */ let md5blks = [ ] , i ; /* Andy King said do it this way. */ for ( i = 0 ; i < 64 ; i += 4 ) { md5blks [ i >> 2 ] = s . charCodeAt ( i ) + ( s . charCodeAt ( i + 1 ) << 8 ) + ( s . charCodeAt ( i + 2 ) << 16 ) + ( s . charCodeAt ( i + 3 ) << 24 ) ; } <mask> md5blks ; }