O que uma vírgula faz nas expressões JavaScript?

Se eu usar:

1.09 * 1; // returns "1.09"

Mas se eu usar:

1,09 * 1; // returns "9"

Eu sei que 1,09 não é um número.

O que a vírgula faz no último trecho de código?

Mais exemplos
if (0,9) alert("ok"); // alert
if (9,0) alert("ok"); // don't alert
alert(1); alert(2); alert(3); // 3 alerts
alert(1), alert(2), alert(3); // 3 alerts too
alert("2",
    foo = function (param) {
        alert(param)
    },
    foo('1')
)
foo('3'); // alerts 1, 2 and 3

questionAnswers(5)

yourAnswerToTheQuestion