add: else { this.lineMap = new Array(); for (var fbp in console.fbreaks) { var fbreak = console.fbreaks[fbp]; if (fbreak.url == this.url) arrayOrFlag (this.lineMap, fbreak.lineNumber - 1, LINE_FBREAK); } } 
context: function st_oncomplete (data, url, status){    dd ("source loaded " + url + ", " + status);        var sourceText = this;        function callall (status)    {        while (sourceText.loadCallbacks.length)        {            var cb = sourceText.loadCallbacks.pop();            cb (status);        }        delete sourceText.loadCallbacks;    };                delete this.isLoading;        if (status != Components.results.NS_OK)    {        dd ("loadSource failed with status " + status + ", " + url);        callall (status);        return;    }    if (!ASSERT(data, "loadSource succeeded but got no data"))        data = "";        var ary = data.split(/\r\n|\n|\r/m);    for (var i = 0; i < ary.length; ++i)    {        /*         * The replace() strips control characters, we leave the tabs in         * so we can expand them to a per-file width before actually         * displaying them.         */        ary[i] = ary[i].replace(/[\x00-\x08]|[\x0A-\x1F]/g, "?");        if (!("charset" in this))        {            var matchResult =                ary[i].match(/meta.*http-equiv.*content-type.*charset=([^\;\"]+)/i);            if (matchResult)                this.charset = matchResult[1];        }    }    this.lines = ary;    ary = ary[0].match (/tab-?width*:\s*(\d+)/i);    if (ary)        this.tabWidth = ary[1];        if ("scriptInstance" in this)    {        this.scriptInstance.guessFunctionNames(sourceText);        this.lineMap = this.scriptInstance.lineMap;    }    this.isLoaded = true;    dispatch ("hook-source-load-complete",              { sourceText: sourceText, status: status });    callall(status);}
meta: 5459	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/5459/9390a60290d601460ee4975ac5f59d9b168b9a9c/venkman-static.js/clean/extensions/venkman/resources/content/venkman-static.js