¿Cómo crear una función y pasar una lista de argumentos de longitud variable?

Podemos crear una funciónp en el siguiente código:

var p = function() { };
if (typeof(console) != 'undefined' && console.log) {
    p = function() { console.log(arguments); };
}

pero los argumentos se pasan como una matriz aconsole.log, en lugar de pasar uno por uno como en

console.log(arguments[0], arguments[1], arguments[2], ... 

¿Hay alguna manera de expandir los argumentos y pasar a console.log como se indica arriba?

Tenga en cuenta que si el código original fuera

var p = function() { };
if (typeof(console) != 'undefined' && console.log) {
    p = console.log;
}

entonces funciona bien en Firefox e IE 8 pero no en Chrome.

Respuestas a la pregunta(1)

Su respuesta a la pregunta