Onde posso obter informações sobre a sintaxe do parâmetro do objeto para funções javascript?

Se eu quiser chamar uma função como esta:

moo({ a: 4 });

Normalmente eu teria que expressar minha definição de função assim:

function moo(myArgObj) {
    print(myArgObj.a);
}

Mas esta incrível sintaxe é totalmente válida no spidermonkey para definir funções:

function moo({ a, b, c }) { // valid syntax!
    print(a); // prints 4
}

Alguma idéia onde eu possa encontrar informações sobre isso? Eu gostaria de ver o quão poderoso é esse recurso.

Eu vi isso em um javascript / ecmascript 5 falar um tempo atrás, mas não consigo mais encontrá-lo. Ele não aparece em nenhum dos vídeos que eu posso encontrar no youtube, e não é mencionado no próprio PDF do padrão.

questionAnswers(1)

yourAnswerToTheQuestion