Is there an abstraction you can make here?

    this.spliceText(text, index + 1);
    this.spliceText(text, index);

    spliceText = function(text, offset) {
      newLines = text.split('\n');
      for (i = newLines.length - 1; i >= 0; i -= 1) {
        this.lines.splice(offset, 0, newLines[i]);
      }
    }