balupton/history.js — pull request #150 by drd (2012-01-19 23:18:01+00:00)
Title: Prevent Safari 5.0.x poll from interfering with pushState until hash change propagates

If a pushState has just occurred and the Safari poller checks to see
if the hash has changed before the hashchange propagates, then it
sees the new state as being different from the actual state, thus
triggering a pushState. This patch sets a flag (waitForPropagation)
which is cleared by an interval after the hashchange finally
propagates.

The question.. what happens if a second pushState occurs before
the hashchange propagates?