Arrayのソースを読む
tamarin-central/core/Array.as
// ECMA 15.4.2.2 public function Array(...args) { var n:uint = args.length if (n == 1 && (args[0] is Number)) { var dlen:Number = args[0]; var ulen:uint = dlen if (ulen != dlen) Error.throwError( RangeError, 1005 /*kArrayIndexNotIntegerError*/, dlen ); length = ulen; } else { // FIXME why not just return args? length = n for (var i:uint=0; i < n; i++) this[i] = args[i] } }
ちょっ、ArrayクラスのコンストラクタにFIXMEとか書いてある!しかも「なんで単にargsを返さないの?」だって?!new Array(xs)で作ったArrayに破壊的な操作をしたときに、xsにまで影響が及んだら困るからでは???