toRune function

int toRune(
  1. String string
)

Implementation

int toRune(String string) {
  if (string == null) {
    throw ArgumentError('string: $string');
  }

  final length = string.length;
  if (length == 0) {
    throw StateError('An empty string contains no elements.');
  }

  final start = string.codeUnitAt(0);
  if (length == 1) {
    return start;
  }

  if ((start & 0xFC00) == 0xD800) {
    final end = string.codeUnitAt(1);
    if ((end & 0xFC00) == 0xDC00) {
      return (0x10000 + ((start & 0x3FF) << 10) + (end & 0x3FF));
    }
  }

  return start;
}