docs: public void addChildBefore(Node newChild, Node node) {
          if (newChild.next != null)
              throw new RuntimeException(
                        "newChild had siblings in addChildBefore");
          if (first == node) {
              newChild.next = first;
              first = newChild;
              return;
          }
          Node prev = getChildBefore(node);
          addChildAfter(newChild, prev);
      }