code: protected void convertUnicode() {
          if (ch == '\\' && unicodeConversionBp != bp) {
              bp++; ch = buf[bp];
              if (ch == 'u') {
                  do {
                      bp++; ch = buf[bp];
                  } while (ch == 'u');
                  int limit = bp + 3;
                  if (limit < buflen) {
                      int d = digit(bp, 16);
                      int code = d;
                      while (bp < limit && d >= 0) {
                          bp++; ch = buf[bp];
                          d = digit(bp, 16);
                          code = (code << 4) + d;
                      }
                      if (d >= 0) {
                          ch = (char)code;
                          unicodeConversionBp = bp;
                          return;
                      }
                  }
                  log.error(bp, "illegal.unicode.esc");
              } else {
                  bp--;
                  ch = '\\';
              }
          }
      }
docs: Convert unicode escape; bp points to initial '\' character
  (Spec 3.3).