Danke für die ausführliche Erklärung :)
Ich bin übrigens auf das Problem gestoßen, nachdem ich die alert() methode überschrieben habe und anschließend noch der Object-klasse eine Methode verpasst habe:
Object.prototype.alert = function()( return alert( this ); };
Dann wurde mal das eine alert aufgerufen, mal das andere...
Die Methode ist ziemlich cool:
"ein String...".alert().split('').alert().join(',').alert();
aber wohl zu unvorhersagbar..