言い換えると「 EOF の改行を削除する」になります。下のようにすると、どうにもスマートじゃない気がするのですが、例えばグローバルサーチの match(/.*$/) で最後にヒットした部分の位置を数えて削除するというのもスマートでありません。
let w = src
.split("")
.reverse()
.join("")
.replace(/(\n\r?)+/, "")
.split("")
.reverse()
.join("")
CL+LF の改行記号 \r\n
の順番も reverse() で逆になるところがミソでしょうか。 [\r\n]+
と書いてしまっても問題ない気はするのですが、このあたりプロの判断だとどうなるんだろう。