code: protected int peekSurrogates() {
          if (surrogatesSupported && Character.isHighSurrogate(ch)) {
              char high = ch;
              int prevBP = bp;
  
              scanChar();
  
              char low = ch;
  
              ch = high;
              bp = prevBP;
  
              if (Character.isLowSurrogate(low)) {
                  return Character.toCodePoint(high, low);
              }
          }
  
          return -1;
      }
docs: Scan surrogate pairs.  If 'ch' is a high surrogate and
  the next character is a low surrogate, returns the code point
  constructed from these surrogates. Otherwise, returns -1.
  This method will not consume any of the characters.