code: function (target, property, value) {
      return perform(target, function (target) {
          return target.set(property, value);
      }, function (target) {
          target[property] = value;
          return value;
      });
  }
docs: Sets the value of a property in a future turn.
  
  @param {Promise} target promise or value for target object
  @param {string} property name of property to set
  @param {*} value new value of property
  @return promise for the return value