Array#spliceの引数省略

引数省略で困った件

var a = [0, 1, 2, 3, 4];
var b = a.splice(3);

IE7とfxでArray#spliceの引数を省略すると挙動が異なる件。上記のように書くとaとbの値がIE7とfxのそれとは異なる。

ブラウザ a値 b値
IE7 [0, 1, 2, 3, 4] []
fx [0, 1, 2] [3, 4]

ECMA仕様書では

第二引数の省略は不可。仕様書の記述は以下の通り。

Array.prototype.splice (start, deleteCount [ , item1 [ , item2 [ , ... ] ] ] )
まだまだな自分

今まで知りませんでした。