Where can I get info on the object parameter syntax for JavaScript functions?

If I want to call a function like this:

moo({ a: 4 });

Normally I'd have to phrase my function definition like this:

function moo(myArgObj) {

But this awesome syntax is totally valid in spidermonkey for defining functions:

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

What is this feature?

It's called destructuring. You might find the most info at MDN: Destructuring assignment (especially see Unpacking fields from objects passed as function parameter).

The ECMAScript standards discussion can be found on their wiki page, also interesting might be this blog post at dailyjs.