var traverse = require("../traverse");
var util = require("../util");
var b = require("ast-types").builders;
exports.ArrowFunctionExpression = function (node) {
var body = node.body;
// expression body
if (body.type !== "BlockStatement") {
body = b.blockStatement([
b.returnStatement(body)
]);
}
node.expression = false;
node.body = body;
node.type = "FunctionExpression";
if (traverse.hasType(node, "ThisExpression")) {
return util.template("function-bind-this", {
FUNCTION: node
});
} else {
return node;
}
};
|