Array.prototype.slice.callとlength

ちょっと暇だったのでArray.prototype.slice.callと戯れてみることに。

Array.prototype.slice.call({
  0: 123,
  1: 456
});
// []

Array.prototype.slice.call({
  0: 123,
  1: 456,
  length: 1
});
// [123]

Array.prototype.slice.call({
  0: 123,
  1: 456,
  length: 2
});
// [123, 456]

Array.prototype.slice.call({
  0: 123,
  1: 456,
  length: 1
});
// [123]

lengthの値を見てるのかー。ということはarguments以外の配列っぽいものではないもの(lengthがないもの)を渡しても配列は得られないということか。