¿Es posible definir una propiedad con nombre dinámico utilizando el literal de objeto en JavaScript?

Considera lo siguiente

var a = {foo: "bar"};

Equivalente a

var a = {};
a.foo = "bar";

Equivalente a

var a = {};
a['foo'] = "bar";

Equivalente a

var a = {}
var b = "foo";
a[b] = "bar";
¿Es posible hacer algo como?
var b = "foo";
var a = { [b]: "bar" };

Tal que el resultado sería

// => {foo: "bar"}

Las soluciones aceptables están en JavaScript o CoffeeScript.

Respuestas a la pregunta(7)

Su respuesta a la pregunta