When returning an object from an arrow function, it seems that it is necessary to use an extra set of {} and a return keyword because of an ambigui
{}
return
You may wonder, why the syntax is valid (but not working as expected):
var func = p => { foo: "bar" }
It's because of JavaScript's label syntax:
So if you transpile the above code to ES5, it should look like:
var func = function (p) { foo: "bar"; //obviously no return here! }