// { body }
exports.BlockStatement = (node, generator) => {
  generator.advance("{");
  node.body.forEach(bodyNode => {
    generator.generate(bodyNode);
  });
  generator.advance("}");
};

// expression;
exports.ExpressionStatement = (node, generator) => {
  generator.generate(node.expression);
  generator.advance(";");
};

// return argument;
exports.ReturnStatement = (node, generator) => {
  generator.advance("return ");
  generator.generate(node.argument);
  generator.advance(";");
};

// ;
exports.EmptyStatement = (node, generator) => {
  generator.advance(";");
};

@@ -381,32 +381,101 @@
 generator) =%3E %7B%0A
+  if (!node.argument) %7B%0A    return generator.advance(%22return;%22);%0A  %7D%0A
   generator.adva

Allow ReturnStatements to have no argument.