2 exports = module.exports = function(bytes)
5 while(i < bytes.length)
11 (0x20 <= bytes[i] && bytes[i] <= 0x7E)
18 if( (// non-overlong 2-byte
19 (0xC2 <= bytes[i] && bytes[i] <= 0xDF) &&
20 (0x80 <= bytes[i+1] && bytes[i+1] <= 0xBF)
27 if( (// excluding overlongs
29 (0xA0 <= bytes[i + 1] && bytes[i + 1] <= 0xBF) &&
30 (0x80 <= bytes[i + 2] && bytes[i + 2] <= 0xBF)
33 ((0xE1 <= bytes[i] && bytes[i] <= 0xEC) ||
36 (0x80 <= bytes[i + 1] && bytes[i+1] <= 0xBF) &&
37 (0x80 <= bytes[i+2] && bytes[i+2] <= 0xBF)
39 (// excluding surrogates
41 (0x80 <= bytes[i+1] && bytes[i+1] <= 0x9F) &&
42 (0x80 <= bytes[i+2] && bytes[i+2] <= 0xBF)
51 (0x90 <= bytes[i + 1] && bytes[i + 1] <= 0xBF) &&
52 (0x80 <= bytes[i + 2] && bytes[i + 2] <= 0xBF) &&
53 (0x80 <= bytes[i + 3] && bytes[i + 3] <= 0xBF)
56 (0xF1 <= bytes[i] && bytes[i] <= 0xF3) &&
57 (0x80 <= bytes[i + 1] && bytes[i + 1] <= 0xBF) &&
58 (0x80 <= bytes[i + 2] && bytes[i + 2] <= 0xBF) &&
59 (0x80 <= bytes[i + 3] && bytes[i + 3] <= 0xBF)
63 (0x80 <= bytes[i + 1] && bytes[i + 1] <= 0x8F) &&
64 (0x80 <= bytes[i + 2] && bytes[i + 2] <= 0xBF) &&
65 (0x80 <= bytes[i + 3] && bytes[i + 3] <= 0xBF)