rem: var scriptInfo = fbs.scriptInfoByTag[script.tag]; if (scriptInfo) { var pcmap = scriptInfo.pcmap; if(scriptInfo.url == url && script.isLineExecutable(lineNo, pcmap)) { var lineInScript = scriptInfo.shiftFromSourceBufferToScriptNumbering(lineNo); var pc = script.lineToPc(lineInScript, pcmap); script.clearBreakpoint(pc); if (fbs.DBG_BP) ddd("removeBreakpoint in tag="+script.tag+" at "+lineNo+"@"+url+"\n");/*@explore*/ } } 
add: var scriptInfo = fbs.scriptInfoByTag[script.tag]; if (scriptInfo) { var pcmap = scriptInfo.pcmap; if(scriptInfo.url == url && script.isLineExecutable(lineNo, pcmap)) { var lineInScript = scriptInfo.shiftFromSourceBufferToScriptNumbering(lineNo); var pc = script.lineToPc(lineInScript, pcmap); script.clearBreakpoint(pc); if (fbs.DBG_BP) ddd("removeBreakpoint in tag="+script.tag+" at "+lineNo+"@"+url+"\n");/*@explore*/ } } 
context:     removeBreakpoint: function(type, url, lineNo, script) // xxxJJB script arg not used?    {        url = denormalizeURL(url);		if (fbs.DBG_BP) ddd("removeBreakpoint for url= "+url+"\n");                                                    /*@explore*/        var urlBreakpoints = breakpoints[url];        if (!urlBreakpoints)            return false;        if (fbs.DBG_BP) ddd("removeBreakpoint need to check bps="+urlBreakpoints.length+"\n");                         /*@explore*/        for (var i = 0; i < urlBreakpoints.length; ++i)        {            var bp = urlBreakpoints[i];			if (fbs.DBG_BP) ddd("removeBreakpoint checking bp.lineNo vs lineNo="+bp.lineNo+" vs "+lineNo+"\n");        /*@explore*/            if (bp.lineNo == lineNo)            {                bp.type &= ~type;                if (!(bp.type & !BP_ONRELOAD) )  // if BP_ONRELOAD is not set...                {                    // Theoretically, there should only be one script to be found here,                    // but due to leaks sometimes we'll have multiple scripts with the                    // breakpoint set, so we need to be sure to clear all of them					// Check all scripts that may be defined on this line of url					// xxxJJB this is expensive, we could track the scripts					jsd.enumerateScripts({enumerateScript: function(script)                    {                        if (script)                        {							var scriptInfo = fbs.scriptInfoByTag[script.tag];							if (scriptInfo)							{								var pcmap = scriptInfo.pcmap;								if(scriptInfo.url == url && script.isLineExecutable(lineNo, pcmap))                        		{									var lineInScript = scriptInfo.shiftFromSourceBufferToScriptNumbering(lineNo);                            		var pc = script.lineToPc(lineInScript, pcmap);                            		script.clearBreakpoint(pc);									if (fbs.DBG_BP) ddd("removeBreakpoint in tag="+script.tag+" at "+lineNo+"@"+url+"\n");/*@explore*/                        		}							}                        }                    }});                    urlBreakpoints.splice(i, 1);                    --breakpointCount;                    if (bp.disabled)                        --disabledCount;                    if (bp.condition || bp.hitCount)                    {                        --conditionCount;                    }                    if (!urlBreakpoints.length)                        delete breakpoints[url];                }                return true;            }        }        return false;    },
meta: 7450	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/7450/2e2e6e5e5acba26e69243682fad1c16a0bea8a6a/firebug-service.js/buggy/extension/components/firebug-service.js