code: private TextImpl firstTextNodeInCurrentRun() {
          TextImpl firstTextInCurrentRun = this;
          for (Node p = getPreviousSibling(); p != null; p = p.getPreviousSibling()) {
              short nodeType = p.getNodeType();
              if (nodeType == Node.TEXT_NODE || nodeType == Node.CDATA_SECTION_NODE) {
                  firstTextInCurrentRun = (TextImpl) p;
              } else {
                  break;
              }
          }
          return firstTextInCurrentRun;
      }
docs: Returns the first text or CDATA node in the current sequence of text and
  CDATA nodes.