function(oHashChanger) {
		this._iHistoryLength = window.history.length;
		this.aHistory = [];
		this._bIsInitial = true;

		if (!Device.browser.msie) { // the state information isn't used for IE
			// because it doesn't clear the state after new hash is set
			var oState = window.history.state === null ? {} : window.history.state;

			if (typeof oState === "object") {
				History._aStateHistory.push(window.location.hash);
				oState.sap = {};
				oState.sap.history = History._aStateHistory;
				window.history.replaceState(oState, window.document.title);
			} else {
				Log.debug("Unable to determine HistoryDirection as history.state is already set: " + window.history.state, "sap.ui.core.routing.History");
			}
		}

		if (!oHashChanger) {
			Log.error("sap.ui.core.routing.History constructor was called and it did not get a hashChanger as parameter");
		}

		this._setHashChanger(oHashChanger);

		this._reset();
	}
function(oHashChanger) {
		this._iHistoryLength = window.history.length;
		this.aHistory = [];
		this._bIsInitial = true;

		if (!Device.browser.msie) { // the state information isn't used for IE
			// because it doesn't clear the state after new hash is set
			var oState = window.history.state === null ? {} : window.history.state;

			if (typeof oState === "object") {
				History._aStateHistory.push(window.location.hash);
				oState.sap = {};
				oState.sap.history = History._aStateHistory;
				window.history.replaceState(oState, window.document.title);
			} else {
				Log.debug("Unable to determine HistoryDirection as history.state is already set: " + window.history.state, "sap.ui.core.routing.History");
			}
		}

		if (!oHashChanger) {
			Log.error("sap.ui.core.routing.History constructor was called and it did not get a hashChanger as parameter");
		}

		this._setHashChanger(oHashChanger);

		this._reset();
	}
function ( oHashChanger ) { this . _iHistoryLength = window . history . length ; this . aHistory = [ ] ; this . _bIsInitial = true ; if ( ! Device . browser . msie ) { // the state information isn't used for IE // because it doesn't clear the state after new hash is set var oState = window . history . state === null ? { } : window . history . state ; if ( typeof oState === "object" ) { History . _aStateHistory . push ( window . location . hash ) ; oState . sap = { } ; oState . sap . history = History . _aStateHistory ; window . history . replaceState ( oState , window . document . title ) ; } else { Log . debug ( "Unable to determine HistoryDirection as history.state is already set: " + window . history . state , "sap.ui.core.routing.History" ) ; } } if ( ! oHashChanger ) { Log . error ( "sap.ui.core.routing.History constructor was called and it did not get a hashChanger as parameter" ) ; } this . _setHashChanger ( oHashChanger ) ; this . _reset ( ) ; }
Used to determine the {@link sap.ui.core.routing.HistoryDirection} of the current or a future navigation,
done with a {@link sap.ui.core.routing.Router} or {@link sap.ui.core.routing.HashChanger}.

<strong>ATTENTION:</strong> this class will not be accurate if someone does hash-replacement without the named classes above
If you are manipulating the hash directly this class is not supported anymore.

@param {sap.ui.core.routing.HashChanger} oHashChanger required, without a HashChanger this class cannot work. The class needs to be aware of the hash-changes.
@public
@class
@alias sap.ui.core.routing.History
Used to determine the { @link sap . ui . core . routing . HistoryDirection } of the current or a future navigation done with a { @link sap . ui . core . routing . Router } or { @link sap . ui . core . routing . HashChanger } .
Sets the history to the current location