Windows版FirefoxのJS実装がなんかおかしい?

先日仕事場で寝ぼけながらJS書いてると、
現場の偉い人から
IEでエラーになるからなおしといて」
って言われて
「えーでもFirefoxじゃなんもいわれねーっすよこれだからIEは!
みたいなこといいつつ自分で書いたソースを見てみると

function foo(bar = "aa") {
 ...
}

みたいな無茶な実装をしてしまっていたわけなんですが・・・

Javascriptは確か関数の引数初期化は

if(bar === undefined) {
 bar = "tingisu";
}

みたいな方法でやるのが一般的だったはずで、そもそも変数初期化の記述は構文エラーになるはず。
少なくともIEではエラーが出ている。
なんで!?Firefoxxxxx!


というわけで、まずは以下のような簡単なコード。

foo();

function foo(bar = "aa") {
 alert(bar);
}

OS X Chrome

OS X Firefox

OS X Opera

IE9

Win Chrome

Win Firefox

なんかでた


どういうことなんだろうこれ?
次世代への布石みたいな何かなんだろうか?
よくわからないんだけど、とりあえず僕が結構寝ぼけていたというお話でした。