instantiate_(registration, instantiate = (ctor) => new ctor()) {
    if (!registration.ctor) return registration.instance;
    const instance = instantiate(registration.ctor);
    if (this.cacheInstantiation_) {
      delete registration.ctor;
      registration.instance = instance;
    }
    return instance;
  }
@param {!Registration<T>} registration
@param {(function(function(new: T, ...?)): T)=} instantiate
@return {T}
@private