#!/usr/bin/env node
var recast = require(“recast”); var types = recast.types; var n = types.namedTypes; var b = types.builders;
require(“recast”).run(function(ast, callback) {
recast.visit(ast, { visitIfStatement: function(path) { var stmt = path.node; stmt.consequent = fix(stmt.consequent); var alt = stmt.alternate; if (n.IfStatement.check(alt)) { stmt.alternate = fix(alt); } this.traverse(path); }, visitWhileStatement: visitLoop, visitForStatement: visitLoop, visitForInStatement: visitLoop }); callback(ast);
});
function visitLoop(path) {
var loop = path.node; loop.body = fix(loop.body); this.traverse(path);
}
function fix(clause) {
if (clause) { if (!n.BlockStatement.check(clause)) { clause = b.blockStatement([clause]); } } return clause;
}