rem: var ary = data.split(/$/m); 
add: var ary = data.replace(/\t/g, console.prefs["sourcetext.tab.string"]) .split(/$/m); 
context: function loadSource (url, cb){    var observer = {        onComplete: function oncomplete (data, url, status) {            var ary = data.split(/$/m);            for (var i = 0; i < ary.length; ++i)            {                /* We use "new String" here so we can decorate the source line                 * with attributes used while displaying the source, like                 * "current line", and "breakpoint".                 * The replace() strips control characters, including whatever                 * line endings we just split() on.                 */                ary[i] = new String(ary[i].replace(/[\0-\31]/g, ""));            }            console._sources[url] = ary;            cb(data, url, status);        }    };    if (url.search (/^(chrome:|file:)/) != -1)        observer.onComplete (loadURLNow(url), url, Components.results.NS_OK);    else        loadURLAsync (url, observer);}
meta: 5459	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/5459/8b27bf568ca555c3d7e32d55ff44ccf699aae130/venkman-debugger.js/clean/extensions/venkman/resources/content/venkman-debugger.js