◆ さすがにバグかな

前記事を書くためにFirefoxでも確認していたときのこと

なんかおかしい

でも値が違うとかじゃなくて行数が足りない・・・?


左に元の値 右にキャスト後の値を表示させてます
ChromeとFirefoxで両方の結果を出して1行ずつ見ているのですが なんか行数が違います

どういうこと??

と疑問でしたがよくみると同じ行が複数回出力されてまとめられてたようです

 fxbug-01

一緒だったのかー…………ってそんなわけないです

左側の元の値は絶対違うはずです
とりあえずシンプルなコードで試してみます

[123, "abc", [11], 0, null, undefined, Infinity, NaN, "-Infinity"].forEach(function(e){
console.log(e)
})
123
"abc"
Array [ 11 ]
0
null (4)
"-Infinity"

nullが4つでてます
null, undefined, Infinity, NaN は内部的に同じ扱いになってるんでしょうか?
文字列にしてる "-Infinity" ではちゃんと表示されてます
[null, 1, undefined, 2, Infinity, 3, NaN, 4, "-Infinity"].forEach(function(e){
console.log(e)
})
null
1
undefined
2
Infinity
3
NaN
4
"-Infinity"

間にちゃんと表示できるものを挟むと正しく表示されます


こんな明らかにおかしいとしか思えない動きは誰か気づいて修正されそうなものですが気づく人があまりいないんでしょうか
まとめられる事自体があまり起きないので可能性はありそうです
console.log(NaN)
console.log(undefined)
NaN
undefined

こういう風にただconsole.logが複数あってもまとめられません

コードの同じ部分から同じ出力になったときだけまとめられます
function log(x){console.log(x)}
log(NaN)
log(undefined)
NaN (2)

同じconsole.log から連続して null, undefined, NaN, Infinity が出ることが珍しいと思いますし これらが異なっているかまで確認する人はあまりいないと思います


もう少し調べてみると 昔のバージョンのFirefox(正確にはPaleMoon 25.7.2)ではこの問題は起きませんでした
新しめのでだけ起きてるようです

もしかすると Developer Edition だけの問題かもしれないです
最近Firefoxを全然起動していなかったので バージョンはまだ 39.0a2 です