code: function make_then(th) {
                  var b = th;
                  while (true) {
                          var type = b[0];
                          if (type == "if") {
                                  if (!b[3])
                                          // no else, we must add the block
                                          return make([ "block", [ th ]]);
                                  b = b[3];
                          }
                          else if (type == "while" || type == "do") b = b[2];
                          else if (type == "for" || type == "for-in") b = b[4];
                          else break;
                  }
                  return make(th);
          }
docs: The squeezer replaces "block"-s that contain only a single statement with the statement itself; technically, the AST is correct, but this can create problems when we output an IF having an ELSE clause where the THEN clause ends in an IF *without* an ELSE block (then the outer ELSE would refer to the inner IF).  This function checks for this case and adds the block brackets if needed.