RegExp lastIndex remains after been assigned a value explictly

by noahua

JavaScript

var reLine = /\r?\n/g

function C(str) {
    this.content = str;
    console.log('----------------')
    console.log('reLine lastIndex:' + reLine.lastIndex)
}

C.prototype = {
    getLine: function(){
        return getLineNo(this.content, 15)
    }
}

var str1 = 'asdfasd \n \n \nsadfasdfa\n asdfasdf\n'

var c1 = new C(str1)
console.log(c1.getLine())
var c2 = new C(str1)

function getLineNo(str, end) {
    var br
    var lineNo = 0
    var lastLineEnd = reLine.lastIndex
    
    while(br = reLine.exec(str)) {
        if (br.index < end) {
            lineNo++
        }else {
            reLine.lastIndex = 10
            break
        }
    }
    return lineNo
}