Slide 50
Slide 50 text
Recast Example
traverse(ast, function(node) {
if (n.ArrowFunctionExpression.check(node)) {
var body = node.body;
!
if (node.expression) {
node.expression = false;
body = b.blockStatement([b.returnStatement(body)]);
}
!
var funExp = b.functionExpression(
node.id, node.params, body,
node.generator, node.expression
);
!
var bindExp = b.callExpression(
b.memberExpression(funExp, b.identifier("bind"), false),
[b.thisExpression()]
);
!
this.replace(bindExp);
}
});