If history has not been started before the first call to navigate (changing the iframe hash) the next checkUrl sees the hash as blank. By starting history earlier in start this is avoided.
Also, historyStarted was moved to Backbone.History.started. It is impossible to check it's value otherwise.
The test case is only useful in browsers that need the iframe.
fixes #1003 - History is started before `navigate`
Looks almost perfect. But shouldn't that be Backbone.history.started? With the lowercase h
I don't think so. historyStarted was used for all instances of Backbone.History. It denotes that any instance has been started, not just the current one.
var history = new Backbone.History();
Backbone.history.start(); // should throw
You're quite right.