Error de invocación ilegal cuando console.log pasó en una función

Estoy un poco confundido sobre esto. Por favor, encuentre el código de la siguiente manera.

var o={
 printToConsole: function(f){
   f(1);
}
};

o.printToConsole(console.log);

//TypeError: Illegal invocation// Obtengo un TypeError

De la definición de console.log obtenemos esto

`function log() { [native code] }`

En Chrome, que muestra claramente que no requiere ningún argumento, aunque cuando intentamos imprimir cosas en la consola escribimos así, es decir, pasamos el argumento a console.log.

console.log('Take me on Console');

¿Por qué obtengo este TypeError y cómo este console.log se comporta en Chrome?

Respuestas a la pregunta(1)

Su respuesta a la pregunta