Sembrerebbe essere legato alla "confirm". Il codice funziona bene sotto Chrome, quindi immagino che sia Greasemonkey.
Su google ho provato a cercare "confirm issue", è uscito qualcosina ma non ho trovato nulla di preciso.
In definitiva, credo che quello che hai visto tu (riguardo all'if) non c'entri in realtà, infatti questo funziona:
codice:
if (true) {
GM_log("Sono dentro all'IF");
GM_xmlhttpRequest({
method: "GET",
url: "http://www.google.it/",
onreadystatechange: function(response){
GM_log(response.readyState);},
onload: function(response) {
GM_log("Ho scaricato la pagina");
alert(response.responseText);}
});
}