internal static uint UpdateAsciiAndSurrogatesFlags(char[]/*!*/ str, int itemCount, uint flags) {
int sum = 0;
for (int i = 0; i < itemCount; i++) {
int c = str[i];
if (Tokenizer.IsSurrogate(c)) {
return flags & ~(MutableString.SurrogatesUnknownFlag | MutableString.AsciiUnknownFlag | MutableString.IsAsciiFlag | MutableString.NoSurrogatesFlag);
}
sum |= c;
}
return (sum < 0x80)
? flags & ~(MutableString.SurrogatesUnknownFlag | MutableString.AsciiUnknownFlag) | MutableString.IsAsciiFlag | MutableString.NoSurrogatesFlag
: flags & ~(MutableString.SurrogatesUnknownFlag | MutableString.AsciiUnknownFlag | MutableString.IsAsciiFlag) | MutableString.NoSurrogatesFlag;
}