code: function () {
  				EventProvider.prototype.destroy.apply(this);
  
  				if (this.bIsDestroyed) {
  					return this;
  				}
  
  				function destroyObject(oObject) {
  					if (oObject && oObject.destroy) {
  						oObject.destroy();
  					}
  				}
  
  				Object.keys(this._oCache).forEach(function (sType) {
  					var oTypeCache = this._oCache[sType];
  					Object.keys(oTypeCache).forEach(function (sKey) {
  						var oInstanceCache = oTypeCache[sKey];
  						Object.keys(oInstanceCache).forEach(function(sId) {
  							var vObject = oInstanceCache[sId];
  							if (vObject instanceof Promise) { // if the promise isn't replaced by the real object yet
  								// wait until the promise resolves to destroy the object
  								vObject.then(destroyObject);
  							} else {
  								destroyObject(vObject);
  							}
  						});
  					});
  				}.bind(this));
  
  				this._oCache = undefined;
  				this.bIsDestroyed = true;
  
  				return this;
  			}
docs: Destroys all the views and components created by this instance.
  
  @returns {sap.ui.core.routing.TargetCache} this for chaining.