#!/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;
							 | 
						|
								}
							 |