... Because HTML5 history is broken

1. Telling if history.forward()/history.back() worked is a nightmare
(have to wait for popstate event)
2. there is no other way to tell if there are more back/forward history
items;
3. Even if you go through the convoluted hoops of using
history.forward/back to see if there are items in the history, those
might trigger loading another page;
4. pushState adds an item to the history, unlike location.href which
clears the balance of the future events (as one would expect); without
1./2. being fixed how do you clear and start a new history path? You
just keep adding to the history. What use case is that for?