[undefined, undefined, undefined].map(function(val, i) { return i });
returns [0, 1, 2], while
Array(3).map(function(val, i) { return i });
returns [undefined, undefined, undefined].
Why?