*<Null safety>*
int compareAsciiUpperCase (String a, String b)
int compareAsciiUpperCase(String a, String b) { var defaultResult = 0; // Returned if no difference found. for (var i = 0; i < a.length; i++) { if (i >= b.length) return 1; var aChar = a.codeUnitAt(i); var bChar = b.codeUnitAt(i); if (aChar == bChar) continue; // Upper-case if letters. var aUpperCase = aChar; var bUpperCase = bChar; if (_lowerCaseA <= aChar && aChar <= _lowerCaseZ) { aUpperCase -= _asciiCaseBit; } if (_lowerCaseA <= bChar && bChar <= _lowerCaseZ) { bUpperCase -= _asciiCaseBit; } if (aUpperCase != bUpperCase) return (aUpperCase - bUpperCase).sign; if (defaultResult == 0) defaultResult = (aChar - bChar); } if (b.length > a.length) return -1; return defaultResult.sign; }