*<Null safety>*
int compareAsciiUpperCaseNatural (String a, String b)
int compareAsciiUpperCaseNatural(String a, String b) { var defaultResult = 0; 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; var aUpperCase = aChar; var bUpperCase = bChar; if (_lowerCaseA <= aChar && aChar <= _lowerCaseZ) { aUpperCase -= _asciiCaseBit; } if (_lowerCaseA <= bChar && bChar <= _lowerCaseZ) { bUpperCase -= _asciiCaseBit; } if (aUpperCase != bUpperCase) { return _compareNaturally(a, b, i, aUpperCase, bUpperCase); } if (defaultResult == 0) defaultResult = aChar - bChar; } if (b.length > a.length) return -1; return defaultResult.sign; }