Warum kann ich "window.location.reload" nicht als Argument an setTimeout übergeben?

Ich würde gerne einen Einblick in den Fehler erhalten, den ich in Safari und Chrome mit der folgenden Codezeile sehe:

setTimeout(window.location.reload, 250);

Chrome-Berichte:
Uncaught TypeError: Illegal invocation

Und Safari:
TypeError: Type error

In FireFox läuft der Code einwandfrei. Dieser Code funktioniert auch in allen drei Browsern einwandfrei:

setTimeout((function() {
  window.location.reload();
}), 250);

Chrome und Safari haben keine Probleme mit diesem Code:

var say_hello = function () { alert("hello") };  
setTimeout(say_hello, 250);  

Was ist das Besondere anwindow.location.reload das verursacht diesen fehler?

(nicht sicher, ob es nützlich ist oder nicht, aber hier ist einjsfiddle zur Veranschaulichung)

Antworten auf die Frage(3)

Ihre Antwort auf die Frage