code: function block () {
      var code = []
      function push () {
        code.push.apply(code, slice(arguments))
      }
  
      var vars = []
      function def () {
        var name = 'v' + (varCounter++)
        vars.push(name)
  
        if (arguments.length > 0) {
          code.push(name, '=')
          code.push.apply(code, slice(arguments))
          code.push(';')
        }
  
        return name
      }
  
      return extend(push, {
        def: def,
        toString: function () {
          return join([
            (vars.length > 0 ? 'var ' + vars + ';' : ''),
            join(code)
          ])
        }
      })
    }
docs: create a code block