code: function VFile(options) {
    var prop
    var index
    var length
  
    if (!options) {
      options = {}
    } else if (typeof options === 'string' || buffer(options)) {
      options = {contents: options}
    } else if ('message' in options && 'messages' in options) {
      return options
    }
  
    if (!(this instanceof VFile)) {
      return new VFile(options)
    }
  
    this.data = {}
    this.messages = []
    this.history = []
    this.cwd = process.cwd()
  
    // Set path related properties in the correct order.
    index = -1
    length = order.length
  
    while (++index < length) {
      prop = order[index]
  
      if (own.call(options, prop)) {
        this[prop] = options[prop]
      }
    }
  
    // Set non-path related properties.
    for (prop in options) {
      if (order.indexOf(prop) === -1) {
        this[prop] = options[prop]
      }
    }
  }
docs: Construct a new file.