Alone, this code works:
CustomButton = {
1: function () {
  alert("Just testing") 
  },
}
I add the code below and the code above stops working:
function getvisitingnow() {
 return document.location;
}
function getcontents(uri) {
 var req = new XMLHttpRequest();
 req.open('GET', uri, true);
 req.onreadystatechange = function (aEvt) {
  if (req.readyState == 4) {
   if(req.status == 200) {
    return req.responseText;
   }
  }
 };
 req.send();
}
function regexforsitefound(uri, searchcontents) {
 var re = new RegExp("\\<div class=g\\>.*?(?:\\<a href=\\\"?(.*?)\\\"?\\>.*?){2}\\</div\\>", "mi");
 var sitefound = searchcontents.match(re);
 if (sitefound[0]) return sitefound[0] else return null;
}
function regexforcategoryfound(uri, searchcontents) {
 var re = new RegExp("\\<div class=g\\>.*?(?:\\<a href=\\\"?(.*?)\\\"?\\>.*?){2}\\</div\\>", "mi");
 var categoryfound = searchcontents.match(re);
 if (categoryfound[1]) return categoryfound[1] else return null;
}
function regexfordomainname(uri) {
 var re = new RegExp("http://(?:[A-Za-z0-9-]+\\.)?[A-Za-z0-9-]+\\.[A-Za-z0-9-]+/?", "si");
 var domainname = uri.match(re);
 if (domainname) return domainname;
}
function regexforparentdir(uri) {
 var re = new RegExp("http://(?:[A-Za-z0-9-]+\\.)?[A-Za-z0-9-]+\\.[A-Za-z0-9-]+/?", "si");
 var parentdir = uri.match(re);
 if (parentdir) return parentdir;
}
function getcomparisonlink(visitingnow) {
 var searchuri = null;
 var searchcontents = null;
 var uri = visitingnow;
 while(true) {
  searchuri = 'http://www.google.com.br/search?';
  searchuri += 'q='+ uri +'&btnG=Search+Directory&hl=en&cat=gwd%2FTop';
  searchcontents = getcontents(searchuri);
  var sitefound = regexforsitefound(searchcontents);
  if (sitefound) {
   var categoryfound = regexforcategoryfound(searchcontents);
   if (categoryfound) {
    return categoryfound;
   }
  } else {
   var domainname = regexfordomainname(uri);
   if (!domainname) {
    var parentdir = regexforparentdir(uri);
    uri = parentdir;
   } else {
    return null;
   }
  }
 }
}
function clickedlink(event){
 var visitingnow = getvisitingnow(); 
 if (visitingnow) {
  getcomparisonlink(visitingnow);
  if (comparisonlink) {
   tab.open(comparisonlink);
  };
 }
}
function createBookmarkItem() {
    const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
    var item = document.createElementNS(XUL_NS, "toolbarbutton");
    item.setAttribute("id", "Testing-Doit-Button2");
    item.setAttribute("class", "bookmark-item pagerank");
    item.setAttribute("tooltiptext", "Do it!");
    item.setAttribute("oncommand", "testing_doit();");
    return item;
}
function placeBookmarkItem() {
    var toolbar = document.getElementById("PersonalToolbar");
    var button = createBookmarkItem();
    toolbar.appendChild(button);
}
Why?