code: function History(options) {
  	this.win = (options && options.win) || window;
  	this._hasPushState = !!(this.win && this.win.history && this.win.history.pushState);
  }
docs: This only supports pushState for the browsers with native pushState support.
  For other browsers (mainly IE8 and IE9), it will refresh the page upon pushState()
  and replaceState().
  @class History
  @constructor
  @param {Object} [options]  The options object
  @param {Window} [options.win=window]  The window object