code: function LevelUP (location, options, callback) {
    if (!(this instanceof LevelUP))
      return new LevelUP(location, options, callback)
  
    var error
  
    EventEmitter.call(this)
    this.setMaxListeners(Infinity)
  
    if (typeof location == 'function') {
      options = typeof options == 'object' ? options : {}
      options.db = location
      location = null
    } else if (typeof location == 'object' && typeof location.db == 'function') {
      options = location
      location = null
    }
  
  
    if (typeof options == 'function') {
      callback = options
      options  = {}
    }
  
    if ((!options || typeof options.db != 'function') && typeof location != 'string') {
      error = new InitializationError(
          'Must provide a location for the database')
      if (callback) {
        return process.nextTick(function () {
          callback(error)
        })
      }
      throw error
    }
  
    options      = getOptions(options)
    this.options = extend(defaultOptions, options)
    this._codec = new Codec(this.options)
    this._status = 'new'
    // set this.location as enumerable but not configurable or writable
    prr(this, 'location', location, 'e')
  
    this.open(callback)
  }
docs: Possible LevelUP#_status values: - 'new'     - newly created, not opened or closed - 'opening' - waiting for the database to be opened, post open() - 'open'    - successfully opened the database, available for use - 'closing' - waiting for the database to be closed, post close() - 'closed'  - database has been successfully closed, should not be used except for another open() operation