Ese código es el mismo, fíjate que hasta las variables se llaman igual!!!
Tiene el mismo bug que comento, el comando
stored_range.moveToElementText( textArea ) parace que no detecta los cambios de línea anteriores a la posición del cursor cuando no hay selección y el cursor está al comienzo de una línea (es decir, el caracter anterior es uno o varios cambios de línea).
Aquí dan otras alternativas, pero ninguna termina de funcionar bien en ese caso concreto...
Bueno, pues por mí así se queda, si alguien da con una solución que la comente