javascript で配列 [0..9] を作りたいときどうしてますか?

ふつう

var a = new Array(10); for (var i=0; i < 10; i++) {a[i] = i;};

ふつう

var a = []; for (var i=0; i < 10; i++) {a.push(i);};

prototype.js を使う

var a = new Array(10); a.length.times(function (i) {a[i] = i});

var a = $A($R(0,9));

New in JavaScript 1.7 - MDCでは内包表記が使える。

function range(begin, end) {
  for (let i = begin; i < end; ++i) {
    yield i;
  }
};

var a = [i  for (i in range(0, 10))];


私は、prototype.js 1.5 時代に

var a = new Array(10); a.each(function(x,i) {a[i] = i});

とやっていたことがあって、そのときは動いてましたが、prototype.js 1.6では、 each がネイティブの forEach を(あるときは)使うように変更されたので、動かなくなりました。forEach は未定義のマスは飛ばしてしまうからです。
同様に、

var a = new Array(10); a = a.map(function(x,i) {return i});

もだめになりました。
それはともかく、prototype.jsにrange関数を入れておいてほしいです。SchemeならSRFI-1のiotaがあるし、OCamlならArray.initがあるし、かなり基本的な関数だと思うのですが。 iota ならこう。

Array.prototype.iota = function(len,start,step) {
  var s = start ? start : 0;
  var t = step ? step : 1; 
  var a = new Array(len);
  for (var i = 0; i < len; i++) a[i] = s + (i * t);
  return a;
}