code: function coerceControllerAlias(property) {
    return computed(property, {
      get() {
        let controllerName = this.get('controllerName') || this.get('routeName');
        let controller = this.get('controller') || this.controllerFor(controllerName);
        return controller.get(property);
      },
      set(key, value) {
        let controllerName = this.get('controllerName') || this.get('routeName');
        let controller = this.get('controller') || this.controllerFor(controllerName);
        controller.set(property, value);
        return value;
      }
    });
  }
docs: Delegates a given property to the related controller (or specified controller
  if `controllerName` is defined. This is useful so that properties are
  available to use on the controller.