rem: console._breakpoints.push (bpList); 
add: { var found = false;  for (var b in console._breakpoints) if (console._breakpoints[b].fileName == fileName && console._breakpoints[b].line == line) { console._breakpoints[b] = bpList; found = true; break; }  if (!found) console._breakpoints.push (bpList); } 
context: function setBreakpoint (fileName, line){    var ary = console._scripts[fileName];        if (!ary)    {        display (getMsg(MSN_ERR_NOSCRIPT, fileName), MT_ERROR);        return false;    }    /* In case we've already got a breakpoint at this filename/ line,     * clear it before we continue.  This keeps us from having duplicate     * file/line entries in the breakpoint list.  If we just bailed out based     * on the return value of getBreakpoint(), the user would not be able to     * set the breakpoint again for new scripts.     */    clearBreakpoint (fileName, line);                var bpList = new Array();        for (var i = 0; i < ary.length; ++i)    {        if (ary[i].baseLineNumber <= line &&             ary[i].baseLineNumber + ary[i].lineExtent >= line)        {            var pc = ary[i].lineToPc(line);            ary[i].setBreakpoint(pc);            bpList.push ({fileName: fileName, script: ary[i], line: line,                          pc: pc});        }    }    bpList.fileName = fileName;    bpList.line = line;        if (bpList.length > 0)        console._breakpoints.push (bpList);        return bpList;}
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/ccd5b22a3b4890faa2cbdfe9bc242000263b0c84/venkman-debugger.js/clean/extensions/venkman/resources/content/venkman-debugger.js