Existe uma maneira de saber em que direção o estado está indo com o history.js?

Como o título diz, eu gostaria de poder executar um diferenteonstatechange evento se opushState função é chamada, em vez doback função. Ou, se ogo a função é negativa ou positiva.

Exemplo:

E seHistory.pushState() ouHistory.go(1) são chamados, eu quero ostatechange callback do evento a serforwardPushState

E seHistory.back() ouHistory.go(-1) são chamados, eu quero ostatechange callback do evento a serbackwardsPushState