最近Edgeがアップデートされ、popstateの動作が変わりました。
他ブラウザとの互換性が無くなりました。
まぁ、バグでしょう。 バグで直る事をお祈りします。
初回アクセス時に実行させないよう
if(!event.originalEvent.state) return;
は、もはやスニペット入りしていると思います。
しかし、このif文がfalseになることはありません。
nullになりません。
オブジェクトが入ってしまうようになりました。
※もちろん、if文が不要な状況下は話は別ですし、そういう議論ではないので書きません。
pushstateして,formのsubmitによるページリロードが行われた時、popstateが発火します。
このとき、originalEvent.stateがnullとならず、submit前にpushstateで登録してあるオブジェクトが入っているのです。
このため、オブジェクトが現在のページの物であるかの判定を追加する必要がでてきました。
URLが同一かの判定が楽だと思います。