Нашёл косяк. У меня json либа была старая, и JSON.parse(null) вылетал в ие.
Вот тут data == null.
// dispatch "popstate" event if location changed
firePopState = function( location ) {
his.state = null;
if ( window.sessionStorage ) {
var data = sessionStorage.getItem( lastHash );
if ( window.JSON && JSON.parse ) {
his.state = JSON.parse( data );
} else {
his.state = (new Function( "return " + data ))();
}