window.open(undefined)はブラウザによって結果が異なる


概要

タイトルそのままですが、
JavaScriptで
window.open(hoge, '_self');
としたとき、変数hogeundefinedだった場合の動作が主にIEとそれ以外で異なります。


環境毎結果

ブラウザ 結果
IE11 /undefined へ移動
Edge /undefined へ移動
Chrome 移動しない
FireFox 移動しない

コード

JSFiddleでは上手く行かなかったので手元で確認しました。
ボタン名が変われば移動しなかったとしています。

<!DOCTYPE html>

<html>
<script>
    window.onload = function () {
        document.getElementById('open').addEventListener('click', function () {
            var a;
            window.open(a, '_self');
            document.getElementById('open').innerText = 'end';
        })
    }

</script>
<body>
<button id="open">oepn</button>
</body>
</html>

遭遇箇所が、処理が失敗した場合は移動しないという仕様で、開発ブラウザでは見た目上エラーもなく、移動もせずで仕様通りだった。
また、URLをスラッシュ区切りでパラメーターとして扱うフレームワークだったので、
IEの場合は、失敗時にリロードが起こる(実はundefinedパラメータ付きでのURLへ移動)というよくわからないブラウザ差異を生み出していた