nl_tokens: / * DOMString to UTF - 8 array
pl_tokens: function strToUTF8Arr ( sDOMStr ) { var aBytes , nChr , nStrLen = sDOMStr . length , nArrLen = 0 , nMapIdx , nIdx , nChrIdx ; /* mapping... */ for ( nMapIdx = 0 ; nMapIdx < nStrLen ; nMapIdx ++ ) { nChr = sDOMStr . charCodeAt ( nMapIdx ) ; nArrLen += nChr < 0x80 ? 1 : nChr < 0x800 ? 2 : nChr < 0x10000 ? 3 : nChr < 0x200000 ? 4 : nChr < 0x4000000 ? 5 : 6 ; } aBytes = <mask> Uint8Array ( nArrLen ) ; /* transcription... */ for ( nIdx = 0 , nChrIdx = 0 ; nIdx < nArrLen ; nChrIdx ++ ) { nChr = sDOMStr . charCodeAt ( nChrIdx ) ; if ( nChr < 128 ) { /* one byte */ aBytes [ nIdx ++ ] = nChr ; } else if ( nChr < 0x800 ) { /* two bytes */ aBytes [ nIdx ++ ] = 192 + ( nChr >>> 6 ) ; aBytes [ nIdx ++ ] = 128 + ( nChr & 63 ) ; } else if ( nChr < 0x10000 ) { /* three bytes */ aBytes [ nIdx ++ ] = 224 + ( nChr >>> 12 ) ; aBytes [ nIdx ++ ] = 128 + ( nChr >>> 6 & 63 ) ; aBytes [ nIdx ++ ] = 128 + ( nChr & 63 ) ; } else if ( nChr < 0x200000 ) { /* four bytes */ aBytes [ nIdx ++ ] = 240 + ( nChr >>> 18 ) ; aBytes [ nIdx ++ ] = 128 + ( nChr >>> 12 & 63 ) ; aBytes [ nIdx ++ ] = 128 + ( nChr >>> 6 & 63 ) ; aBytes [ nIdx ++ ] = 128 + ( nChr & 63 ) ; } else if ( nChr < 0x4000000 ) { /* five bytes */ aBytes [ nIdx ++ ] = 248 + ( nChr >>> 24 ) ; aBytes [ nIdx ++ ] = 128 + ( nChr >>> 18 & 63 ) ; aBytes [ nIdx ++ ] = 128 + ( nChr >>> 12 & 63 ) ; aBytes [ nIdx ++ ] = 128 + ( nChr >>> 6 & 63 ) ; aBytes [ nIdx ++ ] = 128 + ( nChr & 63 ) ; } else /* if (nChr <= 0x7fffffff) */ { /* six bytes */ aBytes [ nIdx ++ ] = 252 + /* (nChr >>> 32) is not possible in ECMAScript! So...: */ ( nChr / 1073741824 ) ; aBytes [ nIdx ++ ] = 128 + ( nChr >>> 24 & 63 ) ; aBytes [ nIdx ++ ] = 128 + ( nChr >>> 18 & 63 ) ; aBytes [ nIdx ++ ] = 128 + ( nChr >>> 12 & 63 ) ; aBytes [ nIdx ++ ] = 128 + ( nChr >>> 6 & 63 ) ; aBytes [ nIdx ++ ] = 128 + ( nChr & 63 ) ; } } return aBytes ; }