code: function() {
                      var args = arguments;
                      var sc = args[0], so = args[1], ec = sc, eo = so;
  
                      switch (args.length) {
                          case 3:
                              eo = args[2];
                              break;
                          case 4:
                              ec = args[2];
                              eo = args[3];
                              break;
                      }
  
                      boundaryUpdater(this, sc, so, ec, eo);
                  }
docs: Convenience method to set a range's start and end boundaries. Overloaded as follows:
  - Two parameters (node, offset) creates a collapsed range at that position
  - Three parameters (node, startOffset, endOffset) creates a range contained with node starting at
  startOffset and ending at endOffset
  - Four parameters (startNode, startOffset, endNode, endOffset) creates a range starting at startOffset in
  startNode and ending at endOffset in endNode